ASP.NET.2.0.in.C.Sharp.2005.From.Novice.to.Professional的读书笔记[1] - 中国WEB开发者网络 (http://www.webasp.net) -- 技术教程 (http://www.webasp.net/article/) --- ASP.NET.2.0.in.C.Sharp.2005.From.Novice.to.Professional的读书笔记[1] (http://www.webasp.net/article/29/28103.htm) |
| -- 作者:未知 -- 发布日期: 2007-01-15 |
我是个ASP.NET 2.0的初学者,最近在看一本名为<Apress.Beginning.ASP.NET.2.0.in.C.Sharp.2005.From.Novice.to.Professional>的书,是全英文版本的,刚看完第一章就有股冲动写读书笔记,因为发现其的博大精深,奥妙真是不言而喻.部分是我自己的翻译,翻译得很差,请看的朋友见谅. PART 1 Introducing .NET CHAPTER1 Introducing the .net framework. WEB开发的革命 HTML 和 HTML Forms 早期的WEBSITES根本不能说是WEB应用程序,他就好象是一个以固定格式,包含内容的文本文档一样,当你接收到这个文本文档的时候,同样是以固定格式显示出来,他实际上没有做任何事情. <html> HTML的语言格式,以<*>开始,以</*>结束,在其中加入内容,由此可知HTML语言是由两部分组成,一部分是文本,另一部分则是形如<>的标签. 在HTML2.0中加入了名为HTML FORMS的技术,使得HTML页面能够加入更多的控件,例如CHECKBOX,SUBMIT等,而这些内容必须放置在<FORM>...</FORM>之间,形式是<input type="checkbox">checkbox的名称<br>,<input type="submit" value="submit控件的名称">. 我认为,在早期HTML是一种面向过程的语言.(本人没学过HTML语言,别骂.) 服务端的程序 CGI的服务器对每一个WEB请求必须运行相对应的程序,即使这些请求是相同的但来自不同地方,如果WEB的访问量很高,那么这些运行的程序片就会越多,造成服务器的当机.(这里是我对问中CGI的一些理解,如有不对,请指正). 因此,微软开发出了ISAPI,Internet服务应用程序接口以解决此问题,但却代来了明显的复杂性.然而ISAPI并没有完全的退出历史舞台,微软在他的基础上开发出了ASP和ASP.NET技术,这两种技术都支持生成动态页,并且不用去想程序低层的问题,所以这两种语言很受欢迎. 虽然ASP和ASP.NET很相近,但ASP是一种依赖于脚本的语言,而ASP.NET是一种面向对象的语言,可以像些程序一样来做网页. 备注:ASP.NET1.X与ASP.NET2.0使用的是相同的技术,2.0是对1.X的更新但不是革新(这在书中有明确指出),但ASP使用的技术却是COM. 虽然我不知道什么是ISAPI,COM,以及ASP.NET到底使用的是什么技术,但我想我不需要知道这么多,我需要知道的时候,我如何用ASP.NET2.0去写网站,并让网站能够安全的运行起来,我不是狂人,我除了学习还有生活,所以我不准备去了解什么ISAPI,COM等技术,我想大多数学ASP.NET的人看见这一大堆术语肯定就望而怯步了吧,有的甚至想去了解,我认为不用去了解,就让他们这样放着,等你真正需要的去了解的时候再去了解. 客户端程序 这些程序的代表有JAVA脚本,DHTML,但他们并没有解决程序给服务器带来的压力,当用户访问WEB时,服务器会传一个包给用户,这个包在用户端编译,执行,这同样带来了问题:
而ASP.NET是服务端的程序,程序通过请求生成静态的HTML页面,将静态页面发给客户端,上述的问题则没有了. 但这个时候我也想过,如果访问量大的话一样会对服务器造成很大的压力,因为访问数据库会造成很大的开销,所以我查了一下,网上有一篇关于ASP.NET的页面缓存技术,可以让ASP.NET在第一次请求的时候生成一个页面,页面保存在内存中,可以设置这个页面的生存周期,一般而言首页的访问量是最大的,那么可以设置将这个页面缓存在内存中,每个几个小时,或者几天,或者手动的更新,如果需要更新网页的话. ASP存在的问题 书中说,如果你以前使用过ASP,那么你也许遇见过以下的这些问题: 脚本的限制:ASP是依赖于VB脚本的.ASP.NET是.NET语言,是非脚本的. 无应用程序结构:这应该是废话了. 更新以及修改带来的问题:当要更新和修改的时候必须停止运行,这样对一个网站而言是很不利的,而ASP.NET可以动态的更新. 状态限制(这里我没理解透):一个页面一旦发送给用户后,服务器的连接就会关闭,任何的用户细节的信息就会报废,ASP用SESSION状态来解决这个问题,使得每个用户的连接被保存在内存中,但也有脆弱之处,脆弱之处就在于如果像163这样的网站,他一定会有多台服务器,当用户的细节信息在A服务器中,而他却登陆到了B服务器中,那么连接就会丢失.而ASP解决了这个问题,他使用了一个中心仓库来解决这个问题. 我想了一个很BT的例子,不知道对不对,如有不对请大家指正. 例如说一个用户登陆一个网站,这个网站有两个服务器A和B,登陆这个服务器先要验证一次密码,然后再验证一次密码,当用户先是在A服务器上验证密码,通过了,此时A服务器的繁忙,用户的第二次密码被送往了B服务器,此时,在B服务器中并没有任何用户通过了第一次的密码的信息,则用户连接中断,如果A服务器一直处于繁忙状态,那么用户这辈子都别想登陆服务器了,哈哈. |
| webasp.net |