对于B/S都是MVC好不好 不多说了,反正大家都这么用

这里简单说下C/S

首先常用的几种:

  • 模仿B/S的MVC  也有人称之为 MVP
  • 还有MVVM这种真心觉得够够的了,当然也有其优势所在,这里不讨论孰优孰劣
  • 。。。好吧刚吃过早饭脑子不想动,想不起来了,欢迎大神补充

分层的目的是为了实现高内聚低耦合,而我嘛就是想让代码好看一点……

如何分层才能够比较快速地开发呢?好吧似乎两者根本没有任何关系

没有吗?有吗?

可以说没有,但实际上应该是多多少少有点的(咋感觉像莫须有的赶脚)

以我的MyRapid为例,说下我的分层

首先是WCF实现C/S分离,有人把C/S分开也算一种分层(呵呵)

这里要涉及到分层了,有的人在服务端分层,WCF作为Control 下面可能有BLL, BLL再下面还有一个DAL,这种情况个人认为就会影响开发速度了,团队里面多个人同时在修改服务层,没经历过真心不知道有多痛苦,小心不能再小心了,每次修改一定要先更新到最新的,还要吆喝一下我改了哪个,有修改过的抓紧上传,要不该冲突了

所以说分层还是和开发效率有关系的……

我的解决方案是WCF写死,不动,WCF只有2个方法,读、写,最近增加了一个执行,其实用读也可以实现,读就是执行Sql并且返回数据表,写就是执行但是不返回(也可以返回int),执行就是执行后不管了,有点异步的意思(整体感觉有点SqlHelper再次封装的意思)

那么需要考虑的就是读写的参数问题了

这个时候先来一个前端UI,下面跟一个BLL,在下面一个DAL,DAL调用的不再是SqlHelper而是WCF(WCF数据源是不是就是这个思路?没深入了解,嘿嘿)

这样在一定程度上解决了团队开发的版本冲突问题,当然也存在了业务逻辑暴露的危险,必定BLL、DAL都放在了  客户端,在一定程度上牺牲了安全性,至于解决方案以后再说

再来说下DAL的优化,BLL个人没有发现优化的可能,倒是发现不少毫无疑义的转接,前面调用一个GET()  到了BLL   BLL啥也不干直接调DAL的GET()   也有优化空间,不过都是代码生成器,实际上没什么优化价值

直接说DAL的优化,DAL说白了就是传Sql语句的,现在用EF的话都不怎么需要了,我的框架没有用EF所以还是要说下(关于EF的优缺点欢迎百度,不多说了)

首先Sql的参数,有人喜欢拼接字符串,我是强烈反对的,参数化查询的优点可以直接百度

如果使用参数化查询这里涉及到一个空参数的问题,我的解决方案是

WHERE 1 = 1

AND ISNULL(A.Page_Name,'') LIKE '%'+ ISNULL(@cPage_Name,ISNULL(A.Page_Name,'')) +'%'

可以看出如果是空的化会过滤掉,当然缺点也是有的,就是会多过滤一次筛选   可能会导致查询速度下降,再实际测试时候没有发现问题,上百万级时没试过(待会试试)

代码也更好看了   再VS里面是红彤彤的一大块  没有  sb.Append什么的

然后就可以将实体用反射传参过来了

基本就是这些  欢迎大神补充

最新文章

  1. JS实现返回对象的详细信息
  2. ReactiveCocoa源码拆分解析(六)
  3. HTTP参数中Etag的重要性
  4. Digital root(数根)
  5. Android 中 SQLite 数据库的查看
  6. linux文本操作界面 vi面板如何复制一行
  7. View获取焦点
  8. Python之三层菜单
  9. python(abi) RPM DEB Download
  10. Angularjs,WebAPI 搭建一个简易权限管理系统
  11. Github+Hexo搭建静态博客
  12. java模拟一个抽奖程序
  13. thinkphp5使用PHPExcel导入Excel数据
  14. 「汇编」加深理解段地址*10H(*16)必须是16的倍数
  15. 点云格式-pcd
  16. 尚硅谷Oracle教程-学习笔记2
  17. Golang中下划线的使用
  18. 【python基础】sys
  19. python多态和鸭子类型
  20. ElasticStack系列之十六 & ElasticSearch5.x index/create 和 update 源码分析

热门文章

  1. ROS命令
  2. Loadrunner检查点使用总结
  3. 开源的JavaScript插件化框架MinimaJS
  4. [oracle 使用(2)] Oracle的简单使用
  5. 【20171025晚】alert(1) to win 第五题 正则表达式过滤
  6. js接收html传值
  7. expected single matching bean but found 2
  8. Windows 编程,程序编译使用的命令行工具。
  9. 网络基础三 ARP 地址分类 NAT技术
  10. 【DG】利用闪回数据库(flashback)修复Failover后的DG环境