57
HTML5 on ASP.NET 2011/08/27 小小 小小小

HTML5 on ASP.NET

Embed Size (px)

DESCRIPTION

2011-08-27 Tech Party 2011 in 北陸 https://atnd.org/events/18440

Citation preview

Page 1: HTML5 on ASP.NET

HTML5 on ASP.NET

2011/08/27小島 富治雄

Page 2: HTML5 on ASP.NET

小島 富治雄@Fujiwo福井コンピュータ株式会社Microsoft MVP C# (2005-2012)

自己紹介

Page 3: HTML5 on ASP.NET

HTML5 に興味を持っていただく

ASP.NET 開発環境で HTML5 を使う方法について知っていただく

本セッションのゴール

Page 4: HTML5 on ASP.NET

ASP.NET のトレンドVisual Studio で HTML5 を書くには

HTML5 とはHTML5 で追加されたタグHTML5 APIHTML5 on ASP.NETTips

アジェンダ

Page 5: HTML5 on ASP.NET

ASP.NET のトレンド

Page 6: HTML5 on ASP.NET

• HTML5 周辺◦ HTML 5◦ CSS 3◦ Web API

• ECMAScript◦ jQuery

• REST• RIA

Web 開発のトレンド

Page 7: HTML5 on ASP.NET

• Web フォーム vs. MVC• ASP.NET MVC 3

◦ “Razor”◦ HTML5 CSS3 対応プロジェクト

テンプレート◦ 最新 jQuery 対応◦ NuGet◦ Azure 対応

ASP.NET のトレンド

Page 8: HTML5 on ASP.NET

Visual Studio でHTML5 を書くには

Page 9: HTML5 on ASP.NET

HTML5 CSS3 対応プロジェクトテンプレート

最新 jQuery 対応

ASP.NET MVC 3

Page 11: HTML5 on ASP.NET

• 準備◦ HTML5 、 CSS 3対応

インテリセンス、文法チェック◦ jQuery 用コードスニペット

Visual Studio で HTML5

Page 13: HTML5 on ASP.NET

◦ jQuery 用コードスニペット◦ jQuery

Cod Snippets for Visual Studio 2010

VisuaL Studio 2010 SP1

$(title).fadeOut(1000);$(title).fadeIn (1000);

Page 15: HTML5 on ASP.NET

HTML5 とは

Page 17: HTML5 on ASP.NET

狭義の HTML 5 CSS 3

API

ECMAScript

広義の HTML 5

Page 18: HTML5 on ASP.NET

Open Web Technology Platform◦オープンかつ標準

2011/5/25 最終草案◦使い始めて良い◦2014 W3C 勧告 ( 予定 )

HTML5

Page 19: HTML5 on ASP.NET

各ブラウザの対応状況

Page 20: HTML5 on ASP.NET

HTML5 & CSS3 Support, Web Design Tools & Support - FindMeByIP - CSS3 & HTML5 Browser Supporthttp://www.findmebyip.com/litmus/

各ブラウザの対応状況

Page 21: HTML5 on ASP.NET

マルチデバイス

Page 22: HTML5 on ASP.NET

<!DOCTYPE html><html lang=ja><head><meta charset=UTF-8><title> タイトル </title><link rel="stylesheet" href="style.css"><script src="linq.js"></script></head><body><!-- ページ・コンテンツ --></body></html>

HTML5

Page 23: HTML5 on ASP.NET

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><meta http-equiv="Content-Language" content="ja" /><title> タイトル </title><link rel="stylesheet" href="style.css" type="text/css" /><script type="text/javascript" src="linq.js"></script></head><body><!-- ページ・コンテンツ --></body></html>

XHTML1.0

Page 24: HTML5 on ASP.NET

HTML5 で追加されたタグ

+ デモ

Page 25: HTML5 on ASP.NET

セマンティクス◦<section>◦<nav>◦<figure>◦<time>

HTML5

Page 26: HTML5 on ASP.NET

グラフィックス◦<canvas>

