我们正在重新设计.NET 3.5中面向客户的网站部分.到目前为止一直进展顺利,我们使用相同的工作流程和存储过程,在大多数情况下,最大的变化是UI,ORM(从词典到LINQ),显然是语言.到目前为止,大多数页面都是微不足道的,但现在我们正在处理最重的工作流程页面.
我们的报价接受部分的主页是1500行,其中约90%是ASP,可能还有1000行包含在函数调用中.我认为1500行也有点欺骗,因为我们正在处理像这样的宝石
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进行明显的重构.如果我得到一个我们没有的函数调用,我会写出定义.
在我编写了所有代码之后,我将在重构/测试中做几次通过.我只是想知道是否有人有任何关于如何使这个过程更容易/更有效的提示.
相信我,我确切地知道你来自哪里.我目前正在将一个大型应用程序从ASP经典迁移到.NET.我还在学习ASP.NET!:S(是的,我很害怕!).
我记忆中的主要内容是:
我不流浪过远从目前的设计(即没有出现大规模"让撕了这一切并使其ASP.NET神奇!)由于令人难以置信的高量耦合的是ASP经典往往有,这将是非常危险的.当然,如果你有信心,请填写你的靴子:)以后总是可以重构.
通过测试,测试和更多测试来支持所有内容!我真的很努力进入TDD,但它很难测试现有的应用程序,所以每次我删除一大块经典并替换为.NET,我确保尽可能多的绿灯测试支持我.
研究很多,经典和.NET之间有一些主要的变化,有时候可以通过几行代码实现多行代码和包含在经典中的代码,在编码之前思考 ..我已经学到了很难的方法,好几次:D
它非常像用你的代码玩Jenga :)
祝这个项目好运,再问任何问题,请问:)