[12]  开源世界

摘要: 说到单元测试,大家首先会想到NUnit,但对于NUnit来说还存在着一些不足,比如说它不能够与VS.NET IDE集成、扩展能力比较差等,除此之外我们还需要一些自动化的测试工具,本文将简单介绍一下如下几种单元测试工具以及推荐一些学习资源。 1.NUnit 2.TestDriven.Net 3.NUnitForms 4.NUnitAsp 阅读全文
posted @ 2006-12-05 23:41 TerryLee 阅读(12521) | 评论 (61) 编辑
摘要: 在项目开发中,日志记录是任何时候都少不了的,在本文中,将简单介绍一下如下几种日志记录工具,以及推荐一些学习的资源: 1.Log4net 2.Logging Application Block 3.NLog 阅读全文
posted @ 2006-12-03 23:28 TerryLee 阅读(20378) | 评论 (44) 编辑
摘要: 在.NET平台下,关于数据持久层框架非常多,本文主要对如下几种做简要的介绍并推荐一些学习的资源: 1.NHibernate 2.NBear 3.Castle ActiveRecord 4.iBATIS.NET 5.DAAB 附加介绍:DLinq 阅读全文
posted @ 2006-12-02 00:42 TerryLee 阅读(25479) | 评论 (85) 编辑
摘要: 关于IOC的概念就不多说了,在.NET平台下,比较优秀的IOC容器框架有如下四种,本文试图作一个简单的介绍,以及推荐一些各个框架的学习资源。 1.Castle 2.Spring.NET 3.ObjectBuilder 4.StructureMap 阅读全文
posted @ 2006-12-01 08:51 TerryLee 阅读(21434) | 评论 (31) 编辑
摘要: 最近比较忙,写不出来别的文章,只好给大家来一个.NET开源项目介绍及资源推荐系列。我觉得总结这样的一个系列还是必要的,在.NET平台下,各种各样的开源框架非常多,对于有些朋友来说往往会弄不明白一些框架到底是作什么用的?或者说要实现某些功能有哪些框架可供选择呢?学习某个框架有哪些好的资源? 接下来我将写几篇文章对.NET平台下的开源项目作一简单的介绍,主要会分为IOC容器、持久层框架、AOP框架、AJAX框架、单元测试等几个部分,并推荐一些好的学习资源,但不会去具体介绍每一种具体框架的使用方法。鉴于.NET平台下的框架有如此之多,而我个人也是掌握有限,所以如果有介绍错误的地方还望大家指出,并多多理解。 阅读全文
posted @ 2006-12-01 08:44 TerryLee 阅读(35660) | 评论 (22) 编辑
摘要: 随着Castle1.0 RC2版本的发布,Castle逐渐走向成熟和趋于稳定,打算在近期写几篇关于AR的Hands On Lab。本篇文章将会介绍AR中最基本的数据访问,包括数据简单筛选和模糊查询等。在开始本Hands On Lab之前,请先下载并安装Castle 1.0 RC2。在整个Hands On Lab中,我们将使用Northwind数据库作为示例,基于.NET 2.0。

简单数据访问

数据筛选

模糊查询

……阅读全文
posted @ 2006-11-19 21:22 TerryLee 阅读(7381) | 评论 (52) 编辑
摘要: 今天才看到Castle 1.0 RC2 发布的消息,便迫不及待的载了下来,看看有什么新鲜的玩艺儿。
下载安装Castle 1.0后,在VS2005中会发现多出了两个项目模版:Castle ActiveRecord Project和Castle MonoRail Project,如下图

新建一个ActiveRecord项目,它会在解决方案中生成一个实体类项目的同时,还会生成一个单元测试项目,并且提供一个用于测试实体的抽象类,该抽象类里面已经设置好了要做单元测试的一切,写自己的测试类时只需要继承于该类。
阅读全文
posted @ 2006-11-02 22:27 TerryLee 阅读(3727) | 评论 (18) 编辑
摘要: 刚才在Yok那儿看到Castle 1.0 RC2发布的消息,很是令人振奋。毕竟上次发布的Beta版还是好几个月之前的事了。同时主页也换上了新的,特意截图纪念一下。

下载地址:http://www.castleproject.org/castle/download.html阅读全文
posted @ 2006-11-02 21:30 TerryLee 阅读(2040) | 评论 (0) 编辑
摘要: FactorySupport Facility允许我们使用已经存在的工厂来创建组件的实例,可以把已经存在的对象模型加入到容器中,以便它能够使用自动装配。它使用了以下两种处理策略:

1.使用访问器来访问组件的实例

2.使用静态方法或者实例方式来访问组件的实例


主要内容

1.概述

2.为什么需要FactorySupport Facility

3.如何使用

4.常见的配置示例

