0

Dot Net Nuke のソース コードを理解しようとしています。データ層がどのように実装されているかを簡単に説明できる人はいますか?

ストアド プロシージャが呼び出されるコードを見つけようとしています。

オンラインでいくつかのビデオ チュートリアルを確認し、いくつかのブログを読みましたが、まだ答えが見つかりません。

4

1 に答える 1

3

DotNetNuke の「データ層」は DotNetNuke.SqlDataProvider です

データ層は、実際のプロバイダーが実行時に決定される、抽象化された「DataProvider」モデルを使用します。実際には、これは通常、Sql Server データベースを DotNetNuke のデータストアとして使用する SqlDataProvider です。

理論的には、データ プロバイダーの別の実装を作成することで、DotNetNuke アプリケーションと任意のタイプのデータベースまたはデータ ストアとの間のアクセスを許可するデータ プロバイダーを作成できます。ずっと前に書かれたオラクルがあったかもしれないと思いますが、ほぼすべてのインストールがデータストアとしてSql Serverを使用しています.

SqlDataProvider は従来、Microsoft.ApplicationBlocks.dll コンポーネントの上に置かれてきたため、実際のストアド プロシージャの呼び出しはこの層を通じて実行されます。

DotNetNuke コアのほとんどのモジュールおよびその他の拡張機能も、独自の特定のデータ プロバイダー実装を使用しますが、単純にするために Sql データ レイヤーを単一のアセンブリに組み込むことが一般的な方法になっています。

ほとんどのストアド プロシージャは実行され、IDataReader の結果セットから特定のオブジェクトに変換するために CBO オブジェクトを介して返されます。

例を見つけるには、バンドルされているコア モジュールの 1 つを選択し、Html/Text モジュールなどを調べます。

最後に、DotNetNuke 7 の登場により、データ プロバイダー モデルは、DotNetNuke 1.0 が出荷されて以来、最初のメジャー リビジョンである Data Access Layer 2 (dal2) の対象になります。これに関するチャールズ・ナースのブログのいくつかを読むことをお勧めします。

チャールズ ナース ブログ : 'dal2' のエントリ

于 2012-10-05T00:43:02.147 に答える