Welcome 微信登录

首页 / 网页编程 / ASP.NET / 基于MVC框架+IOC+Rhino Mocks的一个简单项目介绍

基于MVC框架+IOC+Rhino Mocks的一个简单项目介绍2012-03-29 博客园 霓羽翼现在不管是企业还是科研机构,几乎所有的项目开发都是遵循一定的框架,将经过实践证明过的开发 框架和开发模式借鉴使用无可厚非,但难免会遇到某些功能实现或者基于某种考虑当前的开发框架无法达 到这样的目的。这时我们就会考虑不同技术的融合。

我们现在正在开发的平台项目正是借鉴了这样的思想,我们的平台项目首先整体的开发框架使用了 AspNet MVC框架;其次数据访问层套用了CommunityServer的开发框架,其中融合了Provider模式和传统 的三层架构;而在业务逻辑层处理中,为了保证代码的可重用性以及可扩展性,我们引入了依赖注入(DI );最后,在单元测试模块中我们使用了Rhino Mocks作为我们的测试框架。

(一)AspNet MVC框架,所谓MVC其实就是分别代表三个单词Model、View和Controller。了解他们分 别的含义,我们就从Asp.Net页面的处理机制谈起。

一般来说,一个Asp.Net页面通常要处理一下事情:1. 因为最后展示的都是页面,所以我们要得到在 页面上展示需要的数据,也就是Model。2. 在页面的Page_Load(页面加载)方法中为我们的页面控件绑 定数据,涉及到这些业务逻辑的工作(即获取数据和绑定数据的工作)都是在 Conotroller中完成的。3. 也就是我们看到的.aspx页面,不同的是这些页面都是没有后台.cs代码类的。

接下来我们需要明白在MVC中Web请求的处理流程,用户通过Web浏览器向服务器发送一条url请求,这 里请求的url不再是xxx.aspx格式,而是http://HostName/ControllerName/ActionName/Parameters的格 式。这个请求被ASP.NET MVC的路由映射系统截获(路由映射可以在Global.asax中配置)。路由映射系统 按照映射规则,解析出控制器名 ControllerName,Action名ActionName和各个参数Parameters,然后, 寻找Controllers目录下的 ControllerNameController.cs这个控制器类,默认情况下,系统总是寻找 Controllers目录下的“控制器名+Controller”这么一个类,然后,找寻这个类下与ActionName同名的方 法,找到后,将Parameters作为参数传给这个方法,而后Action方法开始执行,完成后返回相应视图,默 认情况下,会返回Views目录下与ControllerName同名的目录下的与 ActionName同名的aspx文件,并且将 ViewData传递到视图。ViewData中一般包含了控制视图显示的控制量以及视图显示需要的数据,如图1所 示。