~初心者がこれから web アプリの開発をするために~

Post on 25-May-2015

2.748 Views

Category:

Technology

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

HTML5 プログラミング生​放送勉強会 第11回@大阪

TRANSCRIPT

モダンな Web アプリ開発ガイドライン の紹介

HTML5 プログラミング生放送勉強会 第 11 回@大阪2011/11/19 お だ

~初心者がこれから Web アプリの開発をするために~

織田 信亮 ( おだ しんすけ )開発者してますSQLWorld 代表http://d.hatena.ne.jp/odashinsuke/@shinsukeodaHTML5 あんまり知りませんjQuery すらほぼ初心者

最近の活動

プログラミング生放送勉強会 第 9 回@大阪

開発を彩る技術たちhttp://pronama.wordpress.com/2011/06/22/pronama-9-report/

第 1 回 Jenkins 勉強会 in 大阪.NET なプロジェクトでも Jenkins を使ってみた

https://wiki.jenkins-ci.org/pages/viewpage.action?pageId=58002673

今日お話しする内容

Web アプリ開発ガイドラインって何?環境構築どんな事が出来るの?導入アーキテクチャまとめ

今日お話しする内容

Web アプリ開発ガイドラインって何?環境構築どんな事が出来るの?導入アーキテクチャまとめ

Web アプリ開発ガイドラインって何?

Microsoft patterns & practices設計 / 開発 / 実装のリファレンス集

http://msdn.microsoft.com/ja-jp/library/ff653621.aspx

Project SilkClient-Side Web Development for Modern Browsers

http://msdn.microsoft.com/en-us/library/hh396380.aspxhttp://silk.codeplex.com/

patterns & practices ( 日本語 ) 幾つか紹介

アプリケーション アーキテクチャガイド 2.0http://www.microsoft.com/japan/msdn/vstudio/2010/solutions/architecture/

Microsoft エンタープライズ ライブラリ開発者向けガイダンスhttp://msdn.microsoft.com/ja-jp/library/ff953181(PandP.50).aspx

Windows Phone 7 の開発者向けガイダンスhttp://msdn.microsoft.com/ja-jp/library/gg490765.aspx

Project Silk を読むと… ( 主観 )

HTML の Web アプリケーションでどんな事が出来るのかJavaScript / JavaScript のライブラリの使い方とか勉強出来そう子供が産まれました

個人の感想であり、(商品の)効果・効能をあらわすものではありません

今日お話しする内容

Project SilkReadmeChapter 1Chapter 2

Project Silk ってなに?

Web アプリを構築するためのガイダンス

クロスブラウザリッチな UI

リッチな UI は JavaScript を大量に書く

メンテしやすい実装方法モジュール方式

Mileage Stats というアプリを通して紹介

Project Silk の想定読者

Web 開発者HTML, CSS, JavaScript, jQuery, ASP.NET MVC の経験があること

JavaScriptObject literals, immediate functions, closures, object prototypes, scoping rules

jQuerySelectors, wrapped sets, chaining

今日お話しする内容

Web アプリ開発ガイドラインって何?環境構築どんな事が出来るの?導入アーキテクチャまとめ

必須環境

VS2010 Pro 以上VS2010 SP1ASP.NET MVC 3SQL Server Compact 4.0Entity Framework 4.1 - Update 1NuGet v1.4 以上IE9 or 他のモダンブラウザー

Visual Web Developer 2010 Expressでも大丈夫!※ 一部開けないプロジェクト有り!

環境構築

Microsoft Web Platform Installer 3.0 でインストール

Visual Web Developer 2010 ExpressVS2010 SP1ASP.NET MVC 3SQL Server Compact 4.0Entity Framework 4.1 - Update 1

Project Silk ダウンロード

Project Silk - September 2011http://www.microsoft.com/download/en/details.aspx?id=27290

Silk-RTM.exe を実行し、任意の場所に解凍MileageStats フォルダ以下にプロジェクト一式が出来る

外部ライブラリ (NuGet)

MileageStats.sln を開くNuGet Package Manager Console 起動.\InstallRequiredNuGetPackages.ps1 を実行

外部ライブラリ (JavaScript)

jqPlotjQuery でチャート作成プラグイン

https://bitbucket.org/cleonello/jqplot/downloads/

Jquery.jqplot.1.0.0a_r701.zipをダウンロード / 解凍次のファイルをコピーする

外部ライブラリ (JavaScript)

MileageStats\MileageStats.Web\Scripts\dist\excanvas.min.js\dist\jquery.jqplot.min.js\dist\plugins\jqplot.cursor.min.js\dist\plugins\jqplot.dateAxisRenderer.min.js\dist\plugins\jqplot.canvasAxisTickRenderer.min.js\dist\plugins\jqplot.canvasTextRenderer.min.js

MileageStats\MileageStas.Web\Content \dist\jquery.jqplot.css

今日お話しする内容

Web アプリ開発ガイドラインって何?環境構築どんな事が出来るの?導入アーキテクチャまとめ

動かしてみよう!

出来そうなこと

Open ID での認証Jump List(Windows 7 タスクバー )Drag & Dropチャート

今日お話しする内容

Web アプリ開発ガイドラインって何?環境構築どんな事が出来るの?導入アーキテクチャまとめ

Web アプリの分布

Static サイト静的な HTML ページ、 CSS 、画像から構成ページ遷移は、フルリロード

サーバーレンダラーサーバーサイドでページを組み立てる。クライアントサイドのスクリプトでは、簡単な検証やホバー効果、 Ajax の呼び出しページ遷移は、フルリロードクライアントサイドで スクリプト を多用してい

ない ASP.NET アプリケーションがこれに該当

Web アプリの分布

ハイブリッドデザインサーバーレンダラーに似てるリッチさを提供するクライアントサイドの JavaScript を多用フルリロードをしないページと、フルリロードする幾つかのページで構成

Project Silk のサンプルアプリ である Mileage Stats はこのタイプ

Web アプリの分布

シングルページインターフェースページ全体のロードは 1 回だけページの変更やデータのロードでもフルリロードせずに実行

Hotmail 、 Office Live 、 Twitter がこのタイプ

モダンな Web アプリケーションの特徴

標準に焦点を当てている複数のプラットフォーム / デバイスで動かすために、標準の規格を採用

対話的ユーザーの操作にフィードバックを提供( メッセージの表示 / 非表示や、マウスオーバー、ドラッグ & ドロップ等 )モダンなブラウザで高速な JavaScript エンジンを活用

モダンな Web アプリケーションの特徴

ページ全体のリロードを控えるページ全体のリロードの回数を減らすリロードは遅い!それに使いにくい!

非同期データや HTML コンテンツを取得するために、リロードを行わず Ajax を利用非同期なので、 UI がロックされない

モダンな Web アプリケーションの特徴

データ管理クライアントサイドのデータをキャッシュプリフェッチ ( 事前読込 )クライアントサイドのパフォーマンスを向上データのキャッシュは、サーバーへのアクセス回数も減るため、サーバーリソースへの影響も少なくなる

アプリケーション構築時の考慮事項

チームスキルデザイナーUX 、 UI 、グラフィックスを担当

クライアントサイドの開発者UI やユーザーインタラクションの高度なプログラミングとテストを担当

サーバーサイドの開発者web ページや業務機能やデータベースのプログラミングとテストを担当

アプリケーション構築時の考慮事項

テクノロジーAjaxJavaScriptjQueryModernizrASP.NET MVC RazorDI(Dependency Injection)

Modernizr

ブラウザーの機能 / サポート状況を、 CSS と JavaScript に公開する OSS の JavaScript ライブラリ

geolocation, canvas, SVG, border-radius, 等html タグに、 CSS クラスを追加するサポートしていない場合は、” no-” から始まる

スタイルシートを 2 パターン用意しておけば、対応してる / してない時で UI を切り替えれる

今日お話しする内容

Web アプリ開発ガイドラインって何?環境構築どんな事が出来るの?導入アーキテクチャまとめ

アーキテクチャ

早い段階で、ブラウザ / バージョンのサポートする範囲を決める古いバージョンを選ぶと、技術的な選択肢が制限されユーザーエクスペリエンスにも影響が出るshim や polyfill といった物を使うと、古いブラウザでも似た様なことが出来るようになるかも

アーキテクチャ

Mileage Stats のクライアントサイド アーキテクチャを解説

構造モジュール方式通信ナビゲーションデータ

構造

UX最新のブラウザーで JavaScript 有効:魅力的な UXJavaScript が無効 /古いブラウザー:とりあえず表示可能

Progressive Enhancement最初はサーバー側で HTML 作成ブラウザが対応していたら、クライアントサイドで、どんどんリッチにする

構造

jQuery TemplateHTML を生成するテンプレートデータと文書構造を分離して、テストを容易に!ASP.NET MVC/ASP.NET Web Forms は jQuery Template を利用出来る

モジュール方式

アプリケーション全体を簡素化責務の明確な境界を確立懸念を分離テストがし易いメンテナンスも容易再利用が可能

jQuery UI Widget と JavaScript オブジェクトを使って、モジュール化している

通信

モジュール化で分割するけど、孤立はしていない直接通信

高レベルな Widget が低レベルな Widget を操作する際に使用 (限定的 )

PUB/SUB での疎結合パブリッシュ - サブスクライブ 方式依存関係を減らすメッセージは独自定義可能

ナビゲーション

ボタンやハイパーリンクのクリック時にフルリロードしないクライアントサイドでイベントを処理jQuery BBQ プラグイン

アドレスバーの URL を変更特定のアプリケーションの状態を直接返せるので、アドレスをブックマーク可能 ( ディープリンク )ブラウザの戻るボタンが機能する

ページ内でのタブの変更とか

データ

単一のオブジェクトを介して Ajax 経由で通信を行う単一のオブジェクトにする利点

呼び出しのコードがシンプルになるデータキャッシュの実装もしやすいキャッシュは、クロスブラウザの観点から、 HTML5 local storage は使わず、 JavaScript オブジェクトを利用

重いデータは、プリフェッチしておく

今日お話しする内容

Web アプリ開発ガイドラインって何?環境構築どんな事が出来るの?導入アーキテクチャまとめ

まとめ

Express Edition でも動きますここで紹介したのは、ほんの触りです。

コード全く紹介していません続きは Web (英語 ) で

そのうち訳されるかも?少しずつ 日本語訳 載せていってます

http://w.livedoor.jp/odashinsuke/d/Project%20Silk

参考資料

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

patterns & practices: Project Silkhttp://silk.codeplex.com/

top related