再实际测试时候没有发现问题

时间:2022-01-22 08:16:50

对付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什么的

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

根基就是这些  欢迎大神增补

浅谈快速开发框架的分层(WinForm)