posts - 94, comments - 346, trackbacks - 10, articles - 0
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2015年2月4日

摘要:1.5.40.420282015-2-4** Fireasy.Common1、DynamicBuilder新增使用表达式SetCustomAttribute的重载方法 2、DateTimeExtension新增获取月第一周开始日期的方法 3、新增ClientNotificationException... 阅读全文

posted @ 2015-02-04 15:18 faib 阅读 (503) 评论 (0) 编辑

2013年12月10日

摘要:昨天我们一直在做准备工作,最终表单数据需要从数据库里提取,并保存到数据库,今天接着介绍如何做提取、保存和验证。 四、提取并显示信息 在EditForm我们定义一个InfoId属性,用于接收在列表页面打开编辑窗体时传递主键,然后编辑窗体通过主键查询实体,最终填充到映射好的控件上。 /// /// 获取或设置信息ID,根据此ID查询实体并填充在窗体上。 /// public string InfoId { get; set; } 在窗体的Load事件中,判断InfoId是否为空,如果不空则查询出实体对象,将数据填充到各控件。 ... 阅读全文

posted @ 2013-12-10 00:23 faib 阅读 (1240) 评论 (2) 编辑

2013年12月9日

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

posted @ 2013-12-09 01:29 faib 阅读 (2435) 评论 (5) 编辑

2013年6月30日

