アプリケーション アーキテクチャ ガイド 2.0

ガイドの概要

更新日: 2011 年 4 月 8 日

著作権

このドキュメントに記載されている情報 (URL 等のインターネット Web サイトに関する情報を含む) は、将来予告なしに変更することがあります。別途記載されていない場合、このソフトウェアおよび関連するドキュメントで使用している会社、組織、製品、ドメイン名、電子メール アドレス、ロゴ、人物、場所、出来事などの名称は架空のものです。実在する商品名、団体名、個人名などとは一切関係ありません。お客様ご自身の責任において、 適用されるすべての著作権関連法規に従ったご使用を願います。このドキュメントのいかなる部分も、米国 Microsoft Corporation の書面による許諾を受けることなく、その目的を問わず、どのような形態であっても、複製または譲渡、あるいは検索システムに格納または公開することは禁じられています。ここでいう形態とは、複写や記録など、電子的な、または物理的なすべての手段を含みます。

マイクロソフトは、このドキュメントに記載されている内容に関し、特許、特許申請、商標、著作権、またはその他の無体財産権を有する場合があります。別途マイクロソフトのライセンス契約上に明示の規定のない限り、このドキュメントはこれらの特許、商標、著作権、またはその他の無体財産権に関する権利をお客様に許諾するものではありません。

© 2009 Microsoft Corporation. All rights reserved.

Microsoft、MS-DOS、Windows、Windows NT、Windows Server、Active Directory、MSDN、Visual Basic、Visual C++、Visual C#、Visual Studio、および Win32 は、米国 Microsoft Corporation の米国およびその他の国における登録商標または商標です。

記載されている会社名、製品名には、各社の商標のものもあります。


このガイドは、開発者とソリューション アーキテクトが、十分に試行されて信頼できるアーキテクチャ、設計原理、およびパターンを活用することによって、マイクロソフト プラットフォームと .NET Framework で実行する効果的で高品質のアプリケーションを少ないリスクですばやく構築できるようにすることを目的としています。

このガイドでは、優れたアプリケーション アーキテクチャとアプリケーション設計の堅固な基盤を提供する基になる原理とパターンの概要を紹介します。この基盤の概要を背景として、アプリケーションの機能をレイヤー、コンポーネント、およびサービスに分ける汎用的なガイダンスを提供します。さらに、ソリューションの重要な設計特性、重要な品質特性 (パフォーマンス、セキュリティ、スケーラビリティなど)、および横断的関心事 (キャッシュ、ログなど) の特定と対処についてのガイダンスも提供します。また、さらに一歩踏み込んで、Web アプリケーション、リッチ インターネット アプリケーション (RIA)、リッチ クライアント アプリケーション、サービス アプリケーション、モバイル アプリケーションなどの、一般的な種類のアプリケーションのアーキテクチャと設計に特化したガイダンスも提供します。

このガイドを読むと、次のことができるようになります。

  • マイクロソフト プラットフォームで実行する正常なソリューションを開発するための基盤となるアーキテクチャと設計の原理およびパターンを理解する
  • ソリューションのレイヤー、コンポーネント、およびサービスを設計する際に役立つ適切な戦略と設計パターンを特定する
  • ソリューションの主要な設計上の判断事項を特定して対処する
  • ソリューションの重要な品質特性と横断的関心事を特定して対処する
  • ソリューションに適したテクノロジを選択する
  • ソリューションのベースライン アーキテクチャ候補を作成する
  • patterns & practices ソリューションの資産とソリューションを実装する際に役立つガイダンスを見つける

このガイドでは広範囲を扱っていますが、アプリケーションのアーキテクチャと設計の分野に関する完全で包括的な専門書ではなく、マイクロソフト プラットフォームと .NET Framework で実行するソリューションのアーキテクチャと設計に関する一般的な原理についての参考資料や実用的で便利な概要情報を提供する資料となることを目的としています。

そのため、このガイドでは、特定のシナリオに特化した具体的または正式なソリューション アーキテクチャは提示しません。その代わりに、優れたアーキテクチャと設計の基盤となる原理やパターンの簡潔な概要を提供し、ユーザーが直面するいくつかの重要な問題に関する推奨事項を提示します。

