.net 的提供者模型
使用提供者模型的好处:使用提供者模型的系统将具有很好的弹性和可扩充性。
例如你可以使用sql server数据或者是Oracle数据库做为你的数据源,并且只需要改变一下web.config文件。
下面以一个公司的人员信息的存储进行讲解。现在我们用来存储人员信息(personInfo)的数据库是
sql server2005,考虑到以后会使用其他数据库(例如mysql,oracle),我们打算用提供者模型方式进行 系统设计。
1:web.config的配置,增加如下自定义配置节
<PersonInfoProviders>
<add name="sqlProvider" type="Company.SqlPersonInfoProvider"/>
</PersonInfoProviders>
</Company>
2: 如果以后改用其他方式进行数据存储,可以这样修改
<PersonInfoProviders>
<add name="sqlProvider" type="Company.SqlPersonInfoProvider"/>
<add name="mysqlProvider" type="Company.MysqlPersonInfoProvider"/>
</PersonInfoProviders >
</Company>
3:还没有完,你还得在web.config里增加如下代码
<section name="Company" type="Company.CompanyProvidersSection,Company"/>
</configSections>
以上代码必须紧跟在<configuration>的下面,否则会出错。
4:好了,这才开始我们的c#代码,他们所在的命名空间是Company.
首先新建三个类:PersonInfoProvider,SqlPersonInfoProvider,MysqlPersonInfoProvider。
PersonInfoProvider是个abstract类,它继承ProviderBase,它的作用是提供抽象的方法让
SqlPersonInfoProvider和MysqlPersonInfoProvider来实现。
例如你要增加或删除人员,那么你首先要在PersonInfoProvider里增加两个抽象的方法:
public abstract void DeletePerson();
public abstract void AddPerson();
这只是第一步,第二步你还得在SqlPersonInfoProvider里进行具体的实现。
5:你还要在新建一个类:CompanyProvidersSection,这个类的属性主要是和web.config的属性相互对应,
然后通过这个类来或得我们的提供者到底是谁。
6:好,写到这里,但最重要的还没写,就是如何或得并且使用提供者。我们现在需要添加人员信息。