CYQ.Data 轻量数据层之路 V2.0 震撼惊世 支持多数据库/内置Aop(二十五)

所有文章索引:CYQ.Data 轻量数据层之路 框架开源系列 索引

 

前言:

从V1.5发布到现在时隔20天了,终于发布2.0版本了,2.0系列版本由于引入多数据库支持,内部结构改动较大。
但是外面调用方式仍保持一致向下兼容,因此若从原来V1.N版本升级到2.N版本,只需要轻轻更换CYQ.Data.DLL即可,界面代码不需要改变。

 

疑问

最近26号才刚发布了V1.5.5,怎么才3天又发布了2.0版本?就这么点时间改动就很大,那不是很不稳定?

解疑:

V1.5.5版本是拿V1.5版本的源码直接修改的,只是在原来的基本上修正一些sql2000下的应用bug。
实际发布V1.5.5的时候,V2.0已经发布很久了,只是一直做为抢先体验版本存在。

 

版本升级内容

复制代码
1:增加支持Access/Oracle数据库,因此目前支持数据为:sql 2000/sql 2005/access/oracle。

2:内置Aop,可以分离权限/操作日志/异常/或者其它sql执行统计等模块进行独立开发。

3:MDataTable 增加2个附属方法:Bind(控件名称)及ToJson();
 
4:MAction 刚新增加调试信息输出属性:DebugInfo
复制代码

 

 

一:目前配置文件配置选项

1:默认数据库链接[必选]:

复制代码
ExpandedBlockStart.gif
<add name="Conn" connectionString="数据库链接字符串" providerName="最好写上,不写则从链接字符串里取关键字做分支"/>

providerName选项:
sql 2000/sql 2005:System.Data.SqlClient
access:System.Data.OleDb
oracle:System.Data.OracleClient
复制代码

 

2:开启异常日志表配置[可选]:

ExpandedBlockStart.gif
appSettings节点:<add key="IsWriteLog" value="true"/> 
说明:如果不配置此节点,V1.5版本及以上会默认抛出异常。配置为true后,有异常不抛出。
connectionStrings节点:
<add name="LogConn" connectionString="Conn"/>
说明:如果日志表和Conn默认是同个数据库,可采取共享链接的写法。

 

3:开启Aop功能配置[可选]:

appSettings节点:<add key="Aop" value="CYQ.Data.Test,CYQ.Data.Test.MyAop"/>
说明:CYQ.Data.Test为程序集名称;CYQ.Data.Test.MyAop为带完整名称空间的类名

 

4:配置Oracle自增序列名称[可选]:

appSettings节点:<add key="AutoID" value="MyAutoID"/>
说明:默认序列名称为:AutoID

 

二:using语法使用说明

 

有些网友对using语法情有独钟,这里我说明一下相关的使用:

 

1:using语法简单说明

using(MAction action=new MAction("表")){业务处理} 等同于=> try{ 业务处理} finally{if(action!=null){action.Disponse();}}

 

2:using语法注意点

首先我们要知道,对于using语法,是在业务处理完的最后,才执行Disponse()方法。
因此,如果你的业务处理时间很长,而这些很长的处理逻辑可能跟数据库已没有关系,比如查出数据,然后要根据查出的数据做出很多业务逻辑处理。
那么这种情况下使用using,大括号在哪里结束,就得讲究一下,虽然不影响大局,毕竟滥用也不好。

 

3:MDataTable 新方法Bind语法演示using:

using (MAction action = new MAction(TableNames.Users))
{
   action.Select().Bind(rptList);
}

几点说明:

1:Select方法查询查询不到数据时,不再返回null,而是返回new MDataTable()的实例。
2:由于保证了Select不会返回null,因此可以使用其Bind方法来直接绑定rptList控件
3:Bind方法支持的控件类型有:GridView/Repeater/DataList/DataGrid/DataGridView

 

三:枚举生成器V2.0版本发布

这里上一张截图,增加支持Access/Oracle生成枚举。

 

截图如下:

 

 四:框架及最近辅助工具下载地址

详见:CYQ.Data 轻量数据层之路 bug反馈、优化建议、最新框架下载

 

结言:

使用本框架进行开发,入门简单,开发效率高,性能优越,更有详尽的API文档,有相关的使用帮助文章、示例文章、更甚有相关的视频教程及辅助工具。

关键还是免费与开源,实在是居家旅行、项目开发、学习研究的必备良品!!!!!!

 

附言:

