框架用到的技术: EF、UnitOfWork+Repository、Ninject、log4net、WCF、MVC、T4、windows服务、AOP
前端技术:Bootstrap、layer、jQuery、H5+CSS3

框架设计原则(目标):低耦合、高性能、稳定可靠。

主要设计点:
1、EF作为数据底层,采用DbFirst方式,无实体模型edmx,采用T4+ELinq生成实体类;
2、通过Repository封装EF单个实体的持久化操作,并结合UnitOfWork实现数据上下文统一管理;
3、保证系统内UnitOfWork以及对应的DBContext唯一性(单例);
4、业务逻辑层调用IUnitOfWork接口提供的方法(抽象、多态);
5、各层之间(数据底层、Repository+UnitOfWork、业务逻辑层、UI层、服务层)采用Ninject实现IOC;
6、采用WCF作为对外服务层,并实现windows服务方式寄宿;
7、展示层采用MVC + Bootstrap + layer + jQuery + H5实现;
8、自定义异常处理;

架构结构如图所示:

WedeNet2018.Infrastructure-基础设施层
1、包含用来生成EF entitis、WCF entitis、DB组件类的T4工具;
2、包含引用外部的程序集;
3、包含生成的entitis和UnitOfWork+Repository组件类;

WedeNet2018.Common-公用类层
1、包含系统公用的各种帮助类;
2、包含自定义异常类;
3、包含一些自定义属性类和扩展类;

WedeNet2018.BussinessLogic-业务逻辑层
1、引用基础设施层,实现各业务模块UnitOfWork操作;
2、实现与上下层之间的关系解耦;

WedeNet2018.Web-UI层
1、MVC4、Bootstrap、layer、jQuery、H5等实现展示层;
2、与业务逻辑层解耦;
3、实现log4net不同业务模块的配置;
4、配置Ninject;
5、实现UI层js基础类库和帮助类;

WedeNet2018.WedeWcfServices-WCF服务层
1、包含要对外公布的服务契约及实现类;
2、与业务逻辑层解耦;

WedeNet2018.ServiceHosting-WCF服务寄宿层
1、实现批量寄宿WCF服务;
2、实现服务的安装和卸载;
3、实现log4net不同业务模块的配置;

框架测试点:
1、性能测试(处理一次请求所用的时间);
2、大数据环境下,测试查询性能;
3、高并发测试;

设计参考:
http://www.cnblogs.com/guomingfeng/archive/2013/05/28/mvc-ef-repository.html#autoid-1-0-0
http://www.cnblogs.com/kevin2013/p/5239195.html
https://github.com/i66soft/osharp-ns20
https://blog.csdn.net/a892886597/article/details/47708781
https://www.cnblogs.com/Ray-liang/p/3809822.html
https://martinfowler.com/eaaCatalog/unitOfWork.html

最新文章

  1. PHP如何判断一个数组是一维数组或者是二维数组?用什么函数?
  2. 转:OSGI 实战 Equinox
  3. 连接WCF报EntityFramework.SqlServer 错误的解决方法
  4. poj3660 floyd
  5. [ACM_水题] UVA 11292 Dragon of Loowater [勇士斗恶龙 双数组排序 贪心]
  6. BZOJ 1821 JSOI2010 部落划分 Group prim
  7. 在ASP.Net2.0中使用UrlRewritingNet实现链接重写
  8. PHP Socket 编程详解
  9. Hdu 1010 Tempter of the Bone 分类: Translation Mode 2014-08-04 16:11 82人阅读 评论(0) 收藏
  10. .gitignore 文件列表
  11. cmd find命令
  12. jQuery获取鼠标移动方向
  13. iOS 使用 FFmpeg
  14. Elasticsearch教程之基础概念
  15. Nginx (三) 使用Keepalived搭建高可用服务
  16. [Swift]LeetCode953. 验证外星语词典 | Verifying an Alien Dictionary
  17. 转 关于Https协议中的ssl加密解密流程
  18. AI工具(星形工具)(光晕工具)(移动复制)(柜子绘制)5.12
  19. 运行vue项目--安装vue脚手架vue cli
  20. CentOS7环境RabbitMQ集群配置管理

热门文章

  1. 深入学习golang中new与make区别
  2. koa 项目实战(十)使用 validator 验证表单
  3. LC 957. Prison Cells After N Days
  4. Jmeter接口上传文件
  5. 分布式存储ceph--添加/删除osd(5)
  6. flask(1.1)装饰器装饰多个视图函数出现的问题
  7. MySQL知识点系统总结
  8. FUZZ测试简介
  9. 【VS开发】uafxcwd.lib(afxmem.obj) : error LNK2005: 已经在 LIBCMTD.lib(new.obj) 中定义错误解决方案
  10. 深入理解C语言-二级指针三种内存模型