Visual Studio 14 CTP (Visual Basic の新機能)

今月4日、MicrosoftVisual Studio 次期バージョンのコミュニティ向けプレビュー版 「Visual Studio 14 CTP」を公開しました。以下のリンク先からダウンロード可能です。

Visual Studio "14" CTPs


情報によると Visual Studio 2013との同居はできないらしいので、仮想環境にインストールして早速動かしてみました。現時点まで Visual Basic に以下の機能が追加されたのを確認しています。


Roslyn

14 CTP には「Roslyn」というオープンソースコンパイラが搭載されています。これはオープンソースによる全く新しい C#VB コンパイラーだそうです。これにより C#VB のコードエディタ上の機能統一が図られています。特に VB 側には多くの機能が追加されました。

関連記事 : .NET コンパイラ プラットフォーム ("Roslyn")



Imports の整理

試しに Visual Basic のコンソールプロジェクトを新規作成。まず目についたのが 「Imports の整理」C# には「using の整理」という便利な機能があって、なんでこれが VB にないのかと Connect で要望挙げたことがあったのですが、今回遂に搭載される運びになったようです。これは嬉しいですね。




リファクタリング

さらにリファクタリングも追加されました。こちらも C# と同等の機能です。私のように VBC# を並行稼動している人間には嬉しい機能ですね。


リネーム

さらにリネーム、少し判りにくいですが、競合を解決しやすいインターフェイスに変わってます。C# も同様のUIに変更されました。


既定のリネーム対象は変数やメンバー名ですが、「Search in comments」や「Search in strings」にチェックを入れると、コメントや文字列もリネーム対象になるようです。


「Rename Overload(s)」にチェックすると、リネーム対象がオーバーロードされたメソッドに広がるようです。


ちなみに「Preview Changes」で変更後のプレビューを見ようとすると真っ黒に・・・仮想環境のせいかは不明です。



メタデータから

ソース コードを使用できない項目を選択し右クリックして「Go To Definition」(定義へ移動)を選択すると、メタデータを表示するようになりました。以下は String を選択して定義へ移動した画像です。ここもC#と同じ挙動になりましたが、オブジェクトブラウザーも便利なだけに賛否両論分かれそうです。



読み取り専用・自動実装プロパティの初期化

あと構文仕様ですが、「読み取り専用・自動実装プロパティの初期化」も可能になりました。

    Public ReadOnly Property Name As String = "hilapon"

    Public ReadOnly Property Person As Person = New Person() With {
            .Name = "平本",
            .Address = "東京都板橋区",
            .Telephone = "090-xxxx-xxxx",
            .Year = 17
        }

LINQデバッグ

次期バージョンの新機能で最も大きいは LINQデバッグが可能になったことですね。以下の図のとおりクエリ式の中にブレークポイントを設けることができ、ステップ実行やウオッチが可能になってます。



リテラル文字列の改行

vbCrLf や vbNewLine を使わなくても文字列リテラルの改行ができるようになりました。以下のコードをご覧ください。


実行結果です。

C#逐語的文字列リテラルと同じような機能です。さらに詳しい調査をしてみたいと思います。




また新しい情報がわかったら、記事に追加したいと思います。


関連記事 : Microsoft、「Visual Studio "14" CTP」を公開