2010-03-19 30 views

回答

4

提供者大多位於您的邏輯和任何類型的數據存儲(數據庫,xml等)之間。 MSDN提及:

提供者以與設備驅動程序抽象硬件設備大致相同的方式抽象存儲介質。

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

例如: 在與數據庫或XML工作的代替,你想與平面文件存儲在磁盤上的某個地方你的網絡中工作。爲了管理這個,你建立一個自定義的提供者並且在你的邏輯中使用它來保存數據。

+1

它們存在的原因是要被替換。就像我現在寫一個Web應用程序,它將身份驗證和授權映射到應用程序內部用戶存儲 - 我可以很好地將其掛接到提供程序模型中。 – TomTom 2010-03-19 09:53:58

4

下面是從MS提供商圖案的描述(http://msdn.microsoft.com/en-us/library/ms972319.aspx):

圖案本身是極其簡單 和給出因爲它提供了API的 功能,所以名稱爲 「provider」。定義, 提供者僅僅是API與業務邏輯/數據 之間的契約。提供程序是從API本身執行的API分開的 的 。例如, 新的Whidbey成員特性有一個 靜態方法,稱爲 Membership.ValidateUser()。 成員類本身本身不包含 業務邏輯;相反,它只需 將此呼叫轉發給配置的 供應商。提供者類別包含 實現該方法的責任是 , 調用必要的任何業務邏輯層 (BLL)或數據訪問層(DAL)是 。

提供者的行爲有一些規則。提供商 的實現必須來自 抽象基類,該基類用於爲特定 功能定義合同。例如,要爲Oracle創建成員資格提供程序 ,您需要創建一個新類 OracleMembershipProvider,其中 從MembershipProviderBase派生。 特徵基類,例如 MembershipProviderBase,依次來自 從基類CommonBase 派生。 ProviderBase類是 ,用於將實現者標記爲 提供者,並強制實施 所需的方法和屬性 對所有提供者都是共同的。圖4 給出了一個繼承 鏈的例子。

+0

我可以知道他們爲什麼不在這裏使用接口的原因嗎?像IProvider – 2014-04-08 09:02:42