「で,どうよ?Visual Studio.NET」――。パソコン誌「日経クリック」の人気コラムのタイトルをマネると,現状多くのWindowsプログラマの気持ちはこんな感じなのではないだろうか。Visual Studio(VS).NETに関心はあるけれどまだ自分は入手/評価していなくて,ほかの人がどう思っているのか知りたい,といったところだ。

 3月22日に出荷が始まったVS .NET日本語版は,見た目や操作性はVS 6.0の延長にあるが,内容的にはVS 6.0の後継とは言い難いほど変わっている。そもそもアプリケーション開発のプラットフォームが従来のWin32 API[用語解説] から.NET Framework[用語解説]に変わったために,作成できるアプリケーションの種類が大きく異なる。Windowsプログラマは,それぞれの立場でいろいろ気になることが多いだろう。

 VS .NETをすぐに使うかどうかは,会社の方針や仕事の内容によって異なるだろう。しかし,Windowsのソフトウエア開発に関わる以上,遅かれ早かれ手にすることになるに違いない。そこで,日経ソフトウエア最新号(2002年5月号)の特集記事では,VS .NETの全体像を紹介すると同時に,あらかじめ知っておくべきキーワードや技術をまとめた。ここでは,特集記事の執筆時やその後に感じた「VS .NETに対する不満と期待」を論じたい。

いきなり修正モジュールを提供

 すでにご存じの方も多いと思うが,VS .NET日本語版の出荷開始と同時に,.NET Frameworkの修正モジュール.NET Framework Service Pack 1(SP1)が提供された。VS .NETをインストールしたら.NET Framework SP1を別途入手して適用してください,と言うのだからなんとも印象の悪い船出となった。もちろん修正モジュールはできるだけ早く提供される方がいいわけだが,どうせならSP1を適用したVS .NETを発売してほしかったと思ったのは私だけではあるまい。

 その.NET Framework SP1の内容を見て,.NETに対するセキュリティ上の不安をあらためてかき立てられた方もいるかもしれない。.NET Framework SP1による最大の修正点は,デフォルトのセキュリティ・ポリシー[用語解説] を変更したことだ。

 これまでの標準のセキュリティ・ポリシーでは,.NET Frameworkに対応したアプリケーション(マネージド・コードと呼ぶ)は,インターネットを経由してクライアントのマシンで動的にダウンロード/実行することができる。しかしSP1を適用すると,動的なダウンロード/実行は許可されなくなる(イントラネット・ゾーンは変更せず)。

 Microsoftはずっと,マネージド・コードはセキュリティ・マネジャによりローカル・ファイルへのアクセスが制限されるので安全だと主張してきた。しかし,それを疑問視する声も多く,実際100%安全とは言い切れないので,インターネット経由の自動実行は標準では許可しないという設定にしたわけだ。

 Internet ExplorerやIIS(Internet Information Services)に次々にセキュリティ・ホールが発見されている現状を見れば,.NETのセキュリティ・ポリシー変更は当然の措置だと言えよう。

 やっかいなのは,このSP1は開発環境よりも,マネージド・コードを実行する可能性があるクライアント・マシンの方に必要だということだ。マネージド・コードを実行するには,そのマシンに.NET Frameworkのランタイム(.NET Framework再頒布パッケージと呼ぶ)をインストールする必要がある。

 現状では,このランタイムがインストールされているマシンはほとんどないので,マネージド・コードが勝手に動き出すということはない。しかし,Microsoftはいずれ,Windows Update,Internet Explorerのバージョン・アップ,OEM提供のWindowsなど,いろいろな機会を使って.NETのランタイムを配布することだろう。遠くない将来,いつの間にか自分のマシンに.NETのランタイムがインストールされているという状況になるだろう。

 すると,どこかのサイトのURLをクリックしたら,セキュリティ・ホールをついたマネージド・コードが勝手に動き出して・・・といったお決まりのパターンが予想される(おそらくそのころには,.NETのランタイムにはあらかじめSP1が適用されていることだろうが)。

 スタートと同時にセキュリティ・ポリシーを変更するSP1を配るというのは,.NETに対してそうしたマイナスのイメージを喚起しかねない。日本語版の出荷開始が多少遅れたとしても,SP1を適用したVS .NET,.NET Framework SDK,再頒布パッケージを提供するべきではなかっただろうか。

企業システムへの応用,競合製品の登場,などには期待も

 文句ばかり書いているが,実は.NET Framework対応のWebアプリケーションには期待している点もある。例えば,企業内の情報システムへの応用である。出退勤管理や交通費精算などの事務処理をイントラネット[用語解説] 型のWebアプリケーションで実現している会社や部署は少なくないだろう。しかし,Windowsアプリケーションのユーザー・インタフェースに比べると,Webブラウザの入力フォームはどうにも使いにくいものだ。

 こうしたWebアプリケーションをVS .NETで開発すれば,Webブラウザの制限を越えたユーザー・インタフェースを持つフォームをクライアントで実行できる。プログラムそのものはサーバー側にあるので,クライアント・ソフトの配布や管理の手間がかからない点はそのままだ。Javaにも同じような機能(Java Web Start)があることを考えると,こうしたニーズは多いのだろう。

 もう一つ,.NETに関しておもしろそうだと考えていることがある。それは米Borland Softwareの開発ツールだ。Borlandは,同社のDelphiとC++Builderで,マネージド・コードのアプリケーションを作成可能にすると発表した。

 どういう製品形態になるかは未定だが,一つのDelphiでWin32アプリケーションとマネージド・コードの両方を作れるとすれば,今よりぐっと注目が集まることだろう(Visual Basic .NETとVisual C#はマネージド・コードのアプリケーションしか作れない)。もし,同じアプリケーションをマネージド・コードで開発した場合に,Microsoft製よりBorland製コンパイラの方がより速いコードを生成する,といったことがあれば,それはそれでおもしろい。

 Borland以外にも,VS .NETを脅かす製品が出てくるかもしれない。前述の.NETのランタイム(再頒布パッケージ)には実はコンパイラが含まれている。これはWebアプリケーションに記述されたVisual Basic .NET,Visual C#,JScript .NETを動的にコンパイル/実行する必要があるからだ。

 このため,.NETのランタイムがインストールされたマシンでは,VS .NETを買わなくても,テキスト・エディタで記述したVisual Basic .NET,Visual C#のソースコードをコンパイルして実行できる。

 そんな面倒なことをする人は少ないかもしれない。しかし,.NETランタイムのコンパイラを利用するビジュアルな開発ツールなどがサード・パーティから,またはフリーソフトとして登場する可能性はある。VS .NETは高くて買えないという個人のプログラマには喜ばしいことだろう。

(道本 健二=日経ソフトウエア副編集長)