【问题标题】:What does a provider class mean in the .NET world?提供程序类在 .NET 世界中意味着什么?
【发布时间】:2011-01-29 09:26:36
【问题描述】:

有很多类都有这个provider 后缀。 (数据、成员资格、模型元数据...)。

什么时候应该将一个类称为提供者类?

【问题讨论】:

    标签: .net provider


    【解决方案1】:

    提供程序大多位于您的逻辑和任何类型的数据存储(数据库、xml 等)之间。 MSDN 提到:

    提供者抽象存储媒体的方式与设备驱动抽象硬件设备的方式非常相似。

    欲了解更多信息:Microsoft ASP.NET 2.0 Providers: Introduction

    例如: 您不想使用数据库或 XML,而是希望使用网络中某个磁盘上的平面文件存储。要管理此问题,您需要构建一个自定义提供程序并在您的逻辑中使用它来保存数据。

    【讨论】:

    • 它们存在的原因是要被替换。就像我现在编写一个 Web 应用程序,它将身份验证和授权映射到应用程序内部用户存储 - 我可以很好地将 taht 连接到提供程序模型中。
    【解决方案2】:

    这是来自 MS (http://msdn.microsoft.com/en-us/library/ms972319.aspx) 的提供程序模式的描述:

    图案本身非常 简单并被命名为 “提供者”,因为它提供 API 的功能。定义,一个 提供者只是之间的合同 API 和业务逻辑/数据 抽象层。提供者是 API的实现分开 从 API 本身。例如, 新的 Whidbey 会员功能具有 静态方法调用 Membership.ValidateUser()。这 成员资格类本身不包含 商业逻辑;相反,它只是 将此呼叫转发给已配置的 提供者。这是责任 要包含的提供程序类 该方法的实现, 调用任何业务逻辑层 (BLL) 或数据访问层 (DAL) 必要的。

    有一些关于如何使用的规则 提供者的行为。提供者 实施必须源自 抽象基类,用于 定义一个特定的合同 特征。例如,要创建一个 Oracle 的会员提供商,您 创建一个新类 OracleMembershipProvider,其中 派生自 MembershipProviderBase。 要素基类,例如, MembershipProviderBase,反过来 派生自一个共同的 ProviderBase 基类。 ProviderBase 类是 用于将实施者标记为 提供者并强制实施 所需的方法和属性 对所有供应商通用。图 4 给出一个继承的例子 链。

    【讨论】:

    • 我可以知道他们这里没有使用接口的原因吗?像 IProvider
    猜你喜欢
    • 1970-01-01
    • 2014-09-30
    • 2018-06-17
    • 2014-05-15
    • 2018-05-24
    • 2015-12-11
    • 1970-01-01
    • 2010-10-21
    • 2014-02-08
    相关资源
    最近更新 更多