Visual Studio.NETファースト・インプレッション
5.Visual Basicでのアプリケーション作成の変化−VBプログラマから見たVS.NET−槙邑 恭介 |
次バージョンのVBでは、クラスのサポートやクラスの継承などが導入され、文法が大きく変更されることが随分と前から雑誌などで紹介されていたが、そういった変更の理由がやっと明らかになった。CLR上で動作させるためだったのである。今回のVS.NETでは、他のプログラミング言語に比べて、VBがもっとも大きな変更を受けている。
従来の独自のVBのランタイム環境から、CLRという共通のランタイム環境に変更されたため、CLRのオブジェクト指向環境に合わせて文法(仕様)の変更が行なわれている。基本的には、クラスをベースにしたオブジェクト指向型の言語に変化しているのである。ユーザー・インターフェイスを作成するフォームも、System.WinForms.Formというクラスの派生クラスとして生成されている(リスト「Visual Basicによるコード例」参照)。このクラスの中には“Main()”というメソッドが含まれており、ここからアプリケーションの実行が開始する。ついにVBも、Mainメソッドでアプリケーションが開始するようになったのである。
旧バージョンのVBのコードは利用できるのか?
ウィザードが生成したコードを見れば、従来のVBのコードとの互換性はほとんどないようにみえる。製品版のリリース時には、何らかの方法で変換が行なわれるようになるのだろうが、今後のVBアプリケーションの作成では、オブジェクト指向的な設計を少なからず意識する必要があるだろう。
Win32 APIの利用
Win32 APIを直接を呼び出すことが比較的簡単に行えるのもVBの特徴であったが、.NETプラットフォームではWin32の機能はCLRのクラス・ライブラリにラップされているので、基本的にはWin32 APIを直接呼び出すことはない。ただしCLR上でWin32 APIを呼び出す機能が提供されているので、不可能ではないように思える。どうしても利用したいDLLがある場合などでは、呼び出すことができるのではないだろうか。
従来のActiveXコントロールはどうなるのか
さらに気になるのが、これまでに作成した(もしくはサード・パーティから購入した)ActiveXコントロールが利用できるのかどうかだろう。これについては、ActiveXコントロールをCLR上で動作するように変換するツールが.NET SDKに含まれているので、これで対応すればよいだろう。
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|