SlideShare a Scribd company logo
mvcConf @:Japan
  ~ ASP.NET MVC ブート キャンプ ~



ASP.NET MVC 3 と NuGet で始める
      高速 Web アプリ開発
             Microsoft MVP for ASP.NET/IIS
               芝村 達郎 (しばむら たつろう)
         d.hatena.ne.jp/shiba-yan   twitter.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 で書いてみる
<html>
<head>
    <title>@ViewBag.Title</title>
</head>
<body>
    @* コードブロック *@
    @foreach (var product in Model) {
        @* HTML エンコードして出力 *@
        <h2>商品名:@product.Name</h2>
        @* HTML エンコードせずに出力 *@
        <p>説明:@Html.Raw(product.Description)</p>
    }
</body>
</html>
                                                   7
Razor の基礎
 全ては「@」から始まる
   変数の展開
   if, foreach などの制御構造
   コードブロック
   メソッドの定義
   Web ヘルパーの定義
   コメント
   etc…
                          8
基本的な文法(1)
 変数の展開
  @変数名

 if, foreach などの制御構造
  @if (…) { … }, @foreach (…) { … }

 コードブロック
  @{ … }
                                       9
基本的な文法(2)
 メソッドの定義
 @functions { メソッド定義 }

 Web ヘルパーの定義
 @helper ヘルパー名(引数1,…) { … }

 コメント
 @* クライゕントに出力されない文字列 *@
                               10
基本的な文法(3)
 変数展開時にコード範囲を指定
 @(変数名)
 Generic で型名を指定する場合に必要

 セクション
 @section 名前 → @RenderSection(名前)
 ASPX の ContentPlaceHolder に近い

                                     11
Razor の基本的な文法




                12
コードとテキスト
 コードブロック
 if, foreach など制御構造のブロック
 C#, VB コードを記述可能

 テキストブロック
 コードブロック以外の全て
 テキストとしてクライゕントに出力

                            13
コードブロックの例
<html>
<head>
    <title>@ViewBag.Title</title>
</head>                                   コードブロック
<body>
    @* コードブロック *@
    @foreach (var product in Model) {
        @* HTML エンコードして出力 *@
                                      これは??
        <h2>商品名:@product.Name</h2>
        @* HTML エンコードせずに出力 *@
        <p>説明:@Html.Raw(product.Description)</p>
    }
</body>
</html>
                                                    14
テキストとして出力する
 HTML タグを使う
  タグと内部の文字列をテキストとして扱う

 <text> タグを使う
  出力にタグ自体は含まれない

 @: 記法を使う
  @: 以降の文字列をテキストとして扱う
                         15
間違えないためのヒント
 Visual Studio を活用する
  コードブロックには背景色が付いている




                        16
ASPX との違い


            17
ASPX のおさらい
 ASP.NET Web Forms で主に利用
  MVC 2 まではデフォルトのビューエンジン

 コードナゲットを使って制御構造の記述や
  変数の展開を行う
  コードナゲットにもいくつかの種類がある
  用途によって使い分けが必要

                            18
コードナゲットの例
<html>
<head runat="server">
    <title><%: ViewBag.Title %></title>
</head>
<body>
    <%-- コードブロック --%>
    <% foreach (var product in Model) {%>
        <%-- HTML エンコードして出力 --%>
        <h2>商品名:<%: product.Name %></h2>
        <%-- HTML エンコードせずに出力 --%>
        <p>説明:<%= product.Description %></p>
    <% } %>
</body>
</html>
                                               19
文法を比較
 ASPX          Razor
  コードナゲット       @ から始める
  制御構造はコードナ     制御構造は @ の
   ゲット内に書く        直後に書く
  コードブロック内に     コードブロック内に
   タグが書けない        タグが書ける
  (デザインビューが     (デザインビューが
   利用可能)          利用不可能)
                              20
