搭建自己的框架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 游戏框架搭建 (六) 关于框架的一些好文和一些思考
在进行项目架构阶段,游戏框架可以解决一部分问题.剩下的架构问题还需要根据不同的项目解决.总之游戏框架是游戏架构的一部分. 关于锤子和钉子: 最近又拿起了<代码大全>和<暗时间 ...
随机推荐
- C++ UFT-8和GB2312间的转换
在这个帖子找到的代码 还蛮好用的 https://bbs.csdn.net/topics/391040755 #include <codecvt> #include <locale& ...
- Android中代码优化
两个基本准则: 1.不要做冗余的工作 2.尽量避免次数过多的内存分配操作 Handler和内部类的正确使用 正确使用Context 正确使用Java四种引用方式:软引用,弱引用,虚引用,强引用 避免创 ...
- 利用phpStudy 探针 提权网站服务器
声明: 本教程仅仅是演示管理员安全意识不强,存在弱口令情况.网站被非法入侵的演示,请勿用于恶意用途! 今天看到论坛有人发布了一个通过这phpStudy 探针 关键字搜索检索提权网址服务器,这个挺简单的 ...
- 消息队列 RabbitMQ 入门介绍
来源:http://ityen.com/archives/578 一.什么是RabbitMQ? RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系 ...
- NFS PersistentVolume(8)
一.部署nfs服务端: k8s-master 节点上搭建了 NFS 服务器 (1)安装nfs服务: yum install -y nfs-utils rpcbind vim /etc/exports ...
- Cloudera Manager 常见异常
1. Cloudera Management Service服务全部无法启动 观察到的现象: (1)cm service 组件无法启动,启动时服务请求超时终止:(2)主机信息也无法获取到,一直提示“无 ...
- springboot和jsp,以及引入jquery
包: src: main: java: resources: static: templates: test: 2.在static导入jquery源文件,在templates写入jsp文件 3.配置文 ...
- 九大内置对象 and HTTP略微的个人见解
jsp 中九大内置对象: 请求对象:request 输出对象:out 响应对象:response 应用程序对象:application 会话对象:sess ...
- mapreduce案例:获取PI的值
mapreduce案例:获取PI的值 * content:核心思想是向以(0,0),(0,1),(1,0),(1,1)为顶点的正方形中投掷随机点. * 统计(0.5,0.5)为圆心的单位圆中落点占总落 ...
- dfs -cogs 5 P服务点设置
题目链接:http://cogs.pro:8081/cogs/problem/problem.php?pid=FSXJmiJSg 问题描述为了进一步普及九年义务教育,政府要在某乡镇建立P所希望小学 ...