ガイドの大部分は、テクノロジに依存しない原理に基づいた内容となっているので、すべてのプラットフォームやテクノロジに適用できます。ただし、使用できるテクノロジ中から適切なものを選択したり、特定の状況でテクノロジを最大限に活用したりするうえで役立つことが予想される、マイクロソフト テクノロジと .NET Framework テクノロジに関する考慮事項を含めてあります。

ページのトップへ


1. 対象読者

このガイドの主な対象読者は、マイクロソフト プラットフォームと .NET Framework で実行するアプリケーションの設計に関するガイダンスを必要としている開発者とソリューション アーキテクトです。

ですが、アプリケーションのアーキテクチャと設計に興味のある技術者の方、マイクロソフト プラットフォームまたは .NET Framework で実行する優れたアプリケーションの設計で採用されている基盤となるパターンや原理を知りたい技術者の方、またはマイクロソフト プラットフォームや .NET Framework になじみのない技術者の方にも役立つ情報を提供しています。

ページのトップへ


2. このガイドの使用方法

このガイドは、アプリケーションのアーキテクチャと設計について順を追って説明するチュートリアルではなく、それらの概要を提供する参考資料です。このガイドは次の 4 つのセクションで構成されており、各セクションは複数の章で構成されています。

  • 1 つ目のセクション「ソフトウェアのアーキテクチャと設計」では、優れたアプリケーションのアーキテクチャと設計の基盤およびアーキテクチャを設計する際に推奨される手法を提示する基本原理とパターンの概要を提供します。アプリケーション アーキテクチャの基礎について学ぶ場合は、このセクションから読み始めます。2 つ目以降のセクションを読み進めると、レイヤー型の設計、コンポーネント、品質特性、横断的関心事、通信、展開、および一般的なアプリケーションの種類について理解できます。
  • 2 つ目のセクション「設計の基礎」では、ソリューションのレイヤー、コンポーネント、サービスを設計する際に一般的に適用できるガイダンスと、品質特性および横断的関心事への対処に関するガイダンスを提供します。また、通信と展開に関するトピックについても取り上げます。アプリケーションのアーキテクチャと設計のレイヤー型の手法や特定のコンポーネントとサービスの設計について学ぶ場合は、このセクションから読み始めます。3 つ目以降のセクションを読み進めると、品質特性を考慮したり、物理的な展開の戦略を設計したりする方法について理解できます。
  • 3 つ目のセクション「アプリケーションの原型 (アーキタイプ)」では、Web アプリケーション、RIA、リッチ クライアント アプリケーション、モバイル アプリケーション、サービス アプリケーションなどの、一般的な種類のアプリケーションのアーキテクチャと設計に関する具体的なガイダンスを提供します。アプリケーションのアーキテクチャと設計については多少なじみがあり、一般的な種類のアプリケーションのアーキテクチャと主な設計の特徴や各アプリケーションの種類についての具体的なガイダンスについて学ぶ場合は、このセクションから読み始めます。4 つ目のセクションまで読み進めると、新しい知識を習得したり、既存の知識を確認したりできます。
  • 4 つ目のセクション「付録」では、マイクロソフト プラットフォーム テクノロジと .NET Framework テクノロジ、それらの機能の概要を提供します。このセクションでは、一般的な設計パターンの概要や、参考資料として追加のリソースと資料の情報も提供しています。.NET Framework になじみがない場合やマイクロソフト プラットフォームで使用できるテクノロジについて学ぶ場合は、このセクションから読み始めます。このセクションでは、.NET Framework やプラットフォームで提供されるサービスの概要を確認したり、主要なテクノロジのマトリックスについて理解したり、Enterprise Library や patterns & practices の設計パターンに関するライブラリなどの patterns & practices ソリューションの資産についての情報を得られます。

経験と目的に応じて、ニーズに最適なセクションを直接参照することもできます。また、ガイドを最初から最後まで読むと、マイクロソフト プラットフォームと .NET Framework の設計とアーキテクチャに関する広範囲に及ぶ概要を理解できるので、アーキテクチャと設計の手法を理解するのに役立ちます。このガイドは、アプリケーション開発ライフサイクルとアプリケーション開発プロセスに取り入れたり、トレーニング ツールとして使用したりすることもできます。

ページのトップへ


