asp.net技术资料_其它类_常见问题_教程_买空间网帮助中心 
您当前位置:首页 > 教程 > 常见问题 > 其它类 > asp.net技术资料

asp.net技术资料
  • 作者:买空间网
  • 文章来源:买空间网
  • 点击数:
  • 更新时间:2014-10-16 14:33:47

开发工具

 

ASP .NET的网站或应用程序通常使用 Microsoft(微软)公司的IDE(集成开发环境)产品Visual Studio进行开发。

在开发过程中可以进行WYSIWYG(What You See Is What You Get ,所见即为所得)的编辑。

 

语言支持

 

ASP .NET开发的首选语言是C#及VB .NET,同时也支持多种语言的开发。

语言支持软件说明
C#
微软官方支持
VB .NET
微软官方支持
F#
插件形式支持
Powershell
插件形式支持
Java/J#J#微软官方支持
PythonIronPython开源项目支持
RubyIronRuby开源项目支持
Delphi
第三方公司支持
JScript

JScript

官方支持
LuaNua开源项目支持
 

 

跨平台性

 

因为ASP .NET是基于通用语言的编译运行的程序,其实现完全依赖于虚拟机,所以它拥有跨平台性,ASP .NET构建的应用程序可以运行在几乎全部的平台上。

其中大致分为以微软.NET Framework为基础使用IIS做为Web 服务器承载的微软体系,以及使用Mono为基础框架运行在Windows或Linux上的开源体系。

 

简单易学

 

asp.net使运行一些很平常的任务如表单的提交客户端的身份验证、分布系统和网站配置变得非常简单。例如asp.net页面构架允许你建立你自己的用户分界面,使其不同于常见的VB-Like界面。

 

Web服务器

 

ASP .NET不能只被看做是 Active Server Page (ASP) 的下一个版本,而且是一种建立在通用语言上的优秀程序构架,而且可以运行于多种平台的WebServer之上。

开发环境

 

Cassini/CassiniDev

Cassini 是一个开源项目。是一个独立的ASP .NET运行环境。

WebServer

Visual Studio 自带的Web Server也可以运行ASP .NET应用,Web Server是为了方便开发者快速启动及调试网站的产品,后期被IIS Express取代。

IIS Express

IIS Express被集成到了Visual Studio及WebMatrix之中,方便用户以“集成模式”来调试ASP .NET应用程序。

生产环境

 

IIS

IIS指 Internet Information Services(因特网信息服务)。IIS 是 Windows 系统的捆绑的免费组件。

 

Apache

经典的Web应用程序承载应用,可以通过在Windows下使用.NET或者在其它操作系统中使用Mono来使ASP .NET应用程序运行起来。

XSP[1]

XSP 是一个有着独立标准的 web server,它使用C# 编写,可以用来运行ASP .NET应用程序。XSP 可以在 Mono 以及 Microsoft .NET运行时之下正常工作。

  

Nginx

Nginx是一个高性能的 HTTP 服务程序,它支持ASP .NET 以及 ASP .NET MVC Web 应用程序,通过FastCGI。

 

处理架构

 

asp.net运行的架构分为几个阶段:

在 IIS 与 Web 服务器中的消息流动阶段。 在asp.net网页中的消息分派。 在asp.net网页中的消息处理。

 

绘制技术

 

熟悉 ASP 技术的人都知道,代码都是混在 HTML 标签之间,以输出预期需要的 HTML 指令,这个技术在asp.net中,由各控件的绘制 (Render) 机制包装起来了,绘制机制装载了 HtmlTextWriter 对象,由它来产生 HTML 指令,它会输出至 HttpContext 的 Response 输出数据流中 (即 ASP 技术的 Response.Write())。

 

状态管理

 

状态管理 (state management) 在Web应用程序中,一向是很重要的课题,良好的状态管理可以帮助开发人员发展出具有状态持续能力的应用程序(像是工作流程型应用程序或是电子商务应用程序),但状态管理功能会视应用程序的部署状态以及信息的共用程度来选择,在asp.net中,分为服务器端状态管理以及用户端状态管理,用户端状态管理为ViewState以及Cookies,服务端状态管理则是Session与Application对象。它们的差异点在于:

ViewState 是加密的数据流,和 HTML 一起输出到用户端。 Cookies 是加密(也可不加密)的小型数据,和 HTML 不同,它可以高速缓存在用户端浏览器中。 Session 是服务器端的状态保存机制,每个用户端均有独立的空间(以浏览器运行个体来赋与唯一的SessionID值)。 Application 是服务器端的状态保存机制,但应用程序所有的用户端共用同一份状态数据。

 

层级对象

Application 对象会在应用程序的 Application_OnStart 事件中初始化,并使用名称来识别数据(它是一个 NameObjectCollectionBase 集合的实现品),它会储存在应用程序的范围内,所有的连接(用户)都可以使用,属于共用型的储存体,适合储存所有用户都可使用的数据,在多人使用的情况下,可以适当的使用 Lock/Unlock 的机制来确保应用程序状态的更新。

Application.Lock();Application["PageRequestCount"] = ((int)Application["PageRequestCount"])+1;Application.UnLock();

 

跨机器

 

状态管理在单一服务器上,可以储存在服务器的存储器中,但若是在大型网站中,使用许多的 Web 服务器来实行负载平衡(Load Balancing)处理时,会有状态储存在哪个位置的问题,因此需要有一个可以在每个 Web 服务器之间做状态储存的媒介,像是独立的服务器或是数据库等等。在asp.net中支持了四种状态储存的媒介:

