对于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)的更多相关文章

  1. 力软信息化系统快速开发框架 web端+winform端

    力软信息化系统快速开发框架是一套集权限管理+快速开发+动态接口+通用组件+动态UI于一体的全新.net信息化快速开发框架.力软信息化系统快速开发框架的使用,大大地缩短了开发周期,提高了软件质量,同时也 ...

  2. ASP.NET快速开发框架不得不做的几个功能、高大上档次后台管理UI界面

    俗话说磨刀不误砍柴工,确实,一早上花一个小时去磨刀一天下来肯定能多砍很多柴.我们做软件开发也是同样的道理,有套好开发框架在手里,开发也是事半功倍.那么一套MVC快速开发框架至少得具有哪些功能才能帮我们 ...

  3. c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程

    c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings n ...

  4. ABP开发框架前后端开发系列---(14)基于Winform的ABP快速开发框架

    前面介绍了很多ABP系列的文章,一步一步的把我们日常开发中涉及到的Web API服务构建.登录日志和操作审计日志.字典管理模块.省份城市的信息维护.权限管理模块中的组织机构.用户.角色.权限.菜单等内 ...

  5. [技术]浅谈OI中矩阵快速幂的用法

    前言 矩阵是高等代数学中的常见工具,也常见于统计分析等应用数学学科中,矩阵的运算是数值分析领域的重要问题. 基本介绍 (该部分为入门向,非入门选手可以跳过) 由 m行n列元素排列成的矩形阵列.矩阵里的 ...

  6. 简单说下 Winform 的分页快速开发框架必须要实现的几个功能之一

    简单说下 Winform 的分页快速开发框架必须要实现的几个功能之一 分页非为前端分页  和 后端分页,前端分页只有适用于B/S,B/S的呈现速度远远不如C/S,而C/S则没有这个问题,所以分页必然是 ...

  7. 浅谈范德蒙德(Vandermonde)方阵的逆矩阵的求法以及快速傅里叶变换(FFT)中IDFT的原理

    浅谈范德蒙德(Vandermonde)方阵的逆矩阵与拉格朗日(Lagrange)插值的关系以及快速傅里叶变换(FFT)中IDFT的原理 标签: 行列式 矩阵 线性代数 FFT 拉格朗日插值 只要稍微看 ...

  8. Java线上问题排查神器Arthas快速上手与原理浅谈

    前言 当你兴冲冲地开始运行自己的Java项目时,你是否遇到过如下问题: 程序在稳定运行了,可是实现的功能点了没反应. 为了修复Bug而上线的新版本,上线后发现Bug依然在,却想不通哪里有问题? 想到可 ...

  9. Winform 快速开发框架,上位机开发,工控机程序开发,CS程序开发

    1.当客户让你做个CS程序时,当你手上一穷二白,所有都要重复造轮,你是不是很烦. 2.但如果有一个通用的,快速开发框架,就可以把你从这些基础的工作解救出来,你专注做业务就好了. 3.本人其中一个项目的 ...

随机推荐

  1. 通过xrdp服务实现windows远程桌面连接树莓派

    如题:通过xrdp服务实现windows远程桌面连接树莓派 受同学影响,最近接触到了树莓派,又加上自己技痒想试一下这个小东西究竟能做什么,所以开始了树莓派学习之旅. 正题开始-xrdp实现window ...

  2. UVa12563- Jin Ge Jin Qu hao

    思路一定要清晰! /* * Author: Bingo * Created Time: 2014/12/25 3:45:35 * File Name: uva12563.cpp */ #include ...

  3. Python练习----购物车

    要求: 1.启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 4.可随时 ...

  4. hibernate和mybatis区别

    看图    Hibernate mybatis 难易度 难 简单,容易上手 编码 良好的映射机制,不需要关心 需要手动编写sql,resultMap 调优 制定合理的缓存策略: 尽量使用延迟加载特性: ...

  5. 媲美jQuery的JS框架----AngularJS(二)

    前言 对于AngularJS什么,小编在这就不多做介绍了.大家可以看小编的上一篇博客. 言归正传,小编在上一篇博客中介绍了AngularJS中的指令.表达式还有非常实用的三种服务.接下来,带大家看一看 ...

  6. maven 集成tomcat6,tomcat7

    1. maven 集成 tomcat6的配置 maven自带的是tomcat6插件,所以不配置的话也可以,默认tomcat6,8080端口,需要更改端口或者编码方式等,也可以自己再配置一次: < ...

  7. python的小基础

    变量python中的变量为指向常量的地址当常量没有指向时,系统自动回收内存空间如A = 1B = AA = 2print(A,B)#2,1id(A),id(B)id()为python虚拟机的虚拟地址, ...

  8. Shell中bash的特性小结

    Shell: 用户与操作系统之间完成交互式操作的一个接口程序,为用户提供简化了的操作:上世纪的70年代中期在贝尔实验室,Bourne位Unix开发了一个shell程序Bourne Shell,简称sh ...

  9. sklearn中各算法类的fit,fit_transform和transform函数

    在使用PCA和NFC中有三个函数fit,fit_transform,transform区分不清各自的功能.通过测试,勉强了解各自的不同,在这里做一些笔记. 1.fit_transform是fit和tr ...

  10. C++求出旋转数组的最小数字

    今天遇到这么一道题目,感觉很有意思,要记下来! 题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4 ...