Asp.Net MVC +EF CodeFirst+多层程序设计
1.概述
这是一个基于个人博客的一个项目,虽然博客根本没必要做这么复杂的设计。但是公司有需求,所以先自己弄个项目练练手。项目需要满足下列需求
1.层与层之间需要解耦,在后期上线更新维护时不需要覆盖,只需要更新局部dll即可,也就是插件机制
2.代码安全性,公司有找外包公司要些人,但是又不想让他们得到所有代码,就需要利用接口来规范开发。
3.一开始没有完整的需求说明和数据库设计文档。我们是轻文档开发,也就是说在没有完全上线之前需求随时可能更改,而且数据库一开始也没有设计好,而是开发一点添加一点,也随时会更换需求。
为了保证以上要点,我们就需要搭建一个非常具有灵活性的系统,对一个刚刚开始参加.net开发工作的我来说却是具有很大挑战性,虽然之前也有受过高人指点。
2.程序设计

在程序设计时,我考虑到以上需求,我大致分了一下这些层。
1.实体模型层:CodeFirst实体对象
2.数据访问层:DBContext对象,其实在我接触EF之后就对数据访问层的概念就不太一样了,我现在都觉得数据访问层都没什么太大必要。因为不需要写Sql语句了,都是lambda表达式。这是我一个疑问,大家可以一起讨论下
3.数据库访问接口层:规范数据库访问层
4.数据库访问层工厂:这里我可以通过反射来反射出数据访问层的实例
5.业务逻辑层:业务逻辑代码
6.业务逻辑接口:规范业务逻辑
7.业务逻辑工厂:反射业务逻辑实例
8.MVC:前台展示
1.通过上面我们可以发现,层与层之间是解耦了,比如说我按照某个层的接口规范写好了一个dll,然后更新好服务器,无需将整个项目编译,也无需将整个项目重新覆盖,只需要修改下反射的配置文件即可,也不会影响到网站的正常运行,这才是我要的效果。
2.接口规范些好后,也无需编码人员将整个项目都拿到手,只要自己按照接口规范写好代码,放到测试环境中一测试就OK了。这样对于保证公司代码安全性还是有一定作用的。
3.通过CodeFirst我们可以比较轻松的更换需求,而且也不用一开始就把所有需求罗列出来,然后设计数据库,我们可以一边做功能的时候一边来增加表。
以上思路应该比较适合大众化,中小项目按照这样的设计应该没什么问题。大家如果有什么好的建议或者发现有什么不对的地方,还请提出来,以免误导了他人。
Email:luozhiqiang@cidtech.cn
Asp.Net MVC +EF CodeFirst+多层程序设计的更多相关文章
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(2)-数据库访问层的设计Demo
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(2)-数据库访问层的设计Demo ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1)框架搭建 前言:这 ...
- [转帖]Asp.Net MVC EF各版本区别
Asp.Net MVC EF各版本区别 https://www.cnblogs.com/liangxiaofeng/p/5840754.html 2009年發行ASP.NET MVC 1.0版 201 ...
- C# 动态生成word文档 [C#学习笔记3]关于Main(string[ ] args)中args命令行参数 实现DataTables搜索框查询结果高亮显示 二维码神器QRCoder Asp.net MVC 中 CodeFirst 开发模式实例
C# 动态生成word文档 本文以一个简单的小例子,简述利用C#语言开发word表格相关的知识,仅供学习分享使用,如有不足之处,还请指正. 在工程中引用word的动态库 在项目中,点击项目名称右键-- ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(24)-权限组的设计和实现(附源码)(终结)
ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架搭建 (2):数据库访问层的设计Demo (3):面向接口编程 (4 ):业务逻辑层的封装 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(23)-设置角色遗留问题和为权限设置角色以及EasyUI Tabs的使用
ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架搭建 (2):数据库访问层的设计Demo (3):面向接口编程 (4 ):业务逻辑层的封装 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(22)-为用户设置角色
ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架搭建 (2):数据库访问层的设计Demo (3):面向接口编程 (4 ):业务逻辑层的封装 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列
http://www.cnblogs.com/hanyinglong/archive/2013/03/22/2976478.html ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开 ...
- ASP.NET MVC + EF 利用存储过程读取大数据,1亿数据测试很OK
看到本文的标题,相信你会忍不住进来看看! 没错,本文要讲的就是这个重量级的东西,这个不仅仅支持单表查询,更能支持连接查询, 加入一个表10W数据,另一个表也是10万数据,当你用linq建立一个连接查询 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(21)-用户角色权限基本的实现说明
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(21)-用户角色权限基本的实现说明 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框 ...
随机推荐
- [转]精选!15个必备的VSCode插件
Visual Studio Code 是由微软开发的一款免费.跨平台的文本编辑器.由于其卓越的性能和丰富的功能,它很快就受到了大家的喜爱. 就像大多数 IDE 一样,VSCode 也有一个扩展和主题市 ...
- C++ Primer Plus学习:第六章
C++入门第六章:分支语句和逻辑运算符 if语句 语法: if (test-condition) statement if else语句 if (test-condition) statement1 ...
- 2nd 简单四则运算更新
简单四则运算更新 功能:由随机数决定出题为10个以内的数字,并确定是否出现括号(仅限一对),顺序输出表达式,并用栈的方式进行计算,判断正误.其他功能有待进一步实现. 头文件 #include < ...
- 【BioCode】将多个蛋白质序列分成单个的txt文档
代码说明: fasta格式的蛋白质序列,一个txt里面有很多蛋白质序列,计算ss.pssm或disorder score时候都需要单条计算,需要分开. 分割前: 分割后: show you the c ...
- 【beta】视频预发布
beta阶段视频发布地址: 秒拍: http://www.miaopai.com/show/Ivh31LgnAuWELxboH6gl7g__.htm
- Mac 常用快捷键整理
Mac下常用的快捷键: Command+W 将当前窗口关闭(可以关闭Safari标签栏,很实用) Command+Option+M 将所有窗口最小化 Command+Q 关闭当前应用程序(相当于Doc ...
- UVA11653_Buses
这个题目很有意思,一不小心就会让人坑在里面. 题意是这样的,给你n,k,l.分别表示总共的长度,长度为5和10的车的不同颜色数量现在问你要把n的填满有多少种方案. 很多人一开始都会脑子一根筋地想用排列 ...
- 【JavaScript】checkBox的多选行<tr>信息获取
页面的列表table显示(后台model.addAttribute("page", page);传来page信息,page通过foreach标签迭代展示表格数据): <!-- ...
- BZOJ3714 PA2014Kuglarz(最小生成树)
每次询问所获得的可以看做是两个前缀和的异或.我们只要知道任意前缀和的异或就可以得到答案了.并且显然地,如果知道了a和b的异或及a和c的异或,也就知道了b和c的异或.所以一次询问可以看做是在两点间连边, ...
- 简单配置AAA认证与telnet图解
不罗嗦,直接上图