从 ASP Classic 迁移到 .NET 并缓解痛苦

2024-03-05

我们正在 .NET 3.5 中重新设计网站面向客户的部分。到目前为止一切进展顺利,我们使用相同的工作流程和存储过程,在大多数情况下,最大的变化是 UI、ORM(从字典到 LINQ),当然还有语言。到目前为止,大多数页面都是微不足道的,但现在我们正在处理最繁重的工作流程页面。

我们的报价接受部分的主页有 1500 行,其中大约 90% 是 ASP,可能还有 1000 行函数调用包含。我认为 1500 行也有点欺骗性,因为我们正在使用这样的 gem

function GetDealText(sUSCurASCII, sUSCurName, sTemplateOptionID, sSellerCompany, sOfferAmount, sSellerPremPercent, sTotalOfferToSeller, sSellerPremium, sMode, sSellerCurASCII, sSellerCurName, sTotalOfferToSeller_SellerCurr, sOfferAmount_SellerCurr, sSellerPremium_SellerCurr, sConditions, sListID,  sDescription, sSKU, sInv_tag, sFasc_loc, sSerialNoandModel, sQTY, iLoopCount, iBidCount, sHTMLConditions, sBidStatus, sBidID, byRef bAlreadyAccepted, sFasc_Address1, sFasc_City, sFasc_State_id, sFasc_Country_id, sFasc_Company_name, sListingCustID, sAskPrice_SellerCurr, sMinPrice_SellerCurr, sListingCur, sOrigLocation)

到目前为止,我一直使用的标准做法是花大约一个小时左右的时间阅读该应用程序,既熟悉它,又删除注释掉/不推荐使用的代码。然后以深度优先的方式工作。我将从顶部开始并复制一段代码aspx.cs文件并开始重写,进行明显的重构,特别是为了利用我们的 ORM。如果我得到一个我们没有的函数调用,我会写出定义。

在我对所有内容进行编码后,我将进行几次重构/测试。我只是想知道是否有人对如何使这个过程更容易/更高效有任何建议。


相信我,我知道exactly你来自哪里..我目前正在将一个大型应用程序从 ASP classic 迁移到 .NET..而且我仍在学习 ASP.NET! :S(是的,我很害怕!)。

我一直牢记在心的主要事情是:

  • 我不迷路too与当前的设计相去甚远(即,没有大规模的“让我们把所有这些都撕下来,让 ASP.NET 变得神奇!),因为 ASP 经典往往具有令人难以置信的高耦合量,这将是非常危险的。当然,如果你有信心了,加油吧:) 这总是可以在以后重构。
  • 通过测试、测试和更多测试来支持一切!我真的很努力地想要进入 TDD,但是测试现有的应用程序非常困难,所以每次我删除一大块经典应用程序并用 .NET 替换时,我都会确保我有尽可能多的绿灯测试支持我。
  • 研究了很多,经典和.NET之间有一些重大变化,有时可以用几行代码实现多行代码并包含在经典中,think在编码之前..我已经好几次通过艰难的方式学会了这一点:D

非常喜欢玩Jenga http://www.amazon.co.uk/Hasbro-14569186-Jenga/dp/B00004XQW9用你的代码:)

