• 精心设计的基于组件的C# Win Forms实践 一个框架数据库驱动多个业务逻辑数据库


    精心设计的基于组件的C# Win Forms实践 一个框架数据库驱动多个业务逻辑数据库

    设计一个灵活稳定的多层架构的程序不是件容易的事情。当有了成熟的模式和应用之后,还需要经历各种应用与需求考验,用直白的话说,就是要经得起折腾。最近在重构自己的EPN框架时,有了一些新的体会实践,与各位分享。

    首先是数据库的设计,一个框架数据库驱动多个业务逻辑数据库,这已经是大家所推荐的模式了。

    如图所示,框架数据库Framework包含业务数据的基础配置,它可以驱动一套或多套业务数据库的运行。

    image

    Framework是框架数据库,它包含基础的业务规则,查询,菜单组件,权限,版本管理等。这个框架可以驱动Northwind数据库,以实现北风贸易程序,驱动emp51以实现ERP程序,等等。

    在客户端程序登陆时,需要选择数据库为Northwind以表示登陆北风贸易数据库。这个地方还有些改进之处,可以将Database改成Company或System以变成更专业的系统名称,这在后面还有说明。

    image

    进入Enterprise Solution系统后,选择数据库注册,调出如下的界面,可以看到它的实现部分

    image

    框架数据库驱动业务数据库的全部的秘密就在这里了。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。

    在这个版本的EPN框架中,实现了框架程序与业务程序的完全解藕。比如需要以Northwind数据库为基础设计一个贸易程序,它的解决方案视图是这样的

    image

    这个视图就是上面公司注册中的代码视图,接口(IService)与实现(Service),业务逻辑(BusinessLogic),再加一个界面层Administration管理贸易订单,客户往来。经由这种设计方法,把业务逻辑及其实现彻底分离出去,以实现通用的C#.NET Win Forms开发框架。 

    这种设计也有一些缺陷。比如,当业务逻辑过于分散或是完全不相同时,框架数据库也需要重新调整。这里的调整,是数据库内容的重新生成,而不需要对代码作出变更。比如,业务逻辑涉及的查询,报表,菜单,用户喜好(Personalize),功能权限,用户权限都放在框架数据库中,当重新开发一个新项目时,你需要调用如下的系统功能,重新生成这些基础的数据以适应新系统的要求。

    功能及其权限

    image

    菜单定义

    image

    报表定义也需要重新配置参数。

    启动查询设计师重新设计查询,以适应新的业务逻辑需要。

    最后一项工作内容是翻译资源的重新调校,您需要根据业务需要对翻译作出适当的修改。比如,Style 可翻译为样式,在制衣行业的系统中,应当翻译为款式。

    image

    经过这些数据准备工作,新项目的就差不多完成了一半。后面的部分就是完成针对客户的要求,做出各种设计,以确保您的项目准时交货。

  • 相关阅读:
    洛谷P4113 [HEOI2012]采花
    洛谷P5159 WD与矩阵
    洛谷P1262 间谍网络
    洛谷P3038 牧草种植Grass Planting
    洛谷P3258 [JLOI2014]松鼠的新家
    洛谷P2294 [HNOI2005]狡猾的商人
    洛谷P4878 [USACO05DEC]layout布局
    【CF1132F】Clear the String (DP)
    [AH2017/HNOI2017]大佬(动态规划 搜索)
    「NOI2018」屠龙勇士(CRT)
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2295526.html
Copyright © 2020-2023  润新知