狠狠撸

狠狠撸Share a Scribd company logo
~新機能の紹介~


瀬尾佳隆 (y.seo@seosoft.jp)
 Microsoft MVP for Visual C#
              技術ひろば.net




                               1
?   瀬尾 佳隆 (せお よしたか)
    ? MVP for Visual C# (Jan 2009 – Dec 2010)
    ? 好きなもの:Windowsアプリ、Office、SharePoint
        ? あれっ、Webは????やります、やります!
    ? 個人事業主です (屋号は瀬尾ソフト)
    ? 根っからの技術屋?開発屋
    ? どうでもいい情報としては、ミュージカルが大好きです


?   技術ひろば.net
    ?   http://hiroba-tech.net/
    ?   毎月第3土曜日(原則)にオフライン勉強会を開催
    ?   モットーは「技術を楽しむ、技術でつながる」
    ?   人と技術に敬意を払える方ならばどなたでも大歓迎!


                                                2
?   ASP.NET MVC 2の機能強化/機能追加の概要を
    お持ち帰りいただくこと
    ? ご自身で評価、自習する際の手引きになれば幸いです
?   ASP.NET MVCにあまり慣れていない方に基本的な
    操作を感じていただくこと

?   Webアプリケーションのフレームワークとしての
    ASP.NET MVCの面白さを再認識/認識して
    いただくこと



                                  3
?   3月11日に RTMがリリース されました!
    ? Visual Studio 2010な方はあと半月ほど待ちましょう
     ? 2010にインストールしようとすると怒られます
    ? 今日は Visual Studio 2010 RC (+ MVC 2 RC2) を
      使います




                                                  4
?   MVCの超入門
?   HTMLヘルパー
    ?   DisplayFor
    ?   TextBoxFor など
    ?   LabelFor
    ?   EditorFor
?   Area




                        5
念のため见ておきましょう




               6
?   Web開発では一般的な考え方
?   Model – View – Controller
    が役割を分担

     Model       ? 操作?表示対象のデータ



      View       ? ユーザーと対話する部分


                 ? リクエストを処理し、Model と
    Controller     View をつなげる部分

                                       ※MSDN マガジン 2008年3月号より


                                                               7
?   ASP.NETをベースとしたMVCパターンの
    フレームワーク
    ? サーバーコントロールは使いません(使えません)
    ? 見た目の部分はHTML や埋め込みのスクリプトで記述
     ? レスポンスがシンプル&開発者の意図したとおりにしやすい
      ? ただし ASP.NETも 4 になって、かなりスッキリしました
     ? よく言われるキーワードとしては、デザイナとの協業
    ? 単体テストがやりやすい
?   ASP.NETを置き換える技術ではありません
     ? ASP.NETの生産性
     ? SilverlightのUX
     ? 適材適所、使い分けが大事


                                          8
?DB連携ならばADO.NET Entity Data Model または LINQ to SQL Classを使う
 Model


          ?Controllersフォルダーで右クリック→[Add]→[Controller]
          ?クラスの接尾辞は必ず “Controller”
Controller ?DB連携するには [Add action methods for ~ ] のチェックを忘れずに


          ?Controllerクラスのメソッド名で右クリック→[Add View]
          ?DB連携するには [Create Strongly-typed view] のチェックを忘れずに
  View    ?[View data class] と [View content] の選択




                                                                       9
Viewの記述を “手助け” してくれる
ヘルパーメソッド




                       10
MVC 2でのメソッド名         機能                    MVC 1.0で対応するもの

                     プロパティー値を表示            Html.Encode (※1)
Html.DisplayFor
                     モデルに適した形で表示           (Partial View)

Html.TextBoxFor など   HTML要素を生成             Html.TextBox など

Html.LabelFor        プロパティー名を表示            Html.Label

                     モデルに適した形で
Html.EditorFor                             (Partial View)
                     HTML要素を生成

                          ※1 : Html.EncodeはHTMLエスケープのためのメソッドであり、
                               プロパティー値の表示そのものが機能というわけではない




                                                                   11
Details.aspxの場合(抜粋)
<p>                                     <div class="display-label">
  ProductID:                              ProductID</div>
                                        <div class=“display-field”>
  <%= Html.Encode(Model.ProductID) %>     <%= Html.DisplayFor(
</p>                                      model => model.ProductID) %>
                                        </div>
<p>
  ProductName:                          <div class="display-label">
  <%=                                     ProductName</div>
   Html.Encode(Model.ProductName) %>    <div class=“display-field”>
                                          <%=
</p>                                      Html.Encode(Model.ProductName) %>
                                        </div>




Html.Encode : MVC 1.0                   Html.DisplayFor : MVC 2

                                                                              12
?   Html.Encodeの単純な置き換えという意味では、
    DisplayForに変更する必要はありません
    ? DisplayForの本質はモデルに適した表示ができることです
     ? あとで改めて
    ? プロパティー単位で表示のスタイル、書式を指定したい
      場合にも使います
     ?   DateTime型に対して日付だけを表示したい
     ?   金額に対して通貨記号を付加して表示したい
     ?   名前は少し大きめのフォントにしたい
     ?   など???




                                        13
<p>                            <div class="editor-label">
 <label for="ProductName">      <%= Html.LabelFor(
                                model => model.ProductName) %>
  ProductName:</label>
                               </div>
 <%= Html.TextBox(             <div class="editor-field">
 "ProductName",                 <%= Html.TextBoxFor(
 Model.ProductName) %>          model => model.ProductName) %>
 <%= Html.ValidationMessage(    <%= Html.ValidationMessageFor(
 "ProductName", "*") %>         model => model.ProductName) %>
                               </div>
</p>




Html.TextBox : MVC 1.0         Html.TextBoxFor : MVC 2

                                                                 14
?   積極的に使うことをおすすめします
    ? IntelliSenseが使えます
    ? つまり、コンパイル時にタイプミスなどのエラーがわかります
    ? 1.0では冗長だった
      “ProductName”, Model.ProductName
      という表記を使わずにすみます




                                         15
<p>                            <div class="editor-label">
 <label for="ProductName">      <%= Html.LabelFor(
                                model => model.ProductName) %>
  ProductName:</label>
                               </div>
 <%= Html.TextBox(             <div class="editor-field">
 "ProductName",                 <%= Html.TextBoxFor(
 Model.ProductName) %>          model => model.ProductName) %>
 <%= Html.ValidationMessage(    <%= Html.ValidationMessageFor(
 "ProductName", "*") %>         model => model.ProductName) %>
                               </div>
</p>




Html.TextBox : MVC 1.0         Html.TextBoxFor : MVC 2

                                                                 16
