下载首页 | 资讯中心 | 文章分类 | 最近更新 | 排 行 榜 | 国产软件 | 国外软件 | 绿色软件 | 汉化补丁 | 游戏中心 |
文章搜索: 分类 关键字
您的位置:首页编程开发网络编程 → 深入ASP.NET 2.0的提供者模型
深入ASP.NET 2.0的提供者模型
来源:天极yesky 作者: 加入时间:2006-10-27 访问次数:40 [  ]

  一、 引言

  早在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开发中。

 二、 打破"僵硬"的API实现

  在我早期的WebForums.NET开发中,我认识到,这种"僵硬"的API实现将会成为一个问题。我的软件设计目标之一就是:尽可能灵活且可定制,并且使用户使用SQL Server,而且我的用户数据模型实现应该看起来充其量只是有些限制性。为了克服这些问题,我构建了一个包含下面两部分的系统:

  1. 一组定义了系统的核心功能的抽象基类;

  2. 能够在运行时刻动态地加载一个扩展抽象基类。具体地说,该代码负责检查包含一个<ConfigSetting>节(该节中给出要使用的类的完全限定名)的Web.config文件。

  借助于这一架构,我可以通过一系列抽象基类来定义系统的功能,并使用SQL Server 2000和Users表来提供这些类的具体实现。满足这一配置的客户可以只管使用该应用程序,并且一切将工作良好,且不需要他们编写一行代码。然而,那些需要定制的开发者们可以通过创建他们自己的派生自适当的抽象基类的类来实现。通过简单地把该程序集放到应用程序的/bin目录并更新Web.config文件,他们可以让系统使用这个新类。具体地说,WebForums.NET发行中带有一个抽象基类DataProvider,它清楚地列举出了系统中的所有方法,类似如下:

上一页 [1] [2] [3] [4] 下一页
评论人 评论内容摘要(共 0 条,查看完整内容) 得分 0 发表时间
 热点文章
·AC97声卡驱动下载 AC97万能声卡驱动
·USB万能驱动下载 USB2.0万能驱动下载
·多图+视频!体验比Vista还炫的窗口透明和3D桌面
·《阿猫阿狗大作战online》公测正式开始
·二战即时战略游戏《战争的真相》下载
·图解Windows Vista操作系统安装全过程
·《花木兰》完美流程攻略
·专业级品质 体验Word2007强大图表功能
·AVI视频压缩至尊 WisMencoder试用感受
·声卡驱动 AC97声卡驱动/创新声卡驱动
 推荐文章
·百度MTV视频将可免费下载
·《征途》发测试费 半天送出一千万元!
·利用QQ网吧免费开蓝钻
·没有Fdisk 照样给电脑硬盘分区
·新手入门:Fireworks雪花飘飘迎新春
·韩国射击网游《LAND MASS》首次公开
·上网聊天也需注意安全!聊天软件安全攻略
·黑客攻破SQL服务器系统的十种方法
·Excel旧表翻新技巧!
·三招方法帮你轻松解决Excel数据重复输入
WinXP下载基地 版权所有 Copyright© 2006-2008 WWW.WinXpd.COM, All Rights Reserved. 页面维护: WinXP下载基地(WinXP基D)