連絡先マネージャー ソリューション

作成者: Jason Lee

この一連のチュートリアルでは、サンプル ソリューション (Contact Manager ソリューション) を使用して、現実的なレベルの複雑さのエンタープライズ規模のアプリケーションを表します。 このトピックでは、Contact Manager ソリューションについて説明し、ソリューションの主要なコンポーネントについて説明し、この種のアプリケーションをエンタープライズ環境のさまざまな展開先プラットフォームに展開する際の課題を特定します。

これらのチュートリアルのトピックを進める際は、Contact Manager ソリューションを、エンタープライズ展開シナリオで特定の課題にどのように対処するかを示す、参照用の実装として使用できます。 次のトピック「Contact Manager ソリューションのセットアップ」では、開発者ワークステーションでソリューションをダウンロードして実行する方法について説明します。

ソリューションの概要

Contact Manager ソリューションは、次の 4 つの個々のプロジェクトで構成されます。

The Contact Manager solution consists of four individual projects.

  • ContactManager.Mvc。 これは、ソリューションのエントリ ポイントを表す ASP.NET MVC 3 Web アプリケーション プロジェクトです。 ユーザーに連絡先の詳細を作成および表示する機能を提供するなどの基本的な Web アプリケーション機能が用意されています。 アプリケーションは、Windows Communication Foundation (WCF) サービスを使用して連絡先を管理し、ASP.NET アプリケーション サービス データベースを使用して認証と認可を管理します。
  • ContactManager.Database。 これは Visual Studio データベース プロジェクトです。 プロジェクトは、連絡先の詳細を格納するデータベースのスキーマを定義します。
  • ContactManager.Service。 これは WCF Web サービス プロジェクトです。 WCF サービスは、呼び出し元が ContactManager データベースに対して作成、取得、更新、削除 (CRUD) 操作を実行できるようにするエンドポイントを公開します。 このサービスは、ContactManager データベースと ContactManager.Common.dll アセンブリに依存します。
  • ContactManager.Common。 これはクラス ライブラリ プロジェクトです。 WCF サービスは、このアセンブリで定義されている型に依存します。

ソリューションには、Publish という名前のソリューション フォルダーも含まれています。 これには、ビルドと配置のプロセスを制御し、操作する方法を示す、さまざまなカスタム プロジェクト ファイルとコマンド ファイルが含まれています。 これについては、このチュートリアルで後ほど詳しく説明します。

概念レベルでは、ソリューションのコンポーネントは次のように一緒に収まります。

How the components of the solution fit together at a conceptual level.

Note

ASP.NET MVC 3 Web アプリケーションでは ASP.NET メンバーシップ プロバイダーが使用されますが、Web アプリケーション内のすべてのページで匿名アクセスが許可されます。 これは明らかに現実的な構成ではありません。 しかし、このように設定されているのは、ユーザー アカウントやロールを構成せずにソリューションを簡単に展開してテストできるようにするためです。

展開の課題

Contact Manager ソリューションは、多くのエンタープライズ展開シナリオに共通するいくつかの展開の課題を示しています。

  • ソリューションは、複数の依存プロジェクトで構成されます。 これらのプロジェクトを同時に展開する必要があります。
  • 接続文字列とサービス エンドポイントは環境ごとに更新する必要があり、多くの場合、開発者がこの情報を利用することはできません。
  • ContactManager データベースをステージング環境と運用環境に展開する際は、後続の展開で既存のデータを保持する必要があります。
  • ASP.NET アプリケーション サービス データベースを展開する際は、いくつかの構成データを展開する必要がありますが、ユーザー アカウント データは省略します。
  • プロジェクトには、展開すべきでないファイルとフォルダーがいくつか含まれています。 これらのファイルとフォルダーを展開プロセスから除外する必要があります。
  • このソリューションは、Team Foundation Server (TFS) ビルド サーバーからの自動展開をサポートする必要があります。

まとめ

このトピックでは、Contact Manager ソリューションの概要を説明し、多くのエンタープライズ展開シナリオに共通する固有の展開の課題をいくつか特定しました。 このチュートリアルの他のトピックでは、これらの課題に対応するために使用できる手法の一部について説明します。

次のトピック「Contact Manager ソリューションのセットアップ」では、開発者ワークステーションでソリューションをダウンロードして実行する方法について説明します。