1, 关于CLR:.NET平台的基础,Common Language Runtime。所开发的在此环境中运行的应
用和组件称为托管(managed)应用和组件。基本功能就是:内存管理和垃圾收集(为什么这么类似JVM),还有提供了真正的语言互操作性。
2, 关于.NET的类库: BCL,Base Class Library,可在所有应用程序和组件中使用的类库。 这似乎说服了我:.NET平台是优越的,因为它包罗了多种语言类库,而J2EE只有java的类库,但.NET如何做到这一点的,不同的语言可以有相同的类库吗?
3, :不用多说了吧,我们普通程序员就干这个层的工作啦ASP.NET
IIS中的ASP.NET:(提起这个,我们明白了,ASP.NET运行期可以驻留在IIS之外的自定义应用程序中。
上面那个图说明的是ASP.NET的开发平台层次;
下面这个图说明的是ASP.NET的运行过程层次:
我们一直坚决认为:最常用的HTTP处理程序是页面处理程序。在Web应用程序中每个.aspx页都是一个为特定页面处理引入请求的HTTP处理程序。
页面编程模型:
ASP.NET的编程模型使我们能够创建与代码和演示完全分离的可编程网页。Servlet技术中似乎是完全不分离的,而JSP技术中虽然是分离了,但是还是写在同一个视野中的。
关于服务器控件:用来定义Web应用程序用户界面的组件,但好像不仅仅如此,实现界面功能的好像只是其中的Web 控件。
下图表达了Web控件的层次:
有独立思考能力的人总是会想到能不能使用自定义的服务器控件??当然可以。
ASP.NET页面由两部分组成 :一是使用静态文本和服务器控件的用户界面定义,二是用户界面行为和服务器端代码形式的Web应用程序逻辑的实现。
ASP.NET有两种形式的页面编程模型:也就是代码模型。
1:仅仅是在.aspx文件内的runat=”server” 脚本中嵌入代码。称为inline code
2,第二种形式包含实现从Page中派生的类,在独立的文件中保存代码并且通过Page指令把它与.aspx文件联系起来。称为code-behind。
两种形式的不同仅仅表现在:如果正在使用的是inline code,则一个应用程序可以使用多种语言实现页面,并无缝地工作在一起,同时每个页面只能使用一种语言;如果使用code-behind,所有代码分离类文件在设计期将预编译到一个配文件中,因此必须使用相同的语言实现。
ASP.NET的页面执行模型:
有个疑问了:如果使用code-behind的代码模式的话,那xxx.aspx.cs岂不如同一个Servlet吗,这是种表示与逻辑不分离的模式呀/??!!!
如果你的ASP.NET应用程序的客户端不是浏览器而是一个应用程序或者说是代码的话,则我们就不必在xxx.aspx中设计服务器控件之类的东西了,因为现在的客户代码不像人,它不关心界面,只关心数据。这正是我的毕业设计课题中的一个需要像广大的教授们解释说明的问题,不然他们总是会疑惑地问我:你的软件是C/S模式的,怎么用做网页的ASP呢?
关于组件:组件封装了状态和执行逻辑 ,并能在不同的应用程序中被复用。组件使得应用程序模块化。几种常见的组件:ASP.NET服务器控件,XML Web服务和HTTP处理程序。
其实我们总是在接触容器-组件模型。你所开发的组件应该和你使用的框架的组件保持一致。比如你开发Servlet组件的时候必须与J2EE的Servlet组件保持一致。而开发ASP.NET组件的时候你必须与.NET中的组件一致。
另一个假设,如果我们不使用组件会怎么样?不是组件也就无所谓容器了,那你做的程序就是一个完全独立执行的流浪汉,你必须自己处理与操作系统的关系,自己从端口那拿到数据,解析数据,并且自己负责建立套接字把响应数据发送出去,更糟糕的是,你还得自己承担一切错误和异常。
设计和实现组件时需要遵循的一些指南:
该使用针对CLR的编程语言来创建组件,如C#, VB, .NET等。
用属性, 方法和事件来描述对象模型。