2、VS2010+ASP.NET MVC4+EF4+JqueryEasyUI+Oracle项目开发之架构设计
2014-03-25 18:31
246 查看
在一个好的架构下编程,不仅对于开发人员是一件赏心悦目的事情,更重要的是软件能够表现出一个健康的姿态;而架构设计的不合理,不仅对于开发人员是一件受苦受难的事情,软件本身的质量更是受到严重威胁。
![](http://img.blog.csdn.net/20140325182944640?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvem91eXVqaWUxMTI3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
1. 展示层,负责系统与客户的交互
2. 业务逻辑层,负责处理系统的业务
3. 数据访问层,负责处理数据,与不同的数据库打交道
4. 服务层,负责与其他系统进行数据交互和业务集成
我们在此四层架构的基础上进行一些扩展,就是将业务逻辑的方法抽象出业务接口层(IBLL)。
调用关系请结合下面的组件图一起来看,如下:
展示层(App)调用业务接口层(IBLL),业务逻辑层(BLL)实现了接口层(IBLL),业务逻辑层(BLL)调用数据访问层(DAL),公共组件(Common)则是抽象了系统中可以共用和重用的部分,每个层都可以调用。
另外,增加了一个服务层(WcfHost),将接口层(IBLL)暴露给其他系统,使其方便与其他系统进行数据交互和业务集成。
注意:此处没有让展示层(App)调用服务层(WcfHost),是为了性能的考虑。
在我看来,MVC就好比对以前我们常见的三层架构的一个再分。这是我本项目的组件设计图
![](http://img.blog.csdn.net/20140325183000218?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvem91eXVqaWUxMTI3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
是BS架构的项目,选择最新的MVC框架,使用Jquery脚本库。
2. BLL——业务逻辑
业务逻辑的操作,包括业务处理,事务等。
3. DAL——数据访问
数据库访问的操作,数据实体,业务实体,数据校验,使用Entity Framework。
4. IBLL——业务接口
业务逻辑层的方法对外暴露的接口和服务契约。
5. Common——公共组件
整个应用程序使用的公共辅助方法。
6. WcfHost——服务宿主(此处已省)
为对外的服务提供宿主,使用微软WCF技术。
以上是在架构图的框架下设计的7个组件,我们结合架构图一起分析:
1. 展示层,包含App
2. 业务逻辑层,包含BLL,IBLL
3. 数据访问层,包含DAL项目
4. 服务层,包含WcfHost项目
5. 公共组件层,包含Common项目
“数据实体”在DAL层中,是Entity Framework自动生成的实体;
“业务实体”是基于“数据实体”进行扩展的实体,或者自定义的实体。因为是基于Entity Framework自动生成的数据实体,所以也放在DAL层中。另外,数据实体和业务实体集成了数据验证的作用。
注意:因为“业务实体”也放在DAL访问层中,所以展示层(App)也需要引用数据访问层,但此处约定不许在展示层做数据库操作。
下面看下MVC展示层
![](http://img.blog.csdn.net/20140325183012640?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvem91eXVqaWUxMTI3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
Content文件夹放置项目的样式文件
IndexStyle.css是所有列表页面的样式
StyleSheet.css是所有增加修改详细页面的样式
Controllers文件夹放置mvc框架的控制器
HomeController.cs登陆后的主页面
LogClassModels.cs日志模型
BaseController.cs控制器的基类
SupportFilter.cs全局的过滤器
SysFieldModels.cs数据字典模型
HtmlHelper文件夹放置mvc框架的模型
CheckBoxListHelper.cs是CheckBoxList的辅助方法
Easyui.cs是Easyui套件对应的后台Cs代码
FileUploaderHandler.cs页面上传的控制类
RadioButtonListHelper.cs是RadioButtonList的辅助方法
Res文件夹放置第三方的页面套件
Easyui文件夹是easyui的套件
jquery.uploadify-v2.1.4是上传套件
My97DatePicker是时间套件
Scirpts文件夹放置项目使用的js文件
jquery.min.js是jquery文件
JScriptCommon.js自定义的js文件
JScriptIndex.js列表页面的js
Up文件夹放置上传的文件
Views文件夹放置mvc框架的展示视图
Home文件夹:
Index.aspxcs登陆后主页
Shared文件夹是布局视图的存放位置
Global.asax文件是项目的路由和全局信息
Web.config文件时项目的配置信息
数据表设计
![](http://img.blog.csdn.net/20140325183024109?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvem91eXVqaWUxMTI3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20140325183035250?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvem91eXVqaWUxMTI3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20140325183047750?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvem91eXVqaWUxMTI3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20140325183059406?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvem91eXVqaWUxMTI3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
后台界面
架构设计图
架构说明
一个标准的四层架构包含如下四个部分:1. 展示层,负责系统与客户的交互
2. 业务逻辑层,负责处理系统的业务
3. 数据访问层,负责处理数据,与不同的数据库打交道
4. 服务层,负责与其他系统进行数据交互和业务集成
我们在此四层架构的基础上进行一些扩展,就是将业务逻辑的方法抽象出业务接口层(IBLL)。
调用关系请结合下面的组件图一起来看,如下:
展示层(App)调用业务接口层(IBLL),业务逻辑层(BLL)实现了接口层(IBLL),业务逻辑层(BLL)调用数据访问层(DAL),公共组件(Common)则是抽象了系统中可以共用和重用的部分,每个层都可以调用。
另外,增加了一个服务层(WcfHost),将接口层(IBLL)暴露给其他系统,使其方便与其他系统进行数据交互和业务集成。
注意:此处没有让展示层(App)调用服务层(WcfHost),是为了性能的考虑。
在我看来,MVC就好比对以前我们常见的三层架构的一个再分。这是我本项目的组件设计图
组件说明
1. App——页面展示是BS架构的项目,选择最新的MVC框架,使用Jquery脚本库。
2. BLL——业务逻辑
业务逻辑的操作,包括业务处理,事务等。
3. DAL——数据访问
数据库访问的操作,数据实体,业务实体,数据校验,使用Entity Framework。
4. IBLL——业务接口
业务逻辑层的方法对外暴露的接口和服务契约。
5. Common——公共组件
整个应用程序使用的公共辅助方法。
6. WcfHost——服务宿主(此处已省)
为对外的服务提供宿主,使用微软WCF技术。
以上是在架构图的框架下设计的7个组件,我们结合架构图一起分析:
1. 展示层,包含App
2. 业务逻辑层,包含BLL,IBLL
3. 数据访问层,包含DAL项目
4. 服务层,包含WcfHost项目
5. 公共组件层,包含Common项目
“数据实体”在DAL层中,是Entity Framework自动生成的实体;
“业务实体”是基于“数据实体”进行扩展的实体,或者自定义的实体。因为是基于Entity Framework自动生成的数据实体,所以也放在DAL层中。另外,数据实体和业务实体集成了数据验证的作用。
注意:因为“业务实体”也放在DAL访问层中,所以展示层(App)也需要引用数据访问层,但此处约定不许在展示层做数据库操作。
下面看下MVC展示层
Content文件夹放置项目的样式文件
IndexStyle.css是所有列表页面的样式
StyleSheet.css是所有增加修改详细页面的样式
Controllers文件夹放置mvc框架的控制器
HomeController.cs登陆后的主页面
LogClassModels.cs日志模型
BaseController.cs控制器的基类
SupportFilter.cs全局的过滤器
SysFieldModels.cs数据字典模型
HtmlHelper文件夹放置mvc框架的模型
CheckBoxListHelper.cs是CheckBoxList的辅助方法
Easyui.cs是Easyui套件对应的后台Cs代码
FileUploaderHandler.cs页面上传的控制类
RadioButtonListHelper.cs是RadioButtonList的辅助方法
Res文件夹放置第三方的页面套件
Easyui文件夹是easyui的套件
jquery.uploadify-v2.1.4是上传套件
My97DatePicker是时间套件
Scirpts文件夹放置项目使用的js文件
jquery.min.js是jquery文件
JScriptCommon.js自定义的js文件
JScriptIndex.js列表页面的js
Up文件夹放置上传的文件
Views文件夹放置mvc框架的展示视图
Home文件夹:
Index.aspxcs登陆后主页
Shared文件夹是布局视图的存放位置
Global.asax文件是项目的路由和全局信息
Web.config文件时项目的配置信息
数据表设计
后台界面
相关文章推荐
- 团队项目开发——客户端系统架构设计
- !金尚网上商城-01、Web项目开发的一般流程》》02、分析与设计之架构分析与
- 项目开发中的一些注意事项以及技巧总结 基于Repository模式设计项目架构—你可以参考的项目架构设计 Asp.Net Core中使用RSA加密 EF Core中的多对多映射如何实现? asp.net core下的如何给网站做安全设置 获取服务端https证书 Js异常捕获
- Unity项目架构设计与开发管理观看总结
- Servlet+oracle MVC 架构 搭建简易购物车web项目---数据库设计
- ASP.NET架构设计&.NET 分布式架构开发项目实战收集
- 开源软件项目管理系统招设计/开发。。。。。Zend Framework2架构 svn://735.ikwb.com/pms
- ASP.NET 架构 项目开发-让设计模式成为一种心智-深入理解三层架构
- 网络爬虫项目开发日志(二):爬虫架构设计
- Unity项目架构设计与开发管理
- 商业级项目——基金客户端的架构设计与开发(下)(附源码)
- 商业级项目——基金客户端的架构设计与开发(上)
- 商业级项目——基金客户端的架构设计与开发(下)(附源码)
- 商业级项目——基金客户端的架构设计与开发(上)
- 商业级项目——基金客户端的架构设计与开发(下)(附源码)
- 商业级项目——基金客户端的架构设计与开发(上)
- [Unity] Unity项目架构设计与开发管理 - 视频观看记录
- 基于MVC模式与插件式设计的开发架构的探讨与实践
- 实战开发农商O2O在线交易系统—架构及数据库设计
- IT项目的面向对象分析设计、开发及管理