SlideShare a Scribd company logo
1 of 17
Download to read offline
わんくま同盟 東京勉強会 #60
『アプリケーション アーキテクチャ ガイド2.0』
のガイド
猪股健太郎
(@matarillo)
わんくま同盟 東京勉強会 #60
このガイドは……
• http://www.microsoft.com/japan/msdn/vstudio/20
10/solutions/architecture/
• 「このガイドは、開発者とソリューション アーキテクト
が、十分に試行されて信頼できるアーキテクチャ、
設計原理、およびパターンを活用することによって、
マイクロソフト プラットフォームと .NET Framework
で実行する効果的で高品質のアプリケーションを少
ないリスクですばやく構築できるようにすることを目
的としています。 」
わんくま同盟 東京勉強会 #60
結構なボリューム
• 全567ページ
• はじめに
• 第 1 章: ソフトウェア アーキテクチャとは
• 第 2 章: ソフトウェア アーキテクチャの基本原理
• 第 3 章: アーキテクチャのパターンとスタイル
• 第 4 章: アーキテクチャと設計の手法
• 第 5 章: レイヤー型アプリケーションのガイドライン
• 第 6 章: プレゼンテーション レイヤーのガイドライン
• 第 7 章: ビジネス レイヤーのガイドライン
• 第 8 章: データ レイヤーのガイドライン
• 第 9 章: サービス レイヤーのガイドライン
• 第 10 章: コンポーネントのガイドライン
• 第 11 章: プレゼンテーション レイヤーのコンポーネントの設計
• 第 12 章: ビジネス レイヤーのコンポーネントの設計
• 第 13 章: ビジネス エンティティの設計
• 第 14 章: ワークフロー コンポーネントの設計
• 第 15 章: データ レイヤーのコンポーネントの設計
• 第 16 章: 品質特性
• 第 17 章: 横断的関心事
• 第 18 章: 通信とメッセージ
• 第 19 章: 物理ティアと配置
• 第 20 章: アプリケーションの種類の選択
• 第 21 章: Web アプリケーションの設計
• 第 22 章: リッチ クライアント アプリケーションの設計
• 第 23 章: リッチ インターネット アプリケーションの設計
• 第 24 章: モバイル アプリケーションの設計
• 第 25 章: サービス アプリケーションの設計
• 第 26 章: ホストされているクラウド サービス
• 第 27 章: Office Business Application の設計
• 第 28 章: SharePoint LOB アプリケーションの設計
• 付録 A: マイクロソフト アプリケーション プラットフォーム
• 付録 B: プレゼンテーション テクノロジ
• 付録 C: データ アクセス テクノロジ
• 付録 D: 統合テクノロジ
• 付録 E: ワークフロー テクノロジ
• 付録 F: patterns & practices の Enterprise Library
• 付録 G: patterns & practices パターン カタログ
わんくま同盟 東京勉強会 #60
マイクロソフト パターン&プラクティス
• Application Architecture for .NET: Designing
Applications and Services (MSDN: 2002)
– アプリケーション・アーキテクチャ設計入門 (@IT, 2003-
2004)
• .NET のアプリケーション アーキテクチャ : アプリケーションとサー
ビスの設計 (MSDN, 2004)
• Microsoft Application Architecture Guide: 2nd
Edition (MSDN: 2009)
– アプリケーション・アーキテクチャ・ガイド2.0解説 (@IT,
2009-2010)
• アプリケーション アーキテクチャ ガイド 2.0 (MSDN: 2011)
わんくま同盟 東京勉強会 #60
結論
• 「答え」「正解」は書かれてない
• 「具体例」「実例」は書かれてない
• すべてのアプリケーションを網羅できているわけで
はない
• 開発プロセスは対象外
• あくまで「参考資料」「概要」「推奨事項」
考えの取っ掛かりとして
未経験な分野を学ぶ枠組みとして
他の開発者と対話・議論する下地として
わんくま同盟 東京勉強会 #60
アジェンダ
• 第 I 部 ソフトウェアのアーキテクチャと設計
• 第Ⅱ部 設計の基礎
– その1
– その2
– その3
– その4
• 第 III 部: アプリケーションの原型
– その1
– その2
– その3
• 付録
わんくま同盟 東京勉強会 #60
第 I 部 ソフトウェアのアーキテクチャと設計
• 第 1 章: ソフトウェア アーキテクチャとは
• 第 2 章: ソフトウェア アーキテクチャの基本原理
– アーキテクチャ設計(方式設計)をやったことがあって、その成果を他
人に説明したことがある人は読まなくていいです。
• 第 3 章: アーキテクチャのパターンとスタイル
– 以下の言葉を知っていて、それぞれの利点をなんとなくでも説明でき
る人は読まなくていいです。
クライント・サーバー型 コンポーネント指向
ドメイン駆動設計(DDD) レイヤー型アーキテクチャ
メッセージバス n層・3層
オブジェクト指向 サービス指向アーキテクチャ(SOA)
わんくま同盟 東京勉強会 #60
第Ⅱ部 設計の基礎 その1
• 第 4 章: アーキテクチャと設計の手法
– アーキテクチャ設計をやったことがない人は一度目を通すべきです。
– 「反復的な設計」をイメージできる人は読まなくていいです。
– アーキテクチャの評価手法は知っておいて損はないと思います。
• 第 5 章: レイヤー型アプリケーションのガイドライン
– ガイド第1版を読んだことがある人は読まなくていいです。
– 論理3階層を説明できない人は読んだ方がいいと思います。
– 「レイヤー型構造の設計手順」はさらっと目を通しましょう。
わんくま同盟 東京勉強会 #60
第Ⅱ部 設計の基礎 その2
• 第 6 章: プレゼンテーション レイヤーのガイドライン
• 第 7 章: ビジネス レイヤーのガイドライン
• 第 8 章: データ レイヤーのガイドライン
• 第 9 章: サービス レイヤー※のガイドライン
– 「そこに含まれる場合があるコンポーネント」は後ろで出てきます。
– 「設計に関する一般的な考慮事項」は読まなくていいです。
– 「設計に関する具体的な問題」は目を通しておく方がいいと思います
。
– 「設計手順」「テクノロジに関する考慮事項」は読まなくていいです。
– 「パフォーマンス」「セキュリティ」「配置」は読みましょう。
– 「関連する設計パターン」はおすすめですが、細かい説明は書かれて
いないので、参考文献を読む必要があります。
わんくま同盟 東京勉強会 #60
第Ⅱ部 設計の基礎 その3
• 第 10 章: コンポーネントのガイドライン
– 軽く眺めておくだけでいいと思います。
– 「堅固なデザイン原理」のキーワードは教養としておさえておきましょう。
– プレゼンテーションロジックに関連するパターンの多さにくじけないようにしま
しょう。
• 第 11 章: プレゼンテーション レイヤーのコンポーネントの設計
– 設計手順は、前半はそんなに参考になりませんでしたが、後半は読んでおい
た方がいいと思います。
• 第 12 章: ビジネス レイヤーのコンポーネントの設計
– トランザクションのところだけ軽く読みましょう。
• 第 13 章: ビジネス エンティティの設計
– 「ドメイン駆動設計(DDD)」を端的にまとめた説明は好きです。
• 第 14 章: ワークフロー コンポーネントの設計
– WFとBizTalkと、ときどきMOSS。
• 第 15 章: データ レイヤーのコンポーネントの設計
– 実装上重要なことがまとめられています。
わんくま同盟 東京勉強会 #60
第Ⅱ部 設計の基礎 その4
• 第 16 章: 品質特性
– 非機能(機能外)要求(要件)について考えたことがある人はさらっと目を通
すだけでいいです。
– ソフトウェア品質の評価に関する国際規格(ISO 9126/14598/25000)や
SQuBOKと対応が取れているわけではありません。
– おおむね 内部品質/外部品質/利用時の品質 にマップできると思います。
• 第 17 章: 横断的関心事
– 「設計に関する一般的な考慮事項」は読まなくていいです。
– 「設計に関する具体的な問題」に個々の関心事がまとめてあります。
– 個々の関心事の設計手順に書かれていることは一通り読みましょう。
– 「patterns & practicesのソリューションの資産 」と「関連情報」に、よく使われ
るライブラリとフレームワークがまとめてあります。
• 第 18 章: 通信とメッセージ
– 「一般的な設計ガイドライン」をよく読みましょう。
– 「メッセージベースの通信のガイドライン」は、キーワード(非同期通信と同期
通信、結合度と凝集性、データ形式、相互運用性、パフォーマンス、状態管
理)だけ拾い読みしましょう。
– 「セキュリティに関する考慮事項」は短いですが重要です。
わんくま同盟 東京勉強会 #60
第 III 部: アプリケーションの原型 その1
• 第 19 章: 物理ティアと配置
– 配置のことをあまり考えたことがない人や、 「必要なければ分散させ
るな」という原則を知らない人は頭から読むべきでしょう。
– 「パフォーマンス」「信頼性」「セキュリティ」についてだけでもおすすめ
です。
• 第 20 章: アプリケーションの種類の選択
– Webアプリケーション、リッチクライアントアプリケーション、RIA、モバ
イルアプリケーション、サービスアプリケーションの5つについて、メリ
ットとデメリット(考慮事項)が簡潔にまとめてあります。
– この章に書かれている内容は一通り説明できるようになっておくと便
利です。
わんくま同盟 東京勉強会 #60
第 III 部: アプリケーションの原型 その2
• 第 21 章: Web アプリケーションの設計
• 第 22 章: リッチ クライアント アプリケーションの設計
• 第 23 章: リッチ インターネット アプリケーションの設計
• 第 24 章: モバイル アプリケーションの設計
• 第 25 章: サービス アプリケーションの設計
– 「一般的な考慮事項」は軽く読み飛ばしていいと思います。
– 特に自分が開発に関わるタイプのアプリケーションであれば、「具体
的な問題」はよく読んでおいたほうがいいでしょう。
– ただし、「例外管理」は、どこかの章で読んでおけばいいと思います。
– その他の考慮事項は、ここまでに出てきた内容のまとめにもなってい
ます。
– ただし、「テクノロジに関する考慮事項」は、そんなに参考になりませ
んでした。
– 個人的に、「関連する設計パターン」が好きなのですが、このガイドだ
け読んでも意味が分からないと思います。
わんくま同盟 東京勉強会 #60
第 III 部: アプリケーションの原型 その3
• 第 26 章: ホストされているクラウド サービス
– Windows Azure特有の話はほとんど出てきません。ストレージサー
ビスの話がちょこっと書かれているぐらい。
– 「ビッグデータ」とか「大規模並列」とか「NoSQL」といった話は全然出
てきません。「スケーラビリティ」についてもあまり書かれていません。
– 「データの分離と共有」「データのセキュリティ」「マルチテナント」あた
りは、SaaSを提供する側の開発者むけの内容かもしれませんね。
• 第 27 章: Office Business Application の設計
• 第 28 章: SharePoint LOB アプリケーションの設計
– とつぜん個別テクノロジー寄りの章で、ちょっとびっくりします。
– 「一般的なOBAパターン」は参考になりますが、共通言語にできるほ
ど浸透しているとは思えません。
– 28章の「設計に関する具体的な問題」は、SharePointの機能紹介み
たいになっています。
– 各考慮事項にはあまりページ数が割かれていません。
わんくま同盟 東京勉強会 #60
付録
• 付録 A: マイクロソフト アプリケーション プラットフォーム
• 付録 B: プレゼンテーション テクノロジ
• 付録 C: データ アクセス テクノロジ
• 付録 D: 統合テクノロジ
• 付録 E: ワークフロー テクノロジ
– テクノロジがカテゴリー分けされてまとめてあります。
– 「データアクセスはEFがいいのか、LinqToSQLがいいのか」みたいな内容で面白いです。
– 付録Aで概要をつかみ、個別に検討したいテクノロジについての付録を追加で読むといいで
しょう。
– ただし、テクノロジ説明はどんどん陳腐化していきますから、その点は注意が必要です。
• 付録 F: patterns & practices の Enterprise Library
– Enterprose Libraryのまとまった紹介です。
– 各アプリケーションブロックの紹介は興味深いのですが、競合するフレームワークやライブラ
リについて触れていないのは残念です。
• 付録 G: patterns & practices パターン カタログ
– 本文で出てきた設計パターンの簡単な説明と、関連するMSDNページのリンクです。
– リンク先は英語が多いのですが、一部は日本語化されています。
わんくま同盟 東京勉強会 #60
結論
• 「答え」「正解」は書かれてない
• 「具体例」「実例」は書かれてない
• すべてのアプリケーションを網羅できているわけで
はない
• 開発プロセスは対象外
• あくまで「参考資料」「概要」「推奨事項」
考えの取っ掛かりとして
未経験な分野を学ぶ枠組みとして
他の開発者と対話・議論する下地として
わんくま同盟 東京勉強会 #60
と、これではミもフタもないので
• ガイドを無視するのは下策。
• ガイドを重視しながら「いかにはみ出るか」が重要。
• たとえば、「MVVMパターンをどう使うか/使わないか」
• そもそも、パターンとは「目的、前提、効果、限界、関連
パターン」がそろって価値を持つ。
• パターンとプラクティス(実践)の繰り返しで
みんなで成長していきましょう。
他の開発者と対話・議論
する下地として