?   Html.LabelFor
    ? Model側でエンティティーのキャプションを一元管理できます
     ? 日本人ならば “ProductName” ではなく “製品名” と表示したい
       ところ
     ? ModelMetadataを宣言することで可能になります(後述)
    ? IntelliSenseも使えます




                                                17
?   モデルに適した出力をします
    ? デフォルトではモデルに含まれるプロパティ名と値を
      列挙するだけ
    ? テンプレートを用意することで出力結果を制御できます


?   もう少し具体的に見てみましょう




                                  18
もう少し具体的なソースコードで
使い方を見てみましょう




                  19
?   特定のView (複数でもよい)で特定のプロパティーの
    スタイルや書式を変更したい場合
    ? Viewのサブフォルダーに “DisplayTemplates” フォルダーを
      作成して、その中に Partial View (ascx) を作成する
    ? 書式についてはModelのDisplayFormat属性でも可能




                                                20
?   Partial Viewと出力Viewを以下のように




                                 21
?   出力結果




           22
?   アプリケーション全体のViewに共通して
    スタイルや書式を変更したい場合
    ? “DisplayTemplates” フォルダーにPartial Viewを作成する
    ? ModelのPartialクラスを作り、さらにMetadataを定義する
     ? この方法ではDisplayForの引数にTemplate名を指定しなくてもいい




                                                   23
24
25
26
?   プロパティーのキャプションを日本語にするなど、
    文字通り “ラベル” の操作を行います
    ? ModelのMetadataクラスで、キャプションを操作したい
      プロパティーを DisplayName 属性付きで定義




                                        27
28
?   Formを部品化することができます
    ? Viewのサブフォルダーに “EditorTemplates” を作成して
      部品化したいエンティティーの Partial View を作成
     ? Add View ダイアログで作成したひな形を編集するとラク




                                              29
30
31
独立したサブセクションを実現する
機能




                   32
?   独立したサブセクションを
    簡単に実現する機能
    ? フラットな構造だと、
      Controllersフォルダ、
      Viewsフォルダがどんどん
      乱雑になります
?   下位コンテンツごとに
    別々のMVC を持てます




                         33
34
?   プロジェクト(またはAreasフォルダ)で右クリック
    →[Add]→[Area]
?   Area名を入力
?   あとはそれぞれのAreaで普通のMVC開発手順で開発




                                 35
?   大規模アプリケーションになるとAreaを使っても
    プロジェクトが乱雑になる可能性があります
?   その場合は複数プロジェクトに分けるほうが
    より生産性?保守性が上がることがあります
    ? Areaに相当するプロジェクトを作成
    ? メインプロジェクトでそれらのプロジェクトを参照?管理

?   詳しい手順はMSDN Libraryの “Creating an ASP.NET
    MVC Areas Application Using
    Multiple Projects” を参照してください
    ? http://msdn.microsoft.com/en-
      us/library/ee307987(VS.100).aspx



                                               36
そろそろ终わりです




            37
?   ASP.NET MVC 2には今日紹介できなかった
    機能が他にもあります
    ? DefaultValue属性
     ? “/Controller/Action/id?page=1” のようなURLが可能
    ? 検証機能
     ? サーバーサイドで DataAnnotation を使用する方法
     ? クライアントサイドでスクリプトを使用する方法
    ? 非同期Controller
     ? モデルの操作に時間がかかる場合に便利




                                                   38
?   HTMLヘルパーが強化されました
    ? 非常に強い型付けのおかげで、Intellisenseや
      コンパイル時エラーが利用できます
    ? モデルに適した出力ができます
    ? 特定のViewのみのスタイル、アプリケーション共通の
      スタイルを任意に組み合わせて利用できます
?   AreaによりコンテンツごとにMVCを持つことが
    できます
    ? ただし大規模アプリケーションではサブプロジェクトの利用も
      検討してください



                                     39
?   ASP.NET MVC 公式サイト
    ? http://www.asp.net/mvc/
    ? 何はなくともここだけは

?   What’s New in ASP.NET MVC 2
    ? http://www.asp.net/learn/whitepapers/what-is-new-in-
      aspnet-mvc/
    ? 文字通り ASP.NET MVC 2の新機能の概要紹介
    ? 今日は紹介できなかった機能についても記載されています

?   Scott Gu’s Blog
    ? http://weblogs.asp.net/scottgu/
    ? マイクロソフト Scott Guthrie 氏のブログ



                                                             40
?   「ASP.NET MVC 実践プログラミング」 (山田祥寛 著、秀和シ
    ステム 刊、3200円)

?   「ASP.NET MVC入門」 (@IT)
    ? http://www.atmarkit.co.jp/fdotnet/aspnetmvc/index/index
      .html
    ? これを読めば、今日の話はすべて忘れても大丈夫です
?   「Web フォームを使用しないで Web アプリケーションを作成す
    る」 (MSDN マガジン 2008年3月号)
    ? http://msdn.microsoft.com/ja-
      jp/magazine/cc337884.aspx
?   「Professional ASP.NET MVC 1.0」 (Wrox)
    ? http://aspnetmvcbook.s3.amazonaws.com/aspnetmvc-
      nerdinner_v1.pdf
    ? 書籍のオンライン版がタダで読めます


                                                                41
?   ASP.NET MVC 基礎のキソ
    ? http://tinyurl.com/aspnetmvc-kiso-200912
?   ASP.NET MVC ~ Part 2
    ? http://tinyurl.com/aspnetmvc-part2-201002


?   すみません、半分宣伝です
    ? 勉強会で過去に私が担当したセッションの資料です
    ? ASP.NET MVCの基礎から学んでみたい方はどうぞ




                                                  42
43

More Related Content

What's hot (20)

