这个问题的答案只有3个字—— 非常大。ASP.NET并不仅仅是一个新版本,而是Web应用程序编程方面的一个全新概念和方法。ASP.NET中的新功能并不是对ASP的改进,设计它的初衷是为用户提供最佳的应用程序架构。这就意味着在许多领域中,ASP.NET与ASP是不兼容的,不过从长远来说这是一件好事。这表明ASP.NET为应用程序的开发提供了一个功能强得多的平台,同时它也具备了更多的优点。
如果您担心兼容问题,那么如前所述,ASP.NET与ASP是互不干扰的。即使两者之间有许多不同,但安装ASP.NET并不会破坏现有的应用程序。这是因为处理现有的ASP页仍使用和以前一样的机制,而新的架构则负责处理ASP.NET页。之所以如此是由于ASP.NET页有一个新的文件扩展名(.aspx),也就是说它们的处理方式和ASP页是不同的。
ASP作为一种开发站点的方式已经取得了巨大的成功,那么为什么我们还需要开发一个新技术呢?简单地说,ASP的改进并没有考虑到它当前的使用情况。尽管ASP在设计之初已经具备了很好的使用范围和灵活性,但我们仍然不认为其作者当时会想到ASP如今会成为许多应用程序的基础。就像一个一夜之间成名的好莱坞明星那样,ASP所取得的飞速成功也导致了以下一些问题:
● ASP是一种脚本语言,它主要依靠VBScript和JScript。如果安装了相应的解释程序,我们就可以使用其他语言,但它仍然是解释性语言。解释性语言有两个缺点,一是缺乏强类型(这些类型是由像VB和C/C++这样的类型语言所支持的);二是缺乏编译环境。ASP可以高速缓存代码,但它仍然需要解释,并且这将不可避免地导致性能和伸缩性问题。
● ASP并没有为应用程序提供一个固有的结构。在静态页面的时代,我们习惯于查看小且集中的源文件。而利用ASP的动态概念就要在页面中植入代码,但这又导致了一些问题。首先,将代码和页面内容混合在一起始终令人担心,如果有一个组合的开发队伍,其中一些人负责设计HTML和界面,另一些人编写代码,那么这两组人处理相同的文件时就会产生麻烦。其次,在页面中植入代码会使代码变得很复杂,从而源文件就会变得很大。包含文件允许复用一定数量的结构和代码,但始终不是一个真正可行的解决办法。
● 不论工作有多么简单,我们都必须在ASP中编写代码来完成绝大多数的工作。例如,验证窗体文本输入栏的工作就是这样。仅仅为了确保栏中输入了值就需要写代码,其他需要代码的领域还包括高速缓存页面内容、保持窗体状态等。甚至在添加新的HTML控件时都需要在页面中编写原始的HTML。
● 如今浏览器的兼容性问题已经演变为设备的兼容性问题。目前Web访问主要还是利用PC和浏览器,但这种情况还会持续多久?移动设备正变得越来越普及,而且功能也越来越强大,而这为站点的设计带来了更多问题。如果希望自己的站点能够最大限度地适应这些移动设备的需要,就必须编写代码来检测这些设备,同时为其提供合适的内容。
● 标准兼容性同样在Web开发中扮演着重要的角色。XHTML正在被越来越多的人接受,XML和XSLT同样得到了广泛的应用,而且与移动设备进行通信还应该支持WML。要支持这些标准,ASP应用程序不仅要利用现有的标准工作,而且还要易于升级,以支持将来的标准。
上述仅是我们在编写ASP应用程序时遇到的一小部分问题。Internet所具有的快速变化的本质经常要求应用程序作出同样迅速的改变。对拥有强大开发环境的语言来说,像组件化、代码复用和快速开发等这样的技术为开发人员提供了极大的便利,但在ASP中却缺乏这种支持。而B2B(Business-to-Business)应用程序的兴起,以及对等数据共享都对开发人员提出了严峻的挑战。
ASP.NET正是为满足这些需要而出现的。它不仅解决了现有开发环境造成的许多问题,而且提供了强大的可扩展性,同时也带来了强大的工具支持。从最低限度来说,再次发布的ASP.NET版本可以满足您的所有要求,并且它是免费的,同时还可以继续使用您自己喜欢的编辑器(比如Notepad)。有了ASP.NET,就可以访问任何数据、程序或页面,同时ASP.NET还提供了多语言支持。要得到一个功能更强大的开发环境,可以使用Visual Studio .NET,它提供了拖放支持、彩色编码(它比您想像中的要更加有用)、关联帮助和工具提示,以及以前Visual Studio所具有的强大编辑功能。