「Visual Studio 2010 ラウンチツアー」レポート

2010年5月25日(火)、マイクロソフトさんの新宿本社で行われた「Visual Studio 2010 ラウンチツアー」に出席しました。

http://www.microsoft.com/japan/powerpro/ftd/vs/seminar.mspx

午前は、Visual Studio 2010 を使った新しいアプリケーション開発スタイルを概観する話がされていました。

午後は、「Windowsアプリケーション開発」「Webアプリケーション開発」「サーバーサイド開発」という3つの場面ごとに、さらに踏み込んだ話がされていました。

なお、一部、以前のバージョンでも出来ていたことも説明されていましたが、「新機能と併せて使うことで、こんな便利な使い方ができます」というスタンスで語られていたようです。

10:15 ~ 11:45 Visual Studio 2010 によるこれからのアプリケーション開発のスタイル

Visual Studio 2010 はハードウェアやOSなどの新機能を活用できるようになっているそうです。例えば、CPUのコア数が増えている現状に合わせて、マルチスレッドプログラムが今までより組みやすくなったそうです。夜間バッチなど長時間に及ぶ処理で、特にCPU負荷が高い処理の場合、マルチスレッドにすれば処理時間が短縮されるはずなので、次回そのような案件に出会ったら、活用してみたいです。

また、設計、開発、テストなどの各シーンで、生産性や品質を高めるための機能が追加されたそうです(ただし、一部機能は上位エディションだけでサポートされるようです)。

以下、覚えている範囲で、使ってみたいと思った機能を挙げてみます。

設計シーン

UML図がサポートされたそうです。

その中にはコードからシーケンス図を自動生成する機能があったりして、実装後に仕様書を更新する作業が楽になるかもしれません。

実装シーン

あるメソッドの呼び出し元や呼び出し先が一覧表示できるようになったそうです。

今までは1つずつ辿りながら「こういう機能があればいいな」と思っていた機能なので嬉しい限りです。

テストシーン

実装したソースコードに対応するテスト用コードを半自動生成してくれて、ソースコードを修正すると、影響範囲のテストコードを自動実行してくれるそうです。

うまく開発工程に組み込めれば、回帰テストの作業が楽になりそうです。

13:00 ~ 14:00 Visual Studio 2010 製品概要セッション『”7″ 時代の次世代Windows 開発 』

WPFアプリケーション(Silverlightアプリケーションをローカルで実行できるようにしたようなもの)のUIを定義する際、Visual Studio 2010 のデザイナでXAMLという定義ファイル(*.aspx.cs に対する *.aspx のようなもの)を半自動生成してくれるそうです。またWPFのデータグリッドのデータソースはドラッグ&ドロップで指定可能だそうです。WPF用のコントロールも充実してきたそうですので、一般的な「Windowsフォーム」アプリケーションならWPFでも実現可能になってきたように思います。将来、お客様からアニメーションなどが求められる可能性がある場合は、今からWPFで作成しておいた方が良いかもです。

Windows 7 の新しい機能である「ジャンプリスト」(タスクバーのプログラムアイコンを右クリックするとカスタムなメニューが表示される機能)に Visual Studio 2010 を使ってリストアイテムを追加するデモが行われました。デモではXAMLを直接編集していましたが、プログラムから動的に追加することもできるのではないかと思います。

14:10 ~ 15:40 Web アプリケーション開発『”4″ 時代の次世代 Web 開発』

新規Webアプリケーションプロジェクトを作成すると、最初からjQuery等のファイルが入っていて、それを使うことができるようです(「空のWebアプリケーション」を選ぶと、jQuery等のファイルが入っていないプロジェクトを作成することも可能なようです)。また JavaScript のステップ実行・ブレークポイント・変数のウォッチなどが行えるそうです。

CSSの属性をGUIで設定できる機能も地味に便利そうでした。

「ワンクリック発行」という機能は、クライアントではなく、サーバのインストーラを作成する機能のようです。IISの細かい設定などを、どこまで再現してくれるのか、要チェックです。

ASP.NET 4 アプリケーションの高速化という面では、ViewStateが省略可能になったようです。ViewStateが不要なコントロールでは極力省略することで、データ量や処理コストを削減できるものと思われます。

Silverlight 4 は、ブラウザの外でも動作するため、ますますWPFアプリケーションと守備範囲が重なってきたように思います。

ASP.NET MVC 2 は「Webフォーム」アプリケーションとは別のアプローチでWebアプリケーションを開発するための技術だそうです。私も以前にMVCで開発をしたことがありますが、ModelとViewの関係は、とてもスッキリと設計・実装できた覚えがあります。マイクロソフトさんがControllerを、どのように扱っているのか、興味深いところです。

15:50 ~ 16:50 サーバーサイド開発『”クラウド” 時代の次世代サーバーサイド開発』

WCF(WCF Data Services?)の新技術として OData が紹介されていました。OData とは、平たく言うと Atom(RSSのXMLのようなデータ)または Json(CSVの各値に列名を付加したようなデータ)を REST(SOAPと競合するWebサービスの規格)でアクセスできる仕組みのようです。ただ、その辺の仕組みは例によって Visual Studio 2010 が隠蔽してくれるので、開発者が意識する必要はないようです。もちろん、ODataが採用されていることで、デバッグ時はブラウザで確認できたり、クライアント(サーバ)を他のプラットフォームに取り換えやすかったり等のメリットも享受できるようです。

実際の開発イメージを示すため、以下のようなデモが行われました。

  1. ADO.NET Entity Framework(DataSetのようなオブジェクト)に SQL Server のテーブルをマッピング
  2. サーバ側が持つ OData の追加/検索/更新/削除 機能を、クライアント側で利用するためのラッパークラスを追加(WCF RIA Services の「射影」機能?)
  3. クライアントでは OData をドラッグ&ドロップでグリッドに表示したり、LINQ で絞り込んだり、更新したデータをDBに書き戻せる(トランザクション処理がどうなっているのかは不明)

上記を、ほとんどプログラムレスで行えていたのにはビックリでした。

また、Windows Azure 開発も Visual Studio 2010 で行えるそうです。ただし、現在、作成したアプリケーションは Windows Azure のサイトからアップロードする必要があるそうです。この辺も、将来的には Visual Studio 2010 から行えるようになるといいですね。

感想

今回、マイクロソフトさんの外で発展してきた良い技術が、開発者の負担をできるだけ軽減するというマイクロソフトさんの味付けを施されて、数多く取り入れられたように思います。それにより、1つの目的を達成するために色々な方法が用意されたことは嬉しいのですが、マイクロソフトさんの方から「これからは、この技術ですよ」といった強力なプッシュがなかったのが気になりました。今後、個々の新技術が成熟し、一貫したフレームワークとして統合度が高まり、普遍性を得ていくことを期待しています。

K.O