精心设计的基于组件的C# Win Forms实践 一个框架数据库驱动多个业务逻辑数据库
2011-12-21 10:41
1026 查看
精心设计的基于组件的C# Win Forms实践 一个框架数据库驱动多个业务逻辑数据库
设计一个灵活稳定的多层架构的程序不是件容易的事情。当有了成熟的模式和应用之后,还需要经历各种应用与需求考验,用直白的话说,就是要经得起折腾。最近在重构自己的EPN框架时,有了一些新的体会实践,与各位分享。首先是数据库的设计,一个框架数据库驱动多个业务逻辑数据库,这已经是大家所推荐的模式了。
如图所示,框架数据库Framework包含业务数据的基础配置,它可以驱动一套或多套业务数据库的运行。
Framework是框架数据库,它包含基础的业务规则,查询,菜单组件,权限,版本管理等。这个框架可以驱动Northwind数据库,以实现北风贸易程序,驱动emp51以实现ERP程序,等等。
在客户端程序登陆时,需要选择数据库为Northwind以表示登陆北风贸易数据库。这个地方还有些改进之处,可以将Database改成Company或System以变成更专业的系统名称,这在后面还有说明。
进入Enterprise Solution系统后,选择数据库注册,调出如下的界面,可以看到它的实现部分
框架数据库驱动业务数据库的全部的秘密就在这里了。Connection Parameter是连接字符串参数,在这里配置的是连接本机SQL Server Express的Northwind数据库,下面的Grid中显示与这个数据库相关的业务逻辑与接口。
Module Name | 模块的名称,比如ERP系统中有以下几个模块Engineering,Sales,Purchasing,Production Planning等等 |
Type | 模块类型是,这里是关键的设置点。 IService 接口模块,它定义功能的接口 Service 实现,实现接口中的功能 一个系统中,必须包含一个接口模块,可以有多个实现模块。 BusinessLogic 业务逻辑 为客户定制的业务逻辑 Presentation 展现层,也是界面层。在这里是用的WinForms技术,也可以换成WPF技术,或是SilverLight,ASP.NET Web/MVC,因为界面层只负责绑定数据,业务逻辑已经完整分离到BusinessLogic层中。 |
Path | 模块对应的程序集,通常是一个dll assembly。 |
这个视图就是上面公司注册中的代码视图,接口(IService)与实现(Service),业务逻辑(BusinessLogic),再加一个界面层Administration管理贸易订单,客户往来。经由这种设计方法,把业务逻辑及其实现彻底分离出去,以实现通用的C#.NET Win Forms开发框架。
这种设计也有一些缺陷。比如,当业务逻辑过于分散或是完全不相同时,框架数据库也需要重新调整。这里的调整,是数据库内容的重新生成,而不需要对代码作出变更。比如,业务逻辑涉及的查询,报表,菜单,用户喜好(Personalize),功能权限,用户权限都放在框架数据库中,当重新开发一个新项目时,你需要调用如下的系统功能,重新生成这些基础的数据以适应新系统的要求。
功能及其权限
菜单定义
报表定义也需要重新配置参数。
启动查询设计师重新设计查询,以适应新的业务逻辑需要。
最后一项工作内容是翻译资源的重新调校,您需要根据业务需要对翻译作出适当的修改。比如,Style 可翻译为样式,在制衣行业的系统中,应当翻译为款式。
经过这些数据准备工作,新项目的就差不多完成了一半。后面的部分就是完成针对客户的要求,做出各种设计,以确保您的项目准时交货。
相关文章推荐
- 精心设计的基于组件的C# Win Forms实践 一个框架数据库驱动多个业务逻辑数据库
- AForge.NET是一个专门为开发者和研究者基于C#框架设计的视频录像
- 基于事件驱动的领域模型实现框架 - 分析框架如何解决各种典型业务逻辑场景
- 一个基于封装CSLA框架后,设计业务类的例子:users .
- Aforge.net 一个专门为开发者和研究者基于C#框架设计
- 一个基于封装CSLA框架后,设计业务类的例子:users
- 业务逻辑的方法(事务脚本、Evans DDD、基于事件驱动的设计)
- 一个基于封装CSLA框架后,设计业务类的例子:User .
- 一个基于封装CSLA框架后,设计业务类的例子:User
- AForge.NET是一个专门为开发者和研究者基于C#框架设计的视频录像
- 基于事件驱动的领域模型实现框架 - 分析框架如何解决各种典型业务逻辑场景
- 从零开始编写自己的C#框架(9)——数据库设计与创建
- 领域驱动设计思想在一个小工具上的实践
- 共享一份C#数据库持久层框架设计思路及其部分代码(原创)
- 基于ArcGIS10.0和Oracle10g的空间数据管理平台(C#开发)-数据库设计
- 一个基于v4l2框架的输出驱动分析
- C# ASP.NET 走火入魔通用权限管理系统组件V3.2试用版下载地址【含数据库设计文档、使用手册】
- 基于PowerDesigner数据库设计实践
- delphi 基于模型驱动的表单拓展组件的设计与实现。
- 分享一个UI与业务逻辑分层的框架(一)