嗨,大家好,我是Serviceboy,因为工作的缘故很久没有写博客了。现在的时代真正是可谓“信息爆炸”来形容——除了传统的“鼠标+水泥”的ASP.NET编程设计以外,微软同时为我们推出了新一代的网站开发框架利器——MVC。此MVC框架的作用功能类似于Java中的Stucts1版本。但是从上手容易度而言却比Stucts1容易得多。目前的MVC版本已经到了2(Beta 2)为了使得大家更好地学习和了解MVC2的机制和一些常用技巧。笔者将通过自己的一个简单又实用的程序“家庭收支管理系统”先为大家展示MVC的魅力。
首先您可以通过点击此处下载该文档并且发布到您的IIS7中(之后本教程将介绍Win7中的新IIS7的一些用法)。
此外您可以通过在此处点击并且下载完全免费、开源的MVC Beta2(VS2008并且带有SP1的版本,因为这将帮助您创建MVC的模板、以及笔者程序中需要的LINQ-TO-SQL程序等必备组件)。
一、项目简介:
本项目的允许用户浏览全部、或是指定日期范围、模糊搜素收支项、编辑、查看以及删除其中某些内容,以及插入新收支项、收支类别名等。其组织结构是借助微软的MVC(Beta 2)构建而成,包含以下主要内容:
v FinanceManagerController:位于Controllers文件夹中,作为分离逻辑业务并执行跳转的全局控制器。其中包含:
函数名称 |
作用 |
Index |
用于自动根据输入参数进行数据的筛选,以及实现分页代码回传的功能。 |
AddItem |
用于跳转到收支项目添加的页面。 |
AddType |
用于跳转到收支类别添加的页面。 |
SaveInfo |
保存收支项目。 |
SaveType |
保存收支类别。 |
Read |
用于浏览具体某个记录并跳转到浏览页面。 |
Edit |
用于编辑某个已经选中的记录,跳转到编辑界面。 |
Update |
用于更新编辑好的记录,写入数据库并调回主界面Index。 |
Delete |
用于删除某个已知记录,并调回主界面Index。 |
v View文件夹中包含了一个FinanceManager文件夹,其中同时包含了除“SaveInfo”、“SaveType”、“Update”和“Delete”之外,与FinanceManagerController其它函数完全同名的aspx文件。
v DAL文件夹:其中包含两个函数:“Functions”(存放通用函数,供其它函数页面调用,像本例中的“GetAllItems”,获取所有收支类别选项)和“Paging”(存放分页的所有信息)。当然,照例增、删、改和查涉及到数据库等方面的操作应该也位于其中,但是由于笔者使用了Linq,自动将Modal和DAL封装了起来,故“勉为其难”之见,就算做是Modal中的了。
v Shared文件夹:其中包含一个My97DatePicker免费日历(日期选择)控件以及一个css的文件,用于装饰页面,纯粹美化页面作用。
v APP_DATA:其中包含了一个自动创建数据库、表的脚本文件,以及大量的测试数据。读者可以使用该文件自动生成数据库和表,便于运行您的程序,体验MVC带来的快感。
v Scripts:JQuery等微软集成的第三方javascript工具,本项目尚未涉及。
二、IIS7.0的使用以及如何在IIS上运行该MVC程序:
“发布上更加容易,操作上不易入门”是我使用IIS7.0之后发布该程序用作自己家庭用的第一个感觉。IIS7.0完全细化了先前IIS中的很多功能,并且使用组的形式“分门别类”地进行了归类。要发布一个MVC程序,您应该按照以下步骤:
v 安装IIS7.0,在Win7中,您不再需要任何安装源即可在“控制面板(切换成大图标形式)”-->“程序和功能”-->“打开或关闭Windows功能”中选择以下内容:
1)Internet信息服务:Web管理工具-->除“IIS6管理兼容性”可以不选,其余应该打勾选上。
2)万维网服务中:
2.1)安全性-->选择“基本身份验证”和“请求筛选”。
2.2)常见Http功能-->“静态文档”和“默认文档”用于设定起始页和应用CSS样式,必选。
2.3)应用程序开发功能-->ASP.NET选项必选,其余会连带着打勾被选择。
v 接着,为IIS配置访问权限:依次选择解压的那个项目包,右键属性,然后“安全”-->“编辑”-->“添加”-->“高级”-->“立即查找”,选择“计算机名\IIS_IUSRS”,一路确认并保存。
v 最后,在IIS中添加那个解压的项目,依次:控制面板、管理工具、Internet 信息服务(IIS)管理器、网站(先停止那个默认的网站,选中后点击右边的“停止”按钮),右键“添加网站”,起上您的一个喜欢的名字并且选择您的物理路径(那个解压的包的名字),端口写非80的(比如8080,7999,6060等……)。
三、MVC发布到IIS7.0注意点:
笔者或许由于笨拙,发布尝试了一天才成功。目前碰到以下两个大问题:
1)数据库连接必须使用sa方式,否则将出现“XXXX登陆失败”的问题。
2)模板以及应用模板的Css问题:笔者和大多数读者可能都有一个感觉,那就是要把CSS文件同时作用在模板和应用模板的页面上有时不是那么容易的一件事情?为什么呢?因为模板如果和应用模板的文件不是处于同一个位置,则模板引用CSS文件的相对路径肯定和应用模板的文件的那个引用CSS文件的相对路径不是同一个,因此会出现应用模板的路径无法应用CSS(“查看源代码”明显告诉我们应用模板的文件被解析成HTML之后,引用的路径CSS就是拷贝了模板中那个引用CSS的路径!)。
就目前而言,解决方案有两个:
v 将多数文件共享的东西提取出来放到一个文件夹里(比如案例提供中的Shared文件),然后将此文件放入根目录,模板引用其中的路径用绝对路径。
v 当然,你完全可以将模板和应用该模板的页面,以及CSS全部放在同一个空间内,这样就可以相对引用,但是不推荐,因为太紊乱了。
好了,现在您可以好好看看笔者这个简单又实用的程序了,为您家庭收支的来源去向作一个明确的交代吧。不过这只是笔者的开山之作,后文将陆续详细介绍MVC的原理以及透过本程序开发中值得注意的一些小技巧。请关注收看,谢谢!