摘要:今天扩展一个Type的扩展方法New: public static object New(this Type type, params object[] args) { Guard.ArgumentNull(type, "type"); return Activator.CreateInstance(type, args); }然后想到了测试一下其性能,所以就和直接使用Activator.CreateInstance方法作一下比较: public void TestCreateInstance(... 阅读全文

posted @ 2013-06-30 22:44 faib 阅读 (3747) 评论 (1) 编辑

2012年7月4日

摘要:今天发布 Fireasy.Data 的第一个测试版本,以下是各组件的版本号: Fireasy.Common 1.5.40.41422 Fireasy.Data 1.5.40.41440 Fireasy.Data.Entity 1.5.40.41450 目前支持 MsSqlServer、Oracle、SQLite和MySql四种数据库。 以下是本测试版本各测试类的名称: BackupTests 数据库备份测试 BatcherTests 数据批量插入测试 DatabaseFactoryTests 数据库实例工厂测试 DatabaseScopeTests 数据库Scope测试 Database... 阅读全文

posted @ 2012-07-04 22:51 faib 阅读 (643) 评论 (4) 编辑

2012年6月2日

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

posted @ 2012-06-02 01:26 faib 阅读 (771) 评论 (2) 编辑

2012年4月22日

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

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

2012年4月19日

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

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

2012年4月18日

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

posted @ 2012-04-18 23:39 faib 阅读 (1958) 评论 (6) 编辑

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

posted @ 2012-04-18 21:49 faib 阅读 (2032) 评论 (2) 编辑

2011年11月11日

摘要:在上一篇中我曾提到过要组建实体框架,不管我的出发点是好还是坏,我总算把它做出了一个雏形,并且已经能够加入到项目中使用了,当然还有许多的事情要处理,也需要更多的实例验证,才能不断的完善。 阅读全文

posted @ 2011-11-11 00:25 faib 阅读 (2399) 评论 (2) 编辑

2011年10月1日

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

posted @ 2011-10-01 17:38 faib 阅读 (2317) 评论 (6) 编辑

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

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

2011年9月7日

摘要:ReSharper是一个强大的VS扩展工具,但由于它是英文版的,因此在使用过程当中不免被它折磨几次(可能是由于本人英文不是很好),以下是鄙人的一些经历:1、F12转到定义 安装ReSharper后首次使用F12时,它会弹出一个对话框,是什么样子不记得了,大概意思是让你选择使用何种方式转到定义。因于是第一次使用,我并不知道它每项的能够获得的效果,所以我蒙过去了。按下F12时,mygod,它要连接下载 XXX.pdb 文件,能够看到元数据就不用说了,它竟然没有任何的注释,远远没有VS的好用。于是乎,我在ReSharper选项里翻爬,最终找到了它的设置方法。2、修改js时,按回车出来 foo fo. 阅读全文

posted @ 2011-09-07 13:59 faib 阅读 (1248) 评论 (1) 编辑

2011年7月20日

摘要:你懂的,直接上文件下载 阅读全文

posted @ 2011-07-20 14:04 faib 阅读 (7271) 评论 (35) 编辑

2011年6月28日

摘要:设计思想主要参考了fireworkflow,但是结合实际业务进行了多项改进 阅读全文

posted @ 2011-06-28 00:02 faib 阅读 (1166) 评论 (1) 编辑

2010年12月23日

摘要:经过反反复复的修改,今天终于发布了CodeBuilder 1.1.10.1222版本。 阅读全文

posted @ 2010-12-23 00:15 faib 阅读 (1208) 评论 (4) 编辑

2010年4月22日

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

posted @ 2010-04-22 07:57 faib 阅读 (548) 评论 (5) 编辑

2010年1月28日

摘要:CodeBuilder中的Template.FbBase是一个基于xml语法的基础模板,主要由defkeys、functions、parts、sections构成。代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><?xmlversion="1... 阅读全文

posted @ 2010-01-28 01:04 faib 阅读 (302) 评论 (0) 编辑

2010年1月11日

摘要:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->usingSystem;usingSystem.Collections.Generic;usingSystem.Drawing;usingSystem.Windows.Forms;usingFaibC... 阅读全文

posted @ 2010-01-11 00:08 faib 阅读 (252) 评论 (0) 编辑

摘要:ITemplate接口代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->usingSystem.Collections.Generic;namespaceFaibClass.TemplatePackage{///<summary>///模... 阅读全文

posted @ 2010-01-11 00:07 faib 阅读 (157) 评论 (0) 编辑

摘要:ISource接口代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->usingSystem;usingSystem.Collections.Generic;namespaceFaibClass.SourcePackage{///<summary... 阅读全文

posted @ 2010-01-11 00:05 faib 阅读 (214) 评论 (0) 编辑

2010年1月10日

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

posted @ 2010-01-10 23:17 faib 阅读 (1087) 评论 (7) 编辑

2009年10月24日

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

posted @ 2009-10-24 00:45 faib 阅读 (1244) 评论 (7) 编辑

2009年9月20日

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

posted @ 2009-09-20 13:12 faib 阅读 (1759) 评论 (3) 编辑

2009年9月13日

摘要:上周参加了公司进行了系统设计师的竞聘,在之前是看了相关的书了,可是一到评测会议的情境模拟环节,怎么就紧张的连问题都不会问了呢,感觉拿到题,头脑里是一片的茫然,然后之后设计出的系统那是相当的糟糕,当时只有一个反应,挂了。 后来想想,这也跟自己的经验太有关系了,之前没有接触过需求分析是什么概念,需要什么技巧。失败了下次再来过,至少经历过,明白自己与这个岗位到底有多大的差距,只有在以后的工作中弥补所需要... 阅读全文

posted @ 2009-09-13 01:42 faib 阅读 (400) 评论 (0) 编辑

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

posted @ 2009-09-13 01:27 faib 阅读 (510) 评论 (1) 编辑

2009年8月23日

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

posted @ 2009-08-23 01:30 faib 阅读 (3095) 评论 (10) 编辑

2009年7月2日

摘要:最近在做一个小程序,实现的功能是罗列出一个程序集中的所有类、接口、方法、属性等,并从对应的xml文件中读取注释,还可实现注释的修改,增加示例等,还有一个想法就是参生成html文件,并制作成chm文件。 阅读全文

posted @ 2009-07-02 11:34 faib 阅读 (325) 评论 (6) 编辑

2009年6月6日

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

posted @ 2009-06-06 20:43 faib 阅读 (2601) 评论 (0) 编辑