블로그 이미지
Sunny's

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Notice

2011. 7. 18. 18:10 IPhone

API Sample : http://www.w3.org/2010/05/video/mediaevents.html

멀티미디어 지원
HTML 5 를 지원하는 브라우저는 비디오, 오디오와 같은 멀티미디어 형식을 자체적으로 지원한다
HTML 5 는 이러한 멀티미디어 파일을 웹 페이지에 삽입할 수 있는 태그를 정의하고 있으며
재생과 관련한 각종 제어를 수행할 수 있는 스크립트 API가 제공된다

이전의 브라우저 환경
HTML 5가 등장하기 전, 브라우저 환경에서는 멀티미디어 재생을 자체적으로 할 수 없었다
대신 외부 기술, 즉 브라우저에 별도로 설치되는 플러그인(Plug in)의 힘을 빌어 멀티미디어를 표현할 수 있었다. 멀티미디어 재생을 위한 플로그인 기술로는 다음과 같은 것들이 있다
- 윈도우 미디어 플레이어
- 어도비 플래시 플레이어
- 애플 퀵타임 플레이어
- 마이크로소프트 실버라이트

이러한 플러그인이 브라우저에 따로 설치되어야만 멀티미디어 재생이 가능하였으며 이는 곧 표준과는 거리가 먼 개념이 되어 버렸다

웹 응용환경의 일관되고 표준적인 플랫폼을 지향하는 HTML5가 멀티미디어 재생을 위한 스펙이 마련된 것은 어찌보면 당연한 순리라 하겠다. 그 만큼 현재의 웹은 멀티미디어를 빼고 논할 수는 없는 것이다


브라우저 지원 현황
다른 HTML5 스펙과는 달리 비디오,오디오는 브라우저 별로 지원되는 코덱이 상이하다
즉 HTML 5 의 멀티미디어 구현은 지원하더라도 각기 다른 코덱을 지원하는 것이다
Video, Audio 스펙은 표준으로 정해졌지만 코덱은 아직 표준으로 정해진 것이 없기 때문이다

따라서 브라우저가 Video,Audio 를 지원하다고 해도 어떤 코덱을 지원하는 것인지 추가 확인이 필요하다. 우선 Video,Audio 를 지원하는 브라우저 현황을 살펴보자

Video, Audio 지원 현황
- Video 지원 현황



- Audio 지원 현황

출처: http://caniuse.com/

대부분의 최신 브라우저에서 Video, Audio를 지원하고 있다
또한 다음의 코드로 브라우저 지원 여부를 체크해 볼 수 있다

if(!!document.createElement('video').canPlayType) {
alert("현재 브라우저는 비디오를 지원합니다")
}
else{
alert("현재 브라우저는 비디오를 지원하지 않습니다")
}

이제 브라우저별로 각기 달리 지원되는 코덱에 대해 살펴보자

코덱 지원 현황
멀티미디어 형식에 대한 표준이 HTML5 사양에는 포함되지 않았다.
따라서 멀티미디어 재생을 위한 코덱의 비 표준화로 현재 브라우저 마다 동영상 재생 형식이 서로 다르다비디오 코덱으로는 H.264 Theora 가 있으며 오디오 코덱으로는 AAC,MP3 Vorbis 형식이 HTML5 용으로 사용되고 있다

모질라와 오페라는 라이선스가 없는 오픈 소스 Theora를 선호하며 애플과 구글은 H.264 코덱을 선호한다. 또한 마이크로소프트의 IE.9 에서는 H.264코덱만 지원한다고 발표한 바 있다

오디오 코덱 역시 라이선스가 없는
Vorbis형식과 특허로 제한되어 있는 MP3, ACC 형식으로 이분화 되어 있다. 그리고 또 하나의 변수로 최근 구글이 동영상 코덱 개발사인 On2를 인수해 VP8 코덱을 오픈 하기로 하였다. 이에 모질라 및 오페라 등이 동참하기로 하였지만 애플의 참여는 알 수 없는 상황이다.

