在企业内部的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范围的。

懒人的ERP开发框架--2B&苦B程序员专用的更多相关文章

  1. 苦B程序员的数据验证之路

    发生了什么事 在一次苦B程序员和苦C程序员的结对编程中发生的一段对话 代码是这样的: public void deleteAllExtendAclsFromContent(String content ...

  2. 给IT新男的15点建议:苦逼程序员的辛酸反省与总结

    很多人表面上看着老实巴交的,实际上内心比谁都好强.自负.虚荣.甚至阴险.工作中见的多了,也就习惯了. 有一些人,什么事都写在脸上,表面上经常得罪人,甚至让人讨厌.但是他们所表现的又未必不是真性情. 我 ...

  3. C# 嵌入dll 动软代码生成器基础使用 系统缓存全解析 .NET开发中的事务处理大比拼 C#之数据类型学习 【基于EF Core的Code First模式的DotNetCore快速开发框架】完成对DB First代码生成的支持 基于EF Core的Code First模式的DotNetCore快速开发框架 【懒人有道】在asp.net core中实现程序集注入

    C# 嵌入dll   在很多时候我们在生成C#exe文件时,如果在工程里调用了dll文件时,那么如果不加以处理的话在生成的exe文件运行时需要连同这个dll一起转移,相比于一个单独干净的exe,这种形 ...

  4. 联想Z470安装10.11懒人版成功!!特此分享!!

    折腾黑苹果也断断续续好几个月了,在远景也爬了好多贴,遇到问题基本上靠自己解决,自己组的台式机已基本完美,大学期间买的联想Z470现在是“食之无味,弃之可惜”,想想也来试试装个黑苹果玩玩,之前装过10. ...

  5. 【原创】窥视懒人的秘密---android下拉刷新开启手势的新纪元

    小飒的成长史原创作品:窥视懒人的秘密---android下拉刷新开启手势的新纪元转载请注明出处 **************************************************** ...

  6. 懒人小工具:自动生成Model,Insert,Select,Delete以及导出Excel的方法

    在开发的过程中,我们为了节约时间,往往会将大量重复机械的代码封装,考虑代码的复用性,这样我们可以节约很多时间来做别的事情.最近跳槽到一节webform开发的公司,主要是开发自己公司用的ERP.开始因为 ...

  7. 懒人小工具:T4自动生成Model,Insert,Select,Delete以及导出Excel的方法

    之前写了篇文章,懒人小工具:[自动生成Model,Insert,Select,Delete以及导出Excel的方法](http://www.jianshu.com/p/d5b11589174a),但是 ...

  8. 懒人小工具:T4生成实体类Model,Insert,Select,Delete以及导出Excel的方法

    由于最近公司在用webform开发ERP,用到大量重复机械的代码,之前写了篇文章,懒人小工具:自动生成Model,Insert,Select,Delete以及导出Excel的方法,但是有人觉得这种方法 ...

  9. 懒人小工具1:winform自动生成Model,Insert,Select,Delete以及导出Excel的方法

       懒人小工具2:T4自动生成Model,Insert,Select,Delete以及导出Excel的方法    github地址:https://github.com/Jimmey-Jiang/J ...

随机推荐

  1. hdu 4336 Card Collector——最值反演

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=4336 点集中最早出现的元素的期望是 min ,最晚出现的元素的期望是 max :全部出现的期望就是最晚出现 ...

  2. PHP代码实现 1

    $PHP-SRC/run-test.php 因为如果在同一个进程中执行, 测试就会停止,后面的测试也将无法执行,php中有很多将脚本隔离的方法比如: system(),exec()等函数,这样可以使用 ...

  3. Linux Expect 简介和使用实例

    expect简介和使用实例 1 expect 简介 expect 是用来进行自动化控制和测试的工具. 主要是和交互式软件telnet ftp passwd fsck rlogin ssh tip 等进 ...

  4. Java ScriptEngine 解析js

    Java ScriptEngine 解析js 1.脚本引擎 ① 通过脚本名称获取:      ScriptEngine engine = new ScriptEngineManager().getEn ...

  5. javascript中 关于eval的那些事

    javascript中的eval是一个非常灵活,但是灵活是伴随着风险的. 一.下面我们来看看那使用eval声明变量的问题. function test(x){ eval("var a=x;& ...

  6. django之模型

    ORM简介 MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库 ORM是“对象-关系-映射”的简称 ...

  7. 温故而知新-array_walk和sizeof和array_count_values()和extract()

    1 array_walk对数组的每一个元素应用任何函数 用户自定义函数中的第一个参数指定为引用:&$value,来改变数组元素的值 如果对一个参数使用取地址,那么会改变数组元素的值 2 siz ...

  8. 浅析JavaScript中的typeof运算符

    对JavaScript中的typeof运算符进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助. 如果typeof的运算符是数字.字符串或者布尔值,它返回的结果就是"numb ...

  9. leetcode116

    class Solution { public: void connect(TreeLinkNode *root) { if (root != NULL) { queue<TreeLinkNod ...

  10. jeesite快速开发平台(二)----环境搭建

    转自:https://blog.csdn.net/u011781521/article/details/54880465