祝项目顺利,如有其他问题,请提问:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 ASP Classic 迁移到 .NET 并缓解痛苦 的相关文章

  • 如何从重定向的查询字符串中删除项目?

    在我的基页中 我需要从查询字符串中删除一个项目并重定向 我不能使用 Request QueryString Remove foo 因为该集合是只读的 有没有什么方法可以获取查询字符串 除了该一项 而无需迭代集合并重新构建它 您可以通过处理原
  • ASP.NET 更新面板停止 jquery 工作

    我已经为 mouseenter mouseleave 以及 jquery Draggable 绑定了 jquery 事件集 div 被放置在更新面板中 当单击按钮时 信息将发送到数据库并更新更新面板 但是 当面板更新时 jquery 事件不
  • 有人设法将旧版 Textmate 捆绑包与 Textmate2 一起使用吗?

    我特别希望能够将 Ackmate 捆绑包 peepcode 新的 转到文件 似乎足够好 和一些其他自定义捆绑包与 TM2 一起使用 我尝试将现有的捆绑包移动到某个位置 Library Application Support TextMate
  • 从 javascript 调用 HttpHandler

    我有一个简单的页面 带有通过 JavaScript 调用 HttpHandler 的按钮 HttpHandler 获取大量文件并将它们添加到 zip 文件中 完成工作后 zip 文件将添加到 Response 中 此操作可能需要几分钟时间
  • 数字或货币的字符串格式?

    我需要为每个千给出逗号 所以我用了DataFormatString 0 它运行良好 但当值为0 它正在显示 00 我只想只显示 0 我们怎样才能做到这一点 DataFormatString 0 C0 这将格式化为小数点后 0 位的货币 Da
  • 不推荐使用 getPreventDefault()。请改用defaultPrevented。为什么我会收到此错误以及解决方案是什么?

    以前我在代码中使用 jQuery 1 7 1 我收到上述错误 然后我直接从谷歌存储库使用了 jQuery 1 11 1 但我仍然收到此错误 我应该如何解决这个问题 由于这个错误 我的其他 jQuery 功能也无法工作 我研究了很多关于该解决
  • 在 Mac 上开发和测试 ASP.NET 的应用程序 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我开始学习一些asp net 所以我正在寻找一个使用mac 开发asp net 的应用程序 我知道 D
  • 什么可能会在一台服务器上导致此错误,而在另一台服务器上则不会?

    我们有一个连接到外部 Web 服务的 ASP Net 网站 几天前它突然停止工作 基本代码是这样的 Try request New ExternalWebService ProcessRequestService Error occurs
  • sitecore 站点内嵌套虚拟目录或应用程序是否可能

    我想将 ASP NET Web 应用程序嵌套在 sitecore 站点中 如下所示
  • ASP.NET MVC 多线程

    我想在我的 asp net mvc 应用程序中实现这样的逻辑 user clicks a button gt server executes some time consuming logic in 15 threads i get dat
  • 将 UserControl 转换为特定类型的用户控件

    有没有办法将用户控件转换为特定的用户控件 以便我可以访问它的公共属性 基本上 我正在遍历占位符的控件集合 并尝试访问用户控件的公共属性 foreach UserControl uc in plhMediaBuys Controls uc P
  • 自定义WebApi授权数据库调用

    我正在尝试确定我编写的自定义授权属性是否确实是一个好主意 Scenario假设我们有一系列商店 每个商店Store有一个主人 只有商店的所有者才能对商店进行CRUD操作 除了具有Claim这基本上超越了所有权要求 并表示他们可以在任何商店上
  • ASP.NET WebApi - 一个控制器中的多个 GET 操作

    I have Users控制器和基本 REST 模式工作得很好 不过我需要一种额外的模式users id usergroups这将返回该用户的所有用户组 实现这一点的最佳方法是什么 因为我想我将需要在更多控制器上使用类似的路由 仅使用默认值
  • 如何使用泛型类型的 DataContractSerializer 编写自定义序列化器?

    我想编写一个自定义序列化器 用于将会话状态存储到Azure 缓存 预览版 这意味着这个自定义序列化器必须实现IDataCacheObjectSerializer 如果我错了 请告诉我 我需要编写这个自定义序列化程序的原因是我需要序列化一些包
  • 在 ASP.Net 网站中使用 VBScript 中的变量

    我花了一天的大部分时间来研究这个问题 但找不到答案 我对 stackoverflow 比较陌生 询问多个问题是否有一定的礼仪 过去几天我问了三个问题 Anyways 这是代码隐藏文件中的代码 它执行脚本 systeminfo vbs 并且工
  • 设置asp.net验证器的顺序

    我使用 3 个验证器来验证文本框 但当在文本框中输入无效值时 所有验证器都会被触发 但我希望这些验证器按照特定的顺序工作 以便用户可以一一解决这些错误
  • ASP.NET 更改模板字段中 Gridview 单元格中的文本和颜色

    我在 ASP net 中有 Gridview 显示数据 根据数据 它会根据单元格的值更改颜色和文本 当列不是模板字段时 这可以正常工作 WORKS WHEN IS NOT A TEMPLATE FIELD if e Row RowType
  • 确定最接近的已知颜色

    我允许我的应用程序的用户选择自定义颜色 并希望有一种方法来显示每种颜色的友好名称 而不是显示十六进制代码的文本表示形式 我如何找到最近的System Drawing Color对于给定的十六进制代码 希望这对某人有帮助 Public Fun
  • 如何从asp net core中的AuthorizationFilter重定向到登录页面?

    当我回来时ForbidResult 它重定向到AccessDenied启动时指定的页面 我想做同样的事情UnauthorizedResult 但重定向到Login page P S 我没有使用标准Authorize控制器中的属性我有自己的
  • 导致回发到与弹出窗口不同的页面

    我有一个主页和一个详细信息页面 详细信息页面是从主页调用的 JavaScript 弹出窗口 当单击详细信息页面上的 保存 按钮时 我希望主页 刷新 是否有一种方法可以调用主页的回发 同时还可以从详细信息页面维护保存回发 Edit 使用win

