mvcConf @:Japan パネル・ディスカッション 人気のASP.NET MVCエキスパートが語るMVCの魅力と実践 デジタルアドバンテージ 一色 政彦2011/06/29 |
|
|
■3. ASP.NET MVCへのスキル移行
――MVC開発を始めるときに、どういうところがポイントになるのかをお聞かせください。一般的にMVC開発ではこういう場面ではまりやすいなどはありますか?
長田 直樹 氏 (株式会社シーエスアイ) |
長田 わたしはWebフォーム開発経験者で、可能な限り隠ぺいされた仕組みの恩恵を受けてきましたが、MVC開発に移行して一番はまったのは、セッションでも取り上げた「HTTP」「URI」「REST」「HTML」の4つの基礎知識です。この知識が、意外にも自分の中で完全に理解できていなかったということを思い知らされました。それをどれだけ深く知っているかが重要です。
いままでURIなんて、フォルダ階層ぐらいの認識で、Webフォームのマッピング・クラスを使えばよいという考えでした。RESTという概念は、Webフォームでは一切使っていませんでした。MVCを始めるに当たり、その辺りを一から学習し直しました。
WebフォームからMVCへスキル移行するには、イントラネット向けの業務系Webアプリケーションであっても、ソーシャルなインターネットの世界で必要とされるような本来のWeb技術全般を学習しなければならないと思います。その際には、書籍『Webを支える技術 ―― HTTP,URI,HTML,そしてREST』(技術評論社)が役立ちます。要するに、基本的なWeb開発を習得すれば、MVC開発にもスキル移行しやすくなります。
――RESTは何となく理解していますが、厳密なRESTfulを細かく学んだ方がよいのでしょうか? 例えば書籍『RESTful Webサービス』(O'Reilly)なども読まなければならないのでしょうか?
長田 RESTに関しては、Tech・Edのセッション資料やWeb記事などを読んで雰囲気をつかむだけでも十分だと思います。後はWCF Data Servicesなどを触っていくと理解できると思います。
竹原 ちなみにわたしの場合、RESTfulで作ることはほとんどないです。RESTfulにそんなにこだわる必要はありません。少なくとも、PUT/GET/POST/DELETEの4つの意味を確実に押さえて、RESTの雰囲気を押さえていれば十分です。
――確かに原理主義になるよりも、大筋のところを重視して、後はコンテキストに合わせて柔軟に対処する方が好ましい気がしますね。
ほかに、MVCではまったことはありますか?
勇 大地 氏 (株式会社野村総合研究所) |
勇 フレームワークやライブラリの思想を理解していないうちははまることが多いです。URLルーティングでは、マッピングしたコントローラとアクション・メソッドが呼ばれます。「URLでコントローラのクラス名とアクション・メソッドを指定している」というのを理解しておかないと、何が起こっているのか分かりません。次に値がバインディングされるときに、アクション・メソッドの引数名とクエリ・パラメータのキー名が一致していれば自動的にバインドされますが、それも理解していないと訳が分からないということになります。最後にコントローラからビューにモデル・データを渡すときに、モデルのクラスに自動的にバインディングされる仕組みになっていますが、それも理解しておく必要があります。そういう(Webフォームとはまったく異なる)MVCの思想を理解するまでが、若干はまりやすいのでポイントとなります。
■ひと言
――最後に、パネリストの皆さまにひと言ずつお願いします。業務アプリケーションに限らずWebアプリケーション開発で、MVCを活用する際にはどこから取り組めばよいのでしょうか? 習得すべき技術は何でしょうか? また、技術の使い分け指針や、開発時に注意すべき点がありましたら教えてください。
長田 Webフォームに関する情報は十分にありますが、MVCはまだ十分とはいえないです。いま「ASP.NET MVC」で検索すると、芝村さんの「まめしば雑記」や、竹原さんの「無聊を託つ(ぶりょうをかこつ)」、小野さんの「どっとねっとふぁん」などの記事がヒットしたり、それ以外では「@IT」や「CodeZine」の記事がヒットします。それ以外にも情報発信されている方はいらっしゃいますが、MVCの情報は足りないと思っています。
実際に自分が困ったときにネット検索で調べると、英語の情報にたどり着いてしまいます。英語に対する苦手意識を取り除かないと、MVC開発は大変な面があるかもしれません。ですので、怖がらずに、英語の情報にも触れていきましょう。
芝村 仕事では主にPHP開発の方が多く、MVCによる業務アプリケーションは作成していません。今回のパネル・ディスカッションは業務アプリケーション寄りの話題が多かったので、残念ながらわたしが意見できる場面は少なかったですが、これだけは伝えておきたいこととして、わたしなりのASP.NET MVCの活用ポイントについて話します。
ASP.NET MVC 3はオープンソースであることを、ほとんどの方はご存じないのではないでしょうか。MVCは登場して数年しかたっていない新しい技術なので、実際に使ってみると足りない機能もいろいろとあるわけですが、そういうときにはMVCのソース・コードを読んで仕組みを理解したうえで、足りない機能を自分なりに補完するとよいと思います。例えば特殊な型をマッピングしたいという場面では、国内の情報は竹原さんのブログしかありませんので、英語のブログをちゃんと読むか、ソース・コードを読んで自力で対応することになります。ソース・コードは比較的読みやすく、テスト・コードの勉強にもなると思うので、個人的にはお勧めです。
あと、わたしのブログ記事になりますが、開発環境のセットアップから、MVCが使用できるレンタル・サーバの「ExpressWeb」へデプロイするまでを説明した、全24回完結の「ASP.NET MVC 3 開発入門」もご参考にしていただけるとうれしいです。
竹原 「MVC」というアーキテクチャ・スタイルをよく知っておくことが重要です。そのための大事なひと言は「SoC」(=Separation Of Concerns:関心の分離)です。
小野 (セミナー中に流された)スコット・ハンセルマン(Scott Hanselman)氏のビデオ・メッセージでのMVCについての説明に1点、付け加えたいと思います。WebフォームとMVCの作り方は異なりますが、根幹の「ASP.NET」の部分は同じものです。竹原さんのセッションでも説明された「HTTPパイプライン」などの仕組みを用いて、MVCでもWebフォームと同じようにIIS上で認証やセッションを実行しています。そういったことを理解しておくと、MVCでもいろんなところで自分なりの制御をかけたりできます。この点をぜひ頭の片隅に置いておいていただきたいと思います。
勇 目的を思い出してほしいと思います。すべての場面でMVCが良いわけではありません。モノによってはWebフォームを採用すべき場面もあります。ですので、「なんでこの場面でMVCを採用した方がよいのか」をその場面、場面で考えてください。いまだと、流行の兆しのあるjQueryやHTML5を使うなら、それらの技術と非常に親和性がよいMVCを採用するのは妥当だと思います。そういったように、目的をきちんと明確にしたうえでMVCを選択してください。
INDEX | ||
mvcConf @:Japan パネル・ディスカッション | ||
人気のASP.NET MVCエキスパートが語るMVCの魅力と実践 | ||
1.Webフォームではなく、ASP.NET MVCを採用する理由 | ||
2.ASP.NET MVCと組み合わせる周辺技術の選択指針 | ||
3.ASP.NET MVCへのスキル移行 | ||
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|
- - PR -