复制代码
ExpandedBlockStart.gif
别犹豫了,从你看到此框架的瞬间,加入使用的大军吧,从开始到学会,口述教的话也就仅5分钟,看视频教程,也就10分钟,看文章,顶多就半个多小时。

速学速用:

如果你是学生:用它来开发作品,不仅能提升个人经验值,对将来找工作也是大有帮助。

如果你是企业:用它来开发公司项目,即提高员工开发效率,更能统一开发风格,就算员工流动,新人进来,口述几分钟,也能迅速接手了解整体架构。

如果你是初级开发者:老板整天压着工期,逼着你快速开发交付产品,自己手头写框架又能力用限,网上的其它框架又大又多又难学又难用,咋整?用上此框架,烦脑不再用。

如果你是中级开发者:正在提升阶段,试图自己研发框架,下载源码研究吧,多一份思想也不是什么坏事,还可以进群进行相关讨论,互相提升。

如果你......
复制代码

 

 

最后:祝大家用的放心,用的省心,用的开心,你的鼓励是我最大的动力。

 

 

版权声明:本文原创发表于博客园,作者为路过秋天,原文链接:

http://www.cnblogs.com/cyq1162/archive/2010/09/30/1839336.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/258058.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab 捕食者和猎物,MATLAB - 追求曲线(捕食者/猎物)

在我的工程课上&#xff0c;我们编写了一个“非平凡的”捕食者/猎物追捕问题。以下是情况的要点&#xff1a;有一个猎物试图逃脱捕食者。每个都可以建模为可以在MATLAB中制作动画的粒子(我们必须使用这种编码语言)。猎物&#xff1a;可以比捕食者更容易操纵(转弯)捕食者&#x…

SQL Server 2012安装图解

方法/步骤 在资源管理器中双击SQL Server 2012的安装光盘&#xff0c;此时会出现一个安装窗口&#xff0c;在左侧的界面中点击“安装”选项卡&#xff0c;如图所示。然后点击右边的第一项“全新SQL Server 独立安装...”选项。 点击“下一步”按钮继续下一步安装。耐心等待片刻…

C#中读写INI文件

INI文件就是扩展名为“ini”的文件。在Windows系统中&#xff0c;INI文件是很多&#xff0c;最重要的就是“System.ini”、“System32.ini”和“Win.ini”。该文件主要存放用户所做的选择以及系统的各种参数。用户可以通过修改INI文件&#xff0c;来改变应用程序和系统的很多配…

html5响应式设置meta

1 <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <!--放大页面到设备合适的分辨率--> 若不支持&#xff0c;请使用兼容ie的js 1 <!--[if lt IE 9]> 2 <script src"http://css3-mediaqueries-js.goo…

jmap在ubuntu上DebuggerException: Can't attach to the process

解决&#xff1a; 临时&#xff1a; 1.echo 0 >/proc/sys/kernel/yama/ptrace_scope 永久&#xff1a; 2.修改 /etc/sysctl.d/10-ptrace.conf&#xff0c;设置kernel.yama.ptrace_scope0 参考&#xff1a;http://bugs.java.com/bugdatabase/view_bug.do?bug_id7050524转载于…

C/C++中对链表操作的理解实例分析

链表概述   链表是一种常见的重要的数据结构。它是动态地进行存储分配的一种结构。它可以根据需要开辟内存单元。链表有一个“头指针”变量&#xff0c;以head表示&#xff0c;它存放一个地址。该地址指向一个元素。链表中每一个元素称为“结点”&#xff0c;每个结点都应包括…

idea写java spark程序,Spark : 在IDEA中用scala编写Spark的WordCount程序并提交运行

使用IDEA新建maven工程&#xff0c;添加相关依赖&#xff1a;1.81.82.11.112.3.02.7.7utf-8org.scala-langscala-library${scala.version}org.apache.sparkspark-core_2.11${spark.version}org.apache.hadoophadoop-client2.7.7给项目添加scala支持&#xff0c;新建Scala Objec…

Contest - 2014 SWJTU ACM 手速测试赛(2014.10.31)

题目列表&#xff1a; 2146 Problem A【手速】阔绰的Dim2147 Problem B【手速】颓废的Dim2148 Problem C【手速】我的滑板鞋2149 Problem D【手速】潦倒的Dim2150 Problem E【手速】被NTR的Dim2146 Problem A&#xff1a; 简单的最长回文串统计算法&#xff0c;这里没有过高要求…

利用Vagrant and VirtualBox搭建core os环境

