Util最新代码更新说明

 

  离上一篇又过去了一个月,时间比较紧,后续估计会更紧,所以这次将放出更多公共操作类及配套的CodeSmith模板,本篇将简要介绍新放出的重要功能,供有兴趣的同学参考。

重要更新

  这一次对两个VS解决方案均做了大量调整,包含项目结构及命名空间。

  Util解决方案的目录截图如下。

  除了少数需要配置的集成测试外,大部分单元测试已放出。

  Applications项目示例的目录截图如下。

  Applications项目示例虽然包含的东西不多,却建了不少项目,可能并不符合你的胃口,我将在下一篇文章向你演示其它项目结构组织方式。

  CodeSmith代码生成项目的目录截图如下,这是生成前的模板,除了实体类、EF映射配置等常规代码外,我还按EASYUI的三种界面操作方式生成相关的CRUD界面,另外我也尝试生成一些测试代码,不过目前效果并不理想,大家可以先参考。

  02-Result目录为生成的代码。

  由于修改了项目命名空间规则,目前放出的模板命名空间有些错误,后续会进行修正。对于CodeSmith的使用,还没有学习过的同学可以先自行安装软件,我会在后续几天进行介绍。

  公共操作类方面,更新了随机数生成器Util.RandomBuilder,用于生成简单的随机测试数据。

  根据部分同学的建议,增加了Autofac和Ef的自动装配功能。

  单元测试模拟框架已从原先的RhinoMocks改成了NSubStitute

  最近封装了缓存模块的部分功能,主要参考蘑菇先生的《那些年我们一起追过的缓存写法》以及Jusfr.W的《一步步实现一个基本的缓存模块》,我画了简单的类图和顺序图来帮助理解,目前只实现了部分功能,后续会进行完善。

  为了防止缓存过期时有大量并发请求访问数据库,我使用了单元测试进行模拟,并封装了一个简单的并发模拟操作类。

  本次更新了对SqlBulkCopy的封装,EF元数据通过EntityFramework.Extended扩展获取,不过遗憾的是该扩展对元数据的支持并不够理想,不支持值对象,即ComplexType,我简单修改了下,目前仅支持一级,比如user.Address,传说EF7在元数据方面开放了很多东西,后续将直接在EF7上扩展。

  SqlBuilkCopy配合随机生成器,可以为简单的表快速创建测试数据,复杂的情况暂末测试。

  另一个重要更新是对SQL查询的支持,通过对Dapper的简单包装即可完成查询,该模块主要实现了对SQL Where条件的拼接,自动完成空值判断,同时支持分页,目前实现了Sql Server基于RowNumber和Offset两种分页方式,Offset是Sql Server 2012特有语法,分页效率比RowNumber有大幅提升,特别是点击分页最后几页时,效果尤其明显。

  EasyUi方面,更新了查找带回等功能。

  功能模块方面,更新了资源管理模块,资源管理模块尚未完成,也先放出来供大家参考。

  资源管理模块涉及图标选择,采用查找带回方式操作,效果图如下。

  注意,使用图标管理模块上传图标时,会自动更新相关的CSS文件,由于目前该文件是静态引用,所以上传的图标在图标选择界面中无法显示,请上传后Ctrl +R刷新,后续会将引用方式改成动态,每次上传成功都需要更新CSS文件引用。

  表现层引入了ValidateAntiForgeryToken特性,所有公共JS均已更新。

  本次更新大量类,有兴趣自己看看,不一一介绍了。

版权申明

  1. 本应用程序框架版权归作者何镇汐所有。

  2. 本框架代码可免费使用,允许用于商业目的。

  3. 如果您的开源项目中采用了本框架少量代码,不需要注明出处。

  4. 如果您的开源项目中采用了本框架大量代码,请注明出处。

  5. 严重鄙视某些人直接修改本框架命名空间后开源,本人保留追究法律责任的权利。

  6. 禁止直接销售本框架源码骗钱,本人保留追究法律责任的权利。

结束语

  本篇介绍了重要的更新内容,下一篇介绍VS解决方案的创建。

QQ群

  应用程序框架交流QQ群1:386092459(已满)

  应用程序框架交流QQ群2:376124781

  EasyUi交流QQ群:157809322

源码下载:(下载时顺手推荐)

框架源码:http://files.cnblogs.com/files/xiadao521/Framework.2015.5.20.1.rar

项目示例源码:http://files.cnblogs.com/files/xiadao521/Applications.2015.5.20.1.rar

数据库备份:http://files.cnblogs.com/files/xiadao521/Data.2015.5.20.1.rar

Codesmith生成器模板:http://files.cnblogs.com/files/xiadao521/CodeGenerator.2015.5.20.1.rar

版权所有,转载请注明出处 何镇汐的技术博客

