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

Slides:



Advertisements
Similar presentations
AIR マスターへの 抜け道!? ~といいつつ王道話です~ 平成 20 年 2 月 6 日 図書系のための アプリケーション開発講習会.
Advertisements

物理演算を利用したビデオエフェクタの 作成 浅野益弘. 研究内容 経緯 NiVE ( Nico Visual Effects )用のエフェ クトプラグインの作成 本プラグインにより動画作成にかかる 時間と手間の短縮と省力化を目指す.
マルチスレッド GUI モデル 小笠原啓 有限会社 IT プランニング. Page 2 ゴール  マルチスレッドな GUI ライブラリを OCaml で。  動きのある UI は近頃必須なので、アニメーションを容易にする仕組みを導 入。  GUI 部品のイベント、見かけを自由にカスタマイズできるように。
1 7.時間限定チューリングマシンと クラス P. 2 7 -1.入力サイズ チューリングマシンの入力記号 の長さ を 入力サイズという。 名称:合成数の問題 インスタンス:整数n 問:nは合成数か? 通常は、入力サイズとしてはもっとも短い表現での 長さが利用される。 例えば、次のような合成数の問題における入力サイズは、
7.n次の行列式   一般的な(n次の)行列式の定義には、数学的な概念がいろいろ必要である。まずそれらを順に見ていく。
第 3 回 iPhone アプリ開発勉強会 Objective-C 基礎講座 - インスタンスメソッド - 三井 相和.
9.線形写像.
Boost::progress_display++ Boost. 懇親会 #5 名古屋 2011/05/14 郵便はみがき.
神戸大学 大学院 理学研究科 地球惑星科学専攻 地球および惑星大気科学研究室 M 2 島津 通. Index ITPASSとは 目的 目標 活動内容 勉強会 計算機管理 その他の活動 環境 まとめ.
学生の携帯電話選択理由 岡田隆太.
時間的に変化する信号. 普通の正弦波 は豊富な情報を含んでいません これだけではラジオのような複雑な情報 を送れない 振幅 a あるいは角速度 ω を時間的に変化 させて情報を送る.
麻雀ゲーム 和島研究室 ソ 小林巧人
5.連立一次方程式.
相関.
音当て Game 時田 大樹 飛山 雄太郎. 作品の目的 入力として、スイッチを押すと音がスピー カーから流れ、スイッチを離すと、音が止 まる仕組みとなっている。
論理回路 第2回 今日の内容 前回の課題の説明 数の体系 – 数の表現 – 代表的な数 – 基数の変換 – 補数.
ノイズ. 雑音とも呼ばれる。(音でなくても、雑 音という) 入力データに含まれる、本来ほしくない 成分.
広告付き価格サービ ス 小園一正. はじめに 世の中には様々な表現方法の広告があり ます。その中でも私たち学生にとって身 近にあるものを広告媒体として取り入れ られている。 価格サービス(無料配布のルーズリー フ)を体験したことにより興味を惹かれ るきっかけとなった。主な目的は、これ.
素数判定法 2011/6/20.
フーリエ係数の性質. どこまで足す? 理想的には無限大であるが、実際に はそれは出来ない これをフーリエ解析してみる.
地球温暖化と 天候の関係性 ~温暖化は天候のせいなのではないのか~. 目的課題 地球温暖化現象 ただの気象条件によるものではないのか? 地球温暖化現象に天候は関係しているの か?
公開鍵暗号系 2011/05/09.
1章 行列と行列式.
本宮市立白岩小学校. 1 はじめに 2 家庭学習プログラム開発の視点 ① 先行学習(予習)を生かした 確かな学力を形成する授業づく り ② 家庭との連携を図った家庭学習の習慣化.
Internet Application/Presentation Layer 岡村耕二. Application and Presentation Layer Application 層 – データ通信を利用した様々なサービスを人間 や他のプログラムに提供する。 Presentation 層 –
プログラミングⅠ( 1 組) 第 9 回
フーリエ級数. 一般的な波はこのように表せる a,b をフーリエ級数とい う 比率:
3.エントロピーの性質と各種情報量.
9.通信路符号化手法1 (誤り検出と誤り訂正の原理)
Excelによる積分.
1 6.低次の行列式とその応用. 2 行列式とは 行列式とは、正方行列の特徴を表す一つのスカ ラーである。すなわち、行列式は正方行列からスカ ラーに写す写像の一種とみなすこともできる。 正方行列 スカラー(実数) の行列に対する行列式を、 次の行列式という。 行列 の行列式を とも表す。 行列式と行列の記号.
計算のスピードアップ コンピュータでも、sin、cosの計算は大変です 足し算、引き算、掛け算、割り算は早いです
線形符号(10章).
1 0章 数学基礎. 2 ( 定義)集合 集合については、 3セメスタ開講の「離散数学」で詳しく扱う。 集合 大学では、高校より厳密に議論を行う。そのために、議論の 対象を明確にする必要がある。 ある “ もの ” (基本的な対象、概念)の集まりを、 集合という。 集合に含まれる “ もの ” を、集合の要素または元という。
複素数.
4.プッシュダウンオートマトンと 文脈自由文法の等価性
1 0章 数学基礎. 2 ( 定義)集合 集合については、 3セメスタ開講の「離散数学」で詳しく扱う。 集合 大学では、高校より厳密に議論を行う。そのために、議論の 対象を明確にする必要がある。 ある “ もの ” (基本的な対象、概念)の集まりを、 集合という。 集合に含まれる “ もの ” を、集合の要素または元という。
信号測定. 正弦波 多くの場合正弦波は 0V の上下で振動する しかし、これでは AD 変換器に入れら れないので、オフ セットを調整して データを取った.
1 9.線形写像. 2 ここでは、行列の積によって、写像を 定義できることをみていく。 また、行列の積によって定義される写 像の性質を調べていく。
通信路(7章).
3.プッシュダウンオートマトンと 文脈自由文法
ビット. 十進数と二進数 十進数  0から9までの数字を使って 0、1、2、3、4、5、6、7、8、9、 10、11、12 と数える 二進数  0と1を使って 0、1、10、11、100、101、11 0、111 と数える.
正弦波.
3.正方行列(単位行列、逆行列、対称行列、交代行列)
第 6 回 iPhone アプリ勉強会 〜画像の取得と処理〜 縣 禎輝. はじめに カメラアプリを作成 – 基盤となる Interface とアクションメソッドの作成 – 画像の取得先の設定 – 画像の表示と保存 – 画像にエフェクトをかける 参考ウェブサイト –
伝わるスライド 中野研究室 M2 石川 雅 信. どのようなスライドを作れば良 いか 伝えたいこと.
JPN 311: Conversation and Composition 許可 (permission)
方程式を「算木」で 解いてみよう! 愛媛大学 教育学部 平田 浩一.
C言語応用 構造体.
DirectX を使った操作が簡単な2 D 格闘ゲームの制 作 ソ20003 蛯名敏規
Automatic Language Acquisition, an Interactive Approach † Robert J. Martin † 大西昇 ‡ 山村毅 † 名古屋大学 ‡ 愛知県立大学.
JPN 312 (Fall 2007): Conversation and Composition 文句 ( もんく ) を言う.
1 中野研究室 4 年ゼミのイロハ 斉藤(修士 2 年) ( 2009 年 ”4 年ゼミのイロハ ” を参考に作りました)
1 プログラミング言語論 第13回 プログラムの意味論と検証 (2) 表示的意味論 担当:犬塚. 2 表示的意味論 denotational semantics  表示的意味論では、プログラムの要素とそれが 意味するものを対応付ける。 変数 式 文 A B … A+2 2B+C A:=A+2 if.
プログラミングⅠ( 2 組) 第 1 回 / pLB1.pptx.
リファクタリング支援のための コードクローンに含まれる識別子の変更内容分析 井上研究室 工藤 良介 1.
タイピングゲー ム ~坂井 D 班の発表~ ~坂井 D 班の発表~. メンバー  村本 晟弥  岡本 武士  若松 健人.
ことばとコンピュータ 2007 年度 1 学期 第 1 回. 2 ことばとコンピュータ 授業科目名:言語情報処理論 授業題目名:ことばとコンピュータ 履修コード: 5067 教室: 323 一学期開講 授業の進め方 – 基本的に講義中心ですすめ,時々コンピュー タを使う.
携帯電話でのコミュニ ケーションについて 1班真田 出水 佐伯 堺. 仮説  女性のほうが携帯電話を使ったコミュニ ケーションを重要視する。
NO!END!NO!CLEAR ! J チーム 渡邊光児 小山内彩子 下山直城. 役割 渡邊光児 ゲームオーバー画面の作成、ライフの絵作成 小山内彩子 ゲーム内のプログラム、主人公と敵と背景作 成 下山直城 タイトル画面の作成.
小島 肇  Windows ではアンチウイルスソフトウェアは 必須だが、「入れれば安心」というものでは ない  Mac, Linux における費用対効果はかなり低い  現時点ではマルウェアは流行っていないから  Windows を併用している場合は別.
音の変化を視覚化する サウンドプレイヤーの作成
HCC Hair Color Change. メンバー ソ 渋谷麻美 ソ 渋谷麻美 ソ 清野理衣子 ソ 清野理衣子 ソ 三上貴大 ソ 三上貴大.
Self-efficacy(自己効力感)について
1 オペレーティングシステム #7 計算機工学 III オペレーティングシステム #7 主記憶管理:主記憶管理基礎 2006/05/26 津邑 公暁.
本文. 考えながら読みましょ う 「いろいろなこと」( 3 行目)は何で すか 「①電話料金はコンビニで支払いをしていま す。いつでも払えますから、便利です。」 「②夕食はコンビニで買います。お弁当やお かずがいろいろありますから。」今、若者に 人気のあるコンビニは、いろいろなことをす るのに非常に便利な場所になった。
たくさんの人がいっしょに乗れる乗り物を 「公共交通」といいます バスや電車 と 自動車 の よいところ と よくない ところ よいところ と よくない ところ を考えてみよう!
1 Rails for Ruby 1.9 moriq Rails 関西. 2 もくじ Ruby 1.8 vs 1.9 Rails for Ruby 1.9 Install Ruby 1.9 Benchmark.
腎臓移植 腎臓移植の前に、ドナー両方の腎臓は機 能的に良好でなければならない。ドナー の両方の腎臓が機能的に健康であること を保証するために、多数の試験が行われ ている。
Ask Have ~ ? / How long ~ ? Answer these questions
Presentation transcript:

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 Provide r A Data Store A Provide rB Data Store B Provide rC Data Store C

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

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.OutOfProcSessionStateStor e System.Web.SessionState.SqlSessionStateStore

機能と提供されるプロバイダ Web events –System.Diagnostics.Eventing.EventProvider System.Web.Management.EventLogWebEventProvider System.Web.Management.Simpl WebEventProvid er System.Web.Management.TemplatedMailWebEventPro vider 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.ProtectedConfigurationProvid er System.Configuration.DPAPIProtectedConfigurationProvi der System.Configuration.RSAProtectedConfigurationProvide r

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

提供されるクラス 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 <section name="CustomService" type="CustomServiceSection, CustomSections" allowDefinition="MachineToApplication" restartOnExternalChanges="true" />

Web.Config

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 SyncLock End If End Sub

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

参考文献 MSDN : Provider Model, Visual Basic (Visual Basic) MSDN : ASP.NET 2.0 Provider Model : Introduction to the Provider Model (C#) ASP.NET 2.0 Provider Model.pdf (C#) a6a5/ASP.NET%20Provider%20Model.pdf MSDN : AProvider Tool Kit