搭建自己的框架WedeNet(一)
框架用到的技术: 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
搭建自己的框架WedeNet(一)的更多相关文章
- 搭建自己的框架WedeNet(五)
WedeNet2018.WedeWcfServices-WCF服务层:结构如下: 就是定义了服务契约接口和服务类,以OrderServices为例,如下: using System; using Sy ...
- 搭建自己的框架WedeNet(四)
WedeNet2018.Web-UI层:结构如下: 首先,在Controller中定义BaseController,以便加入统一处理逻辑,如下: using log4net; using System ...
- 搭建自己的框架WedeNet(三)
WedeNet2018.BussinessLogic-业务逻辑层:结构如下: 基类: using System; using System.Collections.Generic; using Sys ...
- 搭建自己的框架WedeNet(二)
WedeNet2018.Infrastructure-基础设施层:结构如下: Tools结构如下: 考虑到系统可能会有多个数据上下文(暂时以两个为例),所以根据需要定义两个T4模板用来生成对应的ent ...
- 从零开始学 Java - 搭建 Spring MVC 框架
没有什么比一个时代的没落更令人伤感的了 整个社会和人都在追求创新.进步.成长,没有人愿意停步不前,一个个老事物慢慢从我们生活中消失掉真的令人那么伤感么?或者说被取代?我想有些是的,但有些东西其实并不是 ...
- Xvfb+YSlow+ShowSlow搭建前端性能测试框架 - 前端技术 | TaoBaoUED
Xvfb+YSlow+ShowSlow搭建前端性能测试框架 - 前端技术 | TaoBaoUED Xvfb+YSlow+ShowSlow搭建前端性能测试框架 作者:黑三 | 时间:2010-07-07 ...
- Windows环境搭建Web自动化测试框架Watir
Windows环境搭建Web自动化测试框架Watir 一.前言 Web自动化测试一直是一个比较迫切的问题,对于现在web开发的敏捷开发,却没有相对应的敏捷测试,故开此主题,一边研究,一边将We ...
- 搭建App主流框架_纯代码搭建(OC)
转载自:http://my.oschina.net/hejunbinlan/blog/529778?fromerr=EmSuX7PR 搭建主流框架界面 源码地址在文章末尾 达成效果 效果图 注:本文部 ...
- Unity 游戏框架搭建 (六) 关于框架的一些好文和一些思考
在进行项目架构阶段,游戏框架可以解决一部分问题.剩下的架构问题还需要根据不同的项目解决.总之游戏框架是游戏架构的一部分. 关于锤子和钉子: 最近又拿起了<代码大全>和<暗时间 ...
随机推荐
- Windows Server 2012R2 部署 Domain Controller
1. Create a machine as Domain Controller; 2. Change DNS server address as 127.0.0.1; 3. Change Compu ...
- ECharts3D地图(详细示例——附有具体注释)
3D地图图表效果如下: 具体代码如下: <!DOCTYPE html><html><head> <meta charset="UTF-8" ...
- ubuntu下如何安装linaro工具链?
1. 获取工具链 从此处获取,如: wget https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/aarch64 ...
- 纯CSS,table的thead固定,tbody显示滚动条
以下代码,仅在谷歌下测试过 首先是html的table的代码: <table class="tablediv" id="myTable" border=& ...
- ssm整合用到的依赖jar包(不充足)
<!--spring 的核心的jar包--><dependency> <groupId>org.springframework</groupId> &l ...
- PO BAPI "BAPI_PO_CREATE1"
DATA: poheader LIKE bapimepoheader, poheaderx LIKE bapimepoheaderx, poitem LIKE ...
- spring-kafka —— 生产者消费者重要配置
一.生产者配置 # 以逗号分隔的主机:端口对列表,用于建立与Kafka群集的初始连接 spring.kafka.producer.bootstrap-servers=TopKafka1:9092,To ...
- SpringBoot: 7.整合jsp(转)
springboot内部对jsp的支持并不是特别理想,而springboot推荐的视图是Thymeleaf,对于java开发人员来说还是大多数人员喜欢使用jsp 1.创建maven项目,添加pom依赖 ...
- JS GZIP压缩
GZIP压缩,GZIP解压需要用到 pako.js 文件:下载地址:https://download.csdn.net/download/qq_35713752/10627338 使用方法: JS压缩 ...
- 【Linux】CentOS7.0安装jdk
JDK安装 设置hostname [root@bigdata111 ~]# vi /etc/hostname 设置机器hosts [root@bigdata111 ~]# vi /etc/hosts ...