mvcConf @:Japan 〜 ASP.NET MVC ブートキャンプ 〜 に行ってきた

本日 Microsoft 品川本社で行われた、@IT .NET開発者中心 × Microsoft Tech Fielders 共催セミナー「mvcConf @:Japan 〜 ASP.NET MVC ブートキャンプ 〜」 に行ってきました。百戦錬磨の Microsoft MVP 5名による錚々たるセッションです。

わたくしは基本的に Windows クライアントアプリ(Windows Form・WPF)の開発がメインなんで完全畑違いなんですが、最新の技術動向調査するためにあえて参加させて頂きました。が、これが結構面白い。個人的に特に面白いと思ったのは、芝村さんのセッションで話していた Razor 記法。@(アットマーク)ひとつで C#VB の構文を埋め込める、なかなか素敵なビューエンジン。非常に気に入りました。

で、以下はセッションから拾ったキーワードです。当然予備知識がろくにない状態で聞いたので、うろ覚えや聞き間違いがあるかも知れません。本日のセッションは後日公開されるとのことなので、とりあえずいまは雰囲気だけでも掴んでもらえばいいかも。

長田さんのセッション

最初に ASP.NET.MVC3 の全体像を俯瞰してお話しして頂けました。こういう話を先にして頂けると、後の話が聞きやすいのでとっても有難いです。

  • ASP.NET.MVC3
  • 新しいビューエンジン
  • 速度的にも ASPX とほぼ変わらない。

芝村さんのセッション

個人的には芝村さんのセッションが一番面白かったかな?特に Razor は興味深いです。
Razor 記法

  • @ で始まる。
  • 制御構造は @ の直後に書く
  • コードブロック内にタグが書ける。
  • デザインビューが非対応。
  • サーバーコントロールが使えない。
  • 部分ビュー利用可能。
  • @section
  • ヘルパー定義用の記法が用意されている
  • Webヘルパー→外部サービスとの連携機能が多い。

NuGet(ぬげっと)

  • .NET 用のパッケージマネージャ
  • Webサービスとの連携
  • Twitter とも簡単に連携できる。
  • パッケージID は NuGet.org で確認できる。
  • パッケージの導入も簡単。

竹原さんのセッション

多くの方が竹原さんのセッションを見て「凄い!」と言ってたのですが、畑違いのため凄さが判らず残念。><

  • オンプレミス→自分たちで持ってる機械・・・サーバー等(これは初めて知った)
  • クラウド→雲の上・・・これは知ってたけど、前との対比キーワード。
  • AppHarbor ソリューション投げると自動でビルドからテスト、デプロイまでしてくれるサービス

小野さんのセッション

Code First の話がなかなか面白ったです。

  • Code First
  • クラスを定義→DataBase を生成。
  • 規約に従えば ID → プライマリキーになる。
  • Fluent API (Required)
  • 設定に勝る規約(CoC)
  • Initiarizer クラス → DropCreateDatabaseIfModelChanged を基底クラスにしてる。
  • 必須環境
    • MVC3.dll 参照済み
    • EF4.1.dll 参照済み
    • SQL Server Compact 利用可能
  • 用意されているデータアクセス機能をいかに活用するか?

勇さんのセッション

Azure がより身近に感じられた素晴らしいセッションでした。

  • ASP.NET.MVCjQuery とは相性がいい。
  • JSonValueProviderFactory
  • Azure の移行ポイント
    • アセンブリの配置
    • VS の機能「配置可能な依存関係な追加」
    • Web デプロイ→最初だけ10分→あと早い
    • ただしリモートデスクトップ必須。
    • セッションの取り扱いには注意が必要。
    • SQL Azure には SQL Agent の機能がサポートされてない。
  • 意外に安い Azure AppFablic 〜2000〜3000円くらい。

パネルディスカッション

以下、最後に行われたパネルディスカッションのメモ書きです。かなり内容の濃いディスカッションです。聞いてて大変面白かったです。当然メモなので、聞き間違いや発言者の取り違え、またメモしながら聞いてたため肝心の部分聞き逃して、発言の意図を誤って捉えてる箇所等あるかも知れません。その際はぜひご指摘ください。

