Visual Studio担当者に聞く

次期Visual Studio 2010では並列処理も強力サポート

2008/12/16

 マイクロソフトは2008年9月29日、次期バージョンの統合開発環境「Microsoft Visual Studio 2010」、チーム開発をサポートする「Microsoft Visual Studio Team System 2010」、およびランタイム環境の「.NET Framework 4」を発表した。新バージョンでは何が変わるのか。12月10日、来日中の米マイクロソフト プロダクトマネージャ 2人に話を聞いた。

クラスの依存関係をビジュアルに表示

グアダーニョ氏 Visual Studio 2010(VS10)の新機能や強化点は多数ありますが、大きく4つの柱に分けると、「コードの理解を容易にすること」、「Webアプリケーション構築」、「オフィスアプリケーション構築」、「C++のパワーを最大限に活用すること」になります。

vs01.jpg Visual Studio Team System プロダクトマーケティングディレクター ノーマン・S・グアダーニョ(Norman Guadagno)氏

 コードというのは、単にプログラマが書くだけのものではありません。それはテスターがテストするものであり、アーキテクトが設計したものを具現化したものです。われわれはコードを理解するためのツール群を開発しました。

 人が書いたコードを読むことも多いものです。実際、ほとんどのアプリケーションというのは、誰か違う人が書いたコードを利用しているものです。Visual Studio Team System 10(VSTS10)に含まれる「アーキテクチャ・ツール」は、既存のコードを解析し、ダイアグラムとして表示するもので、クラスの依存関係などを視覚的に表示します。このダイアグラムはインタラクティブで、どれか特定のクラスをクリックするとそれが依存しているクラスをすべて表示します。また、クラスの依存性や属性を変えてコードに変更に加えると、それによって動的にダイアグラムも変化します。これらの機能はコードの理解をより容易なものにするでしょう。

arch.jpg アーキテクチャ・ツールの画面例

 コードやアーキテクチャを理解するという点では別の問題もあります。ここに、プレゼンテーション層、ビジネスロジック層、データベース層の典型的なアーキテクチャのアプリケーションがあったとします。アーキテクトは、プレゼンテーション層からデータベース層への直接アクセスをポリシーとして明示的に禁じているとします。非常によくあるケースです。このとき、開発者がプレゼンテーション層からデータベース層を直接呼ぶようなコードを書くと、確かに問題なく動いているように見えるかもしれませんが、いざチェックインしようとすると、アーキテクチャに違反しているのでチェックインできませんというエラーメッセージが表示されます。

 コードを理解するという点では、いわゆる“再現不能なバグ”にも対応しました。テスターの環境で発生したバグを、開発者が再現して確認できないということはよくあります。こうした場合、無駄なやり取りが繰り返されるものです。われわれは「アクショナブル・バグ」という呼び方をしていますが、VSTS10では、バグレポートを起点にさまざまな解決に結び付ける方法を用意しています。

 まず、バグレポートを詳細で完全なものにするために、ビデオキャプチャ機能を付けました。テスターが行う操作を画面ごとすべて記録するのです。こうすることで、テスターが押していたボタンが、開発者が考えていたボタンと食い違っていてバグが再現しないというような問題が解決されます。

 バグの再現が難しいのはテスト環境と開発環境のソフトウェア構成に違いがある場合です。例えばWindows Vistaの32ビット版と64ビット版の違いです。この問題に対処するためVSTS10では、テスト環境のソフトウェア環境の完全な情報をレポートするようにしています。そして開発者はボタン1つで仮想環境を使ってテスト環境を再現できるようにしています。

 仮想環境にテスト環境を再現してテストする方法は自動化されているので、Windows VistaでもWindows 7でも、100通りの環境でのテストを50個のインスタンスでで行い、結果だけを集めることもできます。

JavaScriptフレームワークのjQueryを統合

カーター氏 VS10でフォーカスした2つ目の柱はWebアプリケーション構築です。Webアプリケーション開発はますます一般化していますが、VS10は2つの点でWebアプリケーション開発を支援します。

 Webアプリケーションでは非常に多くの技術やデザインパターンが使われていて、どれを選択するかを決めるのも難しい。VS10では、これまで提供していたASP.NETのビューパターンに加えて、人気の高いオープンソースのJavaScriptライブラリ「jQuery」をサポートしました。

