科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件深入ASP.NET 2.0的提供者模型

深入ASP.NET 2.0的提供者模型

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在本文中,我们将详细探讨提供者模型并分析如何把它应用于ASP.NET 2.0开发中

作者:朱先忠编译 来源:天极软件 2007年11月6日

关键字: ASP.NET 提供者 模型 Windows

  • 评论
  • 分享微博
  • 分享邮件
一、 引言

  早在2001年,我就着手开发一个ASP.NET在线消息板应用程序WebForums.NET。其目的是创建一个基于ASP.NET的消息板系统,而且该系统可以容易插入到一个现有网站中。构建这样一个端对端应用程序的特别挑战之一就是,要为客户提供一种方式以便能够把它集成到他们自己的系统中去。例如,一个在线论坛明显需要使用某种数据存储来存储用户信息、论坛、回寄信息等;但是,最好不要把客户锁定到一种特定的数据存储中。也就是说,你不应该说,"我的应用程序必须使用微软的SQL Server 2000";因为这样的话,使用Oracle或Access的客户怎么会使用你的软件呢?

  另一个集成到客户现有数据中的问题是,所有的在线论坛站点都提供用户帐户和一种创建新帐户的方式。典型情况下,这被建模为一个论坛架构(以一个数据库中的Users表形式存在)。但是,客户很可能已经有他们自己的拥有成千的用户帐户的数据库表。或者,一个客户可能想在一个内部网设置中使用该论坛,并且想使用活动目录而不是某种数据库表来认证和存储用户信息。因此,当一个论坛软件系统创建一个Users数据库表并对其客户说"这就是你存储用户的方式"时,那些已经拥有现有基础结构和用户数据的客户很可能会疏远这样的软件。

  因此,当你使用一种"僵硬"的API构建一个系统时,会产生特别的挑战。一种"僵硬"的API不是提供一种方式来定制逻辑而是硬编码实现细节(例如,你必须使用SQL Server作为你的后端数据存储,且在这个数据库有一个Users表,并将在其中存储所有的用户信息)。然而,通过使用提供者设计模式,你可以轻易地打破这种"僵硬"性。借助于提供者设计模式,系统架构师只需要定义API,至于编程功能则由系统来提供。对于一个在线论坛应用程序来说,这可能包括一个具有例如Authenticate(username,password)和GetUserDetails(username)等方法的Users类。

  提供者模型的优秀在于客户实现方案可以指定一个系统应该使用的定制类。这种定制类必须实现系统的良好定义的API;但是,它允许无缝地插入任何定制实现。也就是说,一旦定义这个API,系统实现者可以创建一个使用SQL Server和一个Users表的默认的具体实现-大多数客户可以直接使用之而不必要作任何修改。那些有定制需要的客户(他们想使用Oracle或以另外一些方式存储用户数据)可以创建他们自己的类,该类提供必要的功能并且把它们插入到这些客户的系统中。

  其实,提供者设计模式被应用于整个ASP.NET 2.0实现中。当然,网上也存在一些如何在ASP.NET 1.x应用程序中使用这一功能的教程。

  在本文中,我们将详细探讨提供者模型并分析如何把它应用于ASP.NET 2.0开发中。
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章