[原创---------大话: ASP.NET技术内幕](1)首先,我要给自己讲个好的故事,然后我才能更好的理解
首先,要清楚CLIENT-SERVER是如何进行交互工作的
1.首先,是用户通过IE浏览器上的超级连接或者是采用输入网址的形式,或者是通过实名形式来向SERVER端提交页面请求.
2.SERVER端接受到CLIENT端的请求的时候,会把用户请求的页面以*.aspx的形式反馈给用户
3.如果这个反馈过来的页面是一个像用户注册之类的页面,则用户通过输入信息,然后点击SUBMIT按纽提交用户的注册信息给SERVER端
4.SERVER端接受到CLIENT端用户提交的信息之后,会在SERVER端调用相应的代码来存储用户的注册信息,然后,会在SERVER端进行编译的工作,把一个反馈信息以FORM的形式传递给CLIENT端,如:注册成功.
******************************************************************************************
(1)WEB FORM是个新的名词,不要让这个名字局限了你过去对FORM的认识,它现在已经变得更广泛了WEB FORM是过去的HTML FORM的父集,现在的WEB FORM不仅能表现的和过去的HTML FORM一样,同时,它还实现了交互式,动态性,和数据绑定性(驱动后台的数据库).
(2)WEB FORM的页面由2个构件组成,本章的第1部分(包括:1,2,3,4章)将要讲述的ASP.NET控件就是用来
(2-1)实现搭建UI(USER INTERFACE)端的动态显示部分.ASP.NET控件能够使你有"智能"显示HTML FORM并提供数据库数据的交互式网格.
(2-2)WEB FORM的第2个构件是: 应用逻辑(这个概念比较抽象),实际也比较简单,如:你点击了BUTTON,则这个属于应用层的东西,或者是你通过应用层向SERVER端提交了访问数据库中某个数据表格的请求.
这需要同时在CLENT端摆放UI控件同时在SERVER端增加对相应的CLIENT端的数据流(流向SERVER端)请求到达SERVER端时,SERVER端做出怎样的处理.//简单的说就是,你需要在CLIENT端的UI设计方面比较合理和美观的摆放控件和设置相关控件的属性TEXT//然后,你需要对控件被用户操作的时候应该有怎样的响应发生,并把对这些事件的响应的实现代码放在SERVER端来实现.
(3)什么是ASP.NET和MS.NET
ASP.NET是一个比较小的FRAME类型,可以说它是MS.NET框架的子框架. //由于MS.NET是MS公司开发的新的框架模型,这个框架模型中包含了很多子框架,每个子框架都像是MDI(VC中)应用程序一样,MS公司为每个子框架都预先设定好了一套属于这个子框架的集合(包括:很多的类和很多的控件和属性等)的东西.
正因为ASP.NET这个子框架包含了很多的新的集合包, 这就使得只要是你能根据上面的SERVER-CLIENT模型想到的,并且你有比较强的能力,你就可以通过编程的手段来实现你想要的效果.
(4)MS.NET框架类库
想象可知,如果你是MS公司的首席架构师,你该如何设计整个的MS.NET框架?
显然,MS公司在过去的几十年里给开发者提供了N多的适合特定语言的开发工具(这些开发工具在安装的时候会通过DLL或者其它的东西导出很多的文件,头文件也好,实现文件也罢),MS公司提供这些东西给开发者干什么呢?? 我想,最起码的是: 使开发者能够对各种文件,各种数据库或数据表,或者是像字符串等的资源进行某种形式的表现,并把这种表现展现提供给用户使用(就是各种各样的软件了).
MS公司提供给开发者的工具实现了开发者进行某种语言程序设计的能力,而所有的语言(包括:除了MS公司)之外的JAVA(JDK)等都有一个共性,那就是这些语言都包含有: 各种各样的数据类型, 对象(变量),循环和条件.
世界上所有的语言都是一样的-------那就是它们想要表达的逻辑(用来控制如何访问资源的 语意逻辑).也就是我们经常说的编译的原理.
MS.NET框架想要实现的能力: 就是在各种各样的语言的基本构成方面建立起一套统一的规范,这套规范里面包含了:各种数据类型, 各种对象(变量), 循环如何表示和实现, 条件表达式如何表示和实现.
MS.NET框架在几个最广泛的方面来统一各种语言并制定一套统一的规范:
(4-1) 对数据库模型如何进行访问
(4-2) 如何访问文件
(4-3) 如何访问各种各样的资源,如:图片或视频或音频的资源.
(4-4) 最重要也是最难实现并且最需要开发者发挥想象力和开发能力的方面就是我们如何来向客户展示各种各样的资源或是提供给用户访问各种我们定义好的类型的资源的能力.
//用户最终是否对我们提供给他的软件产品比较满意或差不多满意,最具有决定作用的是(4-4).
扔掉你过去的那些用放大镜才能看到的理论知识吧,所有的MS.NET框架的建立都是: 在TYPE基础上的.
这个TYPE包含了: 我们过去常用的各种基本的数据类型和我们通过一些语言关键字class或struct定义的用户自定义类型.//先不要管它什么: int, char, type [], XXX类型.
让你的类型观念发生一个质的变化,所有的对象(变量)或资源都是某种TYPE的,具体实现的时候再去考虑使用哪种类型,开始为某个客户定制软件产品的时候,首先要把要实现的产品的产品模型框架搭建起来.这个时候最好的也是最有效的方法是: 我需要分成几层逻辑来部署我的框架(先把这个业务逻辑的层次画出来),然后如果使用到了数据库,先不要管它具体是什么数据库(直接写个SQL就好了),如果用到网络功能(可能就是我们画的图上的用来切分各个业务逻辑层的"线", 好了,我们就在这个线的下面写上一个NETWORK或简单的INTERNET).
(5)显然,MS.NET框架包括了ASP.NET框架,通过提供N多的一些来来给予强有力的支持.要不我还说它干吗??
你需要知道的是,你基于ASP.NET框架建立各种FORM的时候,你可以访问任何的MS.NET框架的类,千万不要畏惧,因为踯躅不前是看不到最好的风景的,没有什么好害怕的,大不了在DEBUG下,然后REBUILD.
(6)什么是NAMESPACE
MS.NET框架中包含了超过3400个类,并且随着时间的推移,这个数量还会不断的上升.//MS把我们都想象成了超人了.
显然MS公司搭建这套框架的时候, 也是由许多的开发小组来进行的.
先看下命名空间的继承图表:
.NET Framework 类库 System 层次结构
http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/cpref/html/frlrfsystemhie
rarchy.asp
(6-1)BILL GATES发话了:
那个名字非常奇怪的人(DELPHI), 和那个原来开发JBUILD的金发小子....., 你们一向都都是我们MS公司开发和架构能力超强的人,你们组个队(就叫: System ),然后先把WINFX的整体框架给我搭建起来.
(6-2)你们几个原来是做WEB开发的,你们都是顶级的WEB开发专家,你们的任务是系统上面的System团队来搭建 System.XXXX部分吧,然后,这个组就叫做:System.XXXX了,然后这个组的项目组长就命令他的手下------张三你负责开发N个类,李四你负责开发M个类,.............
开发过程中项目组长又发话了:BS说了,叫你们开发类,你们也不能只开发类啊,接口IXXX,结构,委托(指针)枚举这些东西我BS不说你们就不搞了??? 那我支付你们那么多薪水干吗??
................. //命名空间-----就是某个项目开发经理的名字
................. //隶属于某个命名空间下面的: 类, 接口IXXX, 结构, 委托(指针),枚举
就是每个负责开发这个东西的程序员的名字
.................
(7)过去的ASP
在过去的ASP技术框架中, 开发者只能访问5个类(Response, Request, Session, Application, Server)
(8)现在的ASP.NET框架
你可以访问超过3400个类.
(9)命名空间-----可以看成是项目组长也可以看成是所有:类,接口IXXX,结构,委托(指针),枚举这些东西的容器,还可以看成文件夹.....//或者严格点说: 命名空间是下面的东西的分组.
(10)如果我想进行文件的操作,我需要访问 System.IO 命名空间.//即使你访问System命名控件,那个DELPHI之父或者是那个金发的JBUILD的首席架构师会说: 你去 System.IO 看看有没有你想要的牛排和猪蹄.....
正在看: 《ASP.NET技术内幕》的PDG版,不做笔记是没有收获的!!
浙公网安备 33010602011771号