ASP.NET.2.0.in.C.Sharp.2005.From.Novice.to.Professional的读书笔记[1]

原创 2006年06月23日 16:23:00

大笑微笑生气吐舌头吐舌头吐舌头吐舌头吐舌头吐舌头吐舌头吐舌头吐舌头吐舌头吐舌头生气微笑大笑


偷笑我爱北京天安门偷笑


偷笑天安门上太阳升偷笑


偷笑伟大领袖毛主席偷笑


偷笑指引我们向前进偷笑

偷笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑偷笑

我是个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>
      <head>
          <title>填充WEB页的标题</title>
      </head>
      <body>
      <h1>h1是一种稍大的字体.以h1的字体输出.</h1>
      <p>我想P应该是PRINT的缩写,意思是直接输出.</p>
      </body>
</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时,服务器会传一个包给用户,这个包在用户端编译,执行,这同样带来了问题:

  1. 浏览器和操作系统必须支持JAVA脚本,使得通用性的减低.
  2. 如果JAVA脚本进行升级,那么客户机也要面临升级的烦恼.
  3. 对服务器上数据的读取的难度加大.
  4. 安全性的问题.因为程序是在客户机上运行,也就是说,客户机拿到了一张通往服务器的通行证,在合理的情况下他可以任意的访问服务器的内容,如果客户机的程序在某个黑客的手中,那么服务器是很危险的.

而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服务器一直处于繁忙状态,那么用户这辈子都别想登陆服务器了,哈哈.

相关文章推荐

ASP.NET WEB API 读书笔记

筛选器

C Sharp与.net学习笔记(四)

接前面MAF,看看MEF插件框架(它是.NET4的组成部分,所以装个Visual C#2010 express) 和 MAF 比起来,这个易用性太高了。只需要定义一个接口,然后Import、Expo...

C Sharp与.net学习笔记(三)

先简单了解一下C#下插件框架。插件一般就是定义了某个特定接口的并被动态加载的动态库。应用程序启动后,可以查找(比如某个特定目录)、动态加载、识别(某个特定接口)、使用插件(调用接口函数等)。 现在....
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ASP.NET.2.0.in.C.Sharp.2005.From.Novice.to.Professional的读书笔记[1]
举报原因:
原因补充:

(最多只允许输入30个字)