5.实现原理浅析阅读全文
posted @ 2006-06-29 08:03 TerryLee 阅读(7401) | 评论 (4) 编辑
摘要: 简单介绍一下Castle Active Record for .NET2.0的使用

1.创建Web工程

2.创建需要持久化的业务实体

3.设置配置信息

4.初始化ActiveRecord

5.使用业务实体阅读全文
posted @ 2006-06-22 18:03 TerryLee 阅读(16497) | 评论 (35) 编辑
摘要: 今天看到David Hayden写的Castle ActiveRecord - Active Record Pattern Built on NHibernate - Rapid Application Development文章,其中他的实体类设计如下:

……

注意到出现了下面这样的两个属性:
public int BlogId
public int CategoryId
在这个业务实体中,对于Article对象来说,更直观的应该说它属于哪一个Blog,哪一个Category,而不是指定一个整型的值,这种用ID的设计其实是把把数据库结构带入到了业务实体中。我们知道引入ORM,使得我们可以用面向对象的思维来考虑实体间的关系,如果继续使用ID来解决,引入ORM的作用可能就大打折扣了,因此,是否把实体类修改为如下这样更合理一些呢?

……

估计也有很多朋友会这样去用,下午跟一个朋友讨论时,他说修改前加载Article对象时,加载的仅仅是2个ID,而修改后却要加载Blog,Category对象所有的阅读全文
posted @ 2006-06-19 17:59 TerryLee 阅读(4958) | 评论 (40) 编辑
摘要: EnterpriseLibrary Configuration Facility就好像是在容器和数据类之间的桥,让我们可以轻松得去读取和操作配置文件。熟悉Enterprise Library的人都知道,在Enterprise Library中有一个Configuration Application Block,它可以使我们方便的从各种存储中读写配置信息,通过EnterpriseLibrary Configuration Facility我们就可以像使用普通的组件那样去注册一个数据类,它会用configurationkey来映射到Enterprise Library的配置文件中。

主要内容:

1.概述

2.使用Facility

3.原理浅析阅读全文
posted @ 2006-05-30 13:10 TerryLee 阅读(6923) | 评论 (4) 编辑
摘要: 今天有一个“27745754”的朋友对Castle IOC容器的自动装配提出了疑问,如果有多个类(组件)实现同一个接口(服务),它会自动选择哪个来进行装配?很多朋友应该都有这样的疑问,这里特别说明一下。阅读全文
posted @ 2006-05-25 14:00 TerryLee 阅读(3772) | 评论 (9) 编辑
摘要: 在Castle IOC容器实践之TypedFactory Facility(一)里面大家都已经知道了如何去使用TypedFactory Facility,也已经体会到它的方便之处了,为了更好的使用它,本篇我们对TypedFactory Facility的原理做一些简单的分析。 主要内容 TypedFactory Facility原理分析 ……阅读全文
posted @ 2006-05-23 08:56 TerryLee 阅读(6002) | 评论 (5) 编辑
摘要: 相信大家对于Factory Method设计模式都已经不陌生了,在Factory Method中,对于每一个具体的产品都需要有一个与之对应的工厂类,随着具体的产品越来越多,我们对于工厂类的管理就越来越困难,那如何通过IOC容器来实现对工厂的管理呢?本文将给你答案,通过TypedFactory Facility来实现。 主要内容 1.TypedFactory Facility概述 2.TypedFactory Facility快速入门阅读全文
posted @ 2006-05-14 09:01 TerryLee 阅读(7811) | 评论 (8) 编辑
摘要: 在Castle IOC容器实践之Startable Facility(一)中我们已经学会了如何去使用Startable Facility,本文将在此基础进一步对它的原理做一些分析。 主要内容 Startable Facility原理分析 …… 阅读全文
posted @ 2006-05-14 08:51 TerryLee 阅读(7443) | 评论 (12) 编辑
摘要: 从本文开始,我们将逐一实践Castle IOC中的Facility,在前面我们说过,Facility它是带有注入性质的。有时我们会遇到这样的问题,当一个组件满足一定的依赖关系之后,让它自动运行,比如说启动一个窗体或者启动某种服务,本文我们就来看如何使用Startable Facility让一个实现了接口IStartable的组件自动运行,以及不实现IStartable接口的组件如何在满足依赖后自动运行。 主要内容 1.Startable Facility概述 2.实现IStartable接口使用详解 3.不实现IStartable接口使用阅读全文
posted @ 2006-05-07 23:35 TerryLee 阅读(10144) | 评论 (2) 编辑
摘要: Castle是针对.NET平台的一个开源项目,从数据访问框架ORM到IOC容器,再到WEB层的MVC框架、AOP,基本包括了整个开发过程中的所有东西,为我们快速的构建企业级的应用程序提供了很好的服务。4月份以来,Terrylee写了一系列的Castle的文章,这里做一下总结,后续还有Facility系列等,本部分内容会不断的更新。[置顶]
……阅读全文
posted @ 2006-04-28 14:24 TerryLee 阅读(119218) | 评论 (168) 编辑
摘要: 写这篇文章缘于昨天跟Linkin的一段聊天。我在使用ActiveRecord的一些技巧一文中的由实体类生成数据库表提到了这样一句话:生成数据库表时只有当该表不存在时ActiveRecord才会生成,否则表如果存在ActiveRecord不会做任何事情,也不会报任何错误。Linkin说他在实验时如果数据库表存在,ActiveRecord会删除表中的记录,其实这句话是在有些情况下是不对的,本篇文章将详细介绍Castle ActiveRecord中的Schema Pitfals。