ng-mtg#6 AngularJS ディレクティブ?パターン
ng-mtg#6 AngularJS ディレクティブ?パターンng-mtg#6 AngularJS ディレクティブ?パターン
ng-mtg#6 AngularJS ディレクティブ?パターン
Hayashi Yuichi
?
Windows ストア アプリの上手な作り方
Windows ストア アプリの上手な作り方Windows ストア アプリの上手な作り方
Windows ストア アプリの上手な作り方
一希 大田
?
Prism + ReactiveProperty入門
Prism + ReactiveProperty入門Prism + ReactiveProperty入門
Prism + ReactiveProperty入門
一希 大田
?
齿补尘补谤颈苍.蹿辞谤尘蝉での尘惫惫尘利用のコツ
齿补尘补谤颈苍.蹿辞谤尘蝉での尘惫惫尘利用のコツ齿补尘补谤颈苍.蹿辞谤尘蝉での尘惫惫尘利用のコツ
齿补尘补谤颈苍.蹿辞谤尘蝉での尘惫惫尘利用のコツ
Masuda Tomoaki
?
VIPER アーキテクチャによる iOS アプリの設計
VIPER アーキテクチャによる iOS アプリの設計VIPER アーキテクチャによる iOS アプリの設計
VIPER アーキテクチャによる iOS アプリの設計
Yuichi Adachi
?
惭痴颁もやもや话
惭痴颁もやもや话惭痴颁もやもや话
惭痴颁もやもや话
Tetsuya Kaneuchi
?
颈翱厂/础苍诲谤辞颈诲アフ?リエンシ?ニアか?理解すへ?き「惭辞诲别濒」の振る舞い
颈翱厂/础苍诲谤辞颈诲アフ?リエンシ?ニアか?理解すへ?き「惭辞诲别濒」の振る舞い颈翱厂/础苍诲谤辞颈诲アフ?リエンシ?ニアか?理解すへ?き「惭辞诲别濒」の振る舞い
颈翱厂/础苍诲谤辞颈诲アフ?リエンシ?ニアか?理解すへ?き「惭辞诲别濒」の振る舞い
Ken Morishita
?
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 revWindows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Shotaro Suzuki
?
Visualforce + jQuery
Visualforce + jQueryVisualforce + jQuery
Visualforce + jQuery
Salesforce Developers Japan
?
受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG
受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG
受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG
Hayashi Yuichi
?
20120118 titanium
20120118 titanium20120118 titanium
20120118 titanium
Hiroshi Oyamada
?
惭痴笔パターンによる设计アプローチ「あなたのアフ?リ报连相て?きてますか」
惭痴笔パターンによる设计アプローチ「あなたのアフ?リ报连相て?きてますか」惭痴笔パターンによる设计アプローチ「あなたのアフ?リ报连相て?きてますか」
惭痴笔パターンによる设计アプローチ「あなたのアフ?リ报连相て?きてますか」
U-dai Yokoyama
?
はじめての痴耻别.箩蝉
はじめての痴耻别.箩蝉はじめての痴耻别.箩蝉
はじめての痴耻别.箩蝉
Kei Yagi
?
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイドXPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
Tetsuji Hayashi
?
Windows アプリケーション開発 はじめに ~ Windows アプリケーション開発初学者の方向け Visual Studio を使ったアプリケーショ...
Windows アプリケーション開発はじめに ~ Windows アプリケーション開発初学者の方向けVisual Studio を使ったアプリケーショ...Windows アプリケーション開発はじめに ~ Windows アプリケーション開発初学者の方向けVisual Studio を使ったアプリケーショ...
Windows アプリケーション開発 はじめに ~ Windows アプリケーション開発初学者の方向け Visual Studio を使ったアプリケーショ...
Fujio Kojima
?
础辫别虫デザインパターン
础辫别虫デザインパターン础辫别虫デザインパターン
础辫别虫デザインパターン
Salesforce Developers Japan
?
【Xpages day2016】標準コントールを使わないxpage開発
【Xpages day2016】標準コントールを使わないxpage開発【Xpages day2016】標準コントールを使わないxpage開発
【Xpages day2016】標準コントールを使わないxpage開発
西 雄树
?
やはりお前らの惭痴颁は间违っている
やはりお前らの惭痴颁は间违っているやはりお前らの惭痴颁は间违っている
やはりお前らの惭痴颁は间违っている
Koichi Tanaka
?
ng-mtg#6 AngularJS ディレクティブ?パターン
ng-mtg#6 AngularJS ディレクティブ?パターンng-mtg#6 AngularJS ディレクティブ?パターン
ng-mtg#6 AngularJS ディレクティブ?パターン
Hayashi Yuichi
?
Windows ストア アプリの上手な作り方
Windows ストア アプリの上手な作り方Windows ストア アプリの上手な作り方
Windows ストア アプリの上手な作り方
一希 大田
?
Prism + ReactiveProperty入門
Prism + ReactiveProperty入門Prism + ReactiveProperty入門
Prism + ReactiveProperty入門
一希 大田
?
齿补尘补谤颈苍.蹿辞谤尘蝉での尘惫惫尘利用のコツ
齿补尘补谤颈苍.蹿辞谤尘蝉での尘惫惫尘利用のコツ齿补尘补谤颈苍.蹿辞谤尘蝉での尘惫惫尘利用のコツ
齿补尘补谤颈苍.蹿辞谤尘蝉での尘惫惫尘利用のコツ
Masuda Tomoaki
?
VIPER アーキテクチャによる iOS アプリの設計
VIPER アーキテクチャによる iOS アプリの設計VIPER アーキテクチャによる iOS アプリの設計
VIPER アーキテクチャによる iOS アプリの設計
Yuichi Adachi
?
颈翱厂/础苍诲谤辞颈诲アフ?リエンシ?ニアか?理解すへ?き「惭辞诲别濒」の振る舞い
颈翱厂/础苍诲谤辞颈诲アフ?リエンシ?ニアか?理解すへ?き「惭辞诲别濒」の振る舞い颈翱厂/础苍诲谤辞颈诲アフ?リエンシ?ニアか?理解すへ?き「惭辞诲别濒」の振る舞い
颈翱厂/础苍诲谤辞颈诲アフ?リエンシ?ニアか?理解すへ?き「惭辞诲别濒」の振る舞い
Ken Morishita
?
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 revWindows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Shotaro Suzuki
?
受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG
受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG
受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG
Hayashi Yuichi
?
惭痴笔パターンによる设计アプローチ「あなたのアフ?リ报连相て?きてますか」
惭痴笔パターンによる设计アプローチ「あなたのアフ?リ报连相て?きてますか」惭痴笔パターンによる设计アプローチ「あなたのアフ?リ报连相て?きてますか」
惭痴笔パターンによる设计アプローチ「あなたのアフ?リ报连相て?きてますか」
U-dai Yokoyama
?
はじめての痴耻别.箩蝉
はじめての痴耻别.箩蝉はじめての痴耻别.箩蝉
はじめての痴耻别.箩蝉
Kei Yagi
?
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイドXPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
XPagesDay2014 A-4 XPages with jQueryMobile BADプラクティスガイド
Tetsuji Hayashi
?
Windows アプリケーション開発 はじめに ~ Windows アプリケーション開発初学者の方向け Visual Studio を使ったアプリケーショ...
Windows アプリケーション開発はじめに ~ Windows アプリケーション開発初学者の方向けVisual Studio を使ったアプリケーショ...Windows アプリケーション開発はじめに ~ Windows アプリケーション開発初学者の方向けVisual Studio を使ったアプリケーショ...
Windows アプリケーション開発 はじめに ~ Windows アプリケーション開発初学者の方向け Visual Studio を使ったアプリケーショ...
Fujio Kojima
?
【Xpages day2016】標準コントールを使わないxpage開発
【Xpages day2016】標準コントールを使わないxpage開発【Xpages day2016】標準コントールを使わないxpage開発
【Xpages day2016】標準コントールを使わないxpage開発
西 雄树
?
やはりお前らの惭痴颁は间违っている
やはりお前らの惭痴颁は间违っているやはりお前らの惭痴颁は间违っている
やはりお前らの惭痴颁は间违っている
Koichi Tanaka
?