vs02.jpg Visual Studioグループロダクトマネージャー マット・カーター(Matt Carter)氏

 マイクロソフトで独自に同等のものを開発するのではなく、jQueryコミュニティと協力して、VS10に取り込みました。コード補完のIntelliSenseでもサポートしています。つまり、VS10に統合された形で使えるのです。これは、オープンソースのソフトウェアを商用ソフトウェアモデルのものと組み合わせて使うという意味で、われわれにとって大きなマイルストーンとなるものでもあります。

 IDEを使うメリットは、あちこちのウィンドウやコードを移動しなくて済むことですが、Webアプリケーション向けのスニペットも追加しています。このほか、ASP.NETでは1クリックで開発したアプリケーションをディプロイできるよう手順を簡便化しています。

 VS10の3つ目のフォーカスはSharePoint開発です。新バージョンではSharePoint Serverを使ったビジネスアプリケーションの開発に対応します。これまでSharePointアプリケーションは3つの専用ツールを使って行う必要がありました。SharePoint開発は、とりわけ難しいということはありませんが、さまざまな開発者やデザイナが異なるツールを使って行うため作業が複雑です。航空会社がSharePointを使ったアプリケーションをWebサイトで使う例があるなど、普及が進み、すでに開発者もいるわけですが、今後はこれに加えてVisual Studioを使い慣れた開発者が、すぐにSharePointアプリケーションを開発できるようにする、ということです。

C++のパワーを解放する

カーター氏 最後のVS10の強化領域は、ネイティブコードの開発です。基本はVisual C++6.0と変わりませんが、マルチタッチを含むWindows 7の新機能をサポートします。また、マルチコアCPUのパワーを使い切る並列処理のサポートを強化しています。並列処理を取り込んだランタイムと開発フレームワークを提供するほか、並列処理に対応したパフォーマンスプロファイリングツールも提供します。

 こうした機能はC++で開発するISVにとって大きな差別化要因を提供するでしょう。

 Windows 7をはじめとするWindows向けネイティブコードだけでなく、今後登場するWindows Azureといったクラウドやモバイル、Web、オフィスアプリケーションなど、あらゆるプラットフォーム向けの開発を1つの開発環境で行えること、それがVisual Studio 10の目指すものです。

 同一の開発環境を使えることで、選択肢が広がるわけです。例えばクラウドを使うのか、それとも従来型のサーバにするのかという選択は主にビジネス上の決定になりますが、いったんデータセンターのクラウド上にアプリケーションを構築しても、何かあればまたサーバに戻すということが容易にできます。ただ、クラウド対応のアプリケーションは、第1世代ではスクラッチから書くことになります。第2世代ではマイグレーションのためのテンプレートを用意することになると思います。

グアダーニョ氏 サーバ上のアプリケーションをクラウドに移すというのは、まだ誰もやったことがない分野なので、いろいろわれわれも学んでいるところです。何が一番良い方法なのか、開発者の皆さんがどういうやり方を望んでいるのか、そうしたことを見極めているところです。われわれの多くのパートナーも、クラウドへの移行手段を模索しているところです。

カーター氏 VS1010では対応言語も増えています。IronPythonやIronRubyが動いていますし、F#もVS10に含む形で出荷予定です。もちろんわれわれはC#やC++に対して最も投資していますから、これらの言語と同レベルでIronPythonやIronRubyやサポートすることはできません。これは大切なポイントなので、よく繰り返して言うのですが、マイクロソフトはすべてを作ることはできません。ですから、オープンにしてエコシステムを作り、パートナーの皆さんと協力し、それぞれが役割を持って開発していくという進め方をしています。



関連リンク

(@IT 西村賢)

情報をお寄せください:

Insider.NET フォーラム 新着記事
  • 第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 -

注目のテーマ

- PR -
ソリューションFLASH

「ITmedia マーケティング」新着記事

“AI美女”を広告に起用しない ユニリーバ「Dove」はなぜそう決めたのか
Unilever傘下の美容ケアブランド「Dove」は、「Real Beauty」の20周年を機に、生成AIツー...

有料動画サービス 34歳以下では過半数が利用経験、4割は1日1回以上利用
「ニールセン・ビデオコンテンツ アンド アド レポート 2024」を基に、テレビ画面での動...

2024年のGW予算は横ばい 賃上げよりも物価高と円安の影響が勝る?――インテージ調査
インテージが全国の15歳から79歳の男女を対象に実施したゴールデンウイークに関する調査...