主要内容

1.引言

2.CreateSchema和DropSchema

3.CreateSchemaFromFile

4.GenerateCreationScripts和GenerateD阅读全文
posted @ 2006-04-27 08:27 TerryLee 阅读(7397) | 评论 (19) 编辑
摘要: Castle IOC容器为我们提供了不同的生命处理方式以及组件生命周期的处理,即组件装载,初始化,销毁时所表现的行为。如何去使用它们?本文讲对这一内容进行详细的阐述。 主要内容 1.生命处理方式 2.自定义生命处理方式 3.生命周期处理阅读全文
posted @ 2006-04-26 08:24 TerryLee 阅读(9390) | 评论 (11) 编辑
摘要: 我本人对于Spring.NET并不了解,本文只是通过一个简单的例子来比较一下两者配置之间的区别。在Castle IOC容器中,提出了自动装配(Auto-Wiring)的概念,即由容器自动管理组件之间的依赖关系,我们无需自己编写XML配置文件来配置组件之间的依赖关系。在Spring.NET中也是支持自动装配的,但是并不推荐使用,它贯穿着一种思想就是一切皆为XML配置,这是两者之间最大的一个区别。阅读全文
posted @ 2006-04-25 08:35 TerryLee 阅读(18488) | 评论 (17) 编辑
摘要: 在前一篇文章中我们并没有考虑配置的组件参数是什么类型,也没有在配置文件中指定过类型,那么Castle IOC是如何进行类型转换的?如何配置一些复杂的数据类型?如果有自定义的类型如何去进行类型转换?本文将进行一一解答这些问题。 主要内容 1.基本类型配置 2.Array类型配置 3.List类型配置 4.Dictionary类型配置 5.自定义类型转换阅读全文
posted @ 2006-04-24 09:58 TerryLee 阅读(9877) | 评论 (15) 编辑
摘要: 知道如何简单使用Castle IOC,也听完了Castle IOC的内幕故事,从本文开始讲会详细讲解Castle IOC的一些使用。先从构建配置信息开始吧,在Castle IOC中并不像Spring.net那样贯穿着一个思想就是一切皆为配置,对于对象之间的依赖关系,Castle IOC会自动去连接,因此相比之下它的配置文件要比Spring.net简单的多。 主要内容 1.配置什么 2.几种配置方式 3.Include 介绍 4.Properties介绍 5.条件状态阅读全文
posted @ 2006-04-21 08:29 TerryLee 阅读(13647) | 评论 (23) 编辑
摘要: 上一篇文章我们了解了Castle IOC中注册组件的流程,为了更好的使用Castle IOC,本篇文章我们介绍一下Castle IOC中的几个重要的角色,开始Castle IOC容器内幕故事下角色介绍。 主要内容 1.ComponentModelBuilder 和 Contributors 2.Contributors分析 3.Handles分析 4.ComponentActivator分析阅读全文
posted @ 2006-04-19 08:35 TerryLee 阅读(10838) | 评论 (8) 编辑
摘要: 在快速入门指南篇中,我们对于Castle IOC容器的使用已经有了一个直观的认识。本文将在这基础上进一步对Castle IOC容器的结构及其注册组件的过程做一个深入的分析,让我们开始Castle IOC的内幕故事吧。 主要内容 1.WindsorContainer分析 2.MicroKernel分析 3.注册组件流程阅读全文
posted @ 2006-04-18 12:24 TerryLee 阅读(16059) | 评论 (15) 编辑
摘要: IOC模式是近年来非常流行的一种模式,相信大家都不陌生了,如果你还不是很熟悉的话,可以看看Martin Fowler大师的文章http://martinfowler.com/articles/injection.html,网上可以下载到中文版本。在Castle中,Windsor就是它的一个IOC容器,它构建于MicroKernel之上,功能非常强大。本文将通过一个简单的例子来带你快速走进Castle IOC容器。 主要内容 1.为什么要IOC 2.什么是Castle IOC容器 3.快速入门示例 4.几个重要的概念阅读全文
posted @ 2006-04-17 12:28 TerryLee 阅读(36923) | 评论 (52) 编辑
摘要: 摘要:本文将会介绍使用ActiveRecord中的一些技巧。