InProc:储存与asp.net相同的运行进程中 (in-procedure state),适合单一服务器的状态储存。 StateServer:储存在asp.net状态服务器 (state server) 中,适合跨服务器的状态储存,但因为它使用的通讯端口,因此在使用上需要注意防火墙的问题。 SQLServer:储存在独立的 SQL Server 数据库中,适合跨服务器的状态储存。 Custom:以自行实现的状态提供者 (state provider)。

 

部件

asp.net是开发 Web 应用程序的基础架构 (framework),除了它内部的运作方法外,对外也显露了许多的开发支持,让开发人员可以利用它来发展出许多强大的 Web 应用程序解决方案。

基础部件

 

asp.net最基础的底层为网页 (Page),网页由 System.Web.UI.Page 类来提供基础支持,包含了页面的事件以及对象绘制的引发点(Page 类本身是一个 HTTP Handler 的实现品)。asp.net网页在微软的官方名称中,称为 Web Form,除了是要和Windows Forms作分别以外,同时也明白的刻划出了它的主要功能:“让开发人员能够像开发 Windows Forms 一样的方法来发展 Web 网页”。因此asp.netPage 所要提供的功能就需要类似 Windows Forms 的窗体,每个 Web Form 都要有一个区块,所有的asp.net服务器控件都要放在这个区域中,这样才可以让 ViewState 等服务器控制能够顺畅的运作。

使用代码后置模式的设置时,可以让asp.net运行引擎在加载网页时,由代码后置参数取得对应的类信息,藉以使用 Reflection 的方式来运行后置的代码。

asp.net可以支持HTML和XHTML两种网页内容,但在Visual Studio.NET中,默认是使用 HTML,但在Visual Studio 2005以后的版本,则一律都改用XHTML格式。

 

脚本

 

asp.net的 Web 控件有时会包装一些用户端脚本 (client-side scripting),在控件被绘制时输出到用户端,这些脚本多数被包装在 DLL 的资源档中,并由 ScriptResource.axd 处理程序来输出,开发人员也可以利用 ClientScriptManager (Page.ClientScript 属性) 中的方法来添加脚本到网页程序中,常用的方法有:

ClientScriptManager.RegisterClientScriptBlock():注册用户端脚本区块 (script block)。 ClientScriptManager.RegisterStartupScript():注册在起始时运行的脚本。 ClientScriptManager.RegisterOnSubmitStatement():注册在处理窗体发送时要运行的脚本。 ClientScriptManager.RegisterClientScriptInclude():注册由外部文件 (.js) 提供的脚本来源。

 

基本对象

 

以往在 ASP 中常被使用的五大基本对象,在asp.net中仍然持续被支持,但它们都换了一个身份来提供:

Application:包装了 HttpApplication 对象,在程序中使用 Application 指令取得的对象,都是来自于 HttpContext.Current.Application 属性回传而得。 Request:包装了 HttpRequest 对象,在程序中使用 Request 指令取得的对象,都是来自于 HttpContext.Current.Request 属性回传而得。 Response:包装了 HttpResponse 对象,在程序中使用 Response 指令取得的对象,都是来自于 HttpContext.Current.Response 属性回传而得。 Session:包装了 HttpSessionState 对象,在程序中使用 Session 指令取得的对象,都是来自于 HttpContext.Current.Session 属性回传而得。 Server:包装了 HttpServerUtility 对象,在程序中使用 Server 指令取得的对象,都是来自于 HttpContext.Current.Server 属性回传而得。

安全支持

验证

 

asp.net的验证方式有三种:

Windows 验证:由 IIS 目前运行的帐户,或者是用户模拟 (user impersonate) 帐户的方式进行验证。 窗体验证:由窗体的数据提供验证,开发人员自定义验证逻辑,并交由asp.net窗体验证工具写入验证凭证,以进行授权。 Passport 验证:在asp.net1.x 中,连接Windows Live ID (当时的旧称为Microsoft Passport) 服务以进行验证。

授权

 

asp.net的授权方式有两种:

文件授权:由asp.net检查文件的 访问控制表 (ACL) 来授权访问权限。 URL授权:由开发人员设置的 URL 来给予权限。

 

WS支持

 

asp.net1.0 开始支持 Web Service 的开发,是微软在本地平台上支持 Web Service 发展的第一个实现品,但它却不是微软的第一个 Web Service 开发工具实现品,.NET Framework 中提供了一个 WSDL.exe,可以连接 Web Service 下载WSDL定义档,并产生一个 Proxy Class 的源代码,供用户端应用程序使用,若是使用 Visual Studio 开发的话,这个动作会由“加入 Web 参考”的动作在背后处理掉。

asp.netWeb Service 的发展只是平台的基础,微软在 Web Service 的开发上提供持续的支持,尤其是在 WS-I (Web Service Interoperability) 组织成立后,为符合 WS-I 的 Web Service 标准,微软开发了强化 Web Service 的增强包 Web Service Enhancement (WSE),最新版本为 3.0 版(搭配asp.net2.0),可支持许多 WS-I 的标准。

由于 Windows Communication Foundation 的推出,微软将 Web Service 的发展重心移到 WCF 上,原有的asp.netWeb Service 即给定了一个名称:ASMX Web Service。

 

扩充功能

asp.net在 2.0 版时,功能已大致底定,成为 Web 应用程序的基础架构,微软开始在asp.net2.0 上开发扩充的功能,包括 AJAX 的支持、MVC架构的支持以及更容易开发出数据库应用的架构。

 

执行效率

 

asp.net是把基于通用语言的程序在服务器IIS上运行。不像以前的ASP即时解释程序,而是将程序在服务器端首次运行时进行编译,这样的执行效果,当然比一条一条的解释强很多。但是asp.net也有一个特点,就是每修改一次程序(即代码类)必须重新编译一次,修改几次就必须重新编译几次,执行效果也会有所降低。


(责任编辑:买空间网)