提供程序主要位于您的逻辑和任何类型的数据存储之间(数据库,xml等).MSDN提到:
提供者抽象存储介质的方式与设备驱动程序抽象硬件设备的方式大致相同.
有关更多信息:Microsoft ASP.NET 2.0提供程序:简介
例如: 您不想使用数据库或XML,而是希望在网络中的某个磁盘上使用平面文件存储.要对此进行管理,您需要构建自定义提供程序并在逻辑中使用它来保存数据.
这是来自MS(http://msdn.microsoft.com/zh-cn/library/ms972319.aspx)的提供程序模式的描述:
模式本身非常简单,并被命名为“提供者”,因为它提供了API的功能。定义的提供者只是API与业务逻辑/数据抽象层之间的合同。提供程序是与API本身分开的API实现。例如,新的Whidbey Membership功能具有一个称为Membership.ValidateUser()的静态方法。Membership类本身不包含任何业务逻辑。相反,它只是将此调用转发给已配置的提供程序。提供者类的责任是包含该方法的实现,并调用必要的业务逻辑层(BLL)或数据访问层(DAL)。
关于提供者的行为有一些规则。提供者实现必须从抽象基类派生,该抽象基类用于定义特定功能的协定。例如,要为Oracle创建成员资格提供程序,您可以创建一个新类OracleMembershipProvider,该类派生自MembershipProviderBase。要素基类(例如MembershipProviderBase)又从公共ProviderBase基类派生。ProviderBase类用于将实现者标记为提供者,并强制实现所有提供者共有的必需方法和属性。图4给出了继承链的示例。