More Related Content

What's hot

静的解析ツール Klocworkによる 機能安全規格への対応
静的解析ツール Klocworkによる 機能安全規格への対応静的解析ツール Klocworkによる 機能安全規格への対応
静的解析ツール Klocworkによる 機能安全規格への対応Masaru Horioka
 
静的解析ツールKlocwork によるCERT-C/CWE対応
静的解析ツールKlocwork によるCERT-C/CWE対応静的解析ツールKlocwork によるCERT-C/CWE対応
静的解析ツールKlocwork によるCERT-C/CWE対応Masaru Horioka
 
Unno Wataru Nutanix Advent Calendar 2018
Unno Wataru Nutanix Advent Calendar 2018Unno Wataru Nutanix Advent Calendar 2018
Unno Wataru Nutanix Advent Calendar 2018Wataru Unno
 
Settings SyncとCodespaceで体験する新世代へのパラダイムシフト
Settings SyncとCodespaceで体験する新世代へのパラダイムシフトSettings SyncとCodespaceで体験する新世代へのパラダイムシフト
Settings SyncとCodespaceで体験する新世代へのパラダイムシフトAtsushi Nakamura
 
マイクロサービスにおけるテスト自動化 with Karate
マイクロサービスにおけるテスト自動化 with Karateマイクロサービスにおけるテスト自動化 with Karate
マイクロサービスにおけるテスト自動化 with KarateTakanori Suzuki
 