Util的更多相关文章

  1. java.lang.NoSuchMethodError: org.apache.tomcat.util.res.StringManager.getManager(Ljava/lang/Class;)Lorg/apache/tomcat/util/res/StringManager

    问题: 使用Springboot打包为war部署于Tomcat7中报错 java.lang.NoSuchMethodError: org.apache.tomcat.util.res.StringMa ...

  2. 【转】java.util.Arrays.asList 的用法

    DK 1.4对java.util.Arrays.asList的定义,函数参数是Object[].所以,在1.4中asList()并不支持基本类型的数组作参数. JDK 1.5中,java.util.A ...

  3. Java程序日志:java.util.logging.Logger类

    一.Logger 的级别 比log4j的级别详细,全部定义在java.util.logging.Level里面.各级别按降序排列如下:SEVERE(最高值)WARNINGINFOCONFIGFINEF ...

  4. Android中使用java.util.Properties犯的错

    今天尝试使用java.util.Properties来保存应用配置,然而遇到了好几个问题,对于熟悉此内容的来说可能都是猪一样的错误,但难免有像我一样的新手再次遇到,希望此文能有所帮助. 错误1 jav ...

  5. java.util.ConcurrentModificationException 解决办法(转载)

    今天在项目的中有一个需求,需要在一个Set类型的集合中删除满足条件的对象,这时想当然地想到直接调用Set的remove(Object o)方法将指定的对象删除即可,测试代码:   public cla ...

  6. java util 下的concurrent包

    ------------------------------------------java util 下的concurrent包--------并发包--------------------.jav ...

  7. 原子类java.util.concurrent.atomic.*原理分析

    原子类java.util.concurrent.atomic.*原理分析 在并发编程下,原子操作类的应用可以说是无处不在的.为解决线程安全的读写提供了很大的便利. 原子类保证原子的两个关键的点就是:可 ...

  8. 错误:java.util.Map is an interface, and JAXB can't handle interfaces.

    问题: 在整合spring+cxf时报错java.util.Map is an interface, and JAXB can't handle interfaces. 解决方法: 将服务端的serv ...

  9. 解决springmvc报No converter found for return value of type: class java.util.ArrayList问题

    一.背景 最近闲来无事,想自己搭建一套Spring+SpringMVC+Mybatis+Mysql的环境(搭建步骤会在以后博客中给出),结果运行程序时,适用@ResponseBody注解进行返回Lis ...

  10. Java源码之 java.util.concurrent 学习笔记01

    准备花点时间看看 java.util.concurrent这个包的源代码,来提高自己对Java的认识,努力~~~ 参阅了@梧留柒的博客!边看源码,边通过前辈的博客学习! 包下的代码结构分类: 1.ja ...

随机推荐

  1. 两个文件中的配置项设置方法和C比较程序处理

    在实际的软件开发项目.程序经常需要翻阅了一些资料可能会改变从外部,我们需要读出的信息到一个统一的文件(一般ini档),而此文件被称为个人资料. 考虑这样一个场景,程序须要与多个数据库打交道,要从配置文 ...

  2. 更新代码和工具,组织起来,提供所有博文(C++,2014.09)

    为了更容易地管理各种规范和工具所涉及的资源鲍文,现在把这些资源迁移 GitHub 在,趣者可前往下载. C++ 1.<通用高性能 Windows Socket 组件 HP-Socket v3.2 ...

  3. JDK5什么是新的堵塞队列线程(四)

    一. 堵塞队列与普通队列: 队列是一种主要的数据类型,其典型特征是先进先出. 堵塞队列和普通队列的差别在于: 当队列为空时.从队列中获取元素的线程会被堵塞.直到其它的线程往空的队列里插入新的元素: 当 ...

  4. 从XML文件乱码问题,探寻其背后的原理(转)

    由于网友反应本文图片不能显示,由于时间关系未能及时修正.请访问原文地址: 本文出自http://blog.csdn.net/dinglang_2009/article/details/6895355, ...

  5. Source insight 3572安装和版本号An invalid source insight serial number was detected解

    Source insight最新版本3572 下载链接:http://www.sourceinsight.com/down35.html,   http://www.sourceinsight.com ...

  6. iOS6之后 NSAttributedString 福利

    @于iOS6之前,需要使用NSMutableAttributedString当你需要导入:CoreText.framework框架的.但在iOS6 之后就不在须要了. - (void)testOfNS ...

  7. UWP开发的一些思考

    UWP开发的一些思考 领域驱动和MVVM应用于UWP开发的一些思考 0x00 起因 有段时间没写博客了,其实最近本来是根据梳理的MSDN上的资料(UWP开发目录整理)有条不紊的进行UWP学习的.学习中 ...

  8. boostrap-非常好用但是容易让人忽略的地方------input-group-btn

    1.正常的使用 <div class="form-group"> <div class="input-group"> <input ...

  9. wxWidgets+wxSmith版电子词典

    课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 [项目3-OOP版电子词典](本程序须要的相关 ...

  10. [Unity3D]Unity3D游戏开发3D选择场景中的对象,并显示轮廓效果强化版

    大家好,我是秦培,欢迎关注我的博客,我的博客地址blog.csdn.net/qinyuanpei. 在上一篇文章中,我们通过自己定义着色器实现了一个简单的在3D游戏中选取.显示物体轮廓的实例. 在文章 ...