ASP.NET 2.0 Provider Model 概要

Similar documents
.NETプログラマー早期育成ドリル ~VB編 付録 文法早見表~

MISAO with WPF

LogisticaTRUCKServer-Ⅱ距離計算サーバ/Active-Xコントロール/クライアント 概略   

untitled

Oracle Lite Tutorial


ICONファイルフォーマット

プラグイン

LogisticaTRUCKServer-Ⅱ距離計算サーバ/Active-Xコントロール/クライアント 概略   

Oracle Lite Tutorial

VB 資料 電脳梁山泊烏賊塾 音声認識 System.Speech の利用 System.Speech に依るディクテーション ( 音声を文字列化 ).NetFramework3.0 以上 (Visual Studio 2010 以降 ) では 標準で System.Speech が用意されて居るの

プロセス間通信

Userコントロール

PowerPoint プレゼンテーション

Visual Basic 資料 電脳梁山泊烏賊塾 コレクション初期化子 コレクション初期化子 初めに.NET 版の Visual Basic では 其れ迄の Visual Basic 6.0 とは異なり 下記の例の様に変数宣言の構文に 初期値を代入する式が書ける様に成った 其の際 1 の様に単一の値

Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN Exam's Question and Answers 1 from Ac

データアダプタ概要

ArcObjects実践 ーオブジェクト・モデル・ダイアグラムの読み方とヘルプの活用ー

VB.NETコーディング標準

VB

グラフィックス

目次 はじめに... 3 システムの必要条件... 3 サンプルアプリケーションの作成... 3 手順 手順 手順 手順 手順 手順 終わりに... 23

ウィンドウ操作 応用

PowerPoint プレゼンテーション

Case 0 sqlcmdi.parameters("?tencode").value = Iidata(0) sqlcmdi.parameters("?tenname").value = Iidata(1) 内容を追加します sqlcmdi.executenonquery() Case Else

ファイル操作

Java演習(4) -- 変数と型 --

Oracle Lite Tutorial

コンピュータ概論

ファイル操作-インターネットキャッシュ

Secure iNetSuite for .NET 4.0Jの新仕様について

SpringSecurity

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版  


intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版   None

My関数の作成演習問題集

mySQLの利用

アプリケーション

(Microsoft Word \203v\203\215\203O\203\211\203~\203\223\203O)

Microsoft PowerPoint ppt

PowerPoint Presentation

Microsoft Intune MDM ソリューション向けDigiCert® 統合ガイド

ファイル操作-バイナリファイル

Windowsユーザーの為のOracle Database セキュリティ入門

正規表現応用

JAJP.qxd

sinfI2005_VBA.doc

ハッシュテーブル

ファイル監視

untitled

WTM2019SingleSignOn

D0050.PDF

Prog2_12th

D0120.PDF


グラフィックトレーニング 概要.NET のグラフィック描画は どんなことができるのでしょうか? グラフィックオブジェクトやグラフィック環境 概念を理解するためには クラスを使って馴れることが近道です 本 書に記載されているコードをカットアンドペーストして 一つ一つの機能を体験してください 前提 グラ

SiteMap for ASP.NET Web Forms

ルーレットプログラム

NAC(CCA): ACS 5.x 以降を使用した Clean Access Manager での認証の設定

MVP for VB が語る C# 入門

データを TreeView コントロールで表示 VisualStudio2017 の Web サイトプロジェクトで bootstrap, 及び script フォルダの js ファイルが使用できるマスターページを親とする TestTreeView.aspx ページを作成します 下記の html コー

ListViewコントロール

DAOの利用

かべうちテニス

LogisticaTRUCKServer-Ⅱ距離計算サーバ/Active-Xコントロール/クライアント 概略   


Visual Basic Oracle Database 11 Release 1

バスケットボール

intra-mart Accel Platform — IM-Repository拡張プログラミングガイド   初版  

Microsoft PowerPoint - ●SWIM_ _INET掲載用.pptx

SystemC言語概論