【第45回コンピュータビジョン勉強会@関東】NVIDIA VisionWorks Tips紹介
【第45回コンピュータビジョン勉強会@関東】NVIDIA VisionWorks Tips紹介【第45回コンピュータビジョン勉強会@関東】NVIDIA VisionWorks Tips紹介
【第45回コンピュータビジョン勉強会@関東】NVIDIA VisionWorks Tips紹介Yasuhiro Yoshimura
 
静的解析Klocwork とJenkins CIの連携
静的解析Klocwork とJenkins CIの連携静的解析Klocwork とJenkins CIの連携
静的解析Klocwork とJenkins CIの連携Masaru Horioka
 
Klocwork カスタムチェッカー紹介
Klocwork カスタムチェッカー紹介Klocwork カスタムチェッカー紹介
Klocwork カスタムチェッカー紹介Masaru Horioka
 
デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択
デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択
デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択Shingo Kitayama
 
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社Game Tools & Middleware Forum
 
ソフトウェアエンジニアと高位合成
ソフトウェアエンジニアと高位合成ソフトウェアエンジニアと高位合成
ソフトウェアエンジニアと高位合成Kenichiro MITSUDA
 
5G時代のアプリケーションとは 〜 5G+MECを活用した低遅延アプリの実現へ 〜
5G時代のアプリケーションとは 〜 5G+MECを活用した低遅延アプリの実現へ 〜5G時代のアプリケーションとは 〜 5G+MECを活用した低遅延アプリの実現へ 〜
5G時代のアプリケーションとは 〜 5G+MECを活用した低遅延アプリの実現へ 〜VirtualTech Japan Inc.
 
OpenVINOとAzure こう連携できるのでは?
OpenVINOとAzure こう連携できるのでは?OpenVINOとAzure こう連携できるのでは?
OpenVINOとAzure こう連携できるのでは?Hiroshi Ouchiyama
 
20140905 AWS Night in ITHD LT2
20140905 AWS Night in ITHD LT220140905 AWS Night in ITHD LT2
20140905 AWS Night in ITHD LT2Nobuyuki Matsui
 
Hyperledger Fabric 簡単構築ツール minifabricのご紹介 〜productionへの移行をminifabricで加速〜
Hyperledger Fabric 簡単構築ツール minifabricのご紹介 〜productionへの移行をminifabricで加速〜Hyperledger Fabric 簡単構築ツール minifabricのご紹介 〜productionへの移行をminifabricで加速〜
Hyperledger Fabric 簡単構築ツール minifabricのご紹介 〜productionへの移行をminifabricで加速〜Hyperleger Tokyo Meetup
 
Infrastructure as Code自身のテストを考える
Infrastructure as Code自身のテストを考えるInfrastructure as Code自身のテストを考える
Infrastructure as Code自身のテストを考える辰徳 斎藤
 

What's hot (20)

de:code報告
de:code報告de:code報告
de:code報告
 
静的解析ツール Klocworkによる 機能安全規格への対応
静的解析ツール Klocworkによる 機能安全規格への対応静的解析ツール Klocworkによる 機能安全規格への対応
静的解析ツール Klocworkによる 機能安全規格への対応
 
静的解析ツールKlocwork によるCERT-C/CWE対応
静的解析ツールKlocwork によるCERT-C/CWE対応静的解析ツールKlocwork によるCERT-C/CWE対応
静的解析ツールKlocwork によるCERT-C/CWE対応
 
