.NET框架,ASP.NET 基础学习

 

.NET框架   英文名(.NET Framework) 同样是微软出的一个开发平台.关于.NET的定义可以参照微软的官方说法:

For developers, the .NET Framework provides a comprehensive and consistent programming model for building applications that have visually stunning user experiences and seamless and secure communication.  

我简单的翻译下: .NET框架给开发者提供了一个综合、稳定的编程模型,这个模型可以用来建立一个极好的可视化用户体验、无缝并且通讯安全的应用程序。

 

.NET框架是以一种采用系统虚拟机运行的编程平台,以通用语言运行库(Common Language Runtime)为基础,支援多种语(C#、VB.NET、C++、Python等)的开发。 (来自维基百科‘.NET框架’关键词)。

类似于JAVA的跨平台开发概念,这两个平台似乎是竞争对手吧~

 

截止到2012/2/11,.NET官网给出的最新版本是.NET 4

这里有一个关于各个版本的栈图,可以看到版本结构。(图片来自维基百科英文页面‘.NET Framework’关键词)

 

.NET的初级组成是CIL和CLR,关于它们的运作图如下:

(图片来自维基百科)

图片中可以看到,CLI其实是.NET的一个软件开发和运行的枢纽性平台。

 

他的功能包括异常处理,垃圾回收,安全保障以及互操作(interoperability)等。

通过这个平台,.NET 框架可以实现支持多语言。

CLI的实现依赖于通用语言运行CLR(Common Language Runtime)。

 

CLR其实是.NET框架的运行引擎,.NET程序的运行必须在CLR的监管之下,以保证程序在内存管理、安全性和异常处理中的性能和行为。
























.NET的特色:

  • 互操作性(Interoperability),就是说可以在不同的系统下运行。
  • CLR引擎(Common Language Runtime Engine),参照上面对CLR的表述。
  • 独立的语言(Language Independence),支持.NET的语言中任意两种语言之间type 和object instances的交换。
  • 基类库 (Base Class Library),框架类库的一部分,可以被支持.NET框架的所有语言所使用,包含了许多通用功能,如文件读写,图像渲染等。
  • 简单调度(Simplified Deployment)
  • 安全(Security)
  • 可移植(Portability)

.NET的语言:

由微软开发的.NET语言:

C#     /     Visual Basic .NET      /    C++/CLI     /     JScript .NET     /     J#(已停止使用)   /     F#    /     Microsoft Small Basic

 

第三方使用.NET的语言:

Ada  / APL  /  Boo   /  COBOL  /    Component Pascal     /    Delphi 8 and Delphi 2005  /    Eiffel    /  Forth   /   FORTRAN  /   IKVM,Java/  IronPython  /   Lexico  /   Lisp  /   Mercury  /   Mondrian /  Nemerle   /   Oberon  /   Perl   /   Python /   PHP  /   RPG  /   Ruby  /   Smalltalk  /   Tcl

 

 什么是ASP.NET

ASP.NET是内含于.NET框架中,专门用来发展Web应用程式的一组类别库集。 它是其实是一个平台,支持.NET中的多种语言。

ASP.NET由ASP发展而来,由于它的前身ASP在使用中慢慢浮现出来的缺点,微软的团队经过xxxx的考虑,把ASP移植到CLR平台,命名改过多次,发布时为ASP+,后来又更名为ASP.NET。

 

ASP.NET 的运行架构分为几个阶段:

web服务器的信息流动阶段,我们借用下图表示: 

(这一段是从维基百科复制的,因为我实在懒得写了,看图就挺清楚地。)

 

当Web 服务器接收到 HTTP 请求时,HTTP 聆听程式 (HTTP Listener) 会将请求转交给 URL 指定的网站应用程式的工作流程 (IIS Worker Process).

ASP.NET 的工作流程处理器(aspnet_isapi.dll,若是 IIS 5.0 时则是 aspnet_wp.exe)会解析 URL,并启动位于 System.Web.Hosting 命名空间中的 ISAPIRuntime(视版本)物件,接收 HTTP 请求,并呼叫 HttpRuntime,执行 HttpRuntime.ProcessRequest().

在 ProcessRequest() 中使用 HttpApplicationFactory 创建新的 HttpApplication(或是指定的 IHttpHandler 处理器),再分派给 Page 中的 ProcessRequest() 或是 IHttpHandler 的 ProcessRequest() 方法.

执行之后,再传回到 ISAPIRuntime,以及 aspnet_isapi.dll,最后交由 HTTP Listener 回传给用户端,因为执行程序有如管线般顺畅的执行,因此称为 HTTP Pipeline Mode















ASP.NET状态管理: 在ASP.NET 网页中的讯息分派、处理。(略了,想看的话上维基吧,我个人觉得作为写代码的。。这个了解就好。)

ASP.NET应用程序由web server掌控,通过HTTP状态协议访问。ASP.NET中提供了多种状态管理函数。

用户端状态管理为ViewState以及Cookies,伺服端状态管理则是SessionApplication物件。它们的差异点在于:

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

ASP.NET部件:

ASP.NET 是开发 Web 应用程式的基础架构 (framework),除了内部的运作方法外,对外也有许多的开发支援,这样可以给工程师更多的选择方案。

基础部件包括

  • 网页:ASP.NET 最基础的底层为网页 (Page),网页由 System.Web.UI.Page 类提供支持。

 ASP.NET 网页在微软的官方名称中,称为 Web FormASP.NET Page 所要提供的功能就需要类似 Windows Forms 的表单,每个 Web Form 都要有一个 <form runat="server"></form> 区块,所有的 ASP.NET 服务器控件都要放在这个区域中,这样才可以让 ViewState 等服务器控制能够顺畅的运作。

  • 控件:ASP.NET 的内建控件分为两种:HTML控件和Web控件。除此之外,ASP.NET 也提供了可以自定义的控件架构。
  • 脚本:ASP.NET 的 Web 控件有时会包装一些用户端脚本 (client-side scripting),在控件被绘制时输出到用户端,这些脚本多数被包装在 DLL 的资源档中,并由 ScriptResource.axd 处理例程来输出。
  • 基本物件:Application、Request、Response、Session、Server

导览部件:(是在 ASP.NET 2.0 中才出现的功能)

  • 选单 (Menu):提供内建的鼠标侦测方式,实作阶层式的选单功能。
  • 网站地图 (Sitemap):提供可层次化目前浏览位置的功能,可支援由 Web.sitemap 中的资料,或是来自数据库或 XML 资料档中的资料来源。
  • 树状查看 (TreeView):提供阶层化的资料浏览,类似于资源管理器的接口。

另外两种是应用程式服务和延展性支援。

 

哎,我觉得。。说的多了也记不住,了解这些也就差不多了,咱就是写个小代码,弄清楚网路干什么呢。。╮(╯▽╰)╭

posted @ 2012-02-11 16:18  勤劳的饺子  阅读(1898)  评论(4编辑  收藏  举报