我可以对将经典的asp网站转换为asp.net有一些一般性的建议吗?我以前从未使用过经典的asp,过去6个月左右只使用过asp.net 2.0,所以这对我来说是全新的。
我注意到这个网站我正在使用一些“包含”文件。我知道我应该从包含文件中获取代码并将它们复制到自己的类文件中。我注意到文件后面没有代码,每个页面都写在自己的文件中(标记和代码)。而且,这有点让我失望,没有事件处理程序。你可以提到经典和.NET之间还有其他有用的细微差别吗?
还有一个问题:我在项目的每个文件中都注意到有一些代码写在标记之上,还有一些代码在标记之下。为了组织/可读性目的,似乎所有代码都写在标记的上方或下方会更好。除非,这是有原因的。 ???
感谢。
答案 0 :(得分:5)
你的手上肯定有挑战。就比较而言,MVC可能更接近传统的ASP,因为它不会尝试将Web抽象为基于事件的结构 - 但这只是你学习的另一件事。
经典ASP是一种与ASP.NET完全不同的野兽。基本上每个URL都解析为父ASP文件。这又包括其他ASP文件(如果开发人员感觉它们是“.inc”,它们可以有不同的扩展名)。这些反过来可以包括其他文件。完全可以将相同的文件包含多次 - 通常ASP引擎应对此问题。重要的是要记住,在任何实际的ASP处理开始之前,处理所有包含以生成一个大文档。因此,一旦处理了所有包含,您就有一个大文档。然后ASP引擎从顶部开始并逐行处理代码。你可能会把所有的HTML和ASP代码都缠绕在一起,然后调用即可。
如果您可以对C#或VB进行编程,那么读取一个ASP文件应该不会太困难。在那个阶段,您可以开始一次处理一页的功能。请记住,在ASP中也没有“回发”或查看状态概念。这也是ASP.NET试图抽象Web编程来表示基于事件的方法。
很抱歉最后一件事 - 一些命令,例如ASP中的显式选项必须是父ASP文档中的第一件事,因此必须始终出现在任何其他代码或标记之前。之后代码和标记可以混合在一起 - 导致臭名昭着的“标签汤”,ASP将被记住。
答案 1 :(得分:0)
获取您的包含并对其进行分类:
1)代码功能
2)模板功能
应将所有代码函数放入业务对象类或模块中。模板函数应放在用户控件和后续母版页中。我强烈建议使用母版页来控制新项目的模板外观,因为它可以节省大量时间来管理网站并将所有实际页面功能转移到新页面中。
ASP是一种脚本语言,因为Asp.Net可以编写脚本或编译。我建议选择一个网站项目,因为这将为您提供最大的灵活性来部署代码的minutae。 Web应用程序项目会将所有内容编译成一个易于部署的单个.dll文件,但如果/当页面代码交织在一起时,它会导致大量的回归测试。
一旦建立了模板化结构,公共类,数据访问层和母版页/用户控制结构,它就变成了逐页进行并将其转换为新代码的任务。