遗忘海岸

江湖程序员 -Feiph(LM战士)

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

懒人的ERP开发框架--2B&苦B程序员专用

在企业内部的ERP系统开发中,如果使用MS的技术,那么Winform + DevExpress + IIS + WCF +EF 就是懒人的黄金组合了,EF使用数据库优先,一般ERP应用主要关注点在数据,下面介绍的本人最近搭建的一个开框架,主要涉及UI、通讯、数据访问等,本框架不涉及那些让人迷糊OO,DI,AOP,ORM,基本上是个.net程序员都能搭建,而且皮实耐用,采用三层结构也提供了很好的扩展性(话说N年都没扩展过),当然也不防碍你往里面添加上面的DI,AOP,ORM等xxxx,如果你要折腾技术的话。

 

先说UI

当然要做出看上去不那么原始的UI,整套DevExpress是必须的

DevExpress使用简单功能强大(当然这些都是广告--学习还是要化力气的,不过最好化点小钱去买现成的中文学习资料省点力气自己折腾,珍惜生命把)
上面UI就是拖几个控件就搞定了,导航里面按系统分多个组,每个组里面是一个树形菜单,可以挂任意多功能

功能与菜单UI的数据库结构

主要有Funs与Catalog两张表,Catalog是一个多级分类表第一级就是上面菜单导航的组,而Funs是具体的功能,一般对应某个Form,程序里采用反射来创建窗体,这样你就可以把XX,YY系统,分装到不同的项目里(dll里),每个Fun需要指定挂到那个Catalog分类下,就是上面UI看到的。

关于权限控制:
   上面针对一类用户能建立一个FunsConfig,ConfigItems保存了该配置下有那些Funs,UI上根据分配的Funs生成对应的树型目录,(算法是,首先生成一棵完整的目录与功能树,然后使用Queue 遍历树,标记那些存在于ConfigItems表中的Funs,同时标记这些被标记节点的祖先节点,然后移除那些未标记的节点)当然你需要的话可以建立角色,然后将Funs关联到角色,用户再关联到多个角色。一般ERP框架中权限分配到模块就算完事了,如个别模块有数据权限的需求兄弟就自己写代码实现把,或者找那个“犀利哗啦日哥”买个。

项目的功能划分:
一般一套ERP可能涉及物流(采购,销售,仓库...),人事,生产管理,财务...等模块,项目做下来可能有N多的窗体,Service,接口等,  这个时候我们一般对按系统进行划分,建立多个项目,由于采用了三层结构每个功能模块一般有如下几个项目, xxx.Hr.Forms.dll, xxx.Hr.Models.dll, xxx.Hr.IService,xxx.Hr.Service.dll
相信从patshop学会所谓OOD宇宙真理的兄弟应该很容易看明白, Forms与是放在客户端的而Service是放在IIS上的,其他的两端都会部署的。

-----------------

这篇到这里,下一篇讲下WCF,怎么使用no svc 来避免一堆的xml(做个erp整百一个service是必需的),以及wcf中的认证,大数据传输的一些配置,后面再讲点数据库访问,数据库优化的东西当然都是适合2B程序员IQ范围的。

                

posted on   遗忘海岸  阅读(11447)  评论(10编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
历史上的今天:
2011-12-27 T-SQL时间格式化显示
2011-12-27 游标,存储过程,以及临时表
2007-12-27 关于Asp与Asp.NET共享Cookie需要注意的地方
2007-12-27 关于.NET数据库访问中连接池一些认识
点击右上角即可分享
微信分享提示