●编译而不是解释——与典型的ASP在每一次页面请求时都解释编程结构不同,ASP.NET在服务器端动态地将页面编译成可以运行得非常快的本机编程指令.可以很明显地看到典型的ASP页面的性能与相同ASP.NET页面的性能之间相差的数量级别.●事件驱动编程模式——在典型的ASP中,页面总是以自顶向下的线性方式执行,并且HTML标记常常与程序指令混合在一起.任何一个有一定ASP经验的人都知道这样会使得页面难以阅读,甚至更加难以维护.ASP.NET引入了事件驱动模型,这个模型允许您将代码与标记内容分离,将代码并入处理专门任务的有意义的单元中,例如响应客户端的按钮单击动作.这个类似VB的事件模型极大地提高了页面的可读性和可维护性.●服务器控件——典型的ASP需要动态地将HTML片断代码接合在一起呈现,这样做的结果就是在应用程序中一遍又一遍地编写相同的代码(您需要多少次才能从数据库
查询中构建一张表格).ASP.NET带给Web编程的一个最大的好处就是能够将公共的呈现和行为封装成服务器控件(servercontrol),可以在应用程序中很方便地重复使用.就像HTML标记一样,服务器控件以声明的形式创建,但是表现为一个位于服务器端的可编程对象,它可以与代码进行交互并输出定制的动态HTML呈现.ASP.NET包含了大约80多个服务器控件,这些控件封装了从标准表单元素到复杂控件(如网格和菜单)的所有内容.●控件设计时间的改善(当使用VisualWebDeveloper时)——开发人员通过使用设计时间界面可以减少花费在开发复杂页面上的时间,这些界面包括敏捷任务面板,标签级
导航栏和可以设置控件属性的向导.1.1.3ASP.NET2.0ASP.NET的第一个版本(1.0和1.1)在2001年至2003年间迅速风靡了Microsoft的开发阵营.程序人员很快便感觉到他们通过使用强大和灵活的.NETFramework可以大大减少编码时间,而且CIO们也看到当程序员花在解决客户代码的疑难
问题上的时间减少时,他们就可以将更多的资源投入到更高级的IT结构的改善上.ASP.NET确实是一个里程碑式的版本,它简化了开发人员的工作.但是,就在第一个版本发布之前,Microsoft的ASP.NET小组就已经在为开发ASP.NET2.0而工作了.他们以下面雄心勃勃的目标来开始他们的工作:●使创建一个典型的Web应用程序所需代码行数减少70%.●提供一套可扩展的应用程序服务,用来为通用应用程序任务提供构建块,例如成员,角色,个人化以及导航等.●创建一系列基于任务的服务器控件,这些控件可以调节上述服务,交付完全,可定制的用户接口(UI),以最小的代码量来展示这些服务.●当与.NETFramework协同工作提供页面服务时,改善IIS的性能.●提供管理功能,以便加强ASP.NET服务器的部署,管理和运行.●改善宿主公司所用的工具,以便可以支持多站点并能够将开发人员的项目迁移至公共部署环境.●让ASP.NET的几乎所有特性都能够方便地扩展或者用定制的高级任务的执行替换.在这里,我们有必要再来细细地回想一下第一个目标,也就是使编写一个动态Web应用程序所需的代码量减少70%.这有可能吗?Microsoft的ASP.NET小组已经仔细考虑过各种以定制代码执行的通用任务,并且专门制定了将这些任务封装进构建块(特别是服务器控件)的方式,这样就能够自动地完成这些任务了.例如,大多数Web应用程序都需要安全或者导航或者个性化服务来为用户提供定制的体验.在ASP.NET2.0中,这些任务是通过一系列可配置的应用程序服务,以及与这些应用程序服务进行对话的服务器控件来实现的,这样可以极大地减少实施这些通用服务所需的应用程序的代码量.但