摘要: 日志模块对于一个系统来说,日志模块是必不可少的,它能给后面系统的维护和bug的修复,带来极大的方便。.net的日志模块有很多,比较流行的有Log4Net,NLog,还有微软企业库的日志模块,我采用的是Log4Net,1、接口 由于日志是所有模块都要用到的,因此在核心模块(Core)中实现,为了解耦,自定义一个日志接口ILogger ,参照Log4Net的日志分级,也分为5级,每一级别有1-2个方法, 代码如下。ILogger /// /// 日志操作 /// public interface ILogger { /// /// 写日志 ... 阅读全文
posted @ 2013-09-09 17:26 liuyh208 阅读(2065) 评论(2) 推荐(0) 编辑
摘要: 今天继续给大家介绍核心库的IOC的使用,在我的框架里,IOC使用的比较简单,主要是用于解除模块间的耦合和实例化接口。1、接口说明,IocContainer接口比较简单只有3个方法,但是是系统中用的最多的。IocContainerpublic interface IocContainer:IDisposable { /// /// 获得某个接口的一组实例 /// /// /// IEnumerable{``0}. IEnumerable GetInstances(); /// ... 阅读全文
posted @ 2013-08-28 10:34 liuyh208 阅读(4540) 评论(2) 推荐(1) 编辑
摘要: 上篇文章简单的介绍了一下,我的一个开发框架。看的人还不少,多谢大家的关注,我继续介绍一下,模块和模块之间是怎么组织起来的。Data模块:该模块主要完成对数据的操作,采用仓储模式实现,在核心模块(Core.Data)中定义操作接口和基础类. 主要的接口有IRepository,IUnitOfWork,IDbCnnFactory。所有的数据库操作都是针对实体进行的,一个实体在数据库中对应一个比,目前为了简化操作,不考虑实体关联的操作。这样更加容易理解,更容易上手。一、接口的定义1、IRepository接口,最基本、最重要的接口。通过它完成实体类的增删改查的操作。IRepository/// .. 阅读全文
posted @ 2013-08-27 10:11 liuyh208 阅读(2908) 评论(9) 推荐(0) 编辑
摘要: 近来,看园子里,好多同学,展示自己工作中的开发框架,有的功能强大,有的短小精悍,我也来凑个热闹,望各位大侠指点一二。一、指导思想 1、尽量减少程序员对数据库的依赖,或者说尽力少的写sql 语句。根据以前做项目的经验,大概10%的代码时间,在拼sql,主要是想利用现有的ORM技术,使得程序员能摆脱大部分拼sql的工作。 2、支持多种数据比如Sqlerver、Oracle等。公司是做项目为主,不同的项目甲方要求的数据库可能会不同,所以必须支持多数据库。sqlserver和oracle是最常用的,优先支持。 3、模块化,功能模块间可插拔设计。系统的各个模块间没有必然的联系,可以通过复制一个dll或. 阅读全文
posted @ 2013-08-26 14:49 liuyh208 阅读(6388) 评论(20) 推荐(2) 编辑
摘要: 我们(程序员)多多少少都写过单元测试,有的可能几年前写的几行代码(比如我), 姑且也算写过吧,但是有些东西还是不是很清楚,比如什么是单元测试?怎么才算是好的单元测试?等等很多,查了些资料,总结一下。1、什么是单元测试单元测试是一段代码(通常是一个方法)调用另外一段代码,随后检验一些假设的正确性。如果假设的结果错了,单元擦拭注定会失败。一个单元指的是一个方法或函数。2、好的单元测试具有哪些特性自动的,可重复的容易实现的一旦写好,将来都可以使用任何人都可以运行单击一个按钮或输入一条命令就可以运行能够快速的运行3、什么是集成测试?把两个或者多个相依赖的模块作为一个组进行测试。他运行多个集成在一起的代 阅读全文
posted @ 2013-08-23 14:35 liuyh208 阅读(639) 评论(0) 推荐(0) 编辑
摘要: iis 7.5 默认情况下,不支持Put和delete方法,网上流传好多方法,试了好多才找到解决方法,记录下来,节省遇到此类朋友的时间 修改配置文件 handlers 节点下 添加以下配置即可 " modules="IsapiModule" scriptProcessor="c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script" pre 阅读全文
posted @ 2012-12-05 13:00 liuyh208 阅读(1121) 评论(3) 推荐(0) 编辑
摘要: 对CLR来说,string对象是个比较特殊的对象,它一旦被赋值就不可改变。运行时调用String类中的任何方法或进行任何运算(如”=”赋值、“+”拼接等),都会在内存中创建一个新的字符串对象,这也意味着要为该新对象分配新的内存空间。 StringBuilder并不会创建一个新的string对象,StringBuilder的默认长度是16,当长度大于16时,则重新分配内存,长度是16的倍数。StringBuilder重新分配内存时是按照上次容量加倍进行分配的。需要注意的是,如果指定的长度太小,需要频繁分配内存,太大了则浪费空间。 测试代码如下 private void stringConta.. 阅读全文
posted @ 2012-06-05 21:35 liuyh208 阅读(183) 评论(0) 推荐(0) 编辑
摘要: At the time of this writing (November 4, 2011), this custom-made installer is (almost) all you need to start using Firebird database management system from your Visual Studio 2010. Of course, you nee... 阅读全文
posted @ 2011-11-05 18:55 liuyh208 阅读(452) 评论(0) 推荐(0) 编辑
摘要: 该版本支持.NET 4.0/Mono 4.0框架,支持Sliverlight2/3/4以及不少的提升。 NAnt是一项开源的项目,利用NAnt,你可以方便快捷地对自己.NET项目或解决方案进行自动构建。与VS中可视化化极强的项目和解决方案管理相 比,NAnt只能命令行的方式操作,但是这并不影响Nant的流行。NAnt可以根据我们的需要,帮我们自动构建项目,比如创建文件夹,移动文件,运行指 定的程... 阅读全文
posted @ 2011-11-05 18:43 liuyh208 阅读(410) 评论(1) 推荐(0) 编辑
摘要: 用AE搞gis开发,增加、修改、删除ifeature 是难免的,项目中写了一个通用的添加要素的通用方法,发出来,望大家批评指正1)添加新要素/// <summary>/// 添加新要素/// </summary>/// <param name="pFeatClass">要更新的要素类</param>/// <param na... 阅读全文
posted @ 2009-11-13 13:57 liuyh208 阅读(788) 评论(0) 推荐(0) 编辑