利用Vagrant and VirtualBox搭建core os环境 系统环境 ubuntu 14.04 x64vagrant 1.7.4virtualbox 4.3.10git 1.9.1# 安装 virtualbox, git sudo apt-get install virtualbox, git# 软件中心的vagrant版本太低,因此去官网获取最新的软件包地址 wget https://releases.hashicorp.…

php关注 取消关注事件,微信公众平台开发关注/取消关注事件例子

用户在关注与取消关注公众号时&#xff0c;微信会把这个事件推送到开发者填写的URL。方便开发者给用户下发欢迎消息或者做帐号的解绑下面是一个微信公众平台关注和取消关注的实例:responseMsg();} else {$wechatObj->valid();}class wechatCallbackapiTest {public function…

DFS应用——遍历有向图+判断有向图是否有圈

【0】README 0.1&#xff09; 本文总结于 数据结构与算法分析&#xff0c; 源代码均为原创&#xff0c; 旨在 理解 “DFS应用——遍历有向图判断有向图是否有圈” 的idea 并用源代码加以实现 &#xff1b;0.2&#xff09; 判断有向图是否有圈的rule—— 一个有向图是无圈图当且…

AbleCloud智能行业解决方案助力体重秤企业向“中国智造”转变

近年来&#xff0c;体重秤消费群体的年龄层次与需求逐渐向多元化发展&#xff0c;品牌众多、竞争激烈的传统体重秤行业迎来了前所未有的挑战——智能体重秤成为行业发展的大趋势&#xff0c;功能单一、同质化严重已经成为阻碍传统体重秤企业成长的桎梏&#xff0c;打造出具备“…

javaScript事件(一)事件流

一、事件 事件是文档或者浏览器窗口中发生的&#xff0c;特定的交互瞬间。 事件是用户或浏览器自身执行的某种动作&#xff0c;如click,load和mouseover都是事件的名字。 事件是javaScript和DOM之间交互的桥梁。 你若触发&#xff0c;我便执行——事件发生&#xff0c;调用它的…

php输入对话框,如何使用JavaScript实现输入对话框

我们有时在网页上进行注册用户信息时会出现弹窗进行提示&#xff0c;你需要输入内容进行确认&#xff0c;那么&#xff0c;这样的输入对话框是怎么实现的呢&#xff1f;本篇文章就来介绍关于使用JavaScript实现输入对话框的方法。我们可以使用prompt显示输入对话框要在JavaScri…

软件缺陷的种类划分

按照软件缺陷的产生原因&#xff0c;可以将其划分为不同的缺陷类别&#xff1a; 1、功能不正常 简单地说就是所应提供的功能&#xff0c;在使用上并不符合产品设计规格说明书中规定的要求&#xff0c;或是根本无法使用。这个错误常常会发生在测试过程的初期和中期&#xff0c;有…

python——no module named XX

加PYTHONPATH吧&#xff0c;新建一个系统环境变量&#xff0c;把你的目录复制进去即可转载于:https://www.cnblogs.com/MarsMercury/p/4992629.html

CodeVS 1081 线段树练习 2

1081 线段树练习 2 时间限制: 1 s空间限制: 128000 KB题目等级 : 大师 Master题目描述 Description给你N个数&#xff0c;有两种操作 1&#xff1a;给区间[a,b]的所有数都增加X 2&#xff1a;询问第i个数是什么&#xff1f; 输入描述 Input Description第一行一个正整数n&#…

bzoj4144 [AMPPZ2014]Petrol 图论 最短路 并查集

bzoj4144 [AMPPZ2014]Petrol 图论 最短路 并查集 1、这道题我们主要就是要求出距离一个油站的最近的油站 首先我们dijkstra 求出任意一个点到 离他最近的油站的距离 2、然后会发现 如果一条边的两个端点 的最近油站不同的话 那么这条边就会在这两个油站的最短路上 3、然后对于…

python函数理解,python对函数的理解

函数函数可以提高编写代码效率、代码的重用、让程序更小、模块化可以将一段独立功能的代码集成在一个块中、封装独立功能# 函数定义(参数名为形式参数)def 函数名(参数名):函数体# 调用函数(享受封装的成功)函数名(实际参数)例&#xff1a;print函数print(sep,end) sep(元素中分…

06:空格分隔输出

描述 读入一个字符&#xff0c;一个整数&#xff0c;一个单精度浮点数&#xff0c;一个双精度浮点数&#xff0c;然后按顺序输出它们&#xff0c;并且要求在他们之间用一个空格分隔。输出浮点数时保留6位小数。 输入共有四行&#xff1a;第一行是一个字符&#xff1b;第二行是一…