SlideShare a Scribd company logo
1 of 37
Download to read offline
patterns & practices "Project Silk" に見る
     HTML5 とモダンブラウザのための
             Web 開発の今後
                     日本マイクロソフト株式会社
                     デベロッパー & プラットフォーム統括本部
                     デベロッパー エバンジェリスト
                     井上 章 (いのうえ あきら)
                     blogs.msdn.com/chack   twitter.com/chack411
セッションのゴール
Session Takeaways

• Web 開発のトレンドと今後 を知る

• Project Silk の概要 を学ぶ
patterns & practices Project Silk
Web 開発のトレンド
キーワードとトレンド
Keywords and Trend          ECMAScript 5
                     CSS3
     HTML5

                            jQuery
               Ajax
    Web API
                                 MVC
                                       async

           REST       Atom
                               JSON
Video
Productivity Future Vision 2011
近未来の IT, Cloud, Web ...




   http://www.microsoft.com/office/vision/
ネイティブ
   アプリ
                   Web API

 デスクトップ
 Web アプリ
            HTTP         ASP.NET
            REST
            JSON
   モバイル      XML
  Web アプリ


                         サーバー
クライアント
サーバー サイド 開発   クライアント サイド 開発
patterns & practices
         Project Silk
マイクロソフト プラットフォームを使った
アプリケーションの設計開発および実装のリファレンス
(ドキュメント & サンプルコード)
patterns & practices MSDN ホーム:
http://msdn.microsoft.com/en-us/library/ff921345.aspx

Windows Azure Guidance
Enterprise Library Guidance
Mobile Web Guidance
Windows Phone 7 Guidance
…
Application
                                                                                             Web App                  Architecture
                                                                                             Guidance                  Guide 2.0
                                                Enterprise                                Millionth EntLib
                   Enterprise Solution            Library                                    Download
                   Patterns for .NET
                                                                                      p&p Agile
                   1st Patterns Guide                                              Dev Center opens              Prism
              Data Access                                         CodePlex                                   WPF/ Silverlight
          1st Application                   MSDN Dev Center
                                                                   & CCE                                      Applications
               Block                                                                                           SharePoint
 Exchange                                      Dev Team creates
                                                “Team Room”                                                    Applications
Deployment
 1st Guide                                           1st p&p Summit Event           Smart Client             Unity DI
                               ms.com Center                                      Software Factory           Container
                                                                                      GAX/GAT
                                                                       CAB                                         VSTS
      Identity Introduced                                  1st   Composite App                                      ALM
                                                                 Framework
Team Formed                                                                                               Enterprise
                                                   “Improving Web App Security”
                                                                                                         Service Bus
                                                     1st Security Guidance
                           .NET Application                   Start work on                                       WCF
                        Architecture Guide 1.0           “in-tools” experience”                                  Security

2000           2001           2002          2003        2004            2005         2006            2007      2008         2009

 Exchange Deployment        eCommerce              Composite Apps                   SOA                        SharePoint
 AD Deployment              .NET App Arch          Security and Perf                Smart Client               OBA
 Microsoft Systems          Data Access                                             Mobile Clients             S+S
 Architecture                                                                       Web Client                 ESB
http://silk.codeplex.com/
Demo
Project Silk & MileageStats
Project Silk: Mileage Stats に見る
      アーキテクチャとテクノロジー
http://benalman.com/projects/jquery-bbq-plugin/



http://api.jquery.com/category/plugins/templates/
Navigation                  BBQ Plug-in

                    Layout Manager
         Template                      Template   jQuery
                                                  Templates
Client




                       Pub/Sub

                                                  jQuery UI
           Widget      Widget         Widget      Widget Factory


                    Data Manager     Data Cache   JavaScript
Server




                    JSON Endpoints                ASP.NET MVC
JavaScript の
モジュール化アプローチ
UI モジュール               UI 要素 (コントロール等)
Behavioral モジュール       要素への振る舞いを追加 (アニメーション等)
                       UI に限定しないアプリケーション全体で必要とされる役割
Infrastructure モジュール
                       (データ アクセスや通信等)




                       JavaScript Object   jQuery Plug-ins   jQuery UI Widgets
