前面的文章讲解了技术细节,这一篇来了解一下这个框架的制作前后,经历的一些思考。代码只对部分需要的朋友有用,重要的是经历和思路。前后花了3个月的时间,完成了这个基础的ASP.NET页面框架。
功能导航
来看一个整体的效果图,围绕这个图,看图说话,看看各个部分是如何完成的。
ERP系统功能多,如何设计一个简洁的界面,承载它的功能导航,一努力追求的目标。这里的菜单均是用菜单设计器设计出来,代码中只是读出来,并呈现成树结构。一段时间曾把它分离到X_Menu表中,后来又合并代码,直接读取框架的菜单表,这样达到B/S与C/S的统一。虽然不可能同时有两种实现,但以此为技术追求,寻求好的实现方法。
同步对比一下,C/S程序上的实体,和上面的界面模式几乎相同。
来看一个具体菜单项System Administration的界面模式,它如下图所示
左边的树节点,右边展示了它下面的功能类型,这个部分的设计,以菜单设计器设计它,先是功能类别,再为具体功能。
数据库
SQL Server是首选的数据库平台。其次,SQL Server有许多版本,高版本的可读取低版本的数据文件,但是一旦附加进入后,低版本的SQL Server再也无法读取这个文件。一开始以SQL Server 2008 R2开发,后来意识到要兼容于客户方面的的选择,果断把所有数据都迁移到SQL Server 2005中。版本信息是
SELECT @@VERSION Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86) Nov 24 2008 13:01:59 Copyright (c) 1988-2005 Microsoft Corporation Express Edition with Advanced Services on Windows NT 6.1 (Build 7601: Service Pack 1)
一个主数据库Framework,业务数据库为TS。请先配置数据库的主从关系,设定TS的数据库属性。
框架会为你做很多基础的工作,这个简单的配置,可以减少很多基础的重复的工作量。
应用程序结构
首选为插件式结构。框架只关注于自己的基础数据读写,当遇到具体业务数据时,以反射方式交给业务类型去执行。
每个应用分四层,界面层Presentation,接口层IService,接口实现层Manager,业务实体层Businss Logic。
业务逻辑层为LLBL Gen生成,接口层和实现层由Code Smith生成,界面则根据应用布局,并绑定数据属性。
ExtAspNet控件进行了部分定制,修改了少量源码以满足框架的应用需要。原计划是以它为基础进行Extension的,后来发现这样增加了测试的时间,也不利于修改维护,于是直接修改源码。这样带来的问题是当ExtAspNet控件有新版本时,需要手工合并代码。选择Beyond Compare对比两个版本的文件夹,有差异的地方用不同的颜色区分,打开一个文件后,合并到另一边,保存即可。
数据操作模式
有五种数据操作模式
1 单一实体表 例子比如上面提到的Company.aspx页面
2 主从表 比如销售单,有主表销售单表头和销售单明细表
有表头和表明细,一对多的关系。
3 List列表 比如要对一个或多个表进行查询,显示到一个页面中
4 Lookup 查找 用于数据选择 数据查询
5 Query 自定义查询 用户自定义查询转化为页面功能
与List相似,只不过这是由查询设计器设计出来的,List由程序编码完成。
在数据操作模式一节中,这个问题还要详细讨论,它对数据读写影响很大。
下载地址: https://files.cnblogs.com/files/JamesLi2015/EnterpriseSolutionWebSource.rar