マルチメディア◦<audio>◦<video>

HTML5

Page 27: HTML5 on ASP.NET

コントロール◦<input>◦<progress>◦<meter>

UI◦<details>◦<menu>◦<command>

HTML5

Page 28: HTML5 on ASP.NET

• Ruby • MathML• SVG• WAI-AREA

HTML5

Page 29: HTML5 on ASP.NET

<ruby> 瓊脂 <rp> (</rp><rt> ところてん </rt><rp>)</rp></ruby> は <ruby> 石花菜 <rp> (</rp><rt> てんぐさ </rt><rp>)</rp></ruby> から作られる。

Ruby

Page 30: HTML5 on ASP.NET

<figure><img src="DSCF7297.JPG" width="240" height="180" alt=" かんぱーい !" /><figcaption> 先週のイベントの様子その 1</figcaption></figure>

Figure 要素

Page 31: HTML5 on ASP.NET

<video src="v.mp4" controls></video> <audio src="v.mp3" controls></audio>

ビデオ / オーディオ要素

<video autoplay="autoplay" loop="loop“ width="480" height="272"> <source src="video.mp4" type="video/mp4"> <source src="video.webm" type="video/webm"> <p> 動画を再生するには、 video タグをサポートしたブラウザが必要です。 </p></video>

Page 32: HTML5 on ASP.NET

検索 : <input type="search">電話番号 : <input type="tel">URL: <input type="url">Email: <input type="email">日付 : <input type="date">時刻 : <input type="time">数値 : <input type="number">範囲 : <input type="range">色 : <input type="color">

HTML5 Forms

Page 33: HTML5 on ASP.NET

テキスト ( 入力必須 ):<input type="text" required>

郵便番号 :<input type="text“pattern="¥d{3}¥-¥d{4}“title=" 郵便番号: 999-9999 形式で入力してください。">

HTML5 Forms

Page 34: HTML5 on ASP.NET

進捗 :<progress value="50" max="100"></progress>

メーター :<meter value="50.0" min="0" max="100" ></meter>

HTML5 Forms

Page 35: HTML5 on ASP.NET

二次元ラスター グラフィック◦高速描画◦アニメーション可◦三次元やベクター描画は SVG を使う

Canvas

Page 36: HTML5 on ASP.NET

<canvas width="300" height="300"></canvas>

Canvas

Page 37: HTML5 on ASP.NET

var canvas = document.querySelector('canvas');var context = canvas.getContext('2d');

// 矩形描画context.clearRect(0, 0, canvas.width, canvas.height);context.fillRect(50, 50, 200, 200);context.strokeRect(20, 20, 260, 260);

Canvas 矩形描画

Page 38: HTML5 on ASP.NET

var canvas = document.querySelector('canvas');var context = canvas.getContext('2d');

// パス描画context.beginPath();context.moveTo(150, 30);context.lineTo( 30, 270);context.lineTo(270, 270);context.closePath();context.fillStyle= "Yellow";context.fill();context.strokeStyle= "Red";context.stroke();

Canvas パス描画

Page 39: HTML5 on ASP.NET

var canvas = document.querySelector('canvas');var context = canvas.getContext('2d');

// 円描画context.beginPath();context.arc(150, 150, 50, 0, Math.PI * 2, true);context.fillStyle = "Magenta";context.fill();context.strokeStyle = "Blue";context.stroke();

Canvas 円描画

Page 40: HTML5 on ASP.NET

setTimeout() または setInterval()

Canvas アニメーション

var flops = 60;window.setInterval( function() { context.clearRect(0, 0, canvas.width, canvas.height); // 描画 },1000 / flops);

Page 41: HTML5 on ASP.NET

<svg width="540" height="200" viewBox="0 0 270 100" style="margin:-2em 0em -3em 0em">

<defs>

<radialGradient id="radial" cx="50%" cy="50%" fx="25%" fy="25%">

<stop offset="0%" stop-color="#60bafc" />

<stop offset="50%" stop-color="#409adc" />

<stop offset="100%" stop-color="#005a9c" />

</radialGradient>

<path id="curve" d="M18,60 C100,10 180,110 264,60" fill="none"/>

</defs>

<circle cx="138" cy="50" r="38" fill="url(#radial)" stroke="#005a9c" />

<text font-family="Verdana" font-size="20" fill="#ff9900">

<textPath xlink:href="#curve" method="stretch" style="visibility: visible;">Scalable

<tspan fill="white">Vector</tspan>

Graphics

</textPath>

</text>

</svg>

SVG

Page 42: HTML5 on ASP.NET

<math style="display:block">

<mi>t2</mi>

<mo>=</mo>

<mfrac>

<mi>t1</mi>

<msqrt><mrow>

<mn>1</mn>

<mo>-</mo>

<mfrac>

<msup>

<mi>v</mi>

<mn>2</mn>

</msup>

<msup>

<mi>C</mi>

<mn>2</mn>

</msup>

</mfrac>

</mrow></msqrt>

</mfrac>

</math>

MathML

Page 43: HTML5 on ASP.NET

HTML5 API

Page 44: HTML5 on ASP.NET

function show(pos) { var location ="<span>"+"緯度:" + pos.coords.latitude + "</span>"; location += "<span>"+"経度:" + pos.coords.longitude + "</span>"; document.getElementById("location").innerHTML = location;}

if (navigator.geolocation) { window.alert("本ブラウザで Geolocation が使えます。"); window.navigator.geolocation.getCurrentPosition(show);} else { window.alert("本ブラウザでは Geolocation が使えません。");}

Geolocation

Page 45: HTML5 on ASP.NET

// localStorage への格納var storage = localStorage;var value = "1"storage.setItem("A", value);

// localStorage からの取得var storage = localStorage;var value = storage.getItem("A");

Local Storage

Page 46: HTML5 on ASP.NET

スマートフォン

デモ

Page 47: HTML5 on ASP.NET

HTML5 on ASP.NET

デモ

Page 48: HTML5 on ASP.NET

HTML5 をレンダリングするサーバー コントロールを作成して貼る

ユーザー コントロール

Page 49: HTML5 on ASP.NET

JavaScript で直にサービスを呼び出す1. 「 AJAX 対応 WCF サービス」を作

成2. ASPX 側に ScriptManager を貼り、

サービスを指定3. JavaScript でサービスを new して

サービス内のメソッドを呼び出す

AJAX 対応 WCF サービス

Page 50: HTML5 on ASP.NET

// MyService.svc - MyService.cs[ServiceContract(Namespace = "MyServices")][AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]

public class MyService { [OperationContract] public object MyMethod() { return 何かのデータ ; }}

AJAX 対応 WCF サービス

Page 51: HTML5 on ASP.NET

// MyPage.aspx<script> onload = function() { var service = new MyServices.MyService(); service.MyMethod(onSuccess, null, null); }

function onSuccess(data) { // data を描画 }</script>

<asp:ScriptManager ID="scriptManager" runat="server"> <services> <asp:servicereference Path="MyService.svc" /> </services></asp:ScriptManager>

AJAX 対応 WCF サービス

Page 52: HTML5 on ASP.NET

Tips

Page 53: HTML5 on ASP.NET

HTML5.JS◦ [参考]HTML5.jsの中身を見てみよう

HTML5 の IE9 未満( IE8 以下)への対応

<!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->

article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary{ display:block; }

Page 55: HTML5 on ASP.NET

Internet Explorer の「スクリプトのデバッグを使用しない (Internet Explorer) 」のチェックを外す

Internet Explorer のみVisual Studio でデバッグ実行

◦ブレークポイントやトレース実行

JavaScript デバッグ

Page 56: HTML5 on ASP.NET

もう HTML5 でVisual Studio は HTML5 エディターとしても既にいける

まとめ

Page 57: HTML5 on ASP.NET

Let’s enjoy HTML5on ASP.NET!