Visual Basic 14の新機能ベスト10〜もう「VBだから」とは言わせない!特集:次期Visual Studioの全貌を探る(1/3 ページ)

Visual Basic 14には多くの新機能が搭載される。本稿では、その中で注目したいものを、IDEと言語に分類して紹介する。

» 2015年04月14日 05時00分 公開
[山本康彦BluewaterSoft/Microsoft MVP for Windows Platform Development]
特集:次期Visual Studioの全貌を探る
Insider.NET

               

「特集:次期Visual Studioの全貌を探る」のインデックス

連載目次

 2015年の夏に正式リリースされるというVisual Studio 2015(以降、VS 2015)。それに含まれるVisual Basic(VB.NETと呼ばれる場合もある。以降、VB)にも、数々の新機能が投入される。その中から筆者が重要だと感じたものを、IDE(=統合開発環境)で5項目/言語機能で5項目、合わせて10項目を紹介しよう。

 VS 2015では、VBのバージョンは14となる(以降、VB 14)。VB 14は、初めてVBのコードで全面的に書き直され(これが最大のニュースかもしれない)、併せて多くの新機能も盛り込まれた。

 VS 2015は、2014年11月にプレビュー版が公開された。その後も頻繁にCTP版がリリースされ、本稿執筆時点では2015年2月に公開されたCTP 6が最新となっている。本稿では、CTP 6に基づいて新機能を紹介する。CTP 6は日本語化されておらず、紹介する画面の表示が英語となってしまうがご容赦願いたい。また、正式リリースまでにさらなる変更がある可能性をご承知おきいただきたい。

IDE編

1. リファクタリングのサポート強化

 何といっても、これが一番の改良点だろう。VBにも、ようやくリファクタリングの本格的なサポート機能が備わったのだ(従来は[名前の変更]しかできなかった)。

 例えば、「変数抽出」(Extract Variable)のリファクタリング*1を行う手順を次の画像に示す。

*1 「変数抽出」(Extract Variable)のリファクタリング:書籍「リファクタリング」(Martin Fowler著)では「説明用変数の導入」(Introduce Explaining Variable)と呼ばれている。出版後、筆者自身により改名。


変数に抜き出したい処理を選択して、[Quick Actions]を起動
変数に抜き出したい処理を選択して、[Quick Actions]を起動
★
リファクタリング候補のプレビューを見て、適切なものを選択
★
変数抽出のリファクタリング完了

変数抽出のリファクタリングを行う(VS 2015 CTP6)
上: 変数に抜き出したい処理を選択状態にし(ここでは「n Mod 3 = 0」の部分)、それから[Quick Actions]を起動する。この画像では、右クリックメニューから[Quick Actions]を選んでいる。右クリックせずに[Ctrl]+[.](ピリオド)キーを押してもよい。
中: 選択範囲に対して実行可能なリファクタリングがあれば、[Quick Actions]でリファクタリングの候補が表示される。ここでは3通りの候補が表示されている。候補上にマウスをホバーするか、カーソルキーを上下することで、その右側に表示されているプレビューが切り替わる。プレビューで赤くなっている行が変更前のコード、その下、緑がかった灰色の行が変更後のコードである。ここでは処理を変数に抜き出すだけでなく、メソッド内で同じ処理をしている部分もその変数に置き換えたいので、3番目の候補を選ぶ。なお、プレビューの下端にある[Preview Changes]のリンクをクリックするとダイアログでのプレビューに切り替わり、落ち着いて検討できる。
下: 変数抽出のリファクタリングが完了した。変数「v」の定義が追加され(3行目)、変更前はIf文中にあった「n Mod 3 = 0」の部分が2箇所とも変数「v」に置き換えられている(4行目、6行目)。このままの状態で続けてキー入力をすれば、変数名が書き換わる。その際に、もしも変数名を置換する範囲をコメントの中にまで拡張したいといったときには、右上に出ているポップアップにチェックを付ける。[Enter]キーで変数名の変更を確定させる。


2. 共有プロジェクト

 VB 14で、ようやく共有プロジェクトがサポートされる。C#ではVisual Studio 2013 Update 2で導入済みであり、ユニバーサルWindowsアプリの開発には必須といえるほどの機能であるが*2、VBではこれまでサポートされていなかった。

*2 Windows 8.1/Windows Phone 8.1向けのユニバーサルWindowsアプリと、それを開発するための共有プロジェクトについては、「特集:Windowsストアアプリ開発最新情報(Build 2014より):ユニバーサルWindowsアプリ開発の勧め」を参照。なお、Windows 10では共有プロジェクトを使わずにユニバーサルWindowsアプリの開発ができるようになる(本稿執筆時点では英語のみだがMSDN「Build a universal Windows app〜Build a Windows universal app that targets Windows 10 devices」を参照)。


 VB 14で新しくプロジェクトを作るときのダイアログに、[Shared Project](共有プロジェクト)が追加されている(次の画像)。

新しくプロジェクトを作るときのダイアログ(VS 2015 CTP 6) 新しくプロジェクトを作るときのダイアログ(VS 2015 CTP 6)
VBのプロジェクトテンプレートに[Shared Project](共有プロジェクト)がある。VS 2015 CTP 6ではダイアログ左側で言語やプロジェクトを分類表示しているペーンの[Store Apps]の中にはないので、注意してほしい。VS 2015での共有プロジェクトは、デスクトップアプリやWebアプリなどでも利用できる汎用的なものである。

 ただし、共有プロジェクトを用いたユニバーサルWindowsアプリ用のソリューションを作成する機能は、VS 2015 CTP 6には搭載されていないようだ。手動で作成することは可能である(次の画像)。

VB用のユニバーサルWindowsアプリ用ソリューションの作成例(VS 2015 CTP 6) VB用のユニバーサルWindowsアプリ用ソリューションの作成例(VS 2015 CTP 6)
共有プロジェクトを用いたユニバーサルWindowsアプリ用のソリューションを作るテンプレートが提供されていないようなので、手動で作成した。
まず、共有プロジェクト(画像中の「App1.Shared」)/Windows 8.1用のプロジェクト/Windows Phone 8.1用のプロジェクトを個別に作成する。次に、Windows 8.1用のプロジェクト/Windows Phone 8.1用のプロジェクトから共有プロジェクトに参照を設定する。また、コンパイル定数に、Windows 8.1用のプロジェクトでは「WINDOWS_APP」を、Windows Phone 8.1用のプロジェクトでは「WINDOWS_PHONE_APP」を追加する。最後に、Windows Phone 8.1用のプロジェクトから「Common」フォルダーと「App.xaml」ファイルを共有プロジェクトに移動し、コンパイル定数による切り分けなどの微調整を行った(かなりの手間である)。

       1|2|3 次のページへ

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。