Similar to ASP.NET MVC 2 ~新機能の紹介~ (20)

Mvc conf session_2_shibamura
Mvc conf session_2_shibamuraMvc conf session_2_shibamura
Mvc conf session_2_shibamura
Hiroshi Okunushi
?
痴耻别入门
痴耻别入门痴耻别入门
痴耻别入门
Takeo Noda
?
Pro aspnetmvc3framework chap15
Pro aspnetmvc3framework chap15Pro aspnetmvc3framework chap15
Pro aspnetmvc3framework chap15
Hideki Hashizume
?
Asp Net Mvc 基礎のキソ
Asp Net Mvc 基礎のキソAsp Net Mvc 基礎のキソ
Asp Net Mvc 基礎のキソ
Yoshitaka Seo
?
LabVIEW NXG Web Module Training 狠狠撸
LabVIEW NXG Web Module Training 狠狠撸LabVIEW NXG Web Module Training 狠狠撸
LabVIEW NXG Web Module Training 狠狠撸
Yusuke Tochigi
?
T35 ASP.NET MVCを使ったTDD入門
T35 ASP.NET MVCを使ったTDD入門T35 ASP.NET MVCを使ったTDD入門
T35 ASP.NET MVCを使ったTDD入門
normalian
?
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
今こそ知りたいSpring Web(Spring Fest 2020講演資料)今こそ知りたいSpring Web(Spring Fest 2020講演資料)
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
?
20091030cakephphandson 01
20091030cakephphandson 0120091030cakephphandson 01
20091030cakephphandson 01
Yusuke Ando
?
やってみよう!ASP.NET MVC #2
やってみよう!ASP.NET MVC #2やってみよう!ASP.NET MVC #2
やってみよう!ASP.NET MVC #2
Tadahiro Higuchi
?
マイクロソフト奥别产开発の今と今后
マイクロソフト奥别产开発の今と今后マイクロソフト奥别产开発の今と今后
マイクロソフト奥别产开発の今と今后
Akira Inoue
?
Application Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD PatternApplication Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD Pattern
Atsushi Kambara
?
搁虫顿补迟补厂辞耻谤肠别を狈厂顿颈蹿蹿补产濒别顿补迟补厂辞耻谤肠别へ置き换える际の罢颈辫蝉集绍介
搁虫顿补迟补厂辞耻谤肠别を狈厂顿颈蹿蹿补产濒别顿补迟补厂辞耻谤肠别へ置き换える际の罢颈辫蝉集绍介搁虫顿补迟补厂辞耻谤肠别を狈厂顿颈蹿蹿补产濒别顿补迟补厂辞耻谤肠别へ置き换える际の罢颈辫蝉集绍介
搁虫顿补迟补厂辞耻谤肠别を狈厂顿颈蹿蹿补产濒别顿补迟补厂辞耻谤肠别へ置き换える际の罢颈辫蝉集绍介
Fumiya Sakai
?
はじめての ASP.NET MVC
はじめての ASP.NET MVCはじめての ASP.NET MVC
はじめての ASP.NET MVC
jz5 MATSUE
?
はじめての颁辞诲别滨驳苍颈迟别谤
はじめての颁辞诲别滨驳苍颈迟别谤はじめての颁辞诲别滨驳苍颈迟别谤
はじめての颁辞诲别滨驳苍颈迟别谤
Yuya Matsushima
?
2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料
OCHI Shuji
?
3 倍早い?! MS 製開発者専用ツールによる HTML5 + JavaScript を使ったWeb 作成
3 倍早い?! MS 製開発者専用ツールによる HTML5 + JavaScript を使ったWeb 作成3 倍早い?! MS 製開発者専用ツールによる HTML5 + JavaScript を使ったWeb 作成
3 倍早い?! MS 製開発者専用ツールによる HTML5 + JavaScript を使ったWeb 作成
Osamu Monoe
?
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!
Shohei Okada
?
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
lalha
?
Pro aspnetmvc3framework chap15
Pro aspnetmvc3framework chap15Pro aspnetmvc3framework chap15
Pro aspnetmvc3framework chap15
Hideki Hashizume
?
Asp Net Mvc 基礎のキソ
Asp Net Mvc 基礎のキソAsp Net Mvc 基礎のキソ
Asp Net Mvc 基礎のキソ
Yoshitaka Seo
?
LabVIEW NXG Web Module Training 狠狠撸
LabVIEW NXG Web Module Training 狠狠撸LabVIEW NXG Web Module Training 狠狠撸
LabVIEW NXG Web Module Training 狠狠撸
Yusuke Tochigi
?
T35 ASP.NET MVCを使ったTDD入門
T35 ASP.NET MVCを使ったTDD入門T35 ASP.NET MVCを使ったTDD入門
T35 ASP.NET MVCを使ったTDD入門
normalian
?
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
今こそ知りたいSpring Web(Spring Fest 2020講演資料)今こそ知りたいSpring Web(Spring Fest 2020講演資料)
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
?
20091030cakephphandson 01
20091030cakephphandson 0120091030cakephphandson 01
20091030cakephphandson 01
Yusuke Ando
?
やってみよう!ASP.NET MVC #2
やってみよう!ASP.NET MVC #2やってみよう!ASP.NET MVC #2
やってみよう!ASP.NET MVC #2
Tadahiro Higuchi
?
マイクロソフト奥别产开発の今と今后
マイクロソフト奥别产开発の今と今后マイクロソフト奥别产开発の今と今后
マイクロソフト奥别产开発の今と今后
Akira Inoue
?
Application Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD PatternApplication Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD Pattern
Atsushi Kambara
?
搁虫顿补迟补厂辞耻谤肠别を狈厂顿颈蹿蹿补产濒别顿补迟补厂辞耻谤肠别へ置き换える际の罢颈辫蝉集绍介
搁虫顿补迟补厂辞耻谤肠别を狈厂顿颈蹿蹿补产濒别顿补迟补厂辞耻谤肠别へ置き换える际の罢颈辫蝉集绍介搁虫顿补迟补厂辞耻谤肠别を狈厂顿颈蹿蹿补产濒别顿补迟补厂辞耻谤肠别へ置き换える际の罢颈辫蝉集绍介
搁虫顿补迟补厂辞耻谤肠别を狈厂顿颈蹿蹿补产濒别顿补迟补厂辞耻谤肠别へ置き换える际の罢颈辫蝉集绍介
Fumiya Sakai
?
はじめての ASP.NET MVC
はじめての ASP.NET MVCはじめての ASP.NET MVC
はじめての ASP.NET MVC
jz5 MATSUE
?
はじめての颁辞诲别滨驳苍颈迟别谤
はじめての颁辞诲别滨驳苍颈迟别谤はじめての颁辞诲别滨驳苍颈迟别谤
はじめての颁辞诲别滨驳苍颈迟别谤
Yuya Matsushima
?
2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料
OCHI Shuji
?
3 倍早い?! MS 製開発者専用ツールによる HTML5 + JavaScript を使ったWeb 作成
3 倍早い?! MS 製開発者専用ツールによる HTML5 + JavaScript を使ったWeb 作成3 倍早い?! MS 製開発者専用ツールによる HTML5 + JavaScript を使ったWeb 作成
3 倍早い?! MS 製開発者専用ツールによる HTML5 + JavaScript を使ったWeb 作成
Osamu Monoe
?
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!
Shohei Okada
?
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
lalha
?

More from Yoshitaka Seo (20)

言語系サービスの統合ポータル Language Studio で Microsoft AI を再確認
言語系サービスの統合ポータル Language Studio で Microsoft AI を再確認言語系サービスの統合ポータル Language Studio で Microsoft AI を再確認
言語系サービスの統合ポータル Language Studio で Microsoft AI を再確認
Yoshitaka Seo
?
Arduino で組み込み開発 - 京都TECH オープンキャンパス2021
Arduino で組み込み開発 - 京都TECH オープンキャンパス2021Arduino で組み込み開発 - 京都TECH オープンキャンパス2021
Arduino で組み込み開発 - 京都TECH オープンキャンパス2021
Yoshitaka Seo
?
AI-900 ポイント解説
AI-900 ポイント解説AI-900 ポイント解説
AI-900 ポイント解説
Yoshitaka Seo
?
AI プログラミング - OCA / 京都TECH オープンキャンパス 2021
AI プログラミング - OCA / 京都TECH オープンキャンパス 2021AI プログラミング - OCA / 京都TECH オープンキャンパス 2021
AI プログラミング - OCA / 京都TECH オープンキャンパス 2021
Yoshitaka Seo
?
础滨の见方、础滨との付き合い方
础滨の见方、础滨との付き合い方础滨の见方、础滨との付き合い方
础滨の见方、础滨との付き合い方
Yoshitaka Seo
?
Custom Visionで仏像を画像分類
Custom Visionで仏像を画像分類Custom Visionで仏像を画像分類
Custom Visionで仏像を画像分類
Yoshitaka Seo
?
誰もが AI を使う時代、作る時代
誰もが AI を使う時代、作る時代誰もが AI を使う時代、作る時代
誰もが AI を使う時代、作る時代
Yoshitaka Seo
?
Azure IoT Edge で Custom Vision
Azure IoT Edge で Custom VisionAzure IoT Edge で Custom Vision
Azure IoT Edge で Custom Vision
Yoshitaka Seo
?
API ペタペタしただけのお手軽 感情分析アプリ
API ペタペタしただけのお手軽 感情分析アプリAPI ペタペタしただけのお手軽 感情分析アプリ
API ペタペタしただけのお手軽 感情分析アプリ
Yoshitaka Seo
?
Machine Learning studio で構造化データから予測分析 (LT版)
Machine Learning studio で構造化データから予測分析 (LT版)Machine Learning studio で構造化データから予測分析 (LT版)
Machine Learning studio で構造化データから予測分析 (LT版)
Yoshitaka Seo
?
叠滨别谤のための础滨入门
叠滨别谤のための础滨入门叠滨别谤のための础滨入门
叠滨别谤のための础滨入门
Yoshitaka Seo
?
构造化データをツールで简単に分析
构造化データをツールで简単に分析构造化データをツールで简単に分析
构造化データをツールで简単に分析
Yoshitaka Seo
?
チャットボットの自然言语処理
チャットボットの自然言语処理チャットボットの自然言语処理
チャットボットの自然言语処理
Yoshitaka Seo
?
Custom Visionを活用するためのTips
Custom Visionを活用するためのTipsCustom Visionを活用するためのTips
Custom Visionを活用するためのTips
Yoshitaka Seo
?
Machine Learning Serviceを使ってみよう
Machine Learning Serviceを使ってみようMachine Learning Serviceを使ってみよう
Machine Learning Serviceを使ってみよう
Yoshitaka Seo
?
Bot Framework Emulator はこんなにすごい
Bot Framework Emulator はこんなにすごいBot Framework Emulator はこんなにすごい
Bot Framework Emulator はこんなにすごい
Yoshitaka Seo
?
VS Code Tools for AI の紹介
VS Code Tools for AI の紹介VS Code Tools for AI の紹介
VS Code Tools for AI の紹介
Yoshitaka Seo
?
Bot Builder V4 SDK + QnA Maker / LUIS
Bot Builder V4 SDK  + QnA Maker / LUISBot Builder V4 SDK  + QnA Maker / LUIS
Bot Builder V4 SDK + QnA Maker / LUIS
Yoshitaka Seo
?
QnA Maker 逆入門
QnA Maker 逆入門QnA Maker 逆入門
QnA Maker 逆入門
Yoshitaka Seo
?
PowerApps アプリ開発入門
PowerApps アプリ開発入門PowerApps アプリ開発入門
PowerApps アプリ開発入門
Yoshitaka Seo
?
言語系サービスの統合ポータル Language Studio で Microsoft AI を再確認
言語系サービスの統合ポータル Language Studio で Microsoft AI を再確認言語系サービスの統合ポータル Language Studio で Microsoft AI を再確認
言語系サービスの統合ポータル Language Studio で Microsoft AI を再確認
Yoshitaka Seo
?
Arduino で組み込み開発 - 京都TECH オープンキャンパス2021
Arduino で組み込み開発 - 京都TECH オープンキャンパス2021Arduino で組み込み開発 - 京都TECH オープンキャンパス2021
Arduino で組み込み開発 - 京都TECH オープンキャンパス2021
Yoshitaka Seo
?
AI-900 ポイント解説
AI-900 ポイント解説AI-900 ポイント解説
AI-900 ポイント解説
Yoshitaka Seo
?
AI プログラミング - OCA / 京都TECH オープンキャンパス 2021
AI プログラミング - OCA / 京都TECH オープンキャンパス 2021AI プログラミング - OCA / 京都TECH オープンキャンパス 2021
AI プログラミング - OCA / 京都TECH オープンキャンパス 2021
Yoshitaka Seo
?
础滨の见方、础滨との付き合い方
础滨の见方、础滨との付き合い方础滨の见方、础滨との付き合い方
础滨の见方、础滨との付き合い方
Yoshitaka Seo
?
Custom Visionで仏像を画像分類
Custom Visionで仏像を画像分類Custom Visionで仏像を画像分類
Custom Visionで仏像を画像分類
Yoshitaka Seo
?
誰もが AI を使う時代、作る時代
誰もが AI を使う時代、作る時代誰もが AI を使う時代、作る時代
誰もが AI を使う時代、作る時代
Yoshitaka Seo
?
Azure IoT Edge で Custom Vision
Azure IoT Edge で Custom VisionAzure IoT Edge で Custom Vision
Azure IoT Edge で Custom Vision
Yoshitaka Seo
?
API ペタペタしただけのお手軽 感情分析アプリ
API ペタペタしただけのお手軽 感情分析アプリAPI ペタペタしただけのお手軽 感情分析アプリ
API ペタペタしただけのお手軽 感情分析アプリ
Yoshitaka Seo
?
Machine Learning studio で構造化データから予測分析 (LT版)
Machine Learning studio で構造化データから予測分析 (LT版)Machine Learning studio で構造化データから予測分析 (LT版)
Machine Learning studio で構造化データから予測分析 (LT版)
Yoshitaka Seo
?
叠滨别谤のための础滨入门
叠滨别谤のための础滨入门叠滨别谤のための础滨入门
叠滨别谤のための础滨入门
Yoshitaka Seo
?
构造化データをツールで简単に分析
构造化データをツールで简単に分析构造化データをツールで简単に分析
构造化データをツールで简単に分析
Yoshitaka Seo
?
チャットボットの自然言语処理
チャットボットの自然言语処理チャットボットの自然言语処理
チャットボットの自然言语処理
Yoshitaka Seo
?
Custom Visionを活用するためのTips
Custom Visionを活用するためのTipsCustom Visionを活用するためのTips
Custom Visionを活用するためのTips
Yoshitaka Seo
?
Machine Learning Serviceを使ってみよう
Machine Learning Serviceを使ってみようMachine Learning Serviceを使ってみよう
Machine Learning Serviceを使ってみよう
Yoshitaka Seo
?
Bot Framework Emulator はこんなにすごい
Bot Framework Emulator はこんなにすごいBot Framework Emulator はこんなにすごい
Bot Framework Emulator はこんなにすごい
Yoshitaka Seo
?
VS Code Tools for AI の紹介
VS Code Tools for AI の紹介VS Code Tools for AI の紹介
VS Code Tools for AI の紹介
Yoshitaka Seo
?
Bot Builder V4 SDK + QnA Maker / LUIS
Bot Builder V4 SDK  + QnA Maker / LUISBot Builder V4 SDK  + QnA Maker / LUIS
Bot Builder V4 SDK + QnA Maker / LUIS
Yoshitaka Seo
?
PowerApps アプリ開発入門
PowerApps アプリ開発入門PowerApps アプリ開発入門
PowerApps アプリ開発入門
Yoshitaka Seo
?

Recently uploaded (6)

量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果
量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果
量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果
info819904
?
松下光范「街歩き型ストーリーリーダーの実施」,もうひとつの十叁未来会议(有识者编)
松下光范「街歩き型ストーリーリーダーの実施」,もうひとつの十叁未来会议(有识者编)松下光范「街歩き型ストーリーリーダーの実施」,もうひとつの十叁未来会议(有识者编)
松下光范「街歩き型ストーリーリーダーの実施」,もうひとつの十叁未来会议(有识者编)
Matsushita Laboratory
?
2019飞冲东京大学大学院茂木研究室冲学生研究员杉田翔栄冲搁罢贰最终発表会スライト?.辫诲蹿
2019飞冲东京大学大学院茂木研究室冲学生研究员杉田翔栄冲搁罢贰最终発表会スライト?.辫诲蹿2019飞冲东京大学大学院茂木研究室冲学生研究员杉田翔栄冲搁罢贰最终発表会スライト?.辫诲蹿
2019飞冲东京大学大学院茂木研究室冲学生研究员杉田翔栄冲搁罢贰最终発表会スライト?.辫诲蹿
翔栄 杉田
?
自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨
自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨
自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨
sugiuralab
?
カスタム厂尝惭「贬补尘蝉迟别谤」冲軽量でセキュアな専用言语モデル冲础滨エージェント冲チャットボット冲マッチングアプリ构筑のコアパッケージ
カスタム厂尝惭「贬补尘蝉迟别谤」冲軽量でセキュアな専用言语モデル冲础滨エージェント冲チャットボット冲マッチングアプリ构筑のコアパッケージカスタム厂尝惭「贬补尘蝉迟别谤」冲軽量でセキュアな専用言语モデル冲础滨エージェント冲チャットボット冲マッチングアプリ构筑のコアパッケージ
カスタム厂尝惭「贬补尘蝉迟别谤」冲軽量でセキュアな専用言语モデル冲础滨エージェント冲チャットボット冲マッチングアプリ构筑のコアパッケージ
info819904
?
惭测厂蚕尝30周年&ユーザ会25周年记念イベント冯発表资料(2025年3月25日开催)
惭测厂蚕尝30周年&ユーザ会25周年记念イベント冯発表资料(2025年3月25日开催)惭测厂蚕尝30周年&ユーザ会25周年记念イベント冯発表资料(2025年3月25日开催)
惭测厂蚕尝30周年&ユーザ会25周年记念イベント冯発表资料(2025年3月25日开催)
馮 富久
?
量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果
量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果
量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果
info819904
?
松下光范「街歩き型ストーリーリーダーの実施」,もうひとつの十叁未来会议(有识者编)
松下光范「街歩き型ストーリーリーダーの実施」,もうひとつの十叁未来会议(有识者编)松下光范「街歩き型ストーリーリーダーの実施」,もうひとつの十叁未来会议(有识者编)
松下光范「街歩き型ストーリーリーダーの実施」,もうひとつの十叁未来会议(有识者编)
Matsushita Laboratory
?
2019飞冲东京大学大学院茂木研究室冲学生研究员杉田翔栄冲搁罢贰最终発表会スライト?.辫诲蹿
2019飞冲东京大学大学院茂木研究室冲学生研究员杉田翔栄冲搁罢贰最终発表会スライト?.辫诲蹿2019飞冲东京大学大学院茂木研究室冲学生研究员杉田翔栄冲搁罢贰最终発表会スライト?.辫诲蹿
2019飞冲东京大学大学院茂木研究室冲学生研究员杉田翔栄冲搁罢贰最终発表会スライト?.辫诲蹿
翔栄 杉田
?
自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨
自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨
自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨
sugiuralab
?
カスタム厂尝惭「贬补尘蝉迟别谤」冲軽量でセキュアな専用言语モデル冲础滨エージェント冲チャットボット冲マッチングアプリ构筑のコアパッケージ
カスタム厂尝惭「贬补尘蝉迟别谤」冲軽量でセキュアな専用言语モデル冲础滨エージェント冲チャットボット冲マッチングアプリ构筑のコアパッケージカスタム厂尝惭「贬补尘蝉迟别谤」冲軽量でセキュアな専用言语モデル冲础滨エージェント冲チャットボット冲マッチングアプリ构筑のコアパッケージ
カスタム厂尝惭「贬补尘蝉迟别谤」冲軽量でセキュアな専用言语モデル冲础滨エージェント冲チャットボット冲マッチングアプリ构筑のコアパッケージ
info819904
?
惭测厂蚕尝30周年&ユーザ会25周年记念イベント冯発表资料(2025年3月25日开催)
惭测厂蚕尝30周年&ユーザ会25周年记念イベント冯発表资料(2025年3月25日开催)惭测厂蚕尝30周年&ユーザ会25周年记念イベント冯発表资料(2025年3月25日开催)
惭测厂蚕尝30周年&ユーザ会25周年记念イベント冯発表资料(2025年3月25日开催)
馮 富久
?

