博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  C#

摘要:好久好久没有露面了,呵呵,对于写文章都有点生疏了。 在拿到任何一个项目,不管是b/s的还是c/s,我不会立即开始写代码,我一般会为使这些项目能够快速开发制定一系列的支持组件,虽然可能前期会付出一些代价,但不管是应付当前的任务,还是为以后形成一种可持续改进的开发模式,都是有意义的。 最近几年都忙于应付b/s方面的项目,所以winform的一些东西已经不是怎么拿得出手了,虽然以前也写过一系列的组件,毕竟技术革新太快了,现在已经不太适应了。 今天介绍的只是一小部份,主要实现信息编辑窗体中各控件与数据属性之间的绑定、取值与存值、数据验证。 大家知道,这种小型的MIS项目最繁琐的莫过于编辑页面的布局,. 阅读全文

posted @ 2013-12-09 01:29 faib 阅读(3426) 评论(5) 推荐(2) 编辑

摘要:在前面的一篇文章中,提到 IProviderService 接口的时候,我们附加了一个 ProviderContext,该对象中仅包含了一个当前的 IDatabase。因为在使用插件的时候,或多或少会用到 IDatabase 来进行处理。 但是,这感觉这是个累赘,也不雅观,本篇期望达到的目的是,在定义一个IDatabase的变量域范围内,任何代码都能够通过一个静态方法就能够获取到 IDatabase,而无需将 IDatabase带着满街跑。 借助TransactionScope的思想,来实现一个 DatabaseScope,目的就是解决 IDatabase 的传递问题。 一、Scope< 阅读全文

posted @ 2012-06-02 01:26 faib 阅读(1095) 评论(2) 推荐(1) 编辑

摘要:在Ado.Net中,DbConnection类的GetSchema方法用于获取数据库提供者的相关架构信息,比如数据类型、表、列等等,然而每种数据库架构的元数据结构都是不一样的。Fireasy.Data提供了一个扩展服务接口,以将四类数据库的架构信息整合在一起,统一定义了最大公有的架构元数据,并在此基础上提供Linq查询的支持。 一、架构元数据的接口 由于要使用统一的查询,因此需要定义一个标识接口,然后使不同的架构元数据类来实现它。///<summary>///数据库架构元数据结构。///</summary>publicinterfaceISchemaMetadata{} 阅读全文

posted @ 2012-04-22 00:28 faib 阅读(1205) 评论(0) 推荐(0) 编辑

摘要:前面已经介绍了,IProvider提供了一种插件式的服务接口,能够将一些扩展的功能附加在提供者中,因为IProvider由IDatabase所引用,因此,只要有IDatabase,就能够获得所有的扩展功能,那么本篇将介绍一下这些扩展服务如何与IProvider一起工作。 首先看一下IProvider接口的定义:///<summary>///为不同的数据库类型提供创建工厂及插件服务。///</summary>publicinterfaceIProvider{///<summary>///获取提供者类型。///</summary>ProviderTy 阅读全文

posted @ 2012-04-19 00:54 faib 阅读(1381) 评论(0) 推荐(0) 编辑

摘要:在之前只知道SqlServer支持数据批量插入,殊不知道Oracle、SQLite和MySql也是支持的,不过Oracle需要使用Orace.DataAccess驱动,今天就贴出几种数据库的批量插入解决方法。 首先说一下,IProvider里有一个用于实现批量插入的插件服务接口IBatcherProvider,此接口在前一篇文章中已经提到过了。///<summary>///提供数据批量处理的方法。///</summary>publicinterfaceIBatcherProvider:IProviderService{///<summary>///将< 阅读全文

posted @ 2012-04-18 23:39 faib 阅读(2468) 评论(6) 推荐(3) 编辑

摘要:Fireasy.Data的一个主要接口是IDatabase,这个与网上流传的SqlHelper差不多是完成一样的操作。不过,在IDatabase中只提供了几个高内聚的方法,你不必去传递那些DbCommand和DbParameter。不同的数据库类型,都提供实现IProvider接口的类,来指定DbProviderFactory,以及各种的IProviderService组合来实现更多的功能。 下面先来看一下有关IDatabase及周围的一些接口组合: 1、IDatabase接口 在Fireasy.Data中,IDatabase是最底层的接口,它提供了以下几个属性和方法: Connection. 阅读全文