UI モジュール                      ×                  ○                  ◎
Behavioral モジュール              ○                  ◎                  ○
Infrastructure モジュール          ◎                  ○                  ×
mstats.dataStore = {
    _data: {},

     get: function (token) {
         return this._data[token];
     },

     set: function (token, payload) {
         this._data[token] = payload;
     },

     clear: function (token) {
         this._data[token] = undefined;
     },

     clearAll: function () {
         this._data = {};
     }
};
// Code example not in Mileage Stats

                                           (function($) {
                                               $.fn.doubleSizeMe = function() {

                                                   return this.each(function() {
                                                       var $this = $(this),
                                                           width = $this.width(),
                                                           height = $this.height();

                                                         $this.width(width * 2);
                                                         $this.height(height * 2);
                                                   });

                                              };

http://docs.jquery.com/Plugins/Authoring   })(jQuery);

                                           // How to use doubleSizeMe plug-in
                                           $('.icon').doubleSizeMe();
// tagger widgets definition

                                   (function($) {
                                     $.widget('qs.tagger', {

                                      options: {
                                          dataUrl: ''
jQuery.widget('ns.name', {...});      },
                                      _create: function () {
                                        ...
                                      },
                                      destroy: function () {
                                        ...
                                        $.Widget.prototype.destroy.call(this);
                                      }

                                     });
                                   }(jQuery));

                                   // How to use tagger widget
                                   $('span[data-tag]').tagger({
                                       dataUrl: 'http://example.com/'});
Demo
jQuery UI Widget Factory
JavaScript の単体テスト
http://docs.jquery.com/QUnit

<!-- Contained in test.htm -->
<!-- Code under test -->
<script src="../Debug/mstats.header.js"></script>
<!-- Unit tests -->
<script src="mstats.header.tests.js"></script>

// mstats.header.tests.js
module('Header Widget Tests', {...});
test('Test 1: header', function() {
  expect(1);
  var header = $('#header').header(); // Arrange
  header.header('option', 'title', 'test title'); // Act
  // Assert
  equal($('[data-title]').text(), 'test title', '...');
});
Demo
QUnit による JavaScript 単体テスト
Web 開発の今後 ...
Web 開発の今後
Web 開発の今後
Web 開発の今後
Web 開発の今後


     http://phonegap.com/




                            http://dev.windows.com/
Web 開発の今後に向けて
   開発者が避けては通れない Web 技術
     HTML5 / CSS3 / JavaScript ...

       最適な技術選択と
  アプリケーション アーキテクチャの検討
   複雑化するクライアント サイド実装への対応

    最適な開発環境・ツールの選択
    コーディング、デバッグ、テストへの支援
patterns & practices: Project Silk
http://silk.codeplex.com/


Project Silk: Client-Side Web Development for Modern Browsers
http://msdn.microsoft.com/en-us/library/hh396380.aspx


MSDN アーキテクチャ センター
http://msdn.microsoft.com/ja-jp/architecture/


MSDN ASP.NET デベロッパー センター
http://msdn.microsoft.com/ja-jp/asp.net/


THE TRUTH IS OUT THERE ~ 井上 章のブログ ~
http://blogs.msdn.com/chack/
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and
                                  Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

More Related Content

What's hot

What's hot (6)

雲の上の継続的デリバリー
雲の上の継続的デリバリー雲の上の継続的デリバリー
雲の上の継続的デリバリー
 
HTML 2012
HTML 2012HTML 2012
HTML 2012
 
HTML5 OS
HTML5 OSHTML5 OS
HTML5 OS
 
HTML5 + Firefox OS
HTML5 + Firefox OSHTML5 + Firefox OS
HTML5 + Firefox OS
 
Toward Firefox OS
Toward Firefox OSToward Firefox OS
Toward Firefox OS
 
[JavaOne Tokyo 2012] JavaFX and Web Integration
[JavaOne Tokyo 2012] JavaFX and Web Integration[JavaOne Tokyo 2012] JavaFX and Web Integration
[JavaOne Tokyo 2012] JavaFX and Web Integration
 

Viewers also liked

Biglobe×ddd 実践編(dev love 20150618)
Biglobe×ddd 実践編(dev love 20150618)Biglobe×ddd 実践編(dev love 20150618)
Biglobe×ddd 実践編(dev love 20150618)
Hidekazu Nishi
 
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメオブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメ
Yoji Kanno
 
エスイーが要件定義でやるべきたったひとつのこと
エスイーが要件定義でやるべきたったひとつのことエスイーが要件定義でやるべきたったひとつのこと
エスイーが要件定義でやるべきたったひとつのこと
Yoshitaka Kawashima
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu
 
ゲームエンジンとMVC
ゲームエンジンとMVCゲームエンジンとMVC
ゲームエンジンとMVC
AimingStudy
 
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
増田 亨
 

Viewers also liked (20)

ASP.NET MVC プログラミング入門の入門
ASP.NET MVC プログラミング入門の入門ASP.NET MVC プログラミング入門の入門
ASP.NET MVC プログラミング入門の入門
 
Biglobe×ddd 実践編(dev love 20150618)
Biglobe×ddd 実践編(dev love 20150618)Biglobe×ddd 実践編(dev love 20150618)
Biglobe×ddd 実践編(dev love 20150618)
 
私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由
 
TypeScript and Visual Studio Code
TypeScript and Visual Studio Code TypeScript and Visual Studio Code
TypeScript and Visual Studio Code
 
3日時間をもらったのでTypeScriptを触ってみた
3日時間をもらったのでTypeScriptを触ってみた3日時間をもらったのでTypeScriptを触ってみた
3日時間をもらったのでTypeScriptを触ってみた
 
GUI アプリケーションにおける MVC
GUI アプリケーションにおける MVCGUI アプリケーションにおける MVC
GUI アプリケーションにおける MVC
 
TypeScriptは明日から使うべき
TypeScriptは明日から使うべきTypeScriptは明日から使うべき
TypeScriptは明日から使うべき
 
良質なコードを高速に書くコツ
良質なコードを高速に書くコツ良質なコードを高速に書くコツ
良質なコードを高速に書くコツ
 
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメオブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメ
 
TypeScriptをオススメする理由
TypeScriptをオススメする理由TypeScriptをオススメする理由
TypeScriptをオススメする理由
 
良いコードとは
良いコードとは良いコードとは
良いコードとは
 
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
 
エスイーが要件定義でやるべきたったひとつのこと
エスイーが要件定義でやるべきたったひとつのことエスイーが要件定義でやるべきたったひとつのこと
エスイーが要件定義でやるべきたったひとつのこと
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
 
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装までドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
 
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
ゲームエンジンとMVC
ゲームエンジンとMVCゲームエンジンとMVC
ゲームエンジンとMVC
 
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
 
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
 

Similar to patterns & practices "Project Silk" に見る HTML5 とモダンブラウザのための Web 開発の今後

マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後
Akira Inoue
 
【17-D-6】.NETアセンブリの宿命
【17-D-6】.NETアセンブリの宿命【17-D-6】.NETアセンブリの宿命
【17-D-6】.NETアセンブリの宿命
Developers Summit
 
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
Akira Inoue
 
DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発
Tomoharu ASAMI
 

Similar to patterns & practices "Project Silk" に見る HTML5 とモダンブラウザのための Web 開発の今後 (20)

マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後
 
【17-D-6】.NETアセンブリの宿命
【17-D-6】.NETアセンブリの宿命【17-D-6】.NETアセンブリの宿命
【17-D-6】.NETアセンブリの宿命
 
20100218
2010021820100218
20100218
 
~ Cloud First から Cloud Optimized へ ~ .NET on Cloud が描くモダナイゼーション
~ Cloud First から Cloud Optimized へ ~ .NET on Cloud が描くモダナイゼーション~ Cloud First から Cloud Optimized へ ~ .NET on Cloud が描くモダナイゼーション
~ Cloud First から Cloud Optimized へ ~ .NET on Cloud が描くモダナイゼーション
 
2011年マイクロソフト テクノロジー振り返り~開発編~
2011年マイクロソフト テクノロジー振り返り~開発編~2011年マイクロソフト テクノロジー振り返り~開発編~
2011年マイクロソフト テクノロジー振り返り~開発編~
 
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
 
Interactive connection2
Interactive connection2Interactive connection2
Interactive connection2
 
NET MAUI for .NET 7 for iOS, Android app development
 NET MAUI for .NET 7 for iOS, Android app development  NET MAUI for .NET 7 for iOS, Android app development
NET MAUI for .NET 7 for iOS, Android app development
 
DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発
 
SilverlightとSharePoint2010の紹介
SilverlightとSharePoint2010の紹介SilverlightとSharePoint2010の紹介
SilverlightとSharePoint2010の紹介
 
Mvc conf session_3_takehara
Mvc conf session_3_takeharaMvc conf session_3_takehara
Mvc conf session_3_takehara
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
 
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発
 
.NET の過去、現在、そして未来
.NET の過去、現在、そして未来.NET の過去、現在、そして未来
.NET の過去、現在、そして未来
 
[Japan Tech summit 2017] APP 001
[Japan Tech summit 2017] APP 001[Japan Tech summit 2017] APP 001
[Japan Tech summit 2017] APP 001
 
Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...Application development with c#, .net 6, blazor web assembly, asp.net web api...
Application development with c#, .net 6, blazor web assembly, asp.net web api...
 
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
ASP.NET vNext / Visual Studio "14" に見る .NET の未来像
 
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
 
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
 
.NET の過去、現在、そして未来 ~ .NET 最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデート.NET の過去、現在、そして未来 ~ .NET 最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデート
 

More from Akira Inoue

More from Akira Inoue (20)

New Features in C# 10/11
New Features in C# 10/11New Features in C# 10/11
New Features in C# 10/11
 
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデートデモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
 
.NET 6 と Blazor で作るクロスプラットフォームアプリ概要
.NET 6 と Blazor で作るクロスプラットフォームアプリ概要.NET 6 と Blazor で作るクロスプラットフォームアプリ概要
.NET 6 と Blazor で作るクロスプラットフォームアプリ概要
 
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート
 
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
 
VS Code Live Share ~ 東京と大阪を繋いでみよう!
VS Code Live Share ~ 東京と大阪を繋いでみよう!VS Code Live Share ~ 東京と大阪を繋いでみよう!
VS Code Live Share ~ 東京と大阪を繋いでみよう!
 
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?
 
.NET の今と今後に思うこと (Tokyo Ver.)
.NET の今と今後に思うこと (Tokyo Ver.).NET の今と今後に思うこと (Tokyo Ver.)
.NET の今と今後に思うこと (Tokyo Ver.)
 
.NET の今と今後に思うこと
.NET の今と今後に思うこと.NET の今と今後に思うこと
.NET の今と今後に思うこと
 
.NET 最新ロードマップと今押さえておきたい技術要素
.NET 最新ロードマップと今押さえておきたい技術要素.NET 最新ロードマップと今押さえておきたい技術要素
.NET 最新ロードマップと今押さえておきたい技術要素
 
VS Code & Flaskで作るCloud NativeアプリとDevOps
VS Code & Flaskで作るCloud NativeアプリとDevOpsVS Code & Flaskで作るCloud NativeアプリとDevOps
VS Code & Flaskで作るCloud NativeアプリとDevOps
 
.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ
.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ
.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ
 
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
 
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイルVisual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
 
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイルVisual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
 
.NET の今 ~ 最新アップデートと 2019 年の展望
.NET の今 ~ 最新アップデートと 2019 年の展望.NET の今 ~ 最新アップデートと 2019 年の展望
.NET の今 ~ 最新アップデートと 2019 年の展望
 
.NET today and tomorrow
.NET today and tomorrow.NET today and tomorrow
.NET today and tomorrow
 
.NET の今とミライ (.NET Conf 2018 Japan Keynote)
.NET の今とミライ (.NET Conf 2018 Japan Keynote).NET の今とミライ (.NET Conf 2018 Japan Keynote)
.NET の今とミライ (.NET Conf 2018 Japan Keynote)
 
Intelligent Mobile App と Cloud Native が創るアプリ開発の未来 ~ これからの時代のアプリケーション開発ビジョン ~
Intelligent Mobile App と Cloud Native が創るアプリ開発の未来~ これからの時代のアプリケーション開発ビジョン ~Intelligent Mobile App と Cloud Native が創るアプリ開発の未来~ これからの時代のアプリケーション開発ビジョン ~
Intelligent Mobile App と Cloud Native が創るアプリ開発の未来 ~ これからの時代のアプリケーション開発ビジョン ~
 
"今" 押さえておきたい! Web アプリ開発の技術トレンドとツールの進化
"今" 押さえておきたい! Web アプリ開発の技術トレンドとツールの進化"今" 押さえておきたい! Web アプリ開発の技術トレンドとツールの進化
"今" 押さえておきたい! Web アプリ開発の技術トレンドとツールの進化
 

patterns & practices "Project Silk" に見る HTML5 とモダンブラウザのための Web 開発の今後

  • 1. patterns & practices "Project Silk" に見る HTML5 とモダンブラウザのための Web 開発の今後 日本マイクロソフト株式会社 デベロッパー & プラットフォーム統括本部 デベロッパー エバンジェリスト 井上 章 (いのうえ あきら) blogs.msdn.com/chack twitter.com/chack411
  • 2. セッションのゴール Session Takeaways • Web 開発のトレンドと今後 を知る • Project Silk の概要 を学ぶ
  • 3. patterns & practices Project Silk
  • 5. キーワードとトレンド Keywords and Trend ECMAScript 5 CSS3 HTML5 jQuery Ajax Web API MVC async REST Atom JSON
  • 7. 近未来の IT, Cloud, Web ... http://www.microsoft.com/office/vision/
  • 8. ネイティブ アプリ Web API デスクトップ Web アプリ HTTP ASP.NET REST JSON モバイル XML Web アプリ サーバー クライアント
  • 9. サーバー サイド 開発 クライアント サイド 開発
  • 10. patterns & practices Project Silk
  • 11. マイクロソフト プラットフォームを使った アプリケーションの設計開発および実装のリファレンス (ドキュメント & サンプルコード) patterns & practices MSDN ホーム: http://msdn.microsoft.com/en-us/library/ff921345.aspx Windows Azure Guidance Enterprise Library Guidance Mobile Web Guidance Windows Phone 7 Guidance …
  • 12. Application Web App Architecture Guidance Guide 2.0 Enterprise Millionth EntLib Enterprise Solution Library Download Patterns for .NET p&p Agile 1st Patterns Guide Dev Center opens Prism Data Access CodePlex WPF/ Silverlight 1st Application MSDN Dev Center & CCE Applications Block SharePoint Exchange Dev Team creates “Team Room” Applications Deployment 1st Guide 1st p&p Summit Event Smart Client Unity DI ms.com Center Software Factory Container GAX/GAT CAB VSTS Identity Introduced 1st Composite App ALM Framework Team Formed Enterprise “Improving Web App Security” Service Bus 1st Security Guidance .NET Application Start work on WCF Architecture Guide 1.0 “in-tools” experience” Security 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 Exchange Deployment eCommerce Composite Apps SOA SharePoint AD Deployment .NET App Arch Security and Perf Smart Client OBA Microsoft Systems Data Access Mobile Clients S+S Architecture Web Client ESB
  • 14.
  • 15.
  • 16. Demo Project Silk & MileageStats
  • 17. Project Silk: Mileage Stats に見る アーキテクチャとテクノロジー
  • 19. Navigation BBQ Plug-in Layout Manager Template Template jQuery Templates Client Pub/Sub jQuery UI Widget Widget Widget Widget Factory Data Manager Data Cache JavaScript Server JSON Endpoints ASP.NET MVC
  • 21.
  • 22. UI モジュール UI 要素 (コントロール等) Behavioral モジュール 要素への振る舞いを追加 (アニメーション等) UI に限定しないアプリケーション全体で必要とされる役割 Infrastructure モジュール (データ アクセスや通信等) JavaScript Object jQuery Plug-ins jQuery UI Widgets UI モジュール × ○ ◎ Behavioral モジュール ○ ◎ ○ Infrastructure モジュール ◎ ○ ×
  • 23. mstats.dataStore = { _data: {}, get: function (token) { return this._data[token]; }, set: function (token, payload) { this._data[token] = payload; }, clear: function (token) { this._data[token] = undefined; }, clearAll: function () { this._data = {}; } };
  • 24. // Code example not in Mileage Stats (function($) { $.fn.doubleSizeMe = function() { return this.each(function() { var $this = $(this), width = $this.width(), height = $this.height(); $this.width(width * 2); $this.height(height * 2); }); }; http://docs.jquery.com/Plugins/Authoring })(jQuery); // How to use doubleSizeMe plug-in $('.icon').doubleSizeMe();
  • 25. // tagger widgets definition (function($) { $.widget('qs.tagger', { options: { dataUrl: '' jQuery.widget('ns.name', {...}); }, _create: function () { ... }, destroy: function () { ... $.Widget.prototype.destroy.call(this); } }); }(jQuery)); // How to use tagger widget $('span[data-tag]').tagger({ dataUrl: 'http://example.com/'});
  • 28. http://docs.jquery.com/QUnit <!-- Contained in test.htm --> <!-- Code under test --> <script src="../Debug/mstats.header.js"></script> <!-- Unit tests --> <script src="mstats.header.tests.js"></script> // mstats.header.tests.js module('Header Widget Tests', {...}); test('Test 1: header', function() { expect(1); var header = $('#header').header(); // Arrange header.header('option', 'title', 'test title'); // Act // Assert equal($('[data-title]').text(), 'test title', '...'); });
  • 34. Web 開発の今後 http://phonegap.com/ http://dev.windows.com/
  • 35. Web 開発の今後に向けて 開発者が避けては通れない Web 技術 HTML5 / CSS3 / JavaScript ... 最適な技術選択と アプリケーション アーキテクチャの検討 複雑化するクライアント サイド実装への対応 最適な開発環境・ツールの選択 コーディング、デバッグ、テストへの支援
  • 36. patterns & practices: Project Silk http://silk.codeplex.com/ Project Silk: Client-Side Web Development for Modern Browsers http://msdn.microsoft.com/en-us/library/hh396380.aspx MSDN アーキテクチャ センター http://msdn.microsoft.com/ja-jp/architecture/ MSDN ASP.NET デベロッパー センター http://msdn.microsoft.com/ja-jp/asp.net/ THE TRUTH IS OUT THERE ~ 井上 章のブログ ~ http://blogs.msdn.com/chack/
  • 37. © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.