ASP.NET MVC 2 ~新機能の紹介~

  • 2. ? 瀬尾 佳隆 (せお よしたか) ? MVP for Visual C# (Jan 2009 – Dec 2010) ? 好きなもの:Windowsアプリ、Office、SharePoint ? あれっ、Webは????やります、やります! ? 個人事業主です (屋号は瀬尾ソフト) ? 根っからの技術屋?開発屋 ? どうでもいい情報としては、ミュージカルが大好きです ? 技術ひろば.net ? http://hiroba-tech.net/ ? 毎月第3土曜日(原則)にオフライン勉強会を開催 ? モットーは「技術を楽しむ、技術でつながる」 ? 人と技術に敬意を払える方ならばどなたでも大歓迎! 2
  • 3. ? ASP.NET MVC 2の機能強化/機能追加の概要を お持ち帰りいただくこと ? ご自身で評価、自習する際の手引きになれば幸いです ? ASP.NET MVCにあまり慣れていない方に基本的な 操作を感じていただくこと ? Webアプリケーションのフレームワークとしての ASP.NET MVCの面白さを再認識/認識して いただくこと 3
  • 4. ? 3月11日に RTMがリリース されました! ? Visual Studio 2010な方はあと半月ほど待ちましょう ? 2010にインストールしようとすると怒られます ? 今日は Visual Studio 2010 RC (+ MVC 2 RC2) を 使います 4
  • 5. ? MVCの超入門 ? HTMLヘルパー ? DisplayFor ? TextBoxFor など ? LabelFor ? EditorFor ? Area 5
  • 7. ? Web開発では一般的な考え方 ? Model – View – Controller が役割を分担 Model ? 操作?表示対象のデータ View ? ユーザーと対話する部分 ? リクエストを処理し、Model と Controller View をつなげる部分 ※MSDN マガジン 2008年3月号より 7
  • 8. ? ASP.NETをベースとしたMVCパターンの フレームワーク ? サーバーコントロールは使いません(使えません) ? 見た目の部分はHTML や埋め込みのスクリプトで記述 ? レスポンスがシンプル&開発者の意図したとおりにしやすい ? ただし ASP.NETも 4 になって、かなりスッキリしました ? よく言われるキーワードとしては、デザイナとの協業 ? 単体テストがやりやすい ? ASP.NETを置き換える技術ではありません ? ASP.NETの生産性 ? SilverlightのUX ? 適材適所、使い分けが大事 8
  • 9. ?DB連携ならばADO.NET Entity Data Model または LINQ to SQL Classを使う Model ?Controllersフォルダーで右クリック→[Add]→[Controller] ?クラスの接尾辞は必ず “Controller” Controller ?DB連携するには [Add action methods for ~ ] のチェックを忘れずに ?Controllerクラスのメソッド名で右クリック→[Add View] ?DB連携するには [Create Strongly-typed view] のチェックを忘れずに View ?[View data class] と [View content] の選択 9
  • 11. MVC 2でのメソッド名 機能 MVC 1.0で対応するもの プロパティー値を表示 Html.Encode (※1) Html.DisplayFor モデルに適した形で表示 (Partial View) Html.TextBoxFor など HTML要素を生成 Html.TextBox など Html.LabelFor プロパティー名を表示 Html.Label モデルに適した形で Html.EditorFor (Partial View) HTML要素を生成 ※1 : Html.EncodeはHTMLエスケープのためのメソッドであり、 プロパティー値の表示そのものが機能というわけではない 11
  • 12. Details.aspxの場合(抜粋) <p> <div class="display-label"> ProductID: ProductID</div> <div class=“display-field”> <%= Html.Encode(Model.ProductID) %> <%= Html.DisplayFor( </p> model => model.ProductID) %> </div> <p> ProductName: <div class="display-label"> <%= ProductName</div> Html.Encode(Model.ProductName) %> <div class=“display-field”> <%= </p> Html.Encode(Model.ProductName) %> </div> Html.Encode : MVC 1.0 Html.DisplayFor : MVC 2 12
  • 13. ? Html.Encodeの単純な置き換えという意味では、 DisplayForに変更する必要はありません ? DisplayForの本質はモデルに適した表示ができることです ? あとで改めて ? プロパティー単位で表示のスタイル、書式を指定したい 場合にも使います ? DateTime型に対して日付だけを表示したい ? 金額に対して通貨記号を付加して表示したい ? 名前は少し大きめのフォントにしたい ? など??? 13
  • 14. <p> <div class="editor-label"> <label for="ProductName"> <%= Html.LabelFor( model => model.ProductName) %> ProductName:</label> </div> <%= Html.TextBox( <div class="editor-field"> "ProductName", <%= Html.TextBoxFor( Model.ProductName) %> model => model.ProductName) %> <%= Html.ValidationMessage( <%= Html.ValidationMessageFor( "ProductName", "*") %> model => model.ProductName) %> </div> </p> Html.TextBox : MVC 1.0 Html.TextBoxFor : MVC 2 14
  • 15. ? 積極的に使うことをおすすめします ? IntelliSenseが使えます ? つまり、コンパイル時にタイプミスなどのエラーがわかります ? 1.0では冗長だった “ProductName”, Model.ProductName という表記を使わずにすみます 15
  • 16. <p> <div class="editor-label"> <label for="ProductName"> <%= Html.LabelFor( model => model.ProductName) %> ProductName:</label> </div> <%= Html.TextBox( <div class="editor-field"> "ProductName", <%= Html.TextBoxFor( Model.ProductName) %> model => model.ProductName) %> <%= Html.ValidationMessage( <%= Html.ValidationMessageFor( "ProductName", "*") %> model => model.ProductName) %> </div> </p> Html.TextBox : MVC 1.0 Html.TextBoxFor : MVC 2 16
  • 17. ? Html.LabelFor ? Model側でエンティティーのキャプションを一元管理できます ? 日本人ならば “ProductName” ではなく “製品名” と表示したい ところ ? ModelMetadataを宣言することで可能になります(後述) ? IntelliSenseも使えます 17
  • 18. ? モデルに適した出力をします ? デフォルトではモデルに含まれるプロパティ名と値を 列挙するだけ ? テンプレートを用意することで出力結果を制御できます ? もう少し具体的に見てみましょう 18
  • 20. ? 特定のView (複数でもよい)で特定のプロパティーの スタイルや書式を変更したい場合 ? Viewのサブフォルダーに “DisplayTemplates” フォルダーを 作成して、その中に Partial View (ascx) を作成する ? 書式についてはModelのDisplayFormat属性でも可能 20
  • 21. ? Partial Viewと出力Viewを以下のように 21
  • 22. ? 出力結果 22
  • 23. ? アプリケーション全体のViewに共通して スタイルや書式を変更したい場合 ? “DisplayTemplates” フォルダーにPartial Viewを作成する ? ModelのPartialクラスを作り、さらにMetadataを定義する ? この方法ではDisplayForの引数にTemplate名を指定しなくてもいい 23
  • 24. 24
  • 25. 25
  • 26. 26
  • 27. ? プロパティーのキャプションを日本語にするなど、 文字通り “ラベル” の操作を行います ? ModelのMetadataクラスで、キャプションを操作したい プロパティーを DisplayName 属性付きで定義 27
  • 28. 28
  • 29. ? Formを部品化することができます ? Viewのサブフォルダーに “EditorTemplates” を作成して 部品化したいエンティティーの Partial View を作成 ? Add View ダイアログで作成したひな形を編集するとラク 29
  • 30. 30
  • 31. 31
  • 33. ? 独立したサブセクションを 簡単に実現する機能 ? フラットな構造だと、 Controllersフォルダ、 Viewsフォルダがどんどん 乱雑になります ? 下位コンテンツごとに 別々のMVC を持てます 33
  • 34. 34
  • 35. ? プロジェクト(またはAreasフォルダ)で右クリック →[Add]→[Area] ? Area名を入力 ? あとはそれぞれのAreaで普通のMVC開発手順で開発 35
  • 36. ? 大規模アプリケーションになるとAreaを使っても プロジェクトが乱雑になる可能性があります ? その場合は複数プロジェクトに分けるほうが より生産性?保守性が上がることがあります ? Areaに相当するプロジェクトを作成 ? メインプロジェクトでそれらのプロジェクトを参照?管理 ? 詳しい手順はMSDN Libraryの “Creating an ASP.NET MVC Areas Application Using Multiple Projects” を参照してください ? http://msdn.microsoft.com/en- us/library/ee307987(VS.100).aspx 36
  • 38. ? ASP.NET MVC 2には今日紹介できなかった 機能が他にもあります ? DefaultValue属性 ? “/Controller/Action/id?page=1” のようなURLが可能 ? 検証機能 ? サーバーサイドで DataAnnotation を使用する方法 ? クライアントサイドでスクリプトを使用する方法 ? 非同期Controller ? モデルの操作に時間がかかる場合に便利 38
  • 39. ? HTMLヘルパーが強化されました ? 非常に強い型付けのおかげで、Intellisenseや コンパイル時エラーが利用できます ? モデルに適した出力ができます ? 特定のViewのみのスタイル、アプリケーション共通の スタイルを任意に組み合わせて利用できます ? AreaによりコンテンツごとにMVCを持つことが できます ? ただし大規模アプリケーションではサブプロジェクトの利用も 検討してください 39
  • 40. ? ASP.NET MVC 公式サイト ? http://www.asp.net/mvc/ ? 何はなくともここだけは ? What’s New in ASP.NET MVC 2 ? http://www.asp.net/learn/whitepapers/what-is-new-in- aspnet-mvc/ ? 文字通り ASP.NET MVC 2の新機能の概要紹介 ? 今日は紹介できなかった機能についても記載されています ? Scott Gu’s Blog ? http://weblogs.asp.net/scottgu/ ? マイクロソフト Scott Guthrie 氏のブログ 40
  • 41. ? 「ASP.NET MVC 実践プログラミング」 (山田祥寛 著、秀和シ ステム 刊、3200円) ? 「ASP.NET MVC入門」 (@IT) ? http://www.atmarkit.co.jp/fdotnet/aspnetmvc/index/index .html ? これを読めば、今日の話はすべて忘れても大丈夫です ? 「Web フォームを使用しないで Web アプリケーションを作成す る」 (MSDN マガジン 2008年3月号) ? http://msdn.microsoft.com/ja- jp/magazine/cc337884.aspx ? 「Professional ASP.NET MVC 1.0」 (Wrox) ? http://aspnetmvcbook.s3.amazonaws.com/aspnetmvc- nerdinner_v1.pdf ? 書籍のオンライン版がタダで読めます 41
  • 42. ? ASP.NET MVC 基礎のキソ ? http://tinyurl.com/aspnetmvc-kiso-200912 ? ASP.NET MVC ~ Part 2 ? http://tinyurl.com/aspnetmvc-part2-201002 ? すみません、半分宣伝です ? 勉強会で過去に私が担当したセッションの資料です ? ASP.NET MVCの基礎から学んでみたい方はどうぞ 42
  • 43. 43