主要内容

1.由实体类生成数据表
2.运行存在的SQL脚本
3.使用空属类型
4.使用枚举类型的属性
5.使用NHibernate中的日志记录
阅读全文
posted @ 2006-04-14 08:34 TerryLee 阅读(10932) | 评论 (23) 编辑
摘要: 在我们录入数据时,对数据有效性的验证是必不可少的, ActiveRecord中如何去验证数据的有效性呢?本文将详细介绍这一内容。

主要内容

1.概述

2.使用Validation

3.如何扩展

4.深入分析验证阅读全文
posted @ 2006-04-13 12:27 TerryLee 阅读(8810) | 评论 (9) 编辑
摘要: 虽然ActiveRecord为我们提供了Find()和FindAll()这样两个静态的查询方法,并且有Where特性可供使用,但是仍然不能解决实际开发中一些复杂的查询,这时我们就需要通过HQL查询来实现。

主要内容

1.HQL概述

2.SimpleQuery查询

3.ScalarQuery查询

4.自定义查询

5.使用CallBack阅读全文
posted @ 2006-04-12 08:50 TerryLee 阅读(16058) | 评论 (23) 编辑
摘要: 在ActiveRecord中把数据库表之间的关联关系采用对象间的聚合关系来表现,然而这却带来一系列的性能上的问题。就像我在One-Many中用到的例子Blog,使用Blog.Find(1)查找了一个Blog对象,也许我们只用到它,但事实它却把该Blog所关联的Post对象也读取出来放在了内存中,于是我们就需要有一种方法来实现只在需要Post对象的时候框架再自动读取。另外ActiveRecord只提供了Find(id),FindAll()这样两个静态的查询方法,在我们查询中还远远不够,这方面ActiveRecord为我们提供了HQL语言的支持,同时也可以通过设置Where子句来实现一些简单的查询。

主要内容

1.实现延迟加载

2.使用Where子句阅读全文
posted @ 2006-04-10 18:18 TerryLee 阅读(11062) | 评论 (3) 编辑
摘要: 多对多的关系在日常开发中也会经常遇到,在ActiveRecord中我们用HasAndBelongsToMany特性来实现Many-Many的关联,本文将通过一个具体的实例来介绍这一用法。

主要内容

1.准备数据库表

2.编写实体类

3.编写测试代码
阅读全文
posted @ 2006-04-10 08:17 TerryLee 阅读(10526) | 评论 (31) 编辑
摘要: 前面几篇文章简单的介绍了ActiveRecord中的基本映射以及构建配置信息,本文我们用ActiveRecord里面的Blog,Post例子来实现One-Many/Many-One关联。

主要内容

1.准备数据表结构

2.编写实体类并介绍HasMany和BlongsTo特性

3.构建配置信息

4.编写测试代码阅读全文
posted @ 2006-04-06 16:28 TerryLee 阅读(17490) | 评论 (63) 编辑
摘要: 本文详细介绍了ActiveRecord中的基本映射,对于关联映射会在后续文章中通过一些具体的实例来说明。

主要内容

简单映射

1.ActiveRecordAttribute

2. PrimaryKeyAttribute

3.CompositeKeyAttribute

4.PropertyAttribute

5.FieldAttribute
阅读全文
posted @ 2006-04-06 08:28 TerryLee 阅读(17832) | 评论 (32) 编辑
摘要: ActiveRecord在底层封装了NHibernate,在框架启动时需要指定相关的配置信息,那么我们需要配置些什么?又该如何去配置呢?本文将会介绍在ActiveRecord中构建配置信息。

主要内容

1.需要配置什么

2.如何去配置

3.常见的配置示例
阅读全文
posted @ 2006-04-05 12:38 TerryLee 阅读(22295) | 评论 (29) 编辑
摘要: 最近几天有时间看了一下Castle,原来它的功能是如此的强大,从数据访问框架到IOC容器,再到WEB框架,基本包括了整个开发过程中的所有东西,看来得好好学习研究一下了,并且打算把自己学习过程的一些东西记录下来。先从ActiveRecord开始吧,ActiveRecord提供的简洁的O/R映射给我留下了很深的印象,本文将通过一个简单对象的CRUD操作来带你快速走进Castle ActiveRecord。

主要内容

1.概述

2.准备相关的数据表

3.编写User实体类

4.构建配置信息

5.开始CRUD操作

6.使用ActiveRecord Generator生成实体类代码阅读全文
posted @ 2006-04-03 16:59 TerryLee 阅读(61227) | 评论 (177) 编辑