More Related Content Similar to patterns & practices "Project Silk" に見る HTML5 とモダンブラウザのための Web 開発の今後 (20) More from Akira Inoue (20) patterns & practices "Project Silk" に見る HTML5 とモダンブラウザのための Web 開発の今後1. patterns & practices "Project Silk" に見る
HTML5 とモダンブラウザのための
Web 開発の今後
日本マイクロソフト株式会社
デベロッパー & プラットフォーム統括本部
デベロッパー エバンジェリスト
井上 章 (いのうえ あきら)
blogs.msdn.com/chack twitter.com/chack411
8. ネイティブ
アプリ
Web API
デスクトップ
Web アプリ
HTTP ASP.NET
REST
JSON
モバイル XML
Web アプリ
サーバー
クライアント
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
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
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.