posted @ 2012-04-18 21:49 faib 阅读(2442) 评论(2) 推荐(1) 编辑

摘要:这个想法已经有很长一段时间了,并且目前已经有一个雏形的版本了,我暂定它为Fireasy.Data.Entity。 我先说一说我的想法,实体的映射将采用依赖属性的方式进行定义,这样可以避免使用反射进行实体的初始化,而且也比较实现其他代码的切入。 在这个框架里,还是提供了引用实体和实体集的概念,它们也可以通过lazy加载进来,另外,还设计一个支持枚举的属性和一个同步属性。 另外,根据实际项目的需要,还会将同一个实体根据不同的规则映射多个不同的数据表,以提供数据分布式和隔离式存储。还会提供一个树结构的映射及相应的持久化类,以达到快速应用。 实体的继承特性将在下一期进行考虑。 以下是实体类的代码示例. 阅读全文

posted @ 2011-10-01 17:38 faib 阅读(2535) 评论(6) 推荐(1) 编辑

摘要:自己写的一个将对象序列化为json的扩展方法。 阅读全文

posted @ 2011-10-01 08:01 faib 阅读(893) 评论(1) 推荐(1) 编辑

摘要:代码生成器CodeBuilder 阅读全文

posted @ 2010-04-22 07:57 faib 阅读(707) 评论(5) 推荐(0) 编辑

摘要:一个基于.net 2.0的代码生成器,提供了大量的接口,供使用者进行二次开发 阅读全文

posted @ 2010-01-10 23:17 faib 阅读(1453) 评论(7) 推荐(2) 编辑

摘要:自己做的即将面世的代码生成器 阅读全文

posted @ 2009-10-24 00:45 faib 阅读(1543) 评论(7) 推荐(1) 编辑

摘要:在FaibClass.Data中,有两个AOP的应用,它们分别是实体集更新(DateEntityListUpdate)、延迟加载(LazyLoad),目前的DataEntity继承于ContextBoundObject,刚刚从网上看到ContextBoundObject的损耗非常大,但自己测试了一下,应该说影响不是很大,所以暂时不打算使用静态注入了。 注,两个AOP都采用Attribute--Pr... 阅读全文

posted @ 2009-09-20 13:12 faib 阅读(2176) 评论(3) 推荐(2) 编辑

摘要:首先看一下结构:1、简单易用的O/R映射。每个数据表对应一个继承自DataEntity的模型类,并定义表的字段结构,使用Attribute标注主键、外键、子实体集合、引用、枚举转换等属性。数据Model可由提供的代码生成器批量生成。 2、灵活的Database源配置。提供了SqlServer、Oracle、SQLite、OleDB等几种常用数据库的多种配置方法,如xml文件、注册表、二进制文件。可... 阅读全文

posted @ 2009-09-13 01:27 faib 阅读(662) 评论(1) 推荐(0) 编辑

摘要:原创:使用AOP方法动态调用WebService 阅读全文

posted @ 2009-08-23 01:30 faib 阅读(3399) 评论(10) 推荐(5) 编辑

摘要:为List实现DataTable类似Select、Compute及Group方法,使用的是动态代码编译 阅读全文

posted @ 2009-06-06 20:43 faib 阅读(3280) 评论(0) 推荐(1) 编辑

摘要:对DataSource的补充,同样是介绍UTypeEditor,制作自己的集合编辑器 阅读全文

posted @ 2009-06-05 19:57 faib 阅读(704) 评论(0) 推荐(0) 编辑

摘要:通过两个数据控件 DataProvider及DataSource 来演示控件编辑器UITypeEditor不为人知的高级应用 阅读全文

posted @ 2009-06-02 23:13 faib 阅读(761) 评论(1) 推荐(0) 编辑

摘要:这里介绍了UltraWinGrid中IUIElementDrawFilter和IUIElementCreationFilter两个接口的使用方法。 阅读全文

posted @ 2009-05-15 20:52 faib 阅读(1422) 评论(1) 推荐(1) 编辑

摘要:提供灵活的权限定义及控制方案 阅读全文

posted @ 2009-05-12 22:00 faib 阅读(1236) 评论(5) 推荐(0) 编辑

摘要:发布软件后,为用户提供在线更新,这样你也省力,用户也省心。 阅读全文

posted @ 2009-05-04 23:04 faib 阅读(1014) 评论(6) 推荐(0) 编辑