以前に一部作業していた現在のシステムを書き直す予定です。私はこれを学習演習として行っています。以下は、古いシステム、新しいシステムの基本的なアーキテクチャ、従うべきいくつかのベストプラクティス、達成したい目標、および私の質問の説明です。
古いシステムについて説明し
ます。1。SQLServerデータベース(正規化されていません)
2。Palmアプリケーション(データベースにデータを入力するため)
3。Webサービス1(Palmアプリケーションはデータベースに入力するためにデータを送信します)
4。Webアプリケーション(データベースにデータを入力してください)-私はこれを作成しました
5. Webサービス2(Webアプリケーション1はデータベースに入力するためにデータを送信します)-私はこれを作成しました
6. Webサイト(データを直接CRUDしてレポートを印刷するため)
新しいシステムのアーキテクチャの概念について説明し
ます。1。UIWebアプリケーションソリューション-古いWebサイトを置き換えます。
2.UIWebアプリケーションソリューション-古いWebアプリケーションとPalmアプリケーションを置き換えます。
3. Webサービスソリューション(WCFを使用)-古いWebサービス1とWebサービス2を置き換えます
。4。ビジネスオブジェクトソリューション-ビジネスオブジェクト、データアクセスソリューションへのコード呼び出し、およびビジネスロジックソリューションへのコード呼び出しがここに配置されます。
5.ビジネスロジックソリューション-ビジネスルールはここに配置されます。
6.データアクセスソリューション-データベースとの間でデータを取得するためのコードがここに配置されます。
7.データ転送オブジェクトソリューション-次のように情報を転送するために使用されます。
7.1。 Webサービスソリューションとの間のUIソリューション。
7.2。 ビジネスオブジェクトソリューションとの間のWebサービスソリューション。
7.3。 データアクセスソリューションとの間のビジネスオブジェクトソリューション。
新しいシステムのベストプラクティスの概念を説明しましょう。1。Web
サービスソリューションの単体テスト。
2.ビジネスオブジェクトソリューションの単体テスト。
3.ビジネスロジックの単体テスト。
4.データアクセスソリューションの単体テスト。
5.単一責任の原則
6.オープン/クローズの原則
7.リスコフの置換の原則
8.インターフェースの分離の原則
9.依存性逆転の原則
新しいシステムの目標
デザインパターン、WCF、TDD、Rhino Mocks、Expression Blend 3、Visual Studio 2010、TFSを学びながら、システム全体に統合テストをラップした単体テストをラップしたクリーンなコードを生成できることを願っています。 2010.また、このシステムを、Railsなどの将来の新しい言語を学習するためのリファレンスとして使用したいと思います。
質問
1.私がレイアウトしたものに基づいて、誰かが私のアーキテクチャに問題を抱えていますか?より良いアイデアはありますか?
2.記載されていない、従うべき特定のベストプラクティスはありますか?
3.従うべきではない、私がリストした特定のベストプラクティスはありますか?
お時間をいただきありがとうございます!