따라서 표준이 정립되기 전까지는 두 형식에 대한 브라우저 호환성을 유지해야 하는 부담이 있다
아래 표는 브라우저 별 지원되는 비디오/오디오 코덱 정보이다

파일 형식

비디오 코덱

오디오 코덱

사파리

MP4

MPEG/H.264

AAC/MP3

크롬

Ogg/MP4

Theora/H.264

Vorbis/AAC/MP3

파이어폭스

Ogg

Theora

Vorbis

(스마트폰 브라우저의 경우 해상도 및 초당 프레임 등 추가 제약사항이 있을 수 있음)
출처: HTML5 & API 입문, 시라이시 슌페이 저)



Video & Audio 재생하기
웹 페이지에 멀티미디어 형식을 삽입하고 재생하고 컨트롤 하는 기본적인 태그에 대해 알아보자

<video> , <audio> 태그
비디오, 오디오를 단순히 재생한 시키고자 할 경우 간단한 마크업 만으로도 충분하다
비디오 재생을 위한 <video> 태그와 오디오 재생을 위한 <audio> 태그가 제공되며
각 태그에 멀티미디어 파일의 위치(소스)를 제공해 주기만 하면 된다

<!DOCTYPE html>
< html>
< head></head>
< body>
<video controls autoplay loop
src="http://www.double.co.nz/video_test/transformers480.ogg"></video>
<br>
<audio controls autoplay loop
src="http://www.miaowmusic.com/audio/mp3/Miaow-07-Bubble.mp3"></audio>
< /body>
< /html>


구글 크롬 브라우저 실행화면

간단한 태그만으로 웹 페이지에 비디오,오디오 형식을 재생할 수 있다
예제에서 사용된 <video>,<audio> 태그의 속성은 다음과 같다
- src: 비디오, 오디오 파일(소스)를 지정한다
- controls: 재생을 컨트롤 하는 컨트롤 바를 보이게 한다
- autoplay: 자동으로 재생을 시작한다


대체 요소 출력
HTML5 의 비디오, 오디오가 지원되지 않는 브라우저를 위한 대체요소 출력이 지원된다
아래와 같이 <video>,<audio> 태그 사이에 대체요소를 정의하면 된다

<video src="http://www.double.co.nz/video_test/transformers480.ogg">
HTML5 Video 를 지원하지 않는 브라우저 입니다
< /video>
< br>
<audio src="http://www.miaowmusic.com/audio/mp3/Miaow-07-Bubble.mp3">
HTML5 Audio 를 지원하지 않는 브라우저 입니다
< /audio>

위 코드를 MS IE 8.0 이하 버전에서 실행해 보면 대체 텍스트가 표시될 것이다


Video & Audio 제어하기
HTML5 에는 비디오, 오디오의 재생과 관련한 다양한 스크립트 API를 정의하고 있다

재생과 관련된 제어라 함은 시작, 중지, 일시정지, 재생위치파악, 재생길이, 재생속도, 볼륨크기, 음소거 등이 있으며 재생 간 발생하는 각종 이벤트 처리를 일컫는다

스크립트 API를 통해 제어를 하기 위해서는 Video(Audio)의 DOM 객체를 대상으로 수행하면 된다

var video1 = document.getElementById("video1");
video1.play(); //비디오를 재생함

Video, Audio 를 위한 다양하고 많은 속성과 함수 그리고 이벤트들이 제공된다
다음이 url에서 멀티미디어 관련 API 들을 확인해 보기 바란다


몇 가지 주요한 API를 알아보고 관련 데모를 제작해 보도록 하자

주요 속성
- src: 멀티미디어 파일 소스 지정
- currentTime: 현재 재생 위치를 초 단위로 반환
- duration: 전체 재생시간을 초 단위로 반환
- paused: 일시정지 여부 반환
- ended: 재생 종료 어부 반환
- muted: 음소거 여부 반환
- volume: 볼륨 값(0.0 ~ 1.0 범위를 가짐)
- error: 에러 정보를 반환
- networkState: 멀티미디어 파일과 관련된 네트워크 상태 반환(접속전, 로딩 중, 완료, 로딩 실패 등)

