0

私は MVC アプリケーション開発の初心者です。MVC を使用して新しいプロジェクトを開発したいと思っています。MVC アプリケーションに適したアーキテクチャをたくさん探しました。多くの記事やブログを読んだ後、リポジトリ パターンがこれに使用できることを知りました。
実際のプロジェクトを開始する前の私の理解に基づいて、以下に説明するようなダミーのプロジェクト構造を作成しました [EDMX ファイル、プロジェクトのエンティティ フレームワーク、定義されたカスタム DAL を使用しない]

私のダミーアプリケーションの名前はRepositoryです。ダミーアプリケーションを開発するための例として、国、州、都市の関係を取り上げました。

Repository_DAL_V1 クラス ライブラリこのライブラリには、次のようなクラスがあります。
SQLHelper.cs : このクラスには、ExecutenonQuery などのクエリに対して実行されるメソッドがあります。

Repository_DTO_V1 クラス ライブラリこのライブラリには、次のようなクラスがあります。
CountryDTO.cs : このクラスは、[ CountryDTO:CountryModel ] として CountryModel.cs から継承されます。これは、アプリケーションのすべてのレイヤー間でデータを移動するために使用されます。ビジネスで使用する場合、これはモデルではなく DTO で作成されます。
CountryDTOMapper.cs : これは、データベースのデータを DataTable の形式で DTO オブジェクトのコレクションにマップするために使用されます。

Repository_Implementation web mvc プロジェクトこれは UI レイヤーです。

Repository_IRepositories_V1 クラス ライブラリこのライブラリには、次のようなクラスがあります。
ICountryRepository.cs : これは、SaveCountry() などの関数を宣言したインターフェイスです。

Repository_Models クラス ライブラリこのライブラリには、次のようなクラスがあります。
CountryModel.cs : このクラスには、データベース内のテーブルのすべての列のプロパティがあります。

Repository_Repositories_V1 クラス ライブラリこのライブラリには、次のようなクラスがあります。
CountryRepository.cs : SaveCountry() などの関数が定義されたリポジトリ クラスです。

Repository_ViewModel_V1 クラス ライブラリこのライブラリには、次のようなクラスがあります。
CountryViewModel.cs : これは、画面上のカントリー ビュー用にビルドされます。

上記のプロジェクト参照の詳細:

Repository_DTO_V1 には Repository_Models の参照があります。
Repository_IRepositories_V1 には、Repository_DTO_V1,Repository_Models の参照があります。
Repository_Repositories_V1 には、Repository_IRepositories_V1、Repository_DAL_V1、Repository_DTO_V1、Repository_Models の参照があります。
Repository_ViewModel_V1 には、Repository_Repositories_V1、Repository_IRepositories_V1、Repository_DTO_V1、Repository_Models の参照があります。

私を正しい方向に導くために、皆さんからの導きが必要です。

4

2 に答える 2

0

私はEFにミスを与えたいというあなたと一緒です。

@Dejan.S が言うように、必要なアーキテクチャはプロジェクトのサイズによって異なります。

おそらく 3 つのプロジェクトから簡単に始めます。

  • Web プロジェクト。
  • コントローラーがモデルとビジネス ロジックにアクセスするために使用するサービス プロジェクト。
  • モデルとデータ アクセスを含むドメイン プロジェクト。

分離する必要がある場合 (DAL など) は、後で行うことができます。

また、ServiceStack のMVC Power Packもチェックしてください。優れたマイクロ ORM、IoC、キャッシング、高速シリアライザーなどをすぐに利用できます。

于 2013-02-20T10:00:58.207 に答える
0

EFを使用しないことが、レイヤーごとに行った他のプロジェクトと異なる理由はわかりません。複数のレイヤーを使用することに慣れている場合、物事の構造に問題はありません。あなたのプロジェクトが何であるかはわかりませんが、プロジェクト名 (リポジトリ) や実装は Web という名前の方が適切です。

編集
ORM を使用する場合は、Code First で Entity Framework 5 を使用することをお勧めします。

于 2013-02-20T06:28:00.243 に答える