30岁菜鸟涛学习VB.net 第六天

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。

 

HttpRuntime:   简单理解 ASP.NET HTTP 管线的开关,就是 IIS 所收到的对某 Microsoft ASP.NET 页面的每个请求都被移交给 ASP.NET HTTP 管线,这个过程就是实例化HttpRuntime的过程。根据HttpWorkerRequest对象生成HttpContext,HttpContext包含request、response等属性, 再调用HttpApplicationFactory。

 

HttpApplicationFactory :工厂模式,管理HttpApplication对象,通过IHttpHandler, 调用HttpApplication对象执行请求。

 

HttpApplication:进行HttpModule的初始化,HttpApplication创建针对此Http请求的 HttpContext对象


 

HttpModule: 当一个 HTTP 请求到达 HttpModule 时,整个 ASP.NET Framework 系统还并没有对这个 HTTP 请求做任何处理,也就是说此时对于 HTTP 请求来讲, HttpModule 是一个 HTTP 请求的“必经之路”,所以可以在这个 HTTP 请求传递到真正的请求处理中心( HttpHandler )之前附加一些需要的信息在这个 HTTP 请求信息之上,或者针对截获的这个 HTTP 请求信息作一些额外的工作,或者在某些情况下干脆终止满足一些条件的 HTTP 请求,从而可以起到一个 Filter过滤器的作用。

好文: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>

         < defaultDocument >
            
< 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。 

 

 

转载于:https://www.cnblogs.com/jack_qin/archive/2011/04/21/2023161.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值