我正在考虑将网站从经典ASP转换为ASP.NET。我正在考虑采用敏捷风格方法并尽快提供可交付成果,因此我正在考虑逐行转换并创建“坏”ASP.NET并将其全部放在第1阶段的ASPX文件中并获取工作。我认为,这将是最快和最安全的(即保留相同的功能)。下一阶段是将代码拆分为代码隐藏和多层。
我打算用ASPX文件中的C#替换ASP文件中的VBScript。
除了关于我正在计划做什么(我欢迎)的一般性评论之外,我的具体问题是:是否有任何帮助函数将VBScript函数从ASP包装到C#等效于某人的已经做什么?
所以我一直在寻找一个包含如下包装器的C#文件(库):
string Mid(string txt,int start,int length)
{
return txt.SubString(start, length); // or is it start - 1?
}
double Abs(double num)
{
return Math.Abs(num);
}
答案 0 :(得分:6)
查看Microsoft.VisualBasic命名空间以访问旧的VBScript / VB6函数。您可以直接在C#中使用它们。
另外,你很震惊。 ASP.Net使用不同的编译器模型,因此在ASP.Net中根本不允许在Classic ASP中执行的一些操作。包含文件是我们想到的最重要的文件 - 所有支持代码(页面本身的* .asp文件之外的代码)必须重新考虑支持新模型。
答案 1 :(得分:3)
我不认为逐行方法是一个好主意 - 你最终会得到一堆坏代码,你仍然需要重构。这对我来说听起来也不是很敏捷。
我会尝试将网站逻辑分解为模块,然后尝试将特定页面或模块重写为ASPX。例如,如果网站有管理部分,也许您可以重写管理部分。然后重复下一节。这可以针对每个部分迭代完成,直到你完成。
答案 2 :(得分:2)
我同意杰森的评论,并且还想指出一个你必须解决的更高级别的问题,如果你还没有考虑过。
您的经典ASP网站是否使用会话变量来管理页面之间的状态?如果是这样,您是否考虑过如何在ASP和ASP.NET之间共享会话状态?经典ASP和ASP.NET以不同的方式实现会话状态,因此您需要在两者之间进行传输的方法。
较小的应用程序可能更容易“转换”,但如果您有一个大量使用会话变量的应用程序,您可能需要考虑其他选项。
答案 3 :(得分:1)
如果使用ASP.NET MVC是一个选项,我先看一下。我认为这比从编写脚本语言到WebForms更容易翻译。
答案 4 :(得分:0)
我不认为你通过在.Net中按原样重做网站获得任何收益。正确地实施它将与你在.Net中开始时完全不同,它似乎只是浪费了精力。此外,如果你在.aspx页面中实现所有内容而没有代码隐藏,那么编写单元测试将非常困难。
我的目标是进行MVC转换。如果您按原样移植它,至少要调查母版页,这样可以省去一些麻烦。