Rickie Lee's blog

Welcome to my blog. I'm mainly involved in .Net platform and corresponding technologies. Thanks.

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  383 随笔 :: 3 文章 :: 1240 评论 :: 97 Trackbacks

Enterprise Library: Configuration Application Block应用向导篇 

Part 1

Written by: Rickie Lee (rickieleemail#yahoo.com)

My blog: www.cnblogs.com/rickie

几乎每一个应用程序都需要一些配置信息,这些信息可以是简单的数据库连接信息,或者复杂的多块多层次用户信息。如何以及在哪里存储应用程序配置数据是程序员经常面临的问题,典型的方案包括如下选择:

l         使用配置文件,如XML文件或Windows .ini文件。

l         使用Windows注册表。

l         使用数据库,如Microsoft SQL Server

 

Configuration Application Block设计达到如下的目标:

l         为读写配置数据提供简单的接口。

l         隔离应用程序和配置数据的物理存储位置(Storage Location)。

l         提供扩展模型,允许定制存储位置和配置信息的Runtime显示。

 

Configuration Application Block支持对可配置的存储位置进行读写操作。对于特定的存储位置,需要配置Application Block使用对应的Storage Provider,该Storage Provider知道如何读写该Storage Location的数据。

应用程序传递和接受的对象必须是Storage Provider所了解的,这里也许需要或不需要Transformer(转换器)。例如,如果应用程序使用Storage Provider从数据库读取信息和以DataSet类型返回,Application Block则不需配置任何transformerDataSet可以被Storage Provider读取。

另外一种情况是,Application Block使用transformer接受Storage Provider返回的对象,并转换为应用程序希望的特定对象类型。例如,transformer可以将Storage Provider返回DataSet对象转换为应用程序所使用的hashtable类型。如下图所示:

Enterprise_ConfigurationApplicationBlock1.JPG

这里,演示Configuration Application Block内置支持的XML配置,Storage ProviderXmlFileStorageProvider支持读写XML配置文件,它接受并返回XmlNode类型对象。TransformerXmlSerializerTransformer序列化对象为XmlNode类型和反序列化XmlNode对象为合适的类型。如下图描述了整个过程:
Enterprise_ConfigurationApplicationBlock2.JPG

应用程序包含有配置数据的可序列化对象,为了将对象中包含的数据写入配置文件中,Application Block首先使用XmlSerializerTransformer序列化数据为XmlNode对象。然后,Application Block传送XmlNode对象到XmlFileStorageProviderXmlFileStorageProvider负责将数据写入XML文件。为了读取配置数据,XmlFileStorageProviderXML文件读取数据,并返回XmlNode对象。Application Block接着传递XmlNode对象到XmlSerializerTransformerTransformer反序列化数据并返回给Application BlockApplication Block最终返回给应用程序。


To be continued. - Part 2 待续.
*** Updated ***

Enterprise Library: Configuration Application Block应用向导篇, Part 2
Enterprise Library: Configuration Application Block应用向导篇, Part 3


***

作者:Rickie Lee (rickieleemail#yahoo.com)

本文参考Enterprise Library, Configuration Application Block文档。


References:

1. Enterprise Library, Configuration Application Block

2. Rickie, Microsoft patterns & practices Enterprise Library January 2005 [中文稿], http://www.cnblogs.com/rickie/archive/2005/01/30/99443.html

3. Rickie, Enterprise Library released! http://www.cnblogs.com/rickie/archive/2005/01/29/99106.html

posted on 2005-02-09 12:02 Rickie 阅读(4241) 评论(3)  编辑 收藏 所属分类: E.Enterprise Library

评论

#1楼  2005-02-09 13:17 dudu      
非常感谢!过年也坚持写文章!
祝你新年快乐!万事如意!
  回复  引用  查看    

#2楼 [楼主] 2005-02-09 14:11 Rickie      
谢谢!
也祝你春节快乐!生活如意!
*
一边看节目,一边写文章。
  回复  引用  查看    

#3楼  2005-03-04 18:41 napoler [未注册用户]
我安装后,"Enterprise Library Configuration"老是报:"system.Reflection.TargetInvocationException"在EntLibConfig.exe中发生,请问是什么原因呢?
  回复  引用    


标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2005-02-11 11:41 编辑过


相关链接: