ASP.NET MVC 3 と NuGet で始める 高速 Web アプリ開発 Microsoft MVP for ASP.NET/IIS 芝村 達郎 (しばむら たつろう) d.hatena.ne.jp/shiba-yand.hatena.ne.jp/shiba-yan twitter.com/shibayantwitter.com/shibayan.

Slides:



Advertisements
Similar presentations
マイクロソフトがホスティングする拡張性に優れたサービス ベース アプリケーション プラットフォーム.
Advertisements

この部分こそが必 要とされている ! Runtime 自身と Expression が カバーする!
Windows Azure ハンズオン トレーニング Windows Azure Web サイト入門.
Oscar Koenders Principal Group Program Manager Microsoft Corporation
第28回codeseek勉強会 WPF で簡単ビデオ再生 2008年5月27日(火)
D2-301 現時点の本資料は 完成版のスライドではありません。
MSON-B2 .NET Framework Web アプリケーション開発
Microsoft Consumer Channels and Central Marketing Group
Windows Summit /1/2017 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
Windows Summit /1/2017 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
Windows Summit /1/2017 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
C# Programming .NET / C# Group 検索ワードでみる C#の困り事とその対策
3/2/2017 9:01 AM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Windows Phone アプリケーションでの データ視覚化
3/3/2017 8:49 AM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
3/4/ :37 PM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Expression Blend 3で始めるSilverlight 3アプリケーション開発
ParadoxのLiveScripting事情
3/11/2017 1:52 AM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Using connected devices in Metro style apps Metro スタイル アプリで デバイスを使用する
3/11/2017 7:02 PM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
WindowsストアアプリをC++/CXで作る
Windows Summit /13/2017 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
クラウド開発の高速道路 ~Visual Studio 2010 による Windows Azure アプリケーション開発~
MIX 09 3/14/2017 9:51 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Microsoft Consumer Channels and Central Marketing Group
表紙です.
3/17/2017 1:49 AM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
データはお客様に属し、かつ、コントロール可能
HP ProLiant DL980 G7 SQL Server 2008 R2 NUMA 環境 ベンチマークテスト結果報告書
ビジネスにおける オープンソースの利用価値
XAML の勉強不要! WPF アプリケーションは作れます
大学におけるクラウド活用の 最新動向と先進ソリューションの 事例
3/21/2017 3:39 AM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Using tiles and notifications タイルと通知の使用
[コース: A1] .NET Framework の基礎
Windows Summit /6/2017 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
Windows Summit /8/2017 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
Windows Azure - 今やるWindows ストアLOB アプリ開発のための設計手法
Windows Summit /9/2017 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
Microsoft Consumer Channels and Central Marketing Group
9/17/ :05 AM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Microsoft Partner Network Office 365 社内使用ライセンスの有効化
Microsoft Consumer Channels and Central Marketing Group
Azure Pack そして災害対策 日本マイクロソフト株式会社 エバンジェリスト 高添 修
11/9/2018 3:35 AM Windows Azure Platform ハンズオン トレーニング Windows Azure アプリケーション開発概要 ~ Windows Azure 入門編 ~ © 2007 Microsoft Corporation. All rights reserved.
Windows Summit /22/2018 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may.
Windows Summit /24/2018 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may.
Expression Blend 3で始めるSilverlight 3アプリケーション開発
Chad Siefert Senior Test Lead Microsoft Corporation
Windows Azure 通知ハブ.
12/9/ :14 AM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
suppose to be expected to be should be
Microsoft Visual Studio 2005 Tools for
.NET Framework 3.0 概要 (旧称 : WinFX)
Windows Summit /21/2019 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
Windows Summit /22/2019 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
MIX 09 2/23/2019 1:22 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Max Morris Principal Program Manager Microsoft Corporation
Windows Summit /24/2019 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
主要関係者の特定用テンプレート Windows 10 and Office 365 導入ステップ 2/24/2019
Yochay Kiriaty Senior Technical Evangelist Microsoft® Corporation
~ 第5回 認証のためのプロキシー Web Application Proxy
Windows Summit /4/10 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
Craig Rowland Senior Program Manager Microsoft Corporation
Microsoft Consumer Channels and Central Marketing Group
Windows Summit 2010 © 2010 Microsoft Corporation.All rights reserved.Microsoft、Windows、Windows Vista およびその他の製品名は、米国 Microsoft Corporation の米国およびその他の国における登録商標または商標です。
Windows Summit /22/2019 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
MIX 09 8/2/2019 8:06 AM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Windows Azure メディアサービス
Presentation transcript:

ASP.NET MVC 3 と NuGet で始める 高速 Web アプリ開発 Microsoft MVP for ASP.NET/IIS 芝村 達郎 (しばむら たつろう) d.hatena.ne.jp/shiba-yand.hatena.ne.jp/shiba-yan twitter.com/shibayantwitter.com/shibayan

本セッションの趣旨  対象者  Web Forms で ASPX は使ったことがある  Razor の名前は知ってます  NuGet ?聞いたこともないですよ?  ゴール  Razor の基本的な文法を理解  NuGet でパッケージをインストールして使える 2

アジェンダ  Razor  ASPX との違い  Web ヘルパー  NuGet  実際に利用してみる  パッケージを作成、発行  まとめ 3

Razor (レイザー) 4

Razor とは  ASP.NET MVC 3 の新しいビューエンジン  バージョン 2 までは ASPX のみ利用可能  HTML 中に C#, VB のコードをシームレス に記述可能  簡単に習得することが可能  今まで以上に素早くビューを作成できる 5

Razor の特徴  ASPX と比較してタイプ数が少ない  開発者はロジックに注力できる  出力される HTML がシンプル  ビューステートなどを出力しない  変数は展開時に HTML エンコードされる  XSS などの攻撃を未然に防ぐ 6

Razor (var product in Model) HTML HTML エンコードせずに出力 }

Razor の基礎   変数の展開  if, foreach などの制御構造  コードブロック  メソッドの定義  Web ヘルパーの定義  コメント  etc… 8

基本的な文法(1)  変数の展開  if, foreach などの制御構造 (…) { … (…) { … }  コードブロック … } 9

基本的な文法(2)  メソッドの定義 { メソッド定義 }  Web ヘルパーの定義 ヘルパー名(引数1,…) { … }  コメント クライアントに出力されない文字列 10

基本的な文法(3)  変数展開時にコード範囲を指定  Generic で型名を指定する場合に必要  セクション 名前  ASPX の ContentPlaceHolder に近い 11

Razor の基本的な文法 12

コードとテキスト  コードブロック  if, foreach など制御構造のブロック  C#, VB コードを記述可能  テキストブロック  コードブロック以外の全て  テキストとしてクライアントに出力 13

(var product in Model) HTML HTML エンコードせずに出力 } これは?? コードブロック

テキストとして出力する  HTML タグを使う  タグと内部の文字列をテキストとして扱う  タグを使う  出力にタグ自体は含まれない 記法を使う 以降の文字列をテキストとして扱う 15

間違えないためのヒント  Visual Studio を活用する  コードブロックには背景色が付いている 16

ASPX との違い 17

ASPX のおさらい  ASP.NET Web Forms で主に利用  MVC 2 まではデフォルトのビューエンジン  コードナゲットを使って制御構造の記述や 変数の展開を行う  コードナゲットにもいくつかの種類がある  用途によって使い分けが必要 18

コードナゲットの例 19 商品名: 説明:

文法を比較  ASPX  コードナゲット  制御構造はコードナ ゲット内に書く  コードブロック内に タグが書けない  (デザインビューが 利用可能)  Razor から始める  の 直後に書く  コードブロック内に タグが書ける  (デザインビューが 利用不可能) 20

機能を比較  ASPX  サーバコントロール が使える  部分ビュー利用可能 (ascx ファイル)  ContentPlaceHolder  ヘルパー定義の サポートはない  Razor  サーバコントロール が使えない  部分ビュー利用可能 (cshtml ファイル)  ヘルパー定義用の 記法あり 21

パフォーマンスを比較  ASP.NET MVC 3 Razor performance  1/asp-net-mvc-3-razor-performance 1/asp-net-mvc-3-razor-performance  RC 2 リリースビルドでのテスト結果  ASPX: 4100 request/second  Razor: 3940 request/second 22

まだ ASPX を選びますか?  ASPX よりも格段に書きやすい  デザインビューは使えないが、完成済みの HTML にコードを埋め込むのが一般的  コードナゲットの は打ちにくい  Razor にパフォーマンス問題は存在しない  少しの差はあっても、メリットの方が大きい 23

Web ヘルパー 24

Web ヘルパーとは  HTML を出力する再利用可能なメソッド  Razor 記法を利用する  C#, VB でロジックを作成  Razor を使って HTML の出力に特化  タグをメソッド中に直接書いて出力  外部 Web サービスとの連携目的が中心 25

サンプル Web ヘルパー HatenaBookmark(string url = null) { url = url ?? Request.Url.AbsoluteUri;

Web ヘルパーの定義と利用 demo... 27

代表的な Web ヘルパー  Microsoft が出しているヘルパー  ASP.NET Web Helpers  Xbox ゲーマーカード、Bing 検索など  Twitter.Helper  キーワード検索  Facebook.Helper  「いいね!」ボタンなど  これ以外にも NuGet に多数登録 28

NuGet (ぬげっと) 29

NuGet とは .NET 用のパッケージマネージャ  Ruby で例えると gem に近い  MVC 3 のインストールと同時に入る  Visual Studio 2010 の拡張としてインストール  複数のフレームワークバージョンに対応 .NET 1.1, 2.0, 4.0, Silverlight 4 など 30

NuGet の特徴  1000 以上のパッケージが登録済み  jQuery, Modernizr, Entity Framework など  数クリックでインストール可能  GUI が用意されているので初めての人でも安心  パッケージのアップデート機能  インストール済みのパッケージを簡単に更新 31

実際に利用してみる 32

パッケージをインストールする  Add Library Package Reference  GUI の管理ツール  パッケージの一覧表示、検索、更新が可能  1 クリックでインストール  Package Manager Console  PowerShell を利用した管理ツール  パッケージ ID が分かっている場合に便利 33

GUI でインストール 34 表示を切り替え パッケージを選択して インストール パッケージの 情報

CUI でインストール  Install-Package (パッケージ ID)  指定されたパッケージをインストール  Update-Package (パッケージ ID)  指定されたパッケージを最新版へ更新 35 パッケージ ID は NuGet.org で 確認できます

パッケージ ID を確認 36

パッケージの追加と利用 37

パッケージを作成、発行 38

パッケージを公開したい  こんなに便利なヘルパーを作った  みんなにも使ってもらいたい!  標準のモデル検証は種類がイマイチ  自分で検証属性を作りました! 39 NuGet で公開しましょう!!

作成の手順 1.nuget.org でユーザー登録する 2.NuGet Command Line をダウンロード  から 3.nuspec ファイルを作成する  アセンブリ、プロジェクトから作成可能  スクラッチで書くことも出来る 4.nupkg ファイルを作成して Web へ発行 40

ユーザー登録  から登録  登録してもすぐに反映されない  中の人に Twitter 経由で頼む  ログイン可能になるまで待ち続ける  アクセスキーを取得する  パッケージの登録時に必要となる 41

パッケージの作成、発行 42

まとめ 43

今すぐ使いましょう!  Razor の生産性は非常に高い  HTML に特化された記法  既存の言語 (C#, VB) とのシームレスな連携  NuGet で便利なライブラリをゲット!  ソーシャル連携で Twitter と Facebook は必須 と言ってもいい  Web ヘルパー使えば 1 行書くだけ! 44

© 2011 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.