Unno Wataru Nutanix Advent Calendar 2018
Unno Wataru Nutanix Advent Calendar 2018Unno Wataru Nutanix Advent Calendar 2018
Unno Wataru Nutanix Advent Calendar 2018
 
Settings SyncとCodespaceで体験する新世代へのパラダイムシフト
Settings SyncとCodespaceで体験する新世代へのパラダイムシフトSettings SyncとCodespaceで体験する新世代へのパラダイムシフト
Settings SyncとCodespaceで体験する新世代へのパラダイムシフト
 
マイクロサービスにおけるテスト自動化 with Karate
マイクロサービスにおけるテスト自動化 with Karateマイクロサービスにおけるテスト自動化 with Karate
マイクロサービスにおけるテスト自動化 with Karate
 
【第45回コンピュータビジョン勉強会@関東】NVIDIA VisionWorks Tips紹介
【第45回コンピュータビジョン勉強会@関東】NVIDIA VisionWorks Tips紹介【第45回コンピュータビジョン勉強会@関東】NVIDIA VisionWorks Tips紹介
【第45回コンピュータビジョン勉強会@関東】NVIDIA VisionWorks Tips紹介
 
Decode報告(提供版)
Decode報告(提供版)Decode報告(提供版)
Decode報告(提供版)
 
静的解析Klocwork とJenkins CIの連携
静的解析Klocwork とJenkins CIの連携静的解析Klocwork とJenkins CIの連携
静的解析Klocwork とJenkins CIの連携
 
Klocworkのご紹介
Klocworkのご紹介Klocworkのご紹介
Klocworkのご紹介
 
静的解析のROI
静的解析のROI静的解析のROI
静的解析のROI
 
Klocwork カスタムチェッカー紹介
Klocwork カスタムチェッカー紹介Klocwork カスタムチェッカー紹介
Klocwork カスタムチェッカー紹介
 
デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択
デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択
デブサミ2017【17-E-5】エンタープライズにおけるDevOpsの実態!Cloud Native Application Platformの選択
 
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社
 
ソフトウェアエンジニアと高位合成
ソフトウェアエンジニアと高位合成ソフトウェアエンジニアと高位合成
ソフトウェアエンジニアと高位合成
 
5G時代のアプリケーションとは 〜 5G+MECを活用した低遅延アプリの実現へ 〜
5G時代のアプリケーションとは 〜 5G+MECを活用した低遅延アプリの実現へ 〜5G時代のアプリケーションとは 〜 5G+MECを活用した低遅延アプリの実現へ 〜
5G時代のアプリケーションとは 〜 5G+MECを活用した低遅延アプリの実現へ 〜
 
OpenVINOとAzure こう連携できるのでは?
OpenVINOとAzure こう連携できるのでは?OpenVINOとAzure こう連携できるのでは?
OpenVINOとAzure こう連携できるのでは?
 
20140905 AWS Night in ITHD LT2
20140905 AWS Night in ITHD LT220140905 AWS Night in ITHD LT2
20140905 AWS Night in ITHD LT2
 
Hyperledger Fabric 簡単構築ツール minifabricのご紹介 〜productionへの移行をminifabricで加速〜
Hyperledger Fabric 簡単構築ツール minifabricのご紹介 〜productionへの移行をminifabricで加速〜Hyperledger Fabric 簡単構築ツール minifabricのご紹介 〜productionへの移行をminifabricで加速〜
Hyperledger Fabric 簡単構築ツール minifabricのご紹介 〜productionへの移行をminifabricで加速〜
 
Infrastructure as Code自身のテストを考える
Infrastructure as Code自身のテストを考えるInfrastructure as Code自身のテストを考える
Infrastructure as Code自身のテストを考える
 

Similar to 『アプリケーション アーキテクチャ ガイド2.0』のガイド

LightSwitch 結局何ができるの
LightSwitch 結局何ができるのLightSwitch 結局何ができるの
LightSwitch 結局何ができるのYoshitaka Seo
 
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けてHironori Washizaki
 
Devlove2012 どうしたら良いシステムが作れるのか
Devlove2012 どうしたら良いシステムが作れるのかDevlove2012 どうしたら良いシステムが作れるのか
Devlove2012 どうしたら良いシステムが作れるのかYusuke Suzuki
 
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」Shuji Morisaki
 
Samurai CodingなどにみるゲームAIプログラミングコンテストのための原則とパターン
Samurai CodingなどにみるゲームAIプログラミングコンテストのための原則とパターンSamurai CodingなどにみるゲームAIプログラミングコンテストのための原則とパターン
Samurai CodingなどにみるゲームAIプログラミングコンテストのための原則とパターンHironori Washizaki
 
OSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSCOSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSCDaisuke Nishino
 
【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション
【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション
【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション日本マイクロソフト株式会社
 
ISO/IEC DIS 20246 についての(ごく簡単な)説明
ISO/IEC DIS 20246 についての(ごく簡単な)説明ISO/IEC DIS 20246 についての(ごく簡単な)説明
ISO/IEC DIS 20246 についての(ごく簡単な)説明しょうご すずき
 
クラウド時代にこそ求められるIt部門の役割
クラウド時代にこそ求められるIt部門の役割クラウド時代にこそ求められるIt部門の役割
クラウド時代にこそ求められるIt部門の役割Yusuke Oi
 
ユーザー企業における標準化のあり方 : QCon Tokyo 2010
ユーザー企業における標準化のあり方 : QCon Tokyo 2010ユーザー企業における標準化のあり方 : QCon Tokyo 2010
ユーザー企業における標準化のあり方 : QCon Tokyo 2010Yusuke Suzuki
 
アプリケーション・アーキテクチャ 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第34回】
アプリケーション・アーキテクチャ 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第34回】アプリケーション・アーキテクチャ 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第34回】
アプリケーション・アーキテクチャ 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第34回】Tomoharu ASAMI
 
TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02Hiro Yoshioka
 
設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】
設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】
設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】Tomoharu ASAMI
 
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデートHironori Washizaki
 
WACATE2013冬 知識体系とSEMAT
WACATE2013冬 知識体系とSEMATWACATE2013冬 知識体系とSEMAT
WACATE2013冬 知識体系とSEMATHironori Washizaki
 
