前一段时间做一个网站项目,使用win+.net2.0开发;在学习了一些.net的相关知识后,并考虑到此项目需要多人合作,以及架构清晰、URL重写等优点,决定用MVC方式开发。但微软的MVC框架据说要下半年才出正式版,而且还需要.net3.5,其他的MVC框架又不熟悉,估计也需要一段时间学习。由于开发时间比较紧,我们开发小组中也没有一个对及MVC框架非常精通的人,所以又想转回使用传统的编程方式开发。
在两难之际,我想也许可以在项目需求出来前,自己试着写一个MVC架构出来,因为以前曾用PHP和JSP写过类似的MVC架构,而Web的运行环境和编程语言,相通的地方还是很多的,于是就有了下面这个的MVC架构。
一、MVC编程:
针对用户的浏览器来说,网站可以看作一个实体、一个接口,其接收浏览器的请求,并将相应的信息返回给浏览器;因此,网站程序完全可以用一个程序来完成,而实际上也确实如此,IIS、apache等web服务器本身就是一个程序,而运行其中的asp、aspx、php、jsp、html等等的单个页面,只不过是帮助web服务器来实现一定功能而已。
由此可以引申出:我们完全可以用一个aspx页面来处理针对网站的所有动态请求。
而这个页面,我们就把它起名为index.aspx吧。
在apache、tomcat等web服务器,都有相应的技术,将网站符合一定规则的所有http请求,都转向一个程序页面(如index.jsp或index.php)来处理。而IIS在IIS7(前面提到,我们的网站服务器是windows,IIS版本为6.0)出来以前,只能借助于第三方组件实现(windows的IIS7.0可以不借助第三方组件实现URLRewrite,网上可以找到相关代码)。这其中比较有名的2个是ISAPI_Rewrite(Full版收费,Lite版免费)和IonicIsapiRewriter(免费),而对于我们这个MVC架构来说,ISAPI_RewriteLite版(下载ISAPI_RewriteLite,这里有ISAPI_RewriteLite的最新版本,我们使用的是ISAPI_Rewrite3_0047_Lite.msi)就足够了,由它来控制请求到我们的index.aspx(具体代码参见DotNetMVC示例网站代码)。
(一)网站的目录结构
为了使