.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,伺服端状态管理则是Session与Application物件。它们的差异点在于:
- ViewState 是加密的资料流,和 HTML 一起输出到用户端。
- Cookies 是加密(也可不加密)的小型资料,和 HTML 不同,它可以快取在用户端浏览器中。
- Session 是服务器端的状态保存机制,每个用户端均有独立的空间(以浏览器执行个体来赋与唯一的SessionID值)。
- Application 是服务器端的状态保存机制,但应用程式所有的用户端共用同一份状态资料。
ASP.NET部件:
ASP.NET 是开发 Web 应用程式的基础架构 (framework),除了内部的运作方法外,对外也有许多的开发支援,这样可以给工程师更多的选择方案。
基础部件包括:
- 网页:ASP.NET 最基础的底层为网页 (Page),网页由
System.Web.UI.Page
类提供支持。
ASP.NET 网页在微软的官方名称中,称为 Web Form,ASP.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):提供阶层化的资料浏览,类似于资源管理器的接口。
另外两种是应用程式服务和延展性支援。
哎,我觉得。。说的多了也记不住,了解这些也就差不多了,咱就是写个小代码,弄清楚网路干什么呢。。╮(╯▽╰)╭