機能を比較
 ASPX                   Razor
  サーバコントロール              サーバコントロール
   が使える                    が使えない
  部分ビュー利用可能              部分ビュー利用可能
   (ascx フゔイル)             (cshtml フゔイル)
  ContentPlaceHolder     @section
  ヘルパー定義の                ヘルパー定義用の
   サポートはない                 記法あり
                                           21
パフォーマンスを比較
 ASP.NET MVC 3 Razor performance
  http://stackoverflow.com/questions/382896
   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 の @helper 記法を利用する
  C#, VB でロジックを作成

 Razor を使って HTML の出力に特化
  タグをメソッド中に直接書いて出力

 外部 Web サービスとの連携目的が中心
                             25
サンプル Web ヘルパー
@* はてなブックマーク数を画像で表示するヘルパー *@
@helper HatenaBookmark(string url = null)
{
    url = url ?? Request.Url.AbsoluteUri;
    <a href="http://b.hatena.ne.jp/entry/@url">
    <img src="http://b.hatena.ne.jp/entry/image/@url" />
    </a>
}

@* 実際に使用する例 *@
@HatenaBookmark("http://d.hatena.ne.jp/shiba-yan/")


                                                           26
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)
  指定されたパッケージを最新版へ更新

     パッケージ ID は NuGet.org で
         確認できます
                               35
パッケージ ID を確認




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




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


              38
パッケージを公開したい
 こんなに便利なヘルパーを作った
 みんなにも使ってもらいたい!

 標準のモデル検証は種類がイマイチ
 自分で検証属性を作りました!

  NuGet で公開しましょう!!
                     39
作成の手順
1. nuget.org でユーザー登録する
2. NuGet Command Line をダウンロード
  http://nuget.codeplex.com/ から
3. nuspec フゔイルを作成する
  ゕセンブリ、プロジェクトから作成可能
  スクラッチで書くことも出来る
4. nupkg フゔイルを作成して Web へ発行

                                   40
ユーザー登録
 http://nuget.org/ から登録

 登録してもすぐに反映されない
  中の人に 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.

More Related Content

PDF
JavaScript.Next
PPTX
今から始める、Windows 10&新.NETへの移行戦略
PDF
PHPの今とこれから2016
KEY
WordPressプラグイン作成入門
PPTX
13016 n分で作るtype scriptでnodejs
PDF
Try_to_writecode_practicaltest #atest_hack
PDF
concrete5デザインカスタマイズに必要なPHPの知識
PDF
NPAPIを使ったandroid標準ブラウザの拡張方法
JavaScript.Next
今から始める、Windows 10&新.NETへの移行戦略
PHPの今とこれから2016
WordPressプラグイン作成入門
13016 n分で作るtype scriptでnodejs
Try_to_writecode_practicaltest #atest_hack
concrete5デザインカスタマイズに必要なPHPの知識
NPAPIを使ったandroid標準ブラウザの拡張方法

What's hot (20)

PPTX
.NET Compiler Platform
PDF
Windows で PHP をビルドしてみた
PDF
Java scriptの進化
PDF
「html5 boilerplate」から考える、これからのマークアップ
PDF
Phpstudy44 Zend Frameworkが抱えている問題は多い。
PPTX
C#の書き方
PDF
Bot Framework v4 開発 Tips 2018-11
KEY
EC-CUBEプラグイン講義
PDF
RFC: "var" Deprecation
PDF
Eclipse ADTとAndroidStudio両方で動かせる開発環境構築
PDF
JIT for PHP を試した
PDF
What makes pyramid unique
PDF
anyenv + phpenv + php-build が便利すぎる件
PPTX
Metasploitでペネトレーションテスト
PDF
What's new! TwentyThirteen + WordPress3.6
PDF
20210515 of4 wi&amp;paraview 5.9.0_motorbike
PDF
.htaccessによるリダイレクト徹底解説
PPT
Inside mobage platform
PDF
20141129-dotNet2015
PPTX
メタな感じのプログラミング(プロ生 + わんくま 071118)
.NET Compiler Platform
Windows で PHP をビルドしてみた
Java scriptの進化
「html5 boilerplate」から考える、これからのマークアップ
Phpstudy44 Zend Frameworkが抱えている問題は多い。
C#の書き方
Bot Framework v4 開発 Tips 2018-11
EC-CUBEプラグイン講義
RFC: "var" Deprecation
Eclipse ADTとAndroidStudio両方で動かせる開発環境構築
JIT for PHP を試した
What makes pyramid unique
anyenv + phpenv + php-build が便利すぎる件
Metasploitでペネトレーションテスト
What's new! TwentyThirteen + WordPress3.6
20210515 of4 wi&amp;paraview 5.9.0_motorbike
.htaccessによるリダイレクト徹底解説
Inside mobage platform
20141129-dotNet2015
メタな感じのプログラミング(プロ生 + わんくま 071118)
Ad

Similar to Mvc conf session_2_shibamura (20)

PDF
ASP.NET MVC 2 ~新機能の紹介~
PDF
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
PDF
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
PPT
Apexコアデベロッパーセミナー(Apexコード)071010
PDF
Asp Net Mvc 基礎のキソ
PDF
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
PDF
VSCodeで始めるAzure Static Web Apps開発
PDF
New Features of DotNet 6 Blazor WASM
PPT
Using Windows Azure
PDF
jQuery と MVC で実践する標準志向 Web 開発
PDF
Application development with c#, .net 6, blazor web assembly, asp.net web api...
PPT
ASP.NET MVC 1.0
PDF
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
PDF
LabVIEW NXG Web Module Training Slide
PDF
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
PPTX
20141017 introduce razor
PDF
Vue入門
PDF
Dart / Flutter コードファイルジェネレート入門
PDF
はじめてのCodeIgniter
PDF
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
ASP.NET MVC 2 ~新機能の紹介~
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Apexコアデベロッパーセミナー(Apexコード)071010
Asp Net Mvc 基礎のキソ
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
VSCodeで始めるAzure Static Web Apps開発
New Features of DotNet 6 Blazor WASM
Using Windows Azure
jQuery と MVC で実践する標準志向 Web 開発
Application development with c#, .net 6, blazor web assembly, asp.net web api...
ASP.NET MVC 1.0
Developing .NET 6 Blazor WebAssemby apps with Radzen Blazor component library...
LabVIEW NXG Web Module Training Slide
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
20141017 introduce razor
Vue入門
Dart / Flutter コードファイルジェネレート入門
はじめてのCodeIgniter
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Ad

Mvc conf session_2_shibamura

  • 1. mvcConf @:Japan ~ ASP.NET MVC ブート キャンプ ~ ASP.NET MVC 3 と NuGet で始める 高速 Web アプリ開発 Microsoft MVP for ASP.NET/IIS 芝村 達郎 (しばむら たつろう) d.hatena.ne.jp/shiba-yan twitter.com/shibayan
  • 2. 本セッションの趣旨  対象者  Web Forms で ASPX は使ったことがある  Razor の名前は知ってます  NuGet ?聞いたこともないですよ?  ゴール  Razor の基本的な文法を理解  NuGet でパッケージをインストールして使える 2
  • 3. ゕジェンダ  Razor  ASPX との違い  Web ヘルパー  NuGet  実際に利用してみる  パッケージを作成、発行  まとめ 3
  • 5. Razor とは  ASP.NET MVC 3 の新しいビューエンジン  バージョン 2 までは ASPX のみ利用可能  HTML 中に C#, VB のコードをシームレス に記述可能  簡単に習得することが可能  今まで以上に素早くビューを作成できる 5
  • 6. Razor の特徴  ASPX と比較してタイプ数が少ない  開発者はロジックに注力できる  出力される HTML がシンプル  ビューステートなどを出力しない  変数は展開時に HTML エンコードされる  XSS などの攻撃を未然に防ぐ 6
  • 7. Razor で書いてみる <html> <head> <title>@ViewBag.Title</title> </head> <body> @* コードブロック *@ @foreach (var product in Model) { @* HTML エンコードして出力 *@ <h2>商品名:@product.Name</h2> @* HTML エンコードせずに出力 *@ <p>説明:@Html.Raw(product.Description)</p> } </body> </html> 7
  • 8. Razor の基礎  全ては「@」から始まる  変数の展開  if, foreach などの制御構造  コードブロック  メソッドの定義  Web ヘルパーの定義  コメント  etc… 8
  • 9. 基本的な文法(1)  変数の展開  @変数名  if, foreach などの制御構造  @if (…) { … }, @foreach (…) { … }  コードブロック  @{ … } 9
  • 10. 基本的な文法(2)  メソッドの定義  @functions { メソッド定義 }  Web ヘルパーの定義  @helper ヘルパー名(引数1,…) { … }  コメント  @* クライゕントに出力されない文字列 *@ 10
  • 11. 基本的な文法(3)  変数展開時にコード範囲を指定  @(変数名)  Generic で型名を指定する場合に必要  セクション  @section 名前 → @RenderSection(名前)  ASPX の ContentPlaceHolder に近い 11
  • 13. コードとテキスト  コードブロック  if, foreach など制御構造のブロック  C#, VB コードを記述可能  テキストブロック  コードブロック以外の全て  テキストとしてクライゕントに出力 13
  • 14. コードブロックの例 <html> <head> <title>@ViewBag.Title</title> </head> コードブロック <body> @* コードブロック *@ @foreach (var product in Model) { @* HTML エンコードして出力 *@ これは?? <h2>商品名:@product.Name</h2> @* HTML エンコードせずに出力 *@ <p>説明:@Html.Raw(product.Description)</p> } </body> </html> 14
  • 15. テキストとして出力する  HTML タグを使う  タグと内部の文字列をテキストとして扱う  <text> タグを使う  出力にタグ自体は含まれない  @: 記法を使う  @: 以降の文字列をテキストとして扱う 15
  • 16. 間違えないためのヒント  Visual Studio を活用する  コードブロックには背景色が付いている 16
  • 18. ASPX のおさらい  ASP.NET Web Forms で主に利用  MVC 2 まではデフォルトのビューエンジン  コードナゲットを使って制御構造の記述や 変数の展開を行う  コードナゲットにもいくつかの種類がある  用途によって使い分けが必要 18
  • 19. コードナゲットの例 <html> <head runat="server"> <title><%: ViewBag.Title %></title> </head> <body> <%-- コードブロック --%> <% foreach (var product in Model) {%> <%-- HTML エンコードして出力 --%> <h2>商品名:<%: product.Name %></h2> <%-- HTML エンコードせずに出力 --%> <p>説明:<%= product.Description %></p> <% } %> </body> </html> 19
  • 20. 文法を比較  ASPX  Razor  コードナゲット  @ から始める  制御構造はコードナ  制御構造は @ の ゲット内に書く 直後に書く  コードブロック内に  コードブロック内に タグが書けない タグが書ける  (デザインビューが  (デザインビューが 利用可能) 利用不可能) 20
  • 21. 機能を比較  ASPX  Razor  サーバコントロール  サーバコントロール が使える が使えない  部分ビュー利用可能  部分ビュー利用可能 (ascx フゔイル) (cshtml フゔイル)  ContentPlaceHolder  @section  ヘルパー定義の  ヘルパー定義用の サポートはない 記法あり 21
  • 22. パフォーマンスを比較  ASP.NET MVC 3 Razor performance  http://stackoverflow.com/questions/382896 1/asp-net-mvc-3-razor-performance  RC 2 リリースビルドでのテスト結果  ASPX: 4100 request/second  Razor: 3940 request/second 22
  • 23. まだ ASPX を選びますか?  ASPX よりも格段に書きやすい  デザインビューは使えないが、完成済みの HTML にコードを埋め込むのが一般的  コードナゲットの <% %> は打ちにくい  Razor にパフォーマンス問題は存在しない  少しの差はあっても、メリットの方が大きい 23
  • 25. Web ヘルパーとは  HTML を出力する再利用可能なメソッド  Razor の @helper 記法を利用する  C#, VB でロジックを作成  Razor を使って HTML の出力に特化  タグをメソッド中に直接書いて出力  外部 Web サービスとの連携目的が中心 25
  • 26. サンプル Web ヘルパー @* はてなブックマーク数を画像で表示するヘルパー *@ @helper HatenaBookmark(string url = null) { url = url ?? Request.Url.AbsoluteUri; <a href="http://b.hatena.ne.jp/entry/@url"> <img src="http://b.hatena.ne.jp/entry/image/@url" /> </a> } @* 実際に使用する例 *@ @HatenaBookmark("http://d.hatena.ne.jp/shiba-yan/") 26
  • 28. 代表的な Web ヘルパー  Microsoft が出しているヘルパー  ASP.NET Web Helpers  Xbox ゲーマーカード、Bing 検索など  Twitter.Helper  キーワード検索  Facebook.Helper  「いいね!」ボタンなど  これ以外にも NuGet に多数登録 28
  • 30. NuGet とは  .NET 用のパッケージマネージャ  Ruby で例えると gem に近い  MVC 3 のインストールと同時に入る  Visual Studio 2010 の拡張としてインストール  複数のフレームワークバージョンに対応  .NET 1.1, 2.0, 4.0, Silverlight 4 など 30
  • 31. NuGet の特徴  1000 以上のパッケージが登録済み  jQuery, Modernizr, Entity Framework など  数クリックでインストール可能  GUI が用意されているので初めての人でも安心  パッケージのゕップデート機能  インストール済みのパッケージを簡単に更新 31
  • 33. パッケージをインストールする  Add Library Package Reference  GUI の管理ツール  パッケージの一覧表示、検索、更新が可能  1 クリックでインストール  Package Manager Console  PowerShell を利用した管理ツール  パッケージ ID が分かっている場合に便利 33
  • 34. GUI でインストール パッケージを選択して インストール 表示を切り替え パッケージの 情報 34
  • 35. CUI でインストール  Install-Package (パッケージ ID)  指定されたパッケージをインストール  Update-Package (パッケージ ID)  指定されたパッケージを最新版へ更新 パッケージ ID は NuGet.org で 確認できます 35
  • 39. パッケージを公開したい  こんなに便利なヘルパーを作った  みんなにも使ってもらいたい!  標準のモデル検証は種類がイマイチ  自分で検証属性を作りました! NuGet で公開しましょう!! 39
  • 40. 作成の手順 1. nuget.org でユーザー登録する 2. NuGet Command Line をダウンロード  http://nuget.codeplex.com/ から 3. nuspec フゔイルを作成する  ゕセンブリ、プロジェクトから作成可能  スクラッチで書くことも出来る 4. nupkg フゔイルを作成して Web へ発行 40
  • 41. ユーザー登録  http://nuget.org/ から登録  登録してもすぐに反映されない  中の人に Twitter 経由で頼む  ログイン可能になるまで待ち続ける  ゕクセスキーを取得する  パッケージの登録時に必要となる 41
  • 43. まとめ 43
  • 44. 今すぐ使いましょう!  Razor の生産性は非常に高い  HTML に特化された記法  既存の言語 (C#, VB) とのシームレスな連携  NuGet で便利なライブラリをゲット!  ソーシャル連携で Twitter と Facebook は必須 と言ってもいい  Web ヘルパー使えば 1 行書くだけ! 44
  • 45. © 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.