MVC を使い始めた理由は?

  • 小野 : 技術的な興味・Web フォームを使うよりチーム開発しやすいかな
  • 長田 : URLルーキング〜テストまわりで面白そう・・・技術的な興味
  • 竹原 : Web フォームコントローラーまわりに絶望。主導権がデベロッパーにない。サーバーコントロールがなぜ View に関与するんだと。

Webフォームとの生産性の比較

  • 小野 : そんなに変わらないような気が・・・MVC のパターンを決めてしまえば考えることが減る

Web フォームより MVC の方が楽しい?

  • 小野 : View を自分の意図のままに作れるのが MVC と思ってる
  • 竹原 : Web フォームは気持ち悪い。MVC の方が気持ちいい。

MVC と Web フォームを切り分ける指針は?

  • 竹原 : MVC → コンシューマー向け(デザイン重視)、Web フォーム→バックエンド
  • 勇 : MVC の方が覚えやすそう。PHP の Zend と考え方がほぼ一緒。他の技術を学んでいる人だと、MVC の方がわかりやすい。Web フォームは何が起こってるのかさっぱりわからん。
  • 小野 : Web フォームは VB6 ユーザー向けに作った感がある。コントロールぺたぺた貼り付け。だけど HTML や HTTP を中心にみると無理やり感が・・・

MVC と組み合わせる周辺技術・・・

  • 芝村 : ガラゲー、フィーチャーフォン向けで制約があるので(容量の問題があるので、ViewStateが使えない)、MVC しかないと思っている。
  • 長田 : 長いタグを書きたくない。ASPX なんもいいところがない。Razor 記法の方がいい。デザインビューで見れるのが ASPX がいいところ。

View エンジンについて・・・

  • 竹原 : テンプレートエンジン・・・一番しっくり来るやつがいいじゃない!

選択の指針

  • 勇 : 水平方向の展開
  • 小野 : デザイナーに合わせてプログラミングする。MVC のいいところは分業ができる。デザイナーが何使いたいか?お客様が何使いたいか?MVC はそれに対応できる?

Silverlight の今後について

Windows 8 は?

  • MS 井上 : ベータ版も出てないし、まだまだ仕様は大きく変わるはず・・・今年9月の「ビルド」というイベントで新しい情報が公開される。

UI のお勧めは?

エンティティフレームワーク

MVC開発のポイント

  • 長田 : HTTP・URI・REST・HTML...Webフォームで隠ぺいされていた部分をどんだけ学習できるか?基本的な部分を学習すると MVC に入りやすくなる。

REST はオライリーとかの本を読まなければだめですか?

  • 長田 : とりあえずは Tech Ed とかで公開されてる情報を読むだけでいいのではないか。
  • 竹原 : RESTフルにこだわる必要はない。POST・GET 等の基本的なところを押さえておけばいい。
  • 勇 : MVC が何をしているか思想を理解しないと嵌る。
  • 小野 : レガシーの ASP の時代から開発していたので、MVC に移ってからも何をやっているのか粗方判っていた。Web フォームのコントロールのことは忘れましょう。

イベントドリブンで開発してきた人に、MVC は移行できるのか?

  • 小野 : イベントドリブンではなくでリクエストドリブンで考える。イベントドリブンで考えるとおかしくなる。

質問「Web フォームチームをMVC に乗り換えさせるには?」

  • 勇 : お金の問題。
  • 竹原 : SOC・・・関心の分離
  • 勇 : 目的を思い出してください・・・

感想

とっかかりにくく思えていた Azure が結構身近に感じられ、さらに セミナー全体通して ASP.NET.MVC に対する技術的興味が沸々と湧いてきました。パネルディスカッションでも数人の方が「技術的興味から」ASP.NET.MVC を使い始めたと仰ってましたが、確かにエンジニアを釣るには「これは面白そうだ!」と思わせることが一番ですね。私も釣られそうですが、その前に WPF(MVVM)を習得せねば。もっともその前に英語をせこせこ勉強中ですが(汗

でも畑違いとは言えども、意外に頭にすんなり入ってきて、最後まで本当に楽しく各セッションを拝聴できました。スピーカーの皆様、並びに開催の Microsoft@IT の皆様、今日はお疲れ様でした。また本当に有難うございました。