システムを一から設計・実装しなければならない状況です。アーキテクチャについていくつか質問があるので、コメントや考えをお願いします。
プロジェクトに関するクイック情報: データ中心の Web アプリケーションです。
アプリケーションは、MS SQL SERVER 2008 データベースを使用する Microsoft .NET Framework 4.0 上に構築されます。
要件:
- 豊富な UI と堅牢性
- マルチデバイスのサポート (すべてのブラウザーとすべてのデバイス)
- 疎結合
以下は、私が構築したアーキテクチャ図です。
アーキテクチャのブリーフィング
- プレゼンテーション層 : HTML5/ASP.NET MVC + JQuery (最初のバージョンではマルチデバイス対応の Web アプリケーション)
- 分散サービス : WCF (XML/JSON/JSONP)
- Domain Layer(Business Layer) : すべてのビジネスロジック
- データの永続性 (DAL レイヤー) : データベース ファースト アプローチの Entity Framework 4.0。POCO エンティティは、T4 テンプレートを使用して生成および分離されます
- インフラストラクチャ層: POCO エンティティ、例外処理、ロギングなどの共通ライブラリが含まれています。
私の懸念:
- アプリケーションは疎結合で構築されるため、将来的にビジネス要件が増大した場合、アーキテクチャに影響を与えることなく新しいモジュールを簡単にプラグインできます。そこで、IoC と DI と共にリポジトリ パターンを使用することを考えました (Unity/Ninject/Sprint.NET またはその他のいずれでもかまいません)。
- XML と JSON の両方をサポートする WCF
- IoC & DI を配置する分散サービス層
- Enterprise Library 5.0 を使用した例外処理とログ記録
貴重なコメントや提案を探しています。私が何か間違ったことをしている場合は、私を正しい方向に向けてください。