Formal Engineering Methods for Software Development --An Introduction to SOFL--

Msako技術資料 

目的 泡立ち法を例に Comparableインターフェイスの実装 抽象クラスの利用 型パラメタの利用 比較 入替 の回数を計測

新・明解Java入門

PowerPoint プレゼンテーション

, , B 305, ,

2

94 expression True False expression FalseMSDN IsNumber WorksheetFunctionIsNumberexpression expression True Office support.office.com/ja-jp/ S

AJAN IO制御コマンド コマンドリファレンス

XAML Do-It-Yourself 第 3 回ベントとトリガー XML Do-It-Yourself 第 3 回目は ベント処理とトリガーについて学習します Windows フォームゕプリケーションでは たとえば ボタンが押された というベントに対応する処理 ( ベントハンドラー ) を記述する

スライド 1

PowerPoint プレゼンテーション

Microsoft Excel操作

API 連携方式 外部 DLL の呼び出し宣言 外部 DLL の呼び出し宣言のサンプルコード (Microsoft Visual C#.NET の場合 ) プログラムコードの先頭で using System.Runtime.InteropServices; が必要 クラスの内部に以下のような外部 D

NPCA部誌2018

Condition DAQ condition condition 2 3 XML key value

Lesson 1 1 EXVBA2000 Lesson01 Lesson01.xls 2

csv csv

1 48

01.eps


// このクラスの有効期間中の各呼び出しに使用される キャッシュされた Socket オブジェクト Socket socket = null; // 非同期処理が完了したことを通知するために信号を送るオブジェクト static ManualResetEvent clientdone = new Ma


HTTP 404 への対処

H:\Projects2013\MatrixLibrary\MatrixLibrary\MatrixLibrary.cs /* ************************ * * * 行列関係のライブラリ * * * ************************ * * 行列の要素 A.V

untitled

TS-1009

Java から見たオブジェクト指向入門 オブジェクト指向 AtoZ セミナー ( 株 ) 豆蔵井上樹

VB.NET解説

Transcription:

ASP.NET 2.0 Provider Model 概要

Agenda ASP.NET 2.0 Provider Model とは カスタムプロバイダの実装 まとめ

ASP.NET 2.0 Provider Model とは ASP.NET 2.0 のインフラストラクチャ データストアへのアクセスをアプリケーションロジックから分離 データストアの変更に柔軟に対応 Strategy パターン デザインパターンによる意識の共通化

プロバイダモデル ASP.NET Application ASP.NET Services Providers Data Stores

プロバイダモデル ASP.NET Application ASP.NET Services Provider A Data Store A Provider B Data Store B Provider C Data Store C

プロバイダモデル ASP.NET Services Provider Web.Config Data Stores

ASP.NET 2.0 Provider Model と Strategy Strategy パターンとは

ASP.NET 2.0 Provider Model と Strategy ASP.NET 2.0 Provider Model

ASP.NET 2.0 Provider Model と Strategy 本来の Strategy パターンは Interface で実装 ASP.NET 2.0 Provider Model は基本クラスによる実装を採用 理由はよくわからない

機能と提供されるプロバイダ Membership System.Web.Security.MembershipProvider System.Web.Security.ActiveDirectoryMembershipProvider System.Web.Security.SqlMembershipProvider Role management System.Web.Security.RoleProvider System.Web.Security.AuthorizationStoreRoleProvider System.Web.Security.SqlRoleProvider System.Web.Security.WindowsTokenRoleProvider Site map System.Web.SiteMapProvider System.Web.XmlSiteMapProvider

機能と提供されるプロバイダ Profile System.Web.Profile.ProfileProvider System.Web.Profile.SqlProfileProvider Session state System.Web.SessionState.SessionStateStoreProviderBase System.Web.SessionState.InProcSessionStateStore System.Web.SessionState.OutOfProcSessionStateStore System.Web.SessionState.SqlSessionStateStore

Web events 機能と提供されるプロバイダ System.Diagnostics.Eventing.EventProvider System.Web.Management.EventLogWebEventProvider System.Web.Management.SimpleMailWebEventProvider System.Web.Management.TemplatedMailWebEventProvider System.Web.Management.SqlWebEventProvider System.Web.Management.TraceWebEventProvider System.Web.Management.WmiWebEventProvider

機能と提供されるプロバイダ Web Parts personalization System.Web.UI.WebControls.WebParts.PersonalizationProvider System.Web.UI.WebControls.WebParts.SqlPersonalizationProvider Protected configuration System.Configuration.ProtectedConfigurationProvider System.Configuration.DPAPIProtectedConfigurationProvider System.Configuration.RSAProtectedConfigurationProvider

カスタムプロバイダの実装 ビルトインプロバイダ以外にも独自のカスタムプロバイダを実装できる シンプルなフレームワーク

提供されるクラス System.Configuration.Provider 名前空間 ProviderBase クラス すべての Provider クラスの基本クラス ProviderCollection クラス ProviderBase を継承するクラスを格納するコレクションクラス ProviderException クラス Provider Model の実装時に使用する例外クラス

ProviderBase クラス Namespace System.Configuration.Provider Public MustInherit Class ProviderBase Private _name As String Private _description As String Private _initialized As Boolean Public Overridable ReadOnly Property Name() As String Public Overridable ReadOnly Property Description() As String Public Overridable Sub Initialize (ByVal name As String, ByVal config As System.Collections.Specialized.NameValueCollection) End Class End Namespace

ProviderBase.Initialize メソッド Public Overridable Sub Initialize(ByVal name As String, ByVal config As NameValueCollection) SyncLock Me If _initialized Then Throw New InvalidOperationException("...") End If _initialized = True End SyncLock If (name = Nothing) Then Throw New ArgumentNullException("name") End If If (name.length = 0) Then Throw New ArgumentException("...", "name") End If _name = name If config IsNot Nothing Then _description = config("description") config.remove("description") End If End Sub

クラスレイアウト

Web.Config <configsections> <sectiongroup name="system.web"> <section name="customservice" type="customservicesection, CustomSections" allowdefinition="machinetoapplication" restartonexternalchanges="true" /> </sectiongroup> </configsections>

Web.Config <CustomService defaultprovider="sqlcustomprovider"> <providers> <add name="sqlcustomprovider" type="sqlcustomprovider" connectionstringname= "/> <add name="xmlcustomprovider" type="xmlcustomprovider" directorypath= "/> </providers> </CustomService>

LoadProviders メソッド Private Shared Sub LoadProviders() If _provider Is Nothing Then SyncLock _lock If _provider Is Nothing Then Dim section As CustomServiceSection = _ CType(WebConfigurationManager.GetSection _ ( system.web/customservice ), CustomServiceSection) _providers = New CustomProviderCollection() ProvidersHelper.InstantiateProviders _ (section.providers, _providers, GetType(CustomProvider)) _provider = _providers(section.defaultprovider) If _provider Is Nothing Then Throw New ProviderException _ ("Unable to load default CustomProvider") End If End If End SyncLock End If End Sub

シンプルな設計 まとめ ベースクラスを継承するだけ データストアの変更に柔軟に対応 データストアの数だけプロバイダを作っても デザインパターンによる意識の共通化 Strategy パターンというよりは ASP.NET Provider Model という認識で OK

参考文献 MSDN : Provider Model, Visual Basic (Visual Basic) http://msdn.microsoft.com/en-us/library/aa530801.aspx MSDN : ASP.NET 2.0 Provider Model : Introduction to the Provider Model (C#) http://msdn.microsoft.com/en-us/library/aa479030.aspx ASP.NET 2.0 Provider Model.pdf (C#) http://download.microsoft.com/download/2/a/e/2aeabd28-3171-4b95-9363-22150625a6a5/asp.net%20provider%20model.pdf MSDN : AProvider Tool Kit http://msdn.microsoft.com/en-us/asp.net/aa336558.aspx