Microsoft Build 2021をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPs
Microsoft Build 2021をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPsMicrosoft Build 2021をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPs
Microsoft Build 2021をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPsRie Moriguchi
 
Machine Learning Operations (MLOps): Overview, Definition, and Architecture
Machine Learning Operations (MLOps): Overview, Definition, and ArchitectureMachine Learning Operations (MLOps): Overview, Definition, and Architecture
Machine Learning Operations (MLOps): Overview, Definition, and ArchitectureTakuya Minagawa
 
分析 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第15回】
分析 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第15回】分析 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第15回】
分析 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第15回】Tomoharu ASAMI
 
13_B_5 Who is a architect?
13_B_5 Who is a architect?13_B_5 Who is a architect?
13_B_5 Who is a architect?Atsushi Fukui
 

Similar to 『アプリケーション アーキテクチャ ガイド2.0』のガイド (20)

LightSwitch 結局何ができるの
LightSwitch 結局何ができるのLightSwitch 結局何ができるの
LightSwitch 結局何ができるの
 
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
 
Devlove2012 どうしたら良いシステムが作れるのか
Devlove2012 どうしたら良いシステムが作れるのかDevlove2012 どうしたら良いシステムが作れるのか
Devlove2012 どうしたら良いシステムが作れるのか
 
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
 
Samurai CodingなどにみるゲームAIプログラミングコンテストのための原則とパターン
Samurai CodingなどにみるゲームAIプログラミングコンテストのための原則とパターンSamurai CodingなどにみるゲームAIプログラミングコンテストのための原則とパターン
Samurai CodingなどにみるゲームAIプログラミングコンテストのための原則とパターン
 
OSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSCOSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSC
 
【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション
【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション
【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション
 
ISO/IEC DIS 20246 についての(ごく簡単な)説明
ISO/IEC DIS 20246 についての(ごく簡単な)説明ISO/IEC DIS 20246 についての(ごく簡単な)説明
ISO/IEC DIS 20246 についての(ごく簡単な)説明
 
クラウド時代にこそ求められるIt部門の役割
クラウド時代にこそ求められるIt部門の役割クラウド時代にこそ求められるIt部門の役割
クラウド時代にこそ求められるIt部門の役割
 
ユーザー企業における標準化のあり方 : QCon Tokyo 2010
ユーザー企業における標準化のあり方 : QCon Tokyo 2010ユーザー企業における標準化のあり方 : QCon Tokyo 2010
ユーザー企業における標準化のあり方 : QCon Tokyo 2010
 
アプリケーション・アーキテクチャ 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第34回】
アプリケーション・アーキテクチャ 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第34回】アプリケーション・アーキテクチャ 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第34回】
アプリケーション・アーキテクチャ 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第34回】
 
TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02
 
設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】
設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】
設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】
 
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
 
WACATE2013冬 知識体系とSEMAT
WACATE2013冬 知識体系とSEMATWACATE2013冬 知識体系とSEMAT
WACATE2013冬 知識体系とSEMAT
 
組込みSW開発技術研究会キックオフミーティング
組込みSW開発技術研究会キックオフミーティング組込みSW開発技術研究会キックオフミーティング
組込みSW開発技術研究会キックオフミーティング
 
Microsoft Build 2021をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPs
Microsoft Build 2021をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPsMicrosoft Build 2021をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPs
Microsoft Build 2021をさらに楽しむためのおすすめセッション/サンプル コード Powered by Microsoft MVPs
 
Machine Learning Operations (MLOps): Overview, Definition, and Architecture
Machine Learning Operations (MLOps): Overview, Definition, and ArchitectureMachine Learning Operations (MLOps): Overview, Definition, and Architecture
Machine Learning Operations (MLOps): Overview, Definition, and Architecture
 
分析 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第15回】
分析 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第15回】分析 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第15回】
分析 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第15回】
 
13_B_5 Who is a architect?
13_B_5 Who is a architect?13_B_5 Who is a architect?
13_B_5 Who is a architect?
 

More from Kentaro Inomata

Bash on ubuntu on windows
Bash on ubuntu on windowsBash on ubuntu on windows
Bash on ubuntu on windowsKentaro Inomata
 
Agile Software Development (In Japan)
Agile Software Development (In Japan)Agile Software Development (In Japan)
Agile Software Development (In Japan)Kentaro Inomata
 
富山合同勉強会2015 ジェネリクス談義 C#編 補足
富山合同勉強会2015 ジェネリクス談義 C#編 補足富山合同勉強会2015 ジェネリクス談義 C#編 補足
富山合同勉強会2015 ジェネリクス談義 C#編 補足Kentaro Inomata
 
富山合同勉強会2015 ジェネリクス談義 C#編
富山合同勉強会2015 ジェネリクス談義 C#編富山合同勉強会2015 ジェネリクス談義 C#編
富山合同勉強会2015 ジェネリクス談義 C#編Kentaro Inomata
 
UIデザインパターンをSilverlightでやってみた part1
UIデザインパターンをSilverlightでやってみた part1UIデザインパターンをSilverlightでやってみた part1
UIデザインパターンをSilverlightでやってみた part1Kentaro Inomata
 
.NETの業務向けOSSフレームワーク鼎談
.NETの業務向けOSSフレームワーク鼎談.NETの業務向けOSSフレームワーク鼎談
.NETの業務向けOSSフレームワーク鼎談Kentaro Inomata
 
ASP.NET MVCとEntity Frameworkで作ってみた
ASP.NET MVCとEntity Frameworkで作ってみたASP.NET MVCとEntity Frameworkで作ってみた
ASP.NET MVCとEntity Frameworkで作ってみたKentaro Inomata
 
MacintoshでSilverlight開発
MacintoshでSilverlight開発MacintoshでSilverlight開発
MacintoshでSilverlight開発Kentaro Inomata
 
仮面ライダー勉強会LT06 響鬼についていろいろと
仮面ライダー勉強会LT06 響鬼についていろいろと仮面ライダー勉強会LT06 響鬼についていろいろと
仮面ライダー勉強会LT06 響鬼についていろいろとKentaro Inomata
 