3. フィードバックとサポート

このガイドの正確性を徹底するために、あらゆる努力を重ねましたが、このガイドのトピックへのフィードバックがございましたら、ぜひお寄せください。推奨事項、有用性、およびユーザビリティに関する技術的な問題、記述や編集に関する問題に関するフィードバックをお送りください。さまざまな Web リソースに簡単にアクセスするには、オンライン版の参考文献 ( http://www.microsoft.com/architectureguide、英語) を参照してください。

このガイドについてのフィードバックについては、Application Architecture Guide コミュニティ サイト ( http://www.codeplex.com/AppArchGuide、英語) からお寄せください。

  • 技術サポート

    このガイドで言及しているマイクロソフト製品とマイクロソフト テクノロジに関する技術サポートは、マイクロソフト製品サポート サービス (PSS) で提供しています。製品のサポート情報については、マイクロソフト サポート オンラインの Web サイト ( http://support.microsoft.com) を参照してください。

  • コミュニティとニュースグループによるサポート

    MSDN 管理ニュースグループのサイト ( http://msdn.microsoft.com/ja-jp/subscriptions/aa974230.aspx) では、コミュニティからサポートを受けたり、ガイドについて議論したりすることもできます。また、フィードバックもお寄せいただけます。

ページのトップへ


4. このガイドの執筆チーム

このガイドの執筆は、次の .NET アーキテクチャと開発の専門家が担当しました。

  1. J.D. Meier
  2. David Hill
  3. Alex Homer
  4. Jason Taylor
  5. Prashant Bansode
  6. Lonnie Wall
  7. Rob Boucher Jr.
  8. Akshay Bogawat
  • 寄稿者とレビュー担当者

    以下の寄稿者とレビュー担当者に感謝します。

    テストチーム: Rohit Sharma、Praveen Rangarajan

    編集チーム: Dennis Rea

    マイクロソフト社外の寄稿者とレビュー担当者: Adwait Ullal、Andy Eunson、Brian Sletten、Christian Weyer、David Guimbellot、David Ing、David Weller、David Sussman、Derek Greer、Eduardo Jezierski、Evan Hoff、Gajapathi Kannan、Jeremy D. Miller、John Kordyback、Keith Pleas、Kent Corley、Mark Baker、Paul Ballard、Peter Oehlert、Norman Headlam、Ryan Plant、Sam Gentile、Sidney G Pinney、Ted Neward、Udi Dahan、Oren Eini aka Ayende Rahien、Gregory Young

    マイクロソフト社内の寄稿者とレビュー担当者: Ade Miller、Amit Chopra、Anna Liu、Anoop Gupta、Bob Brumfield、Brad Abrams、Brian Cawelti、Bhushan Nene、Burley Kawasaki、Carl Perry、Chris Keyser、Chris Tavares、Clint Edmonson、Dan Reagan、David Hill、Denny Dayton、Diego Dagum、Dmitri Martynov、Dmitri Ossipov、Don Smith、Dragos Manolescu、Elisa Flasko、Eric Fleck、Erwin van der Valk、Faisal Mohamood、Francis Cheung、Gary Lewis、Glenn Block、Gregory Leake、Ian Ellison-Taylor、Ilia Fortunov、J.R. Arredondo、John deVadoss、Joseph Hofstader、Kashinath TR、Koby Avital、Loke Uei Tan、Luke Nyswonger、Manish Prabhu、Meghan Perez、Mehran Nikoo、Michael Puleio、Mike Francis、Mike Walker、Mubarak Elamin、Nick Malik、Nobuyuki Akama、Ofer Ashkenazi、Pablo Castro、Pat Helland、Phil Haack、Rabi Satter、Reed Robison、Rob Tiffany、Ryno Rijnsburger、Scott Hanselman、Seema Ramchandani、Serena Yeoh、Simon Calvert、Srinath Vasireddy、Tom Hollander、Vijaya Janakiraman、Wojtek Kozaczynski

ページのトップへ


5. 成功例

このガイドがお役に立った際には、ぜひお知らせください。ソリューションを構築する際に直面した問題の簡単な概要と、このガイドがどのように役に立ったかについて記述したメールを MyStory@Microsoft.com (英語のみ) までお送りください。

ページのトップへ