asp net mvc 基礎のキソ
DESCRIPTION
ASP.NET MVC 基礎のキソ 技術ひろば.net 2009年12月勉強会 セッション資料 (2009年12月19日開催)TRANSCRIPT
瀬尾佳隆 ([email protected])Microsoft MVP for Visual C#
1
道場スタイル(風)◦ 資料の説明は極力少なめで◦ 基本を実際に操作してお見せします◦ 自習のきっかけとして見てください
ASP.NET MVC に全く or あまり触ったことがない方、これから触ってみようという方のためのセッションです◦ 漠然とでも、「ASP.NET とはずいぶん違うな~」という感覚◦ ASP.NET MVC は実はそんなに面倒ではないということ◦ 手順(お作法)と基本的な考え方◦ ・・・を体感していただくことを目標としています
経験者には簡単すぎる内容です◦ 寝てるか◦ フォローするか◦ ・・・をお願いします 打たれ弱いので、優しく見守ってください (^^;)
2
ASP.NET MVCとは?◦ ASP.NET MVCとは?/MVC パターンとは?
開発手順とデモ◦ ダウンロード&インストール◦ プロジェクトの構成◦ ルーティング◦ Controller の作成、View の作成◦ Controller→View のデータの渡し方◦ POSTの方法◦ DB 連携 データモデルの定義
ASP.NET MVC の DB 連携
3
文字通り、MVC パターンの ASP.NET です :-P◦ サーバーコントロールは使いません(使えません)◦ 見た目の部分は HTML や View 埋め込みコードで記述 よく言われるキーワードとしては、デザイナとの協業
でも Windows に慣れた開発者には面倒(?)
◦ レスポンスがシンプル&開発者の意図したとおりになります◦ 単体テストが簡単 開発生産性は ASP.NET のほうが多分上・・・
◦ ASP.NET を置き換える技術、開発手法ではありません 結局 ASP.NET との使い分けが大事 個人的には ASP.NET のほうが好きですが
Silverlight なんかもあったりしますが
4
Web 開発では一般的な考え方
Model – View – Controller
が役割を分担◦ Model ・・・データ操作を担当する部分
◦ View ・・・ユーザーと対話する部分
◦ Controller・・・リクエストを処理し、Model と View をつなげる部分
5
※MSDN マガジン 2008年3月号より
Visual Studio 2008 SP1
または Visual Web Developer Express Edition (無償)◦ ただし VWD の場合はユニットテストは使えません
6
http://www.asp.net/mvc/ でダウンロード(無償)
7
8
9
10
11
12
Controllers
Models
Views◦ MVC の役割ごとのファイルは上のそれぞれのフォルダに配置
Globals.asax
◦ ルーティングのルールはココで決める
*.Tests◦ ユニットテストはここ
13
14
ルーティングのルールを決めているのは・・・
15
16
17
18
まずは View を呼び出すだけの Controller のままで動かしてみます
19
20
21
まずは単なる静的ページ
22
Index.aspx
面白みのない当たり前の結果・・・ですが◦ ルーティングされて
◦ Controller が呼び出され
◦ さらに View が呼び出されたものが、これです
23
24
ViewData を通してデータを受け渡し 表示の際は Html.Encode を使う
◦ クロスサイトスクリプティング対策
25
Index.aspx (変更)
26
27
Input 要素(Html.TextBox ヘルパー)の名前を Controller 側と揃えることに注意
28
Post.aspx
特に難しいところはありません
29
Result.aspx
30
まずは DB の準備
31
32
33
34
既定値を変更◦ Discontinued・・・
False
◦ UnitPrice・・・0
◦ UnitsInStock・・・0
◦ UnitsOnOrder・・・0
新規登録時の既定値として使われる値
35
“Add Action methods …” のチェックを忘れずに
36
37
※ Controller クラスでは Model の using を追加しておくとラク(ファイル先頭付近に “using <プロジェクト名>.Models; ” を追加)
38
39
Index.aspx (前半)
40
Index.aspx (後半)
41
42
43
44
Details.aspx (前半)
45
Details.aspx (後半)
46
47
48
49
Create.aspx
50
51
52
53
Edit.aspx (前半)
54
Edit.aspx (後半)
これで DB 連携の一連の操作は終わり
55
最後に紹介する参考文献を読んでください :-P
リクエストがあれば続編をやります(または誰か立候補を!)◦ バリデーション
◦ TextBox 以外のビューへルパ(HTML 要素)
◦ ルーティングのカスタマイズ
◦ 認証
◦ AJAX 化
◦ ユニットテスト
◦ ・・・など、なかなか奥が深いです
56
「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◦ 書籍のオンライン版がタダで読めます
「ASP.NET MVC 実践プログラミング」 (山田祥寛 著、秀和システム 刊、3200円)◦ 深いです
57
58