18-D-5 MVP & .NET Community Members Lightning Talks
18-D-5 MVP & .NET Community Members Lightning Talks18-D-5 MVP & .NET Community Members Lightning Talks
18-D-5 MVP & .NET Community Members Lightning TalksKentaro Inomata
 
パズルをコンピュータに解かせる
パズルをコンピュータに解かせるパズルをコンピュータに解かせる
パズルをコンピュータに解かせるKentaro Inomata
 
GUIのアーキテクチャ
GUIのアーキテクチャGUIのアーキテクチャ
GUIのアーキテクチャKentaro Inomata
 
Silverlightと業務アプリ
Silverlightと業務アプリSilverlightと業務アプリ
Silverlightと業務アプリKentaro Inomata
 
コミュニティの壁を越える
コミュニティの壁を越えるコミュニティの壁を越える
コミュニティの壁を越えるKentaro Inomata
 
業務システムを使いやすく! .NET Webアプリケーションの現在
業務システムを使いやすく!.NET Webアプリケーションの現在業務システムを使いやすく!.NET Webアプリケーションの現在
業務システムを使いやすく! .NET Webアプリケーションの現在Kentaro Inomata
 
解題:私がJavaからCsharpに乗り換えた10の理由
解題:私がJavaからCsharpに乗り換えた10の理由解題:私がJavaからCsharpに乗り換えた10の理由
解題:私がJavaからCsharpに乗り換えた10の理由Kentaro Inomata
 

More from Kentaro Inomata (20)

Bash on ubuntu on windows
Bash on ubuntu on windowsBash on ubuntu on windows
Bash on ubuntu on windows
 
Agile Software Development (In Japan)
Agile Software Development (In Japan)Agile Software Development (In Japan)
Agile Software Development (In Japan)
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
富山合同勉強会2015 ジェネリクス談義 C#編 補足
富山合同勉強会2015 ジェネリクス談義 C#編 補足富山合同勉強会2015 ジェネリクス談義 C#編 補足
富山合同勉強会2015 ジェネリクス談義 C#編 補足
 
富山合同勉強会2015 ジェネリクス談義 C#編
富山合同勉強会2015 ジェネリクス談義 C#編富山合同勉強会2015 ジェネリクス談義 C#編
富山合同勉強会2015 ジェネリクス談義 C#編
 
UIデザインパターンをSilverlightでやってみた part1
UIデザインパターンをSilverlightでやってみた part1UIデザインパターンをSilverlightでやってみた part1
UIデザインパターンをSilverlightでやってみた part1
 
.NETの業務向けOSSフレームワーク鼎談
.NETの業務向けOSSフレームワーク鼎談.NETの業務向けOSSフレームワーク鼎談
.NETの業務向けOSSフレームワーク鼎談
 
RESTful Webサービス
RESTful WebサービスRESTful Webサービス
RESTful Webサービス
 
Azureといえば
AzureといえばAzureといえば
Azureといえば
 
ASP.NET MVCとEntity Frameworkで作ってみた
ASP.NET MVCとEntity Frameworkで作ってみたASP.NET MVCとEntity Frameworkで作ってみた
ASP.NET MVCとEntity Frameworkで作ってみた
 
MacintoshでSilverlight開発
MacintoshでSilverlight開発MacintoshでSilverlight開発
MacintoshでSilverlight開発
 
仮面ライダー勉強会LT06 響鬼についていろいろと
仮面ライダー勉強会LT06 響鬼についていろいろと仮面ライダー勉強会LT06 響鬼についていろいろと
仮面ライダー勉強会LT06 響鬼についていろいろと
 
18-D-5 MVP & .NET Community Members Lightning Talks
18-D-5 MVP & .NET Community Members Lightning Talks18-D-5 MVP & .NET Community Members Lightning Talks
18-D-5 MVP & .NET Community Members Lightning Talks
 
パズルをコンピュータに解かせる
パズルをコンピュータに解かせるパズルをコンピュータに解かせる
パズルをコンピュータに解かせる
 
GUIのアーキテクチャ
GUIのアーキテクチャGUIのアーキテクチャ
GUIのアーキテクチャ
 
Silverlightと業務アプリ
Silverlightと業務アプリSilverlightと業務アプリ
Silverlightと業務アプリ
 
コミュニティの壁を越える
コミュニティの壁を越えるコミュニティの壁を越える
コミュニティの壁を越える
 
釣りの楽しみ
釣りの楽しみ釣りの楽しみ
釣りの楽しみ
 
業務システムを使いやすく! .NET Webアプリケーションの現在
業務システムを使いやすく!.NET Webアプリケーションの現在業務システムを使いやすく!.NET Webアプリケーションの現在
業務システムを使いやすく! .NET Webアプリケーションの現在
 
解題:私がJavaからCsharpに乗り換えた10の理由
解題:私がJavaからCsharpに乗り換えた10の理由解題:私がJavaからCsharpに乗り換えた10の理由
解題:私がJavaからCsharpに乗り換えた10の理由
 

Recently uploaded

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 

