动易cms 2007新特性体验之一:使用asp.net 2.0作为开发及运行环境
动易cms 2007没有使用asp.net 1.1而直接使用asp.net 2.0做为开发及运行环境,是因为2.0较之1.1无论在稳定性、安全性、性能以及功能上都有很明显的改进,并且目前大部分的空间商已经支持.net 2.0。动易cms 2007基于asp.net2.0开发,继承了asp.net 2.0的各种优点和特性,为网站的发展奠定了前沿的技术基础。
那么,究竟什么是asp.net呢?asp.net又有些什么样的优点和特性值得我们从已经非常成熟的asp平台转入到asp.net平台呢?
下面就让我一一为大家讲述。这些内容都是从网上找的,我只是整理了一下。已经了解的就不用看了。呵呵。不过如果你认真把这篇长长的文章看完,肯定会对asp.net有了一个较清晰的认识了。
一、什么是asp.net?
提到asp.net,就不得不首先搞清楚什么是asp。asp的全称是active server pages,即活动服务器页面,为什么称之为活动服务器页面,这是因为以前的互联网全部是由静态的html页面组成,如果需要更新你的网站内容,你不得不制作大量的html页面。有了asp以后,我们就能够根据不同的用户,在不同的时间向用户显示不同的内容。网站的内容更新也不再是一个乏味的重复过程,它开始变得简单而有趣。也因此在国内掀起了一股学习asp的热潮。
但是由于asp程序和网页的html混合在一起,这就使得程序看上去相当的杂乱。在现在的网站设计过程中,通常是由程序开发人员做后台的程序开发,前面有专业的美工设计页面,这样,在相互配合的过程中就会产生各种各样的问题。同时,asp页面是有脚本语言解释执行的,使得其速度受到影响。受到脚本语言自身条件的限制,我们在编写asp程序的时候不得不调用com组件来完成一些功能。由于以上种种限制,微软推出了asp.net。
asp.net不仅仅只是asp 3的一个简单升级,它更为我们提供了一个全新而强大的服务器控件结构。从外观上看,asp.net和asp是相近的,但是从本质上是完全不同的。asp.net几乎全是基于组件和模块化,每一个页,对象,和html元素都是一个运行的组件对象。在开发语言上,asp.net抛弃了vbscript和jscript,而使用.net framework所支持的vb.net,c#.net等语言做为其开发语言,这些语言生成的网页在后台被转换成了类并编译成了一个dll。由于asp.net是编译执行的,所以它比asp拥有了更高的效率。
asp.net 是一个统一的 web 开发平台,它提供开发人员创建企业级 web 应用程序所需的服务。尽管 asp.net 的语法基本上与 asp 兼容,但是它还提供了一个新的编程模型和基础结构以提高应用程序的安全性、缩放性和稳定性。通过逐渐向现有的 asp 应用程序增加 asp.net 功能,我们可以自由地使其增大。asp.net 是一个编译的、基于 .net 的环境;我们可以用任何 .net 兼容的语言(包括 microsoft visual basic.net,microsoft visual c# 和 microsoft jscript .net)创作应用程序。另外,整个 microsoft .net framework 可用于任何 asp.net 应用程序。开发人员可以很容易地从这些技术受益,这些技术包括管理的公共语言运行库环境、类型安全、继承等。
关于asp.net有许多新的特性,主要有以下几点:
1、asp.net是预编译的而不是解释的。对于asp.net页面即aspx页面是这样的:第一次执行aspx页面时,页面将首先被编译成一种称为il(intermediate language)的伪代码(pseudo-code),然后在执行时将il代码编译成机器代码,并且被载入到.net运行程序的全局程序集缓存gac中,这样就为其他的托管应用程序的使用做好了准备,只有在程序的代码发生了改变或者web服务器重新启动时,aspx页面才需要重新编译,这样aspx页面除了第一次请求aspx页面时响应速度比较慢外,以后请求都比较快。
2、asp.net是基于控件驱动的。在asp.net中可以使用大多数的控件都不需要aspx中嵌入很多的代码,实际上只需要简单地给控件加入几个属性,便可以轻松地实现服务器的功能,这此控件都被封装好了,开发人员只需要简单的代码就可以使用控件了.
3、asp.net是真正的面向对象的语言,这是asp.net真正的最明显的优点,aspx页面本身就是可重用的对象,只需要引用web应用程序的名字空间,其它的.net应用程序就可以重用aspx的页面。
二、asp.net的优点如下:
1)可管理性: asp.net 使用基于文本的、分级的配置系统,简化了将设置应用于服务器环境和 web 应用程序的工作。因为配置信息是存储为纯文本的,因此可以在没有本地管理工具的帮助下应用新的设置。配置文件的任何变化都可以自动检测到并应用于应用程序。
2)安全: asp.net 为 web 应用程序提供了默认的授权和身份验证方案。开发人员可以根据应用程序的需要很容易地添加、删除或替换这些方案。
3)易于部署: 通过简单地将必要的文件复制到服务器上,asp.net 应用程序即可以部署到该服务器上。不需要重新启动服务器,甚至在部署或替换运行的已编译代码时也不需要重新启动。
4)增强的性能: asp.net 是运行在服务器上的已编译代码。与传统的 active server pages (asp) 不同,asp.net 能利用早期绑定、实时 (jit) 编译、本机优化和全新的缓存服务来提高性能。
5)灵活的输出缓存: 根据应用程序的需要,asp.net 可以缓存页数据、页的一部分或整个页。缓存的项目可以依赖于缓存中的文件或其他项目,或者可以根据过期策略进行刷新。
6)国际化: asp.net 在内部使用 unicode 以表示请求和响应数据。可以为每台计算机、每个目录和每页配置国际化设置。
7)移动设备支持: asp.net 支持任何设备上的任何浏览器。开发人员使用与用于传统的桌面浏览器相同的编程技术来处理新的移动设备。
8)扩展性和可用性: asp.net 被设计成可扩展的、具有特别专有的功能来提高群集的、多处理器环境的性能。此外,internet 信息服务 (iis) 和 asp.net 运行时密切监视和管理进程,以便在一个进程出现异常时,可在该位置创建新的进程使应用程序继续处理请求。
9)跟踪和调试: asp.net 提供了跟踪服务,该服务可在应用程序级别和页面级别调试过程中启用。可以选择查看页面的信息,或者使用应用程序级别的跟踪查看工具查看信息。在开发和应用程序处于生产状态时,asp.net 支持使用 .net framework 调试工具进行本地和远程调试。当应用程序处于生产状态时,跟踪语句能够留在产品代码中而不会影响性能。
10)与 .net framework 集成: 因为 asp.net 是 .net framework 的一部分,整个平台的功能和灵活性对 web 应用程序都是可用的。也可从 web 上流畅地访问 .net 类库以及消息和数据访问凯发k8天生赢家的解决方案。asp.net 是独立于语言之外的,所以开发人员能选择最适于应用程序的语言。另外,公共语言运行库的互用性还保存了基于 com 开发的现有投资。
11)与现有 asp 应用程序的兼容性: asp 和 asp.net 可并行运行在 iis web 服务器上而互不冲突;不会发生因安装 asp.net 而导致现有 asp 应用程序崩溃的可能。asp.net 仅处理具有 .aspx 文件扩展名的文件。具有 .asp 文件扩展名的文件继续由 asp 引擎来处理。然而,应该注意的是会话状态和应用程序状态并不在 asp 和 asp.net 页面之间共享。
三、asp.net与iis、asp 之间的比较
asp.net 应用程序与 internet 信息服务 (iis) 之间的关系如下:iis 通过 aspnet_isapi.dll(asp.net 的进程模型)对可发布的 asp.net 文件的所有请求提供服务。iis 不会处理服务器端的代码;而 asp.net 引擎则会处理服务器端代码,然后将输出返回给 iis(如果可能,或另一个 web 服务器)。
asp.net 并非仅仅是下一代的asp,它为创建利用 internet 的网络应用程序提供了全新的编程模型。asp.net与asp比较的特点如下:
1、改进的性能和可伸缩性
1)编译后执行:asp.net 比传统 asp 的运行速度更快,同时保留了 asp"只需点击保存"的更新模型。无需显式的编译步骤。asp.net 自动检测变化,根据需要动态编译文件,并且保存编译结果以便后续的请求再次使用。动态编译保证了用户的应用程序总是最新的,并且编译后执行的操作会使其运行速度更快。对于多数从传统的 asp 迁移到 asp.net 的应用程序,其处理的页数增长了 3 至 5 倍。
2)大容量输出缓存:asp.net 输出缓存极大地改进了应用程序的性能和可伸缩性。当在页面中启用输出缓存时,asp.net 就会执行一次该页并将结果在发送至用户之前保存在内存中。当其他用户请求同一页面时,asp.net 使用内存中的缓存结果向用户提供服务,而不是重新执行该页面。输出缓存是可配置的,并且可以用来缓存单个区域或整个页面。
3)web 场会话状态:asp.net 会话状态允许我们在 web 场中的所有计算机之间共享会话数据。现在,用户可以通过多个请求访问 web 场中不同的服务器,并且仍然具有完全访问会话数据的权限。
2、增强的可靠性
内存泄漏、死锁和故障保护:asp.net 自动检测错误(例如,死锁和内存泄漏)并进行恢复以确保我们的应用程序始终可用。例如,当检测到内存泄漏时,asp.net 将自动启动新的 asp.net 工作进程副本,并将所有的新请求定向到该进程。当旧进程完成挂起请求的处理后,会经过适当的处置并释放泄漏的内存。
3、部署简单
1)"非接触式"应用程序部署:使用 asp.net,我们可以通过将其复制到服务器来进行整个应用程序的部署。配置设置将存储在应用程序的 xml 文件中。
2)动态更新运行的应用程序:asp.net 允许我们不必重新启动 web 服务器而更新已编译的组件。与传统的 com 组件(这些组件需要在部署更新后手动重新启动 web 服务器)不同,asp.net 自动检测更改并使用新的代码启动。
3)迁移路径简单:asp.net 可以和传统的 asp 应用程序一起在 microsoft windows 2000、windows xp、以及 windows server 2003 家族成员的 iis 上运行。我们可以一次迁移一个应用程序,甚至是单独的页面。asp.net 甚至允许我们继续使用现有的传统 com 商务组件。
4、新的应用程序模型
1)xml web 服务:xml web 服务允许应用程序通过 internet 进行通信和共享数据,而不管操作系统和编程语言如何。asp.net 使得公开和调用 xml 网络服务变得简单。
2)移动 web 设备支持:asp.net 移动控件允许我们处理超过 80 台使用 asp.net 的移动 web 设备。我们只需一次性写入应用程序,移动控件就能自动生成请求设备的页面。
5、开发人员的效率
1)简单的编程模型:具有服务器控件(这些控件允许我们使用比传统 asp 更少的代码来构建效果极佳的页面)的 asp.net 使得动态构建真实的 web 应用程序变得更加容易。
2)灵活的语言选项:asp.net 不仅支持 microsoft visual basic scripting edition (vbscript) 和 microsoft jscript,而且支持 25 种以上的 .net 语言,包括对 visual basic .net、microsoft c# 和 jscript .net 的内置支持。
3)丰富的类框架:.net framework 类库提供了 4500 多种类,这些类封装了大量的功能,诸如 xml、数据访问、文件上载、正则表达式、图像生成、性能监视和日志记录、事务、消息队列和 smtp 邮件。
简单的说,asp.net优点有:
1、代码和内容分离使代码更清晰
2、提高可部署性、可伸缩性、安全性以及可靠性
3、为不同的浏览器和设备提供更好的支持
而asp缺点是:
1、asp只能使用脚本语言属于解释性语言,主要是javascript或vbscript。而解释性语言缺乏强类型和编译环境。这些将不可避免地导致性能和伸缩性问题。
2、asp代码杂乱、功能有限,浏览器兼容以及浏览设备的兼容性差,而asp.net能够很好的解决。
四、以前的 web 开发模型相比,asp.net 提供了数个重要的优点:
增强的性能。asp.net 是在服务器上运行的编译好的公共语言运行库代码。与被解释的前辈不同,asp.net 可利用早期绑定、实时编译、本机优化和盒外缓存服务。这相当于在编写代码行之前便显著提高了性能。
世界级的工具支持。asp.net 框架补充了 visual studio 集成开发环境中的大量工具箱和设计器。wysiwyg 编辑、拖放服务器控件和自动部署只是这个强大的工具所提供功能中的少数几种。
威力和灵活性。由于 asp.net 基于公共语言运行库,因此 web 应用程序开发人员可以利用整个平台的威力和灵活性。.net 框架类库、消息处理和数据访问凯发k8天生赢家的解决方案都可从 web 无缝访问。asp.net 也与语言无关,所以可以选择最适合应用程序的语言,或跨多种语言分割应用程序。另外,公共语言运行库的交互性保证在迁移到 asp.net 时保留基于 com 的开发中的现有投资。
简易性。asp.net 使执行常见任务变得容易,从简单的窗体提交和客户端身份验证到部署和站点配置。例如,asp.net 页框架使您可以生成将应用程序逻辑与表示代码清楚分开的用户界面,和在类似 visual basic 的简单窗体处理模型中处理事件。另外,公共语言运行库利用托管代码服务(如自动引用计数和垃圾回收)简化了开发。
可管理性。asp.net 采用基于文本的分层配置系统,简化了将设置应用于服务器环境和 web 应用程序。由于配置信息是以纯文本形式存储的,因此可以在没有本地管理工具帮助的情况下应用新设置。此"零本地管理"哲学也扩展到了 asp.net 框架应用程序的部署。只需将必要的文件复制到服务器,即可将 asp.net 框架应用程序部署到服务器。不需要重新启动服务器,即使是在部署或替换运行的编译代码时。
可缩放性和可用性。asp.net 在设计时考虑了可缩放性,增加了专门用于在聚集环境和多处理器环境中提高性能的功能。另外,进程受到 asp.net 运行库的密切监视和管理,以便当进程行为不正常(泄漏、死锁)时,可就地创建新进程,以帮助保持应用程序始终可用于处理请求。
自定义性和扩展性。asp.net 随附了一个设计周到的结构,它使开发人员可以在适当的级别"插入"代码。实际上,可以用自己编写的自定义组件扩展或替换 asp.net 运行库的任何子组件。实现自定义身份验证或状态服务一直没有变得更容易。
安全性。借助内置的 windows 身份验证和基于每个应用程序的配置,可以保证应用程序是安全的。
五、asp.net做商业网站的优点和缺点
优点:asp.net做起来快,因为微软给我们封装了很多控件,以及很多现成的模式。
缺点:php语言可以在linux、freebsd、openbsd、solaris unix运行,这些操作系统可以使用免费版、不存在盗版问题。 asp/asp.net语言仅可以在windows操作系统运行。而有些服务器使用的windows操作系统都是盗版的、盗版、侵权等不安全因素随时会出现
六、如何安装 asp.net
在 windows server 2003 家族、windows 2000 (professional、server 和 advanced server)以及 windows xp professional 上的客户端和服务器应用程序都支持 asp.net。
运行 microsoft windows server 2003 家族成员的服务器可以配置为应用程序服务器,并将 asp.net 作为在配置应用程序服务器角色时可以启用的选项。要向产品服务器部署 asp.net web 应用程序,在分发应用程序之前,必须确保在产品服务器中启用了 asp.net 和 iis 角色。
1、使用"配置您的服务器"向导在运行 windows server 2003 的服务器中安装 asp.net
1)从"开始"菜单中,单击"管理您的服务器";在"管理您的服务器"窗口中,单击"添加或删除角色"。
2)在"配置您的服务器向导"中,单击"下一步",并在"服务器角色"对话框中,选中"应用程序服务器 (iis、asp.net)",然后单击"下一步"。
3)在"应用程序服务器选项"对话框中,选中"启用 asp.net"复选框,单击"下一步",然后再单击"下一步"。
4)如有必要,请将 windows server 2003 安装 cd 插入 cd-rom 驱动器,然后单击"下一步"。
5)当安装完成时,单击"完成"。
2、在运行 windows server 2003 的服务器中使用"添加或删除程序"安装 asp.net
1)从"开始"菜单中,指向"控制面板",然后单击"添加或删除程序"。
2)在"添加或删除程序"对话框中,单击"添加/删除 windows 组件"。
3)在"windows 组件"向导中的"组件"中,选中"应用程序服务器"复选框,然后单击"下一步"。
4)当在"windows 组件"向导中完成对 windows server 2003 的配置时,单击"完成"。
3、在运行 windows server 2003 的服务器中的 iis 管理器中启用 asp.net
1)从"开始"菜单中,单击"运行"。
2)在"运行"对话框中的"打开"框中,键入 inetmgr,然后单击"确定"。
3)在 iis 管理器中,展开本地计算机,然后单击"web 服务扩展"。
4)在右侧窗格中,右键单击"asp.net"然后单击"允许"。asp.net 的状态变为"允许"。
七、asp.net web 应用程序的布局
asp.net 应用程序被定义为可从 web 服务器上的虚拟目录及其子目录中调用的所有文件和可执行码。其中可以包含网页(.html 文件)、web 表单页面(.aspx 文件)、web 表单用户控件(.ascx 文件)、xml web 服务(.asmx 文件)、http 处理程序、http 模块和其他文件(如图像和配置文件)。现在使用的所有与 microsoft .net framework 版本相关的脚本映射也都是 asp.net 应用程序的一部分。asp.net 应用程序必须位于 iis 虚拟目录(也称为应用程序根目录)中。asp.net 应用程序可包含已编译的程序集(通常是包含业务逻辑的 dll 文件)、用于存储预编译代码的已知目录(目录名总是 \bin)、存储在基于文本的、易读的 web.config 文件中的配置设置、页、服务器控件,以及 xml web 服务。
服务器中任何不与其他应用程序共享的预编译代码必须存储在应用程序的 \bin 目录中。它是应用程序的本地程序集缓存。web.config 文件在基于 xml 的文本文件中存储应用程序级的配置文件。这意味着可以使用任意标准的文本编辑器或 xml 分析器来创建它们,而且它们是可读的。如果不在应用程序根目录中包含 web.config 文件,则配置设置由 machine.config 文件中整个服务器的配置文件来确定。安装 .net framework 时,会安装 machine.config 文件的某个版本。
本图中的应用程序包括 \bin 目录中的两个 dll 文件、一个 default.aspx 页,一个名为 menu.ascx 的用户控件、一个名为 mywebservice.asmx 的 xml web 服务以及一个 global.asax 文件。另外,该应用程序是使用下列三个配置文件配置的:系统根目录中计算机级别的 machine.config 文件、c:\inetpub\wwwroot 目录中站点级别的 web.config 文件和应用程序根目录中应用程序级别的 web.config 文件。当站点的 web.config 文件覆盖 machine.config 文件中的设置时,在应用程序根目录中存储的配置设置将覆盖站点的 web.config 文件和 machine.config 文件中的设置。
八、asp.net 2.0的新特性
数据访问
1、数据源控件
2、新的数据绑定控件
3、数据控件参数对象
4、改进了数据绑定的语法
5、本地文件化的sql数据库
验证控件
1、验证群
2、聚焦错误控件
3、适应不同的文化
4、验证空数据
风格主题和皮肤
用模板设计页面
建立分层站点导航
1、导航生成器
2、导航控件
增强安全
1、成员和角色管理
2、登录控件
自定义站点
存储用户档案
缓存
国际化站点
1、自动检测浏览器语言
2、本地化资源
应用程序状态
1、可扩展回话机制
2、控件状态
3、加密视图状态
监视站点
1、集成跟踪
2、事件处理
3、自定义跟踪信息
新的控件
1、导航
2、向导
3、数据源
4、增强的数据表格
其他特性
1、增加非asp.net文件的安全
2、客户端call back机制
3、跨页提交
4、站点维护标示
5、更加简化的code behind机制
6、动态编译类