주요 함수
- load(): 멀티미디어를 읽어 들임(재생하지는 않음)
- play(): 멀티미디어를 재생함
- pause(): 일시 정지

주요 이벤트
- play: 재생될 때 발생
- progress: 멀티미디어 파일을 로딩중에 지속적(그리고 간헐적) 발생
- timeupdate: 재생 중에 지속적 발생
- ended: 재생 종료시 발생
- error: 멀티미디어 로딩, 재생과 관련한 에러가 있을 시 발생

자주 응용 될 법한 주요 API에 대한 설명이다. 추가 API 설명은 반드시 관련 자료를 다로 보기 바란다


비디오 데모 만들어 보기
주요 속성과 함수, 이벤트 몇 가지를 응용하여 비디오 재생을 제어하는 간단한 데모를 만들어 보자

- 데모 실행 화면
아래 화면은 데모를 구글 크롬에서 실행한 화면이다.
progress 이벤트에서 구현한 데이터 로딩 부분이 정상 동작 하지 않는다(하단 undefined)
재생, 정지, 음소거, 볼륨 등은 모두 정상 동작한다


그리고 아래 화면은 파이어폭스에서 데모를 실행한 화면이다
파이어폭스의 경우 모든 기능이 잘 동작한다(데이터 로딩 부분 역시 정상 동작함)
그러나 볼륨을 위한 range input 컨트롤이 아직 지원되지 않는 것 같다


이렇듯 브라우저별로 몇 가지 상이한 동작을 하는 것은 HTML5 가 아직 표준화가 완료되지 않는 것을 의미한다. 이제 데모 코드를 살펴 보자
<!DOCTYPE html>
<html>
<head></head>
<body>
<video id="video1" controls
src="http://www.double.co.nz/video_test/transformers480.ogg"></video>
<br>
<button onclick="play()">재생</button>
<button onclick="pause()">일시정지</button>
<button onclick="mute()">음소거</button>

볼륨:<input id="volumecontrol" type="range" max="1" step="any" onchange="updateVolume()">

<div id="time"></div>
<div id="downLoadState"></div>
</body>
</html>

<script type="text/javascript">
var video1 = document.getElementById("video1");

//비디오 재생
function play(){
video1.play();
video1.volume = volumecontrol.value;
}
//비디오 일시정지
function pause(){
video1.pause();
}
//음소거
function mute(){
video1.muted = !video1.muted;
}
//볼륨조절
function updateVolume() {
video1.volume = volumecontrol.value;
}

//timeupdate 이벤트 구현(재생시간 현황 표시)
video1.addEventListener("timeupdate",
function(){
document.getElementById("time").innerHTML =
Math.floor(video1.currentTime) + "/" + Math.floor(video1.duration) + "(초)";
}
, false
);

//progress 이벤트 구현(비디오 다운로드 현황 표시)
video1.addEventListener("progress",
function(e){
var downLoadState = document.getElementById("downLoadState");

if(video1.networkState == 2){
downLoadState.innerHTML = e.loaded + "/" + e.total + "byte";
}
else if(video1.networkState == 3){
downLoadState.innerHTML = "완료";
}
}
, false
);
</script>


브라우저 호환성 확보
앞서 Video, Audio 에 대한 브라우저 지원 현황을 알아 보았다
Video, Audio 는 두 가지 지원 현황을 파악해야 한다고 했는데 요약하자면 다음과 같다
1) Video, Audio 지원 현황
2) 코덱 지원 현황

즉 브라우저가 Video, Audio 자체를 지원하다고 하더라도 지원되는 코덱이 서로 상이하기 때문에
브라우저가 지원하는 코덱정보를 정확히 알고 있어야 원활한 서비스가 가능하다는 것이다

HTML5 멀티미디어 구현을 위해 브라우저 호환성을 확보하기 위한 모든 방법을 알아 보자