Recently uploaded (7)

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 

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

  • 1. わんくま同盟 東京勉強会 #60 『アプリケーション アーキテクチャ ガイド2.0』 のガイド 猪股健太郎 (@matarillo)
  • 2. わんくま同盟 東京勉強会 #60 このガイドは…… • http://www.microsoft.com/japan/msdn/vstudio/20 10/solutions/architecture/ • 「このガイドは、開発者とソリューション アーキテクト が、十分に試行されて信頼できるアーキテクチャ、 設計原理、およびパターンを活用することによって、 マイクロソフト プラットフォームと .NET Framework で実行する効果的で高品質のアプリケーションを少 ないリスクですばやく構築できるようにすることを目 的としています。 」
  • 3. わんくま同盟 東京勉強会 #60 結構なボリューム • 全567ページ • はじめに • 第 1 章: ソフトウェア アーキテクチャとは • 第 2 章: ソフトウェア アーキテクチャの基本原理 • 第 3 章: アーキテクチャのパターンとスタイル • 第 4 章: アーキテクチャと設計の手法 • 第 5 章: レイヤー型アプリケーションのガイドライン • 第 6 章: プレゼンテーション レイヤーのガイドライン • 第 7 章: ビジネス レイヤーのガイドライン • 第 8 章: データ レイヤーのガイドライン • 第 9 章: サービス レイヤーのガイドライン • 第 10 章: コンポーネントのガイドライン • 第 11 章: プレゼンテーション レイヤーのコンポーネントの設計 • 第 12 章: ビジネス レイヤーのコンポーネントの設計 • 第 13 章: ビジネス エンティティの設計 • 第 14 章: ワークフロー コンポーネントの設計 • 第 15 章: データ レイヤーのコンポーネントの設計 • 第 16 章: 品質特性 • 第 17 章: 横断的関心事 • 第 18 章: 通信とメッセージ • 第 19 章: 物理ティアと配置 • 第 20 章: アプリケーションの種類の選択 • 第 21 章: Web アプリケーションの設計 • 第 22 章: リッチ クライアント アプリケーションの設計 • 第 23 章: リッチ インターネット アプリケーションの設計 • 第 24 章: モバイル アプリケーションの設計 • 第 25 章: サービス アプリケーションの設計 • 第 26 章: ホストされているクラウド サービス • 第 27 章: Office Business Application の設計 • 第 28 章: SharePoint LOB アプリケーションの設計 • 付録 A: マイクロソフト アプリケーション プラットフォーム • 付録 B: プレゼンテーション テクノロジ • 付録 C: データ アクセス テクノロジ • 付録 D: 統合テクノロジ • 付録 E: ワークフロー テクノロジ • 付録 F: patterns & practices の Enterprise Library • 付録 G: patterns & practices パターン カタログ
  • 4. わんくま同盟 東京勉強会 #60 マイクロソフト パターン&プラクティス • Application Architecture for .NET: Designing Applications and Services (MSDN: 2002) – アプリケーション・アーキテクチャ設計入門 (@IT, 2003- 2004) • .NET のアプリケーション アーキテクチャ : アプリケーションとサー ビスの設計 (MSDN, 2004) • Microsoft Application Architecture Guide: 2nd Edition (MSDN: 2009) – アプリケーション・アーキテクチャ・ガイド2.0解説 (@IT, 2009-2010) • アプリケーション アーキテクチャ ガイド 2.0 (MSDN: 2011)
  • 5. わんくま同盟 東京勉強会 #60 結論 • 「答え」「正解」は書かれてない • 「具体例」「実例」は書かれてない • すべてのアプリケーションを網羅できているわけで はない • 開発プロセスは対象外 • あくまで「参考資料」「概要」「推奨事項」 考えの取っ掛かりとして 未経験な分野を学ぶ枠組みとして 他の開発者と対話・議論する下地として
  • 6. わんくま同盟 東京勉強会 #60 アジェンダ • 第 I 部 ソフトウェアのアーキテクチャと設計 • 第Ⅱ部 設計の基礎 – その1 – その2 – その3 – その4 • 第 III 部: アプリケーションの原型 – その1 – その2 – その3 • 付録
  • 7. わんくま同盟 東京勉強会 #60 第 I 部 ソフトウェアのアーキテクチャと設計 • 第 1 章: ソフトウェア アーキテクチャとは • 第 2 章: ソフトウェア アーキテクチャの基本原理 – アーキテクチャ設計(方式設計)をやったことがあって、その成果を他 人に説明したことがある人は読まなくていいです。 • 第 3 章: アーキテクチャのパターンとスタイル – 以下の言葉を知っていて、それぞれの利点をなんとなくでも説明でき る人は読まなくていいです。 クライント・サーバー型 コンポーネント指向 ドメイン駆動設計(DDD) レイヤー型アーキテクチャ メッセージバス n層・3層 オブジェクト指向 サービス指向アーキテクチャ(SOA)
  • 8. わんくま同盟 東京勉強会 #60 第Ⅱ部 設計の基礎 その1 • 第 4 章: アーキテクチャと設計の手法 – アーキテクチャ設計をやったことがない人は一度目を通すべきです。 – 「反復的な設計」をイメージできる人は読まなくていいです。 – アーキテクチャの評価手法は知っておいて損はないと思います。 • 第 5 章: レイヤー型アプリケーションのガイドライン – ガイド第1版を読んだことがある人は読まなくていいです。 – 論理3階層を説明できない人は読んだ方がいいと思います。 – 「レイヤー型構造の設計手順」はさらっと目を通しましょう。
  • 9. わんくま同盟 東京勉強会 #60 第Ⅱ部 設計の基礎 その2 • 第 6 章: プレゼンテーション レイヤーのガイドライン • 第 7 章: ビジネス レイヤーのガイドライン • 第 8 章: データ レイヤーのガイドライン • 第 9 章: サービス レイヤー※のガイドライン – 「そこに含まれる場合があるコンポーネント」は後ろで出てきます。 – 「設計に関する一般的な考慮事項」は読まなくていいです。 – 「設計に関する具体的な問題」は目を通しておく方がいいと思います 。 – 「設計手順」「テクノロジに関する考慮事項」は読まなくていいです。 – 「パフォーマンス」「セキュリティ」「配置」は読みましょう。 – 「関連する設計パターン」はおすすめですが、細かい説明は書かれて いないので、参考文献を読む必要があります。
  • 10. わんくま同盟 東京勉強会 #60 第Ⅱ部 設計の基礎 その3 • 第 10 章: コンポーネントのガイドライン – 軽く眺めておくだけでいいと思います。 – 「堅固なデザイン原理」のキーワードは教養としておさえておきましょう。 – プレゼンテーションロジックに関連するパターンの多さにくじけないようにしま しょう。 • 第 11 章: プレゼンテーション レイヤーのコンポーネントの設計 – 設計手順は、前半はそんなに参考になりませんでしたが、後半は読んでおい た方がいいと思います。 • 第 12 章: ビジネス レイヤーのコンポーネントの設計 – トランザクションのところだけ軽く読みましょう。 • 第 13 章: ビジネス エンティティの設計 – 「ドメイン駆動設計(DDD)」を端的にまとめた説明は好きです。 • 第 14 章: ワークフロー コンポーネントの設計 – WFとBizTalkと、ときどきMOSS。 • 第 15 章: データ レイヤーのコンポーネントの設計 – 実装上重要なことがまとめられています。
  • 11. わんくま同盟 東京勉強会 #60 第Ⅱ部 設計の基礎 その4 • 第 16 章: 品質特性 – 非機能(機能外)要求(要件)について考えたことがある人はさらっと目を通 すだけでいいです。 – ソフトウェア品質の評価に関する国際規格(ISO 9126/14598/25000)や SQuBOKと対応が取れているわけではありません。 – おおむね 内部品質/外部品質/利用時の品質 にマップできると思います。 • 第 17 章: 横断的関心事 – 「設計に関する一般的な考慮事項」は読まなくていいです。 – 「設計に関する具体的な問題」に個々の関心事がまとめてあります。 – 個々の関心事の設計手順に書かれていることは一通り読みましょう。 – 「patterns & practicesのソリューションの資産 」と「関連情報」に、よく使われ るライブラリとフレームワークがまとめてあります。 • 第 18 章: 通信とメッセージ – 「一般的な設計ガイドライン」をよく読みましょう。 – 「メッセージベースの通信のガイドライン」は、キーワード(非同期通信と同期 通信、結合度と凝集性、データ形式、相互運用性、パフォーマンス、状態管 理)だけ拾い読みしましょう。 – 「セキュリティに関する考慮事項」は短いですが重要です。
  • 12. わんくま同盟 東京勉強会 #60 第 III 部: アプリケーションの原型 その1 • 第 19 章: 物理ティアと配置 – 配置のことをあまり考えたことがない人や、 「必要なければ分散させ るな」という原則を知らない人は頭から読むべきでしょう。 – 「パフォーマンス」「信頼性」「セキュリティ」についてだけでもおすすめ です。 • 第 20 章: アプリケーションの種類の選択 – Webアプリケーション、リッチクライアントアプリケーション、RIA、モバ イルアプリケーション、サービスアプリケーションの5つについて、メリ ットとデメリット(考慮事項)が簡潔にまとめてあります。 – この章に書かれている内容は一通り説明できるようになっておくと便 利です。
  • 13. わんくま同盟 東京勉強会 #60 第 III 部: アプリケーションの原型 その2 • 第 21 章: Web アプリケーションの設計 • 第 22 章: リッチ クライアント アプリケーションの設計 • 第 23 章: リッチ インターネット アプリケーションの設計 • 第 24 章: モバイル アプリケーションの設計 • 第 25 章: サービス アプリケーションの設計 – 「一般的な考慮事項」は軽く読み飛ばしていいと思います。 – 特に自分が開発に関わるタイプのアプリケーションであれば、「具体 的な問題」はよく読んでおいたほうがいいでしょう。 – ただし、「例外管理」は、どこかの章で読んでおけばいいと思います。 – その他の考慮事項は、ここまでに出てきた内容のまとめにもなってい ます。 – ただし、「テクノロジに関する考慮事項」は、そんなに参考になりませ んでした。 – 個人的に、「関連する設計パターン」が好きなのですが、このガイドだ け読んでも意味が分からないと思います。
  • 14. わんくま同盟 東京勉強会 #60 第 III 部: アプリケーションの原型 その3 • 第 26 章: ホストされているクラウド サービス – Windows Azure特有の話はほとんど出てきません。ストレージサー ビスの話がちょこっと書かれているぐらい。 – 「ビッグデータ」とか「大規模並列」とか「NoSQL」といった話は全然出 てきません。「スケーラビリティ」についてもあまり書かれていません。 – 「データの分離と共有」「データのセキュリティ」「マルチテナント」あた りは、SaaSを提供する側の開発者むけの内容かもしれませんね。 • 第 27 章: Office Business Application の設計 • 第 28 章: SharePoint LOB アプリケーションの設計 – とつぜん個別テクノロジー寄りの章で、ちょっとびっくりします。 – 「一般的なOBAパターン」は参考になりますが、共通言語にできるほ ど浸透しているとは思えません。 – 28章の「設計に関する具体的な問題」は、SharePointの機能紹介み たいになっています。 – 各考慮事項にはあまりページ数が割かれていません。
  • 15. わんくま同盟 東京勉強会 #60 付録 • 付録 A: マイクロソフト アプリケーション プラットフォーム • 付録 B: プレゼンテーション テクノロジ • 付録 C: データ アクセス テクノロジ • 付録 D: 統合テクノロジ • 付録 E: ワークフロー テクノロジ – テクノロジがカテゴリー分けされてまとめてあります。 – 「データアクセスはEFがいいのか、LinqToSQLがいいのか」みたいな内容で面白いです。 – 付録Aで概要をつかみ、個別に検討したいテクノロジについての付録を追加で読むといいで しょう。 – ただし、テクノロジ説明はどんどん陳腐化していきますから、その点は注意が必要です。 • 付録 F: patterns & practices の Enterprise Library – Enterprose Libraryのまとまった紹介です。 – 各アプリケーションブロックの紹介は興味深いのですが、競合するフレームワークやライブラ リについて触れていないのは残念です。 • 付録 G: patterns & practices パターン カタログ – 本文で出てきた設計パターンの簡単な説明と、関連するMSDNページのリンクです。 – リンク先は英語が多いのですが、一部は日本語化されています。
  • 16. わんくま同盟 東京勉強会 #60 結論 • 「答え」「正解」は書かれてない • 「具体例」「実例」は書かれてない • すべてのアプリケーションを網羅できているわけで はない • 開発プロセスは対象外 • あくまで「参考資料」「概要」「推奨事項」 考えの取っ掛かりとして 未経験な分野を学ぶ枠組みとして 他の開発者と対話・議論する下地として
  • 17. わんくま同盟 東京勉強会 #60 と、これではミもフタもないので • ガイドを無視するのは下策。 • ガイドを重視しながら「いかにはみ出るか」が重要。 • たとえば、「MVVMパターンをどう使うか/使わないか」 • そもそも、パターンとは「目的、前提、効果、限界、関連 パターン」がそろって価値を持つ。 • パターンとプラクティス(実践)の繰り返しで みんなで成長していきましょう。 他の開発者と対話・議論 する下地として