一次进销存软件架构的实践(二)——业务外观层设计

一次进销存软件架构的实践(一)——概述

1.结构

  根据经验可以发现一个界面总是一块一块的,每一块里都是一些基本控件(按钮、文本框或者日期控件等)或者是一个网格控件和树形控件等,如果每块称为区域,里面的成为项,这样我们可以把界面抽象出两个基类:区域和项,从区域派生出的其他区域分别用来创建编辑区域、网格区域和树形区域,编辑区域中的项由项这个类中的类型属性通过分支语句去创建。

  然后就是各种类型的窗体包含的区域不同,那就再加一个外观的类,它有个属性存放所有的区域,从外观派生出的类定义各种可能的区域。而各区域的位置等信息是由窗体去做的。

  这些类还有其他的职责,从外观派生出的类负责各区域的交互等,区域负责数据绑定、固定的事件、数据初始化等,项也有数据绑定的职责,外观类的职责就是多很多了,主要一个职责是运行机制。

  事实上我不是一开始就这样思考的,我是希望各种控件等都能够用统一的方式创建、绑定、验证和权限,所以才想到有基类抽象他们,才有了项,但单有项还不能完成一个复杂的界面,所以一步一步的思考就成上面描述的结构了。

2.运行机制

这里简单列下运行时候要做的事。

1.预初始化

一些初始值的设置和合法性验证已决定是否继续等等必须放到窗体打开前的工作。

2.加载数据

通过外观类中的业务对象所实现的接口方法加载数据存储到外观类的dataset类型的数据属性中。

3.初始化权限

设置权限对象中一些与数据库中的数据有关的属性。

4.创建外观

这个时候窗体中的各控件就创建了。

5.初始化验证

同初始化权限,我的验证和权限用的是同样的一些类,我将他们抽象成了相同的东西。参考浅谈MIS系统架构,这块有些复杂但我不准备说了,用到了一个MB.JsEvaluator.dll来完成动态条件表达式。

6.结束初始化

7.绑定数据

posted @   Rick Carter  阅读(3556)  评论(12编辑  收藏  举报
编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示