随机推荐

  • Caffe/pyCaffe:设置所有 GPU

    是否可以为Caffe 尤其是pyCaffe 设置所有GPU 就像是 caffe train solver examples mnist lenet solver prototxt gpu all 这两个分支现在都支持多 GPU 一段时间了
  • WordPress 随机数存储在哪里?

    我试图找出 WordPress 存储所有随机数的位置 但却没能找到线索 我首先检查了数据库 但找不到任何名为 wp nonces 的表 我 11 个月前发布了这个问题 我收到的所有答案都很好 对我帮助很大 但他们都没有解决 WordPres
  • 字段列表中的未知列错误 Rmysql

    我使用编写了一个 data frame dbWriteTable con name db all df overwrite T row names F 使用MySQL成功连接到MySQL 现在我有第二个数据框 它具有类似的结构并尝试使用 d
  • 如何查看给定 npm 模块的依赖关系树?

    如何获取可用于 npm 但未安装在本地的模块树 npm ll执行本地安装的软件包的工作 但它不适用于未安装的模块或全局安装的模块 I tried npm list bower但事实并非如此 无需安装即可生成NPM依赖树 使用命令建立依赖关系
  • 两个 github 帐户推送到同一个存储库 [重复]

    这个问题在这里已经有答案了 所以这是一个非常具体的用例 如果任何 GitHub 专家可以帮助我 那就太好了 在我的 Linux 笔记本电脑中 我想推送same使用两个不同的 GitHub 用户名的 GitHub 存储库 我已在本地计算机中设
  • 将负数转换为无符号类型(ushort、uint 或 ulong)

    如何将一些负数转换为unsigned types Type type typeof ushort short num 100 ushort num1 unchecked ushort num When type is known Resul
  • 存储过程和实体框架的性能

    是否有任何明显的原因可以解释为什么通过实体模型调用存储过程会导致性能比直接调用慢得多 首先 我不希望 SP 运行在exactly相同的速度 我知道 EF 必须做的许多事情在直接访问 SP 时不会被调用 除此之外 我有一个返回三列字符串的查询
  • R 中的 gsub 和 regex 问题

    我在 R 中使用 gsub 将文本添加到字符串的中间 它工作得很好 但由于某种原因 当位置太长时 它会抛出错误 代码如下 gsub paste0 as integer loc 1 1 new cols sql Error in gsub p
  • C-如何使用PROGMEM存储和读取char数组

    我有三个字符数组 我不希望 Arduino 将它们存储在SRAM http en wikipedia org wiki Static random access memory 所以我想使用PROGMEM来存储和读入flash http en
  • 类似于 ftrace 打印 CPU 编号

    我想打印当前进程或函数正在执行的 CPU 编号 类似于 ftrace 如下所示 TASK PID CPU TIMESTAMP FUNCTION
  • 我无法获得可样式化的属性数组

    我使用 attrs 声明一个可样式化的视图 并以简单的方式创建了文件 myview attrs xml
  • 类库中 app.config 中的连接字符串

    我正在创建解决方案 里面有三个项目 WCF 服务库项目 数据访问项目 类库 用于托管 WCF 服务的网站 该服务的实现位于项目 1 上 但为了访问数据库 我使用了第二个项目 该项目使用类库项目实现数据访问 这个问题是为了获得数据访问 我需要
  • 将数字列表分为 2 个等和列表的算法

    有一个数字列表 该列表将被分为 2 个大小相等的列表 并且总和相差最小 金额必须打印出来 Example gt gt gt que 2 3 10 5 8 9 7 3 5 2 gt gt gt make teams que 27 27 对于某
  • Actionscript3 到 JavaScript 通信:最佳实践

    那么在更抽象的层面上上一个问题 https stackoverflow com questions 299729 javascript to flash communication 根据我的经验 有 3 种方法可以使用 AS3 从嵌入式 s
  • 通过 less 生成 CSS 组

    是否能够创建这样一个生成CSS组的mixin 我将在下面解释我的意思 fancymixin max prefix content what I don t know how to code fancymixin 10 x 它会生成类似以下内
  • MySQL:SELECT 语句区分大小写吗?

    是MySQLSELECT查询默认区分大小写还是不区分大小写 如果没有 我必须发送什么查询才能执行如下操作 SELECT FROM table WHERE Value iaresavage 事实上 真正的价值Value is IAreSava
  • 使用对象浏览器中未列出的对象属性

    我一直在深入研究 VBA 中对象属性和方法的底层结构 我刚刚读到每个对象的所有属性和方法都列在开发人员框中的 对象浏览器 中 之所以提示我查看此内容 是因为我使用了对象浏览器中未列出的方法 我用了 Sheets Front face Sha
  • clojure core.async 通道如何清理?

    我是第一次了解 Clojure core async 并且正在阅读 Rich Hickey 的精彩演示 http www infoq com presentations clojure core async http www infoq c
  • pyspark 是否会更改优化指令的顺序?

    假设我有以下管道 df orderBy foo limit 10 show 在这里我们可以看到orderBy指令首先出现 因此数据帧的所有行都应在指令之前排序limit指令被执行 我发现自己在想 Spark 是否在管道内进行一些 重组 以提
  • 从 ASP Classic 迁移到 .NET 并缓解痛苦

    我们正在 NET 3 5 中重新设计网站面向客户的部分 到目前为止一切进展顺利 我们使用相同的工作流程和存储过程 在大多数情况下 最大的变化是 UI ORM 从字典到 LINQ 当然还有语言 到目前为止 大多数页面都是微不足道的 但现在我们