1) Video 지원 여부 확인하기
앞에서 알아 본 방법이다.
if(!!document.createElement('video').canPlayType) ...
으로 브라우저가 Video 태그를 지원하는지 체크할 수 잇다

2) 대체 요소 출력
역시 앞에서 알아 본 방법이다. 태그 사이에 대체 요소를 출력한다
<video src="http://www.double.co.nz/video_test/transformers480.ogg">
HTML5 Video 를 지원하지 않는 브라우저 입니다
</video>

3) 코덱 호환성 확보
마지막으로 브라우저별로 상이한 코덱 지원을 검사하여 정상적인 동작을 보장해야 한다
예를들어 사파리의 경우 H.264 를 지원하고 파이어폭스의 경우 Theora를 지원하기 때문에
모든 브라우저에서 정상 동작 시키기 위해서는 각 브라우저가 지원하는 형식으로 서비스를 해야 한다

브라우저가 특정 코덱을 지원하는지 검사하려면 Video 의 canPlayType() 함수를 이용하면 된다
아래 코드는 theora 비디어코덱과 vorbis 오디오 코덱으로 구성된 ogg컨테이너 형식의 멀티미디어를
지원하는지 체크하는 코드이다
var video1 = document.getElementById("video1");
return video1.canPlayType('video/ogg; codecs="theora, vorbis"'


그리고 더 쉽게 코덱 호환성을 확보 할 수 있는 방법이 있는데,
바로 <video>,<audio> 태그 사이에 정의되는 <source> 태그를 이용하는 방법이다
<soruce> 태그는 멀티미디어 파일의 위치(소스)를 지정하는 src 속성의 역할과 동일하다

다만 이 태그는 여러개를 중복해서 정의할 수 있는데, 이 경우 멀티미디어 파일의 형식 즉 코덱정보를 명시하여 지정할 수 있다. 브라우저는 여러개의 <source> 태그를 차례대로 검사해서 자신이 지원하는 코덱과 일치하는 <source> 를 채택하여 재생시킨다

그리고 <source> 태그를 이용하면 HTML5 이전의 멀티미디어 환경 즉 플래시나 실버라이트와 같은
형식의 지정도 가능하다. 즉 브라우저가 HTML5 자체를 지원하지 않을 경우 플래시로 대체하는 코드 작성이 가능하다는 것이다(물론 각 버전에 맞는 동영상이 미리 준비되어 있어야 겠지만...)

결과적으로 <soruce> 태그를 이용하여 코덱과 관련한 브라우저 호환성을 쉽게 확보할 수 있는 것이다
아래 코드는 코덱 호환성 확보를 위한 몇 가지 샘플 코드이다
(출처: http://dev.opera.com/articles/view/everything-you-need-to-know-about-html5-video-and-audio/)
- ogv 와 mp4 지원
<video controls>
<source src="video.ogv" type='video/ogg; codecs="theora, vorbis"'>
<source src="video.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'>
video not supported
</video>

- ogv, applet 지원
<video controls>
<source src="video.ogv" type='video/ogg; codecs="theora, vorbis"'
onerror="fallback(this.parentNode)">
<object type="application/x-java-applet" width="480" height="288">
<param name="archive" value="cortado-ovt-stripped-wm_r51500.jar">
<param name="code" value="com.fluendo.player.Cortado.class">
<param name="url" value="video.ogv">
video and Java not supported
</object>
</video>

- mp4, swf 지원
<video controls>
<source src="video.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'
onerror="fallback(this.parentNode)">
<object data="videoplayer.swf">
<param name="flashvars" value="video.mp4">
video and Flash not supported
</object>
</video>

HTML Video, Audio 태그가 지원되지 않을 때 플래시나 윈도우 미디어로 대체하는 스크립트를
제공해 주는 다음의 사이트를 참고하기 바란다


마지막으로 Video, Audio 와 관련된 데브 오페라 사이트를 참고해 추가 학습하도록 하자
http://dev.opera.com/articles/view/everything-you-need-to-know-about-html5-video-and-audio/

출처 :http://m.mkexdev.net/63
posted by Sunny's
2011. 7. 7. 15:09 ASP.NET

HTML5 와 CSS3 에는 다양한 요소들이 새로 추가되었다

Modernizer 는 새롭게 추가된 이들 요소들을 브라우저가 지원하는지 검사해 볼 수 있는
심플한 스크립트 코드를 제공하는 오픈소스 라이브러리다




대부분의 검사 코드는 true/false 를 반환하는 Modernizr객체의 프로퍼티를 통해 수행된다

예를 들어 현재 실행중인 브라우저가 Canva를 지원하는지 여부는 다음과 같은 코드로 확인 할 수 있다
if(Modernizr.canvas) { // canvas 지원함 }

http://www.modernizr.com/ 에서 최신 버전의 라이브러리를 다운받을 수 있다(현재 버전 1.5)

다운 받은 modernizr-1.5.min.js 파일을 페이지에 스크립트로 추가하면 바로 사용가능하다
<head>
<script src="modernizr.min.js"></script>
</head>

Modernizr 라이브러리는 HTML5 의 API 뿐만 아니라 CSS3 의 각종 새 기능과 SVG 등 새로운 웹 기술에 대한 전반적인 검사 코드를 포함하고 있다.

자세한 사용법은 다음의 URL을 참고하기 바란다 http://www.modernizr.com/docs/

Modernizr 를 이용하여 몇 가지 테스트 수행 코드를 작성해 보았다
O,X 표현을 위해 div 요소를 정의했는데 이 부분은 생략하고 스크립트 부분만 발췌한다

<script src="modernizr-1.5.min.js"></script>
< script>
if(Modernizr.canvas) document.getElementById("canvas").innerHTML = "O";
if(Modernizr.draganddrop) document.getElementById("draganddrop").innerHTML = "O";
if(Modernizr.crosswindowmessaging) document.getElementById("crosswindowmessaging").innerHTML = "O";

if(Modernizr.localstorage) document.getElementById("localstorage").innerHTML = "O";
if(Modernizr.sessionstorage) document.getElementById("sessionstorage").innerHTML = "O";
if(Modernizr.websqldatabase) document.getElementById("websqldatabase").innerHTML = "O";
if(Modernizr.indexeddb) document.getElementById("indexeddb").innerHTML = "O";
if(Modernizr.applicationcache) document.getElementById("applicationcache").innerHTML = "O";

if(Modernizr.geolocation) document.getElementById("geolocation").innerHTML = "O";
if(Modernizr.webworkers) document.getElementById("webworkers").innerHTML = "O";
if(Modernizr.websockets) document.getElementById("websockets").innerHTML = "O";

if(Modernizr.audio) document.getElementById("audio").innerHTML = "O";
if(Modernizr.video) document.getElementById("video").innerHTML = "O";

if(Modernizr.cssanimations) document.getElementById("cssanimations").innerHTML = "O";
if(Modernizr.csstransforms) document.getElementById("csstransforms").innerHTML = "O";
if(Modernizr.csstransforms3d) document.getElementById("csstransforms3d").innerHTML = "O";
if(Modernizr.svg) document.getElementById("svg").innerHTML = "O";
< /script>


그리고 구글 크롬에서 실행한 결과 화면은 다음과 같다


posted by Sunny's
2011. 6. 24. 14:59 ASP.NET

Last week I blogged about the new ASP.NET MVC 3 Tools Update, and then followed it up with a detailed post that covered using the EF Code First and the new Data Scaffolding features in it.

Today’s blog post is a continuation of this series and covers some of the new HTML5 improvements with the ASP.NET MVC 3 Tools Update release.

Project Template Support for HTML5 Semantic Markup

The ASP.NET MVC 3 Tools Update adds support for you to optionally use HTML5 semantic markup when creating new ASP.NET MVC 3 projects. You can specify this by checking the “Use HTML5 semantic markup” checkbox when creating new projects:

SNAGHTML10f01f0d

Selecting this checkbox option does two things:

1) It causes VS 2010 to use HTML5 semantic markup elements like <header>, <footer>, <section> and <nav> within the default layout.cshtml file that is generated. This is instead of just using <div> elements for header/footer/navigation elements – which is the default behavior if the HTML5 semantic checkbox isn’t selected (and the same behavior that we have shipped earlier).

2) It causes VS 2010 to reference the modernizr.js JavaScript library by default within the layout.cshtml – which among other things will allow you to use CSS to style HTML5 semantic markup elements even with older browsers like IE6 (ensuring your site still works for older browsers).

Understanding Semantic HTML5 Markup

HTML5 introduces a number of new elements and APIs that introduce new behavioral capability (features like <video>, <canvas>, <svg>, etc).

HTML5 also introduces new elements (like <section>, <article>, <aside>, <header>, and <nav>) that enable you to enrich the semantic meaning and structure of your content and pages. These features allow you to write your pages so that you don’t have to use opaque <div> elements to structure everything, and instead they allow you to better express the semantic meaning of your content. This makes your code a little cleaner to read, and long-term will hopefully enable browsers and search engines to better understand your markup and provide even richer experiences.

When you create a new ASP.NET MVC 3 Project with the “Use HTML5 semantic markup” checkbox selected, Visual Studio will use semantic HTML instead of <div> elements (where appropriate) within the layout.cshtml file that is generated for the new project. This means that the top of the site is wrapped in a <header> element, navigation links are surrounded by a <nav> element, and the footer is encapsulated within a <footer> element.

Learn more about Semantic HTML5 Markup

Bruce Lawson and Remy Sharp have a great Introducing HTML5 book that covers (among other new HTML5 features) how you can take advantage of semantic HTML5 markup:

image

You can also read Emily Lewis’ Using HTML5’s New Semantic Tags Today article on MSDN’s ScriptJunkie site to learn more about the role of HTML5 semantic markup and see a practical example of it in action.

HTML5 Intellisense within VS 2010 SP1

With VS 2010 SP1, you can now change the “Target Schema for Validation” drop-down within the Text Editor toolbar to target HTML5 with intellisense:

image

When you select HTML5 as your validation target, the HTML intellisense engine within Visual Studio will provide appropriate intellisense for the new HTML5 elements and attributes. This is true for both behavioral elements like <canvas> and <video> as well as semantic elements like <article> and <nav>:

SNAGHTML1115b0b2

Note: the next release of VS will default to honoring the <!DOCTYPE> at the top of the page when driving intellisense, and then allow you to specify a default standard to use when it isn’t present (or when you are editing within user controls, or partial/editor templates). With VS 2010 and earlier versions of Visual Studio you have to explicitly set which HTML version you want to target.

Modernizr.js Library

Semantic HTML5 markup is now supported by all modern browser vendors, and you can use standard CSS techniques to stylize and customize pages built with it.

One challenge, though, is that there are still a lot of older browsers out there – and browsers like IE6 by default don’t allow you to stylize semantic HTML5 elements using CSS. The semantic HTML5 site that looks beautiful in a modern browser might end up looking broken unless you use a library that enables you to work around this limitation.

Modernizr.js

Modernizr is a small and elegant open-source JavaScript library that helps you take advantage of emerging web technologies (HTML5, CSS3) while still maintaining a level of compatibility with older browsers that may not yet support these new capabilities. You can learn more about Modernizr from the http://modernizr.com/ website.

Starting with the ASP.NET MVC 3 Tools Update, we are now shipping Modernizr with ASP.NET MVC 3, and adding it by default to all new ASP.NET MVC 3 projects. If you select the “Use HTML5 semantic markup” checkbox when creating new ASP.NET MVC 3 projects, Visual Studio will also add a reference to the Modernizr.js library by default within your layout.cshtml template:

image

Modernizr.js and using CSS with Semantic HTML5 on older Browsers

Including the above Modernizr.js script reference will enable you to use CSS to stylize semantic HTML5 elements – and have it work both in modern browsers (where it is natively supported), as well as older ones (including IE6). Among other things, Modernizr is smart enough to run a little script that will cause older browsers to honor CSS rules with unknown elements they encounter.

You can see the benefit Modernizr brings with this by running the default ASP.NET MVC 3 project that is created using IE9. If you use the default IE9 rendering mode (which supports Semantic HTML5 elements) the site will look like below, and use the browser’s built-in CSS support for semantic HTML5:

SNAGHTML112b7c79

If you enable “Compatibility View” within the browser (the second icon at the top of IE’s navigation bar) – you’ll see a “downlevel” rendering of the page (just like what IE6/7/8 users would see). Modernizr allows our CSS rules to work in this downlevel mode – despite the older IE rendering engine not natively supporting elements like <header>, <footer>, <nav>, <section>, etc:

SNAGHTML112e4acf

If we had not included Modernizr.js on the page, visitors to the site using older browsers would have instead seen something broken like this:

SNAGHTML1130d736

As you can see – Modernizr provides a big improvement over what users with older browser would have otherwise seen! Best of all, we didn’t have to write any code or author an alternative CSS style-sheet to get this to work. And we are using HTML5 Semantic Markup throughout the site.

Using Modernizr to Detect Browser Capabilities

The above Semantic HTML5 markup example is just one of the nice benefits that Modernizr brings.

Modernizr also makes it easy to check for browser capabilities (without you having to hard-code browser versions into code), and enables you to easily detect and light-up if a specific feature is supported. You can learn more about how this works on the http://modernizr.com web-site.

Justin Schwartzenberger has a nice blog post that shows this in action, and highlights How to use Modernizr with ASP.NET MVC 3 to store user data via HTML5 localstorage. His tutorial shows an end-to-end ASP.NET MVC 3 sample where he uses HTML5’s localstorage feature if it is available, and falls back to just using cookies on older browsers.

Summary

The new ASP.NET MVC 3 Tooling Update is full of goodness. If you haven’t already downloaded and installed it I highly recommend you do so. You can run the ASP.NET MVC 3 installer on the http://asp.net/mvc site to make sure you have the latest version.

The HTML5 Semantic Markup improvements in ASP.NET MVC 3 enable you to start designing sites that take better advantage of HTML5 and modern browsers. Using Modernizr.js you can also have these sites continue to work with older browsers, and optionally light-up only when new features are enabled.

Hope this helps,

Scott

P.S. I am also now using Twitter for quick updates and to share links. Follow me at: twitter.com/scottgu

posted by Sunny's
2010. 9. 3. 13:03 ETC



I would say this is a smart move as developers can directly convert their old flash animations to HTML5. How much capability is supported remains to be seen, considering that HTML5 in itself is incomplete.

So I call this the 5 game: CSS5 & HTML5

Watch out this video of a presentation titled “Smart Paste in Dreamweaver. How will you bring your vector designs into HTML?” Watch out at 3:30 for renderFlashFXG!



출처 :http://www.html5trends.com/news/flash-to-html5-conversion/

posted by Sunny's
2010. 7. 16. 00:34 IPhone

HTML5 로 iPhone App 만들기

자료의 내용은 4가지 주제로 이루어 집니다.

  • HTML5 – HTML5 자체의 기능에 대한 설명입니다. 이건 따로 웹사이트에 HTML5 slide 오픈소스를 수정해서 자료를 만들어 두었습니다. http://dev.xguru.net/html5 에서 보실수 있습니다.
  • iPhone Web Application 아이폰의 웹 어플리케이션 작성방법에 대한 간략한 소개입니다. 기존 웹 사이트 관리자들도 참고하실만 합니다
  • jQTouch, iUI , WebApp.Net 웹에서 아이폰 UI 스타일을 표현하기 위한 UI 프레임워크 들을 간략히 소개합니다.
  • PhoneGap 웹 어플리케이션을 아이폰 네이티브 어플리케이션으로 만들어주는 Phonegap 프레임워크를 소개합니다.

    출처 : http://xguru.net/551
posted by Sunny's
prev 1 next