Wonderful。
已经是第6天了,今天goal:开始vb.net的web开发之旅。
先献上前5天,做的winForm的例子,使用了Nhibernate。菜鸟涛前5天写的代码
关于ASP.net的概念:请查看http://www.cnblogs.com/artech/archive/2007/09/13/891262.html的文章,描述的非常好。
MS的asp.net web开发有别于传统的web开发,asp.net有些很关键的概念就是“代码后置,界面和代码分离”和“事件驱动”以及“组件开发”。这和C/S的开发模式很类似。但web开发其服务器是必不可少滴。微软的web服务器是IIS,这点很不爽,绑定的太死了。如果想用一些开源的服务器的话,还要经过一番折腾....这里就不折腾了。
整理asp.net的url请求过程 :
1.解析URL,URL被web服务器(inetinfo.exe)解析 ,其会解析该url后缀,然后根据该后缀,IIS来决定调用那个具体的DLL。如xxx.aspx时,就会调用aspnet_isapi.dll。
2.上述的DLL又会去调用3wp.exe ,然后3wp.exe去具体调用.net framework的类库去具体操作。
这些调用.net framework的类库的顺序:
ISAPIRuntime-->HttpRuntime-->HttpApplicationFactory-->HttpApplication-->HttpModule--HttpHandlerFactory-->HttpHandle。
现在一个一个的解释下上述类库的作用
ISAPIRuntime: 简单理解就是接收Request传送过来的数据,会把数据封装成HttpWorkerRequest对象。然后去通知HttpRuntime。
HttpApplicationFactory :工厂模式,管理HttpApplication对象,通过IHttpHandler, 调用HttpApplication对象执行请求。
HttpApplication:进行HttpModule的初始化,HttpApplication创建针对此Http请求的 HttpContext对象
好文:http://www.cnblogs.com/stwyhm/archive/2006/08/09/471729.html
HttpHandlerFactory : 工厂模式,管理HttpHandler对象。
HttpHandler:Http处理程序,处理页面请求,很像j2ee里的servlet。呵呵。
好文:http://www.cnblogs.com/stwyhm/archive/2006/08/09/471765.html
Ok,介绍完这些,正式开始写首个vb.net的web,简单滴display “hello world” on page。
visual studio 2010 --》file--》new project--》 vb.net--》web--》asp.net web application
来看看生成的project的目录结构:
这样还是不完全,ok,点击,展开全部的文件。结构目录很清晰。那简单介绍下,目录下的一些文件的意义:
My project里定义了一些application.myapp,AssemblyInfo.vb... 就是一个应用程序的信息,程序集等等。
Scripts 里放的是jquery1.4的javascript库,如果你有自己一些常用js库,最好也放到该文件夹,便于维护管理。
Styles 里放的是CSS,里面有个默认的Site.css样式文件。
Default .aspx默认的首页。那么当这个project run起来时,服务器IIS是怎么知道要首先显示Default .aspx呢?当生成asp.net web project时,会自动默认其为首页,如果想不用这个默认页,那就需要修改一个很重要的web配置文件:web.config,在web.config添加代码:
<system.webServer>
<files>
<clear />
<add value="xxx.aspx" />
</files>
</defaultDocument>
</system.webServer>
web.config如上所述,注意web.config可以有很多个,你可以在asp.net web project任意目录在新建一个或多个web.config,这时根目录下的web.config是父亲,其他目录下web.config是儿子,它继承父亲的一切配置属性。和面向对象里的继承是一个概念。这样的好处是层次清晰,便于修改和定制。同时根目录下的web.config也不会过于充血,父亲只是负责配置公共的。
如下图Account文件夹里也有个web.config.其就是为Account下的web 应用服务滴,也是一个子类。这样结构是不是很清晰了,如果我在建个Bank文件用来处理一些银行的业务,那也可以在Bank文件下新建个web.config,其就是为Bank服务滴,和Account文件下的web.config没有半分钱的关系,很独立。呵呵。
大体目录结构代表的意思就介绍到这里,让project飞。很简单visaul studio里点击run吧,呵呵呵。。。。
明天会介绍一些组件,以及用Nhibernate连接数据库。。。
Ok,Today End。
Persist。