当前位置: 首页 > news >正文

自已写的框架拿出来等人来拍转 (序)

  在这里也混了几年了也算是个老潜水员了都是看别人的东西都没分享和讨论过什么..最近突然想写点东西就把我自已做的一个小框架在这也也弄个系列玩玩..这个框架的查询方试是看到别人的的一个框架很不错借鉴来的.不过我不知道那个作者是谁不过还是要感谢他让我在做项目时少打了很多代码.. 工作有个几年经验的程序员多多少少都做过类似的东西了.但使用了别人做的那些强大的框架后就没兴趣在继续做自已的东西了...(之前也是写过JS的框架但是JQ太强了彻底把我秒掉了).现在开始写写.NET的框架.有几个项目还在使用着...还不算太惨没有白写..框架名RJ.(自已取的以下就只说RJ)因为还在一直开发中..所以先说1.0和2.0.已经在项目中使用的是1.0.经过多次的测试和项目当中的使用也算是无BUG了.至少可以正常使用...2.0呢改了很多所以不敢说无BUG.目前还在测试中所以暂不放出源码(怕被骂).在测试通过后会在这系列后面把源码放出(如果有人喜欢如果没有人喜欢这个系列也就没后面了- -!)

  好了废话不多说了先上几张与强大的框架(LINQ)的性能上的对比.(表结构9个字段246797条数据)2011030913201648.jpg

先用普通的SQL语句测试(我是不喜欢在代码中出现那些红色的字符串.当然在正式项目中是不会出现那些的现在只是测式) 大家可以看到.这一次查询一次查询出246797条数据Linq与RJ的性能相差不多几乎是一样的.但是在正式的项目中谁会一下子取那么多条数据出来..也就是几十上百条.好了现在看下图.现在只查询 TOP 500条数据2011030913211545.jpg
从上图中可看出RJ查询越少的数据时性能高了Linq几了倍.如果是普通使用10条一页20条一页常见分页性能更是超过10倍以上.想想还是有点优势的不是一无是处的..
在放上一张普通的DATASET查询的图
上面是查询246797条数据 下面是500条数据
2011030913212993.jpg
从性能上来说还是过的去的..现在说下这个RJ有些什么功能吧...先说说操作数据库的吧


  
// 其实都差不多的PeID 是主键自增
// 增加
// 添加的第一种写发
RJ.Model.ProductExtended productExtended = new RJ.Model.ProductExtended()
{
AttriAvoirdupois
= 0 ,
AttributeID
= 0 ,
AttributePrice
= 0 ,
AttributeValue
= " 添加一个 " ,
ProductCode
= " 1111111111111 " ,
ProductID
= 1 ,
ProductShortName
= " 新的 " ,
WebSiteID
= 0
};
productExtended.Insert();
// 添加的第二种写发
db.Insert( new RJ.Model.ProductExtended()
{
AttriAvoirdupois
= 0 ,
AttributeID
= 0 ,
AttributePrice
= 0 ,
AttributeValue
= " 添加一个 " ,
ProductCode
= " 1111111111111 " ,
ProductID
= 1 ,
ProductShortName
= " 新的 " ,
WebSiteID
= 0
});

// 第三种写法
db.Insert(RJ.DModel.ProductExtended.InsertSqlSection.AddColumn(
RJ.DModel.ProductExtended.ProductShortName,
" 新的 " ,
RJ.DModel.ProductExtended.ProductCode,
" 1111111111111 " ));



// 更新也差不多
// 第一种写发
RJ.Model.ProductExtended productExtended2 = new RJ.Model.ProductExtended()
{
AttriAvoirdupois
= 0 ,
AttributeID
= 0 ,
AttributePrice
= 0 ,
AttributeValue
= " 添加一个 " ,
PeID
= 0 ,
ProductCode
= " 1111111111111 " ,
ProductID
= 1 ,
ProductShortName
= " 新的 " ,
WebSiteID
= 0
};
productExtended2.Update();
// 更新的第二种写发
db.Update( new RJ.Model.ProductExtended()
{
AttriAvoirdupois
= 0 ,
AttributeID
= 0 ,
AttributePrice
= 0 ,
AttributeValue
= " 添加一个 " ,
PeID
= 0 ,
ProductCode
= " 1111111111111 " ,
ProductID
= 1 ,
ProductShortName
= " 新的 " ,
WebSiteID
= 0
});

// 第三种写法
db.Update(RJ.DModel.ProductExtended.UpdateSqlSection.AddColumn(
RJ.DModel.ProductExtended.ProductShortName,
" 新的 " ,
RJ.DModel.ProductExtended.ProductCode,
" 1111111111111 " )
.Where(RJ.DModel.ProductExtended.PeID
== 1 ));



// 删除也差不多
// 第一种写发
RJ.Model.ProductExtended productExtended3 = new RJ.Model.ProductExtended()
{
PeID
= 1 ,
};
productExtended3.Delete();
// 删除的第二种写发
db.Delete( new RJ.Model.ProductExtended()
{
PeID
= 1
});

// 第三种写法
db.Delete(RJ.DModel.ProductExtended.DeleteSqlSection
.Where(RJ.DModel.ProductExtended.PeID
== 1 ));

当然这只是简单的..加上重载后的数据库操作的方法就有几百个(具体没数)
还有包括批量添加,修改,删除.存储过程 事务 缓存 异步 等很多功能...
使用方法都很简单..我的原则:一切从简.
当然还有最重要的这个框架所使用的自动生成代码的工具.没有谁喜欢打那些枯燥的代码.
以上只是数据库那块的东西........当然RJ中还有从网络上收集来的各种常用的东西...等等.这后在说吧东西比较多.
欢迎拍转O(∩_∩)O~很想跟也喜欢自已写这东东的人多多讨论然后让我以后打代码更加轻松.打更少的代码做更多的事..呵呵

1.0下载 

转载于:https://www.cnblogs.com/MyRJ/archive/2011/03/09/1978240.html

相关文章:

  • 电商做促销活动的要考虑到的
  • IIS6升级到IIS7后,UrlRewriting提示404,AJAX会提示未声明SYS错误
  • Qt widgets
  • 安装IIS步骤图解
  • centos6.5安装LNMP
  • CISCO 技术大集合
  • 如何删除oracle的用户连接
  • SQL查询主键
  • Makefile编写 五 隐含规则
  • 解决错误“PHP has encountered an Access Violation at 01551077”
  • Qstring
  • Eclipse中的项目删除
  • mysql5.1,5.5,5.6做partition时支持的函数
  • 一个优秀的系统集成工程师应具备哪些技能
  • 关于王道论坛在UCWEB中打开的问题
  • [iOS]Core Data浅析一 -- 启用Core Data
  • 《深入 React 技术栈》
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • Android交互
  • C++类的相互关联
  • CSS 专业技巧
  • css属性的继承、初识值、计算值、当前值、应用值
  • Electron入门介绍
  • express如何解决request entity too large问题
  • PV统计优化设计
  • SpringCloud集成分布式事务LCN (一)
  • vue中实现单选
  • 编写符合Python风格的对象
  • 当SetTimeout遇到了字符串
  • 记一次用 NodeJs 实现模拟登录的思路
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 责任链模式的两种实现
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • # 数论-逆元
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • (1)常见O(n^2)排序算法解析
  • (C)一些题4
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (强烈推荐)移动端音视频从零到上手(上)
  • (三)模仿学习-Action数据的模仿
  • (四) 虚拟摄像头vivi体验
  • (算法)N皇后问题
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (转)linux 命令大全
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • .apk 成为历史!
  • .NET 8.0 发布到 IIS
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .Net mvc总结