(Translated by https://www.hiragana.jp/)
Visual Basic .NET - Wikipedia コンテンツにスキップ

Visual Basic .NET

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』
VB.NETから転送てんそう
Visual Basic .NET
Visual Basic .NET
Visual Basic .NETのロゴ
パラダイム 構造こうぞうプログラミング, 命令めいれいがたプログラミング, オブジェクト指向しこう, 宣言せんげんがたプログラミング
登場とうじょう時期じき 2001ねん (2001)[1]
設計せっけいしゃ マイクロソフト
開発かいはつしゃ マイクロソフト
最新さいしんリリース 2019 (16.9)[2]/ 2021ねん3がつ2にち (3ねんまえ) (2021-03-02)[3]
型付かたつ つよ静的せいてき型付かたつまたは動的どうてき型付かたつ[注釈ちゅうしゃく 1]
おも処理しょりけい .NET Framework.NET.NET Core)、RoslynコンパイラおよびMono
方言ほうげん .NET 2002 (7.0), .NET 2003 (7.1), 2005 (8.0), 2008 (9.0), 2010 (10.0), 2012 (11.0), 2013 (12.0), 2015 (14.0), 2017 (15.x), 2019 (16.x)
影響えいきょうけた言語げんご Visual Basic, C#
影響えいきょうあたえた言語げんご Small Basic
プラットフォーム .NET Framework: Microsoft Windows
Mono/.NET: Windows, macOS, Linux
ウェブサイト Visual Basic
拡張子かくちょうし .vb
テンプレートを表示ひょうじ

Visual Basic .NET (ヴィジュアル ベーシック ドットネット)はマイクロソフト開発かいはつしたプログラミング言語げんごおよびその処理しょりけいVB.NETともばれる。旧来きゅうらいVisual Basic(バージョン6.0まで、VB6)の後継こうけいであり、C#とほぼどう時期じき.NET Frameworkおよび本格ほんかくてきオブジェクト指向しこう対応たいおうするあたらしい言語げんごとして登場とうじょうした。

なおVisual Studio 2005以降いこうでは、「Visual Basic .NET」や「VB.NET」という呼称こしょうではなく、従来じゅうらいのように「Visual Basic」という呼称こしょうもちいられるようになっている[5]が、6.0以前いぜんとの互換ごかんせいはなく、また.NETベースであることにはわりない。

概説がいせつ[編集へんしゅう]

2000年代ねんだい初頭しょとう、マイクロソフトの「.NET構想こうそう」を実現じつげんするためのアプリケーション開発かいはつ実行じっこう環境かんきょう.NET Framework」に対応たいおうするプログラミング言語げんごとして、C#とともにVB.NETが登場とうじょうした[6]

C++JavaC#などのCけい言語げんご比較ひかくして、VB/VB.NETは文法ぶんぽう自然しぜん言語げんごちかいため、プログラミング初心者しょしんしゃにも比較的ひかくてき習得しゅうとくしやすく、また使つかいやすいといわれている[よう出典しゅってん]。しかし初心者しょしんしゃけの言語げんごというわけではなく、本格ほんかくてきソフトウェア開発かいはつにも使用しようできる。

Microsoft WindowsようアプリケーションWebアプリケーション、モバイルけアプリケーションなどを開発かいはつできる。利用りよう可能かのうなVisual StudioプロジェクトテンプレートもVisual C#とほぼ同様どうようである。

アプリケーション実行じっこうコードはWindows専用せんよう.NET Frameworkまたはクロスプラットフォーム.NET.NET Coreじょう動作どうさするほか、C#と同等どうとう本格ほんかくてきオブジェクト指向しこうれられるなど、ぜんバージョンのVisual Basic 6.0からの変更へんこうてんおお両者りょうしゃ互換ごかんせいひくい。

VB.NETに移行いこうできないきゅうVBせいアプリケーションを延命えんめいするため、VB.NETリリースきゅう開発かいはつ環境かんきょうやランタイムのサポートが条件じょうけんきで継続けいぞくされた。また、VB.NETには、きゅうVBからの移行いこう容易よういにするアップグレードウィザード[7]や、従来じゅうらい一部いちぶ機能きのう実現じつげんする互換ごかんライブラリが実装じっそうされている[8][9]。ただし、Microsoft.VisualBasic.Compatibility.VB6名前なまえ空間くうかんにあるクラスは、VB 6.0から自動的じどうてきにアップグレードするツールによって使用しようされる目的もくてき用意よういされていたもので、.NET 4では推奨すいしょうとなっており、また32ビットプロセスでのみサポートされている[10]。アップグレードウィザードはVisual Studio 2010以降いこうはサポートされていない。

VB.NETのコンパイラはマイクロソフトから無料むりょう提供ていきょうされている[注釈ちゅうしゃく 2]ので、Windows付属ふぞくのメモちょうとうでプログラミングすることも可能かのうだが、Visual Studioなどの統合とうごう開発かいはつ環境かんきょう使つかうのが一般いっぱんてきである。マイクロソフトによるVB.NET専用せんよう統合とうごう開発かいはつ環境かんきょうおよびVisual C#/Visual C++なども利用りよう可能かのうなVisual Studio製品せいひんは、かつてはきゅうVBと同様どうよう有償ゆうしょうでのみ提供ていきょうされていたが、バージョン2005以降いこう機能きのう制限せいげんばんであるExpressエディションが、またバージョン2013以降いこうは(利用りようじょうのライセンス制約せいやくつよいものの)Professionalエディション相当そうとう機能きのうつCommunityエディションが、それぞれ無償むしょう配布はいふされている。

姉妹しまい言語げんごであるC#やF#くらべると、VB.NETにおける同等どうとうあたらしい言語げんご機能きのうサポートなどはおくれる傾向けいこうにある。.NET Frameworkの後継こうけいかつクロスプラットフォームばんである.NET Coreの言語げんごサポートについても、.NET Core 1.x時点じてんではC#とF#のみであり、.NET Core 2.0でVB.NETのサポートが追加ついかされた[11][12]

マイクロソフトは2020ねん11月、.NET Coreの将来しょうらいてき機能きのうのうち、言語げんご仕様しよう変更へんこうともなうものについてはVB.NETではサポートされない可能かのうせいがあることを発表はっぴょうした[13]。また2023ねん2がつ、C#は.NETとともに言語げんご仕様しよう進化しんかさせつづけること、F#はコミュニティと協力きょうりょくしながら進化しんかさせていくこと、そしてVB.NETには今後こんごあたらしい言語げんご構文こうぶん追加ついかせず、安定あんていせいおもきを方針ほうしんであることを発表はっぴょうした[14]

実行じっこう速度そくど[編集へんしゅう]

きゅうVBはVisual C++比較ひかくして実行じっこう速度そくどおそいこともあったが、.NET FrameworkベースになったVB.NETでは、コンパイラが出力しゅつりょくするコードはVisual C#ひとしおなじくCILばれる中間ちゅうかん表現ひょうげんであり、の.NET言語げんご比較ひかくして速度そくど遜色そんしょくない。CILは実行じっこうJITコンパイラにより最適さいてきされたネイティブコードに変換へんかんされる。

Visual C++のようにコンパイルにターゲットプロセッサ固有こゆう完全かんぜんなネイティブコードを生成せいせいする方式ほうしきくらべて、JIT方式ほうしき移植いしょくせいたかいものの、アプリケーションの起動きどう多少たしょう時間じかんがかかるなどの問題もんだいてんもある。そのような問題もんだいへの解決かいけつさくとして、.NET Frameworkや.NET Coreでは、制限せいげんきではあるがネイティブコードを生成せいせいする事前じぜんコンパイル技術ぎじゅつもサポートしている。

DirectXのサポート[編集へんしゅう]

Direct3DなどのマルチメディアコンポーネントをふくMicrosoft DirectXかんしては、C#やVB.NETなどの.NET言語げんごからDirectX 9を操作そうさするための.NETマネージ ライブラリである「Managed DirectX」が、DirectX SDKおよびDirectXエンドユーザーランタイムにどうこりされるかたち提供ていきょうされていた。なお、XNAのリリースにともない、Managed DirectXの更新こうしん終了しゅうりょうしたが、そのXNAもすでに更新こうしん終了しゅうりょうしている。「Windows API Code Pack for Microsoft .NET Framework」とばれるWindows APIおよびDirectXをふくむCOMコンポーネントの.NETようラッパーライブラリ、もしくはオープンソースとして開発かいはつ公開こうかいされているSlimDXライブラリやSharpDXライブラリなどを使用しようすることで、.NET言語げんごからもDirectX 9/10/11/12を利用りようすることが可能かのうだが、いずれも更新こうしん停止ていししており、その追加ついかされた最新さいしん機能きのう利用りようすることはできない。

C++/CLIなどのグルー言語げんごにより独自どくじのラッパーを明示めいじてき作成さくせいすることで、.NET言語げんごからDirectXを間接かんせつてき利用りようすることも可能かのうである。Windowsランタイム環境かんきょうであれば、C++/CX英語えいごばんC++/WinRT英語えいごばん使つかってラップする方法ほうほうもある。

コードれい[編集へんしゅう]

以下いかはコンソールに"Hello, World!"と出力しゅつりょくするれいである。

Module Module1
    Sub Main()
        Console.WriteLine("Hello, World!")
    End Sub
End Module

きゅうVBではコンソールアプリケーション開発かいはつ想定そうていされておらず、基本きほんてきGUIアプリケーションの開発かいはつのみをサポートしていたが、VB.NETはC#とおなじく.NET基本きほんクラスライブラリぜん機能きのうにアクセスでき、より汎用はんようてき言語げんごとなった。

きゅうVisual Basicとの比較ひかく[編集へんしゅう]

以下いかきゅうVBとVB.NETの構文こうぶん類似るいじてんしめしたサンプルコードである。いずれもメッセージボックスに"Hello, World"のメッセージとOKボタン表示ひょうじさせるものである。

きゅうVisual Basicのコードれい:

Private Sub Command1_Click()
    MsgBox "Hello, World"
End Sub

Visual Basic .NETのコードれい:

'Imports System.Windows.Forms ' Windows Forms の場合ばあい
'Imports System.Windows ' WPF の場合ばあい
Private Sub Button1_Click(ByVal sender As System.Object, _
              ByVal e As System.EventArgs) Handles Button1.Click
    MessageBox.Show("Hello, World")
End Sub

VB.NETでは、GUIフレームワークにWindows Formsもちいるか、それともWPFもちいるかによって、使用しようできるMessageBoxクラスのぞくする名前なまえ空間くうかんわってくる。

きゅうVBやVBScript[15][16]実装じっそうされていたきゅうMsgBox関数かんすうなどの互換ごかん機能きのうはライブラリによってサポートされている[9][17][18]が、以下いかのように()使つかったメソッドしのかたち記述きじゅつしなければならない。

Imports Microsoft.VisualBasic.Compatibility ' ファイル先頭せんとう記述きじゅつする。
Private Sub Button1_Click(ByVal sender As System.Object, _
              ByVal e As System.EventArgs) Handles Button1.Click
    MsgBox("Hello, World")
End Sub

オブジェクト指向しこう[編集へんしゅう]

VB6ではクラスモジュールの定義ていぎ、メンバー変数へんすうやメソッドのカプセルインターフェイス実装じっそうによるポリモーフィズムをサポートしていた。ただしクラスの継承けいしょうはサポートせず、オブジェクト指向しこうプログラミングを完全かんぜんサポートしているとはがたかった。VB.NETではクラス継承けいしょうがサポートされ、本格ほんかくてきなオブジェクト指向しこう言語げんごとなった。

.NET Frameworkライブラリ[編集へんしゅう]

VB6では固有こゆうのステートメントでフォームの制御せいぎょ文字もじれつ操作そうさをプログラミングしていたが、VB.NETではC#などと共通きょうつう使つかわれる.NET Frameworkの標準ひょうじゅんライブラリにしたがったプログラミングが必要ひつようとなった。このため、きゅうVBプログラマのノウハウが通用つうようしにくい状況じょうきょうまれた。このことがVBプログラマがVB6からVB.NETへの移行いこうすすまない原因げんいんひとつではないかとの指摘してきがある[よう出典しゅってん]

エラー処理しょり[編集へんしゅう]

VB6ではエラー発生はっせいOn Error GoToぶんによって、メソッドない記述きじゅつされたエラー処理しょりにジャンプさせる方式ほうしきであった。VB.NETではC#Javaなどと同様どうように、Try - Catch - Finallyによる例外れいがい処理しょり記述きじゅつできる。これによってさきメソッド内部ないぶしょうじたエラーを、もとメソッドで一括いっかつしてあつかうことができるなど、プログラムの柔軟じゅうなんせいした。

固定こていちょう文字もじれつ廃止はいし[編集へんしゅう]

の.NET言語げんごとの互換ごかんせい確保かくほのため[19]固定こていちょう文字もじれつは(基本きほんデータがたとしては)サポートされなくなった。Visual Basic 6.0互換ごかん機能きのうとしてMicrosoft.VisualBasic.Compatibility.VB6.FixedLengthStringクラス[20]用意よういされているが、マルチバイト文字もじでは正常せいじょう動作どうさしないため、目的もくてき出力しゅつりょく形式けいしきにエンコードしてバイトすうをカウントしてから処理しょりするといったコーディングが必要ひつようとなる。[よう説明せつめい]

歴史れきし[編集へんしゅう]

バージョン7.xにかぎり「Visual Basic .NET」としょうしているが、従来じゅうらいのように「Visual Basic」と名称めいしょうあらためられた8.0以降いこうもVB.NETの系列けいれつであることにちがいはない。Microsoft.VisualBasic.dll、vbc.exe、Visual Studio IDEのバージョン情報じょうほうダイアログにられるように、製品せいひんバージョンおよび内部ないぶバージョンはVisual Studioと同様どうようのバージョン番号ばんごうてられている内部ないぶバージョン13はばんのためスキップされた。

バージョンの履歴りれき
製品せいひんめい バージョン 内部ないぶバージョン リリース 備考びこう
Visual Basic .NET 2002 7.0 2002ねん 言語げんご仕様しよう大幅おおはば変更へんこう完全かんぜんなオブジェクト指向しこう)。実行じっこう環境かんきょうに .NET Framework 1.0 を採用さいよう
Visual Basic .NET 2003 2003 7.1 2003ねん .NET Framework 1.1 に対応たいおう
Visual Basic 2005 2005 8.0 2005ねん .NET Framework 2.0 に対応たいおう
Visual Basic 2008 2008 9.0 2007ねん LINQやラムダしき導入どうにゅうなど言語げんご機能きのう強化きょうか。.NET Framework 3.5 に対応たいおう
Visual Basic 2010 2010 10.0 2010ねん .NET Framework 4.0 に対応たいおう
Visual Basic 2012 2012 11.0 2012ねん .NET Framework 4.5 に対応たいおう。Async/Awaitの導入どうにゅう
Visual Basic 2013 2013 12.0 2013ねん .NET Framework 4.5.1 に対応たいおう
Visual Basic 2015 2015 14.0 2015ねん .NET Framework 4.6 に対応たいおう
Visual Basic 2017 2017 15.0, 15.3, 15.5, 15.8 2017ねん
Visual Basic 2019 2019 16.0 2019ねん .NET Core対応たいおう重点じゅうてんく。

Visual Basic .NET (2002) (VB.NET 7.0)[編集へんしゅう]

2002ねんに、Visual Basicをもと本格ほんかくてきオブジェクト指向しこうプログラミング概念がいねん機能きのうれたあたらしい言語げんごであるVisual Basic .NETの開発かいはつ環境かんきょう処理しょりけいとして、Microsoft Visual Studio .NET (Microsoft Visual Basic .NET) がリリースされた。VB.NETはVB6の後継こうけい言語げんごとされ、マイクロソフトしゃ.NET Frameworkというあたらしい技術ぎじゅつ基盤きばん対応たいおうしている。対応たいおうする.NETのバージョンは.NET Framework 1.0。

VB.NETはあらたにウェブサーバようのプログラム、Webようのプログラムが開発かいはつできるなどのネットワーク開発かいはつ機能きのう追加ついかされた。VB6の後継こうけいといっても、豊富ほうふデバッグ機能きのう追加ついかされたり、中間ちゅうかんコード形式けいしき採用さいようといった言語げんご設計せっけい思想しそうそのものがわったりするなど、様々さまざまてん大幅おおはば機能きのう追加ついかおよび削除さくじょおこなわれた。なお、VB6ではサポートされていたエディット&コンティニュー機能きのうは、VB.NETには搭載とうさいされていなかった[6]

Visual Basic .NET 2003 (VB.NET 7.1)[編集へんしゅう]

対応たいおうする.NETのバージョンは.NET Framework 1.1。

Visual Basic 2005 (VB 8.0)[編集へんしゅう]

製品せいひん名称めいしょうからは「.NET」という名前なまえがなくなったが、上記じょうきのVB.NETと連続れんぞくせいがある言語げんごである。言語げんご仕様しよう強化きょうかされ、C# 2.0同様どうようジェネリック要素ようそ導入どうにゅうされたほか、パーシャルクラス演算えんざんオーバーロードなどがサポートされた。また、開発かいはつ環境かんきょうおおきく強化きょうかされている。

対応たいおうする.NETのバージョンは.NET Framework 2.0であるが、Visual Studioよう拡張かくちょうをインストールすることで.NET Framework 3.0対応たいおうアプリケーションの開発かいはつ可能かのうになる。

Visual Basic 2008 (VB 9.0)[編集へんしゅう]

どう時期じきにリリースされたC# 3.0にわせて言語げんご仕様しよう強化きょうかされ、構造こうぞう照会しょうかい構文こうぶんであるLINQや、ラムダしき匿名とくめいがたなどの要素ようそ追加ついかされた。 対応たいおうする.NETのバージョンは.NET Framework 3.5(.NET 3.5は3.0および2.0の完全かんぜんスーパーセットのため、3.0および2.0のアプリケーション開発かいはつ可能かのうとなっている)。

Visual Basic 2010 (VB 10.0)[編集へんしゅう]

対応たいおうする.NETのバージョンは.NET Framework 4.0(3.5、3.0、2.0での開発かいはつ可能かのう)。

C#の言語げんご設計せっけいしゃとしてられるアンダース・ヘルスバーグ設計せっけいたずさわり、VBとC#とのあいだ言語げんごあいだ格差かくさ低減ていげんはかられるようになった[21] [22]

Visual Basic 2012 (VB 11.0)[編集へんしゅう]

.NET Framework 4.5とともに公開こうかいVisual Studio 2012にどうこりされる。

C# 5.0同様どうよう非同期ひどうきプログラミングを言語げんご仕様しようレベルでサポートするAsync/Await構文こうぶん導入どうにゅうした。

Visual Basic 2013 (VB 12.0)[編集へんしゅう]

.NET Framework 4.5.1とともに公開こうかいVisual Studio 2013にどうこりされる。Developer Packをインストールすることで.NET Framework 4.5.2対応たいおうアプリケーションの開発かいはつ可能かのうになる[23]

Visual Basic 2015 (VB 14.0)[編集へんしゅう]

2015ねんに.NET Framework 4.6とともに公開こうかいVisual Studio 2015にどうこりされる。Roslynばれるコンパイラレイヤーにより、Visual C#と同等どうとうのIDE機能きのうそなえるにいたった[24]

VB 14の主要しゅようしん機能きのう下記かきのとおり。

  • Null反映はんえい演算えんざん ?.
  • ふくすうぎょう文字もじれつリテラル
  • NameOf演算えんざん
  • 文字もじれつ補間ほかん
  • 行末ゆくすえコメント

Visual Basic 2017 (VB 15.x)[編集へんしゅう]

2017ねんにVisual Studio 2017とともに公開こうかい。15.0、15.3、15.5、15.8のリビジョンであたらしいVisual Basic 15の言語げんご機能きのう拡張かくちょうした[25]

Visual Basic 2019 (VB 16.0)[編集へんしゅう]

2019ねんにVisual Studio 2019とともに公開こうかい[26]。.NET Core に重点じゅうてんいた Visual Basic の最初さいしょのバージョンとなった[27]

脚注きゃくちゅう[編集へんしゅう]

注釈ちゅうしゃく[編集へんしゅう]

  1. ^ Option Strict変更へんこう可能かのう[4]
  2. ^ Windows Vista以降いこうのOSには、.NET FrameworkようのC#/VBのきゅうコンパイラが標準ひょうじゅんてき付属ふぞくする。

出典しゅってん[編集へんしゅう]

  1. ^ VB .NET プログラミングリファレンス - はしがき | Microsoft Learn
  2. ^ What's new - Visual Basic | Microsoft Learn
  3. ^ Visual Studio 2019 version 16.9 Release Notes | Microsoft Learn
  4. ^ Option Strict Statement - Visual Basic | Microsoft Learn
  5. ^ Visual Basic | MSDN ライブラリ, Internet Archive
  6. ^ a b VB2005は.NETへの移行いこう加速かそくできるのか!?(1/2) - @IT
  7. ^ VB 6.0 ユーザーのための VB .NET 移行いこうガイド - アップグレードウィザードの利用りよう | Microsoft Learn
  8. ^ ITレポート(動向どうこう解説かいせつ) - 【速報そくほう】これがニューVBだ!:ITpro
  9. ^ a b Visual Basic 6.0 互換ごかんせいライブラリ | Microsoft Learn
  10. ^ Microsoft.VisualBasic.Compatibility.VB6.<member> is obsolete and supported within 32 bit processes only | Microsoft Learn
  11. ^ .NET Core 2.0 Previewリリース、Visual Basicをサポート
  12. ^ What's new in .NET Core 2.0 | Microsoft Learn
  13. ^ Visual Basic support planned for .NET 5.0 - Visual Basic Blog
  14. ^ Update to the .NET language strategy - .NET Blog
  15. ^ MsgBox 関数かんすう | Microsoft Learn
  16. ^ バージョン情報じょうほう (VBScript) | Microsoft Learn
  17. ^ MsgBox 関数かんすう (Visual Basic) | Microsoft Learn
  18. ^ だい6かい VB開発かいはつしゃ最新さいしん.NET Frameworkを効率こうりつよく習得しゅうとくする方法ほうほう - @IT
  19. ^ VB 6.0 ユーザーのための VB .NET 移行いこうガイド - 固定こていちょう文字もじれつ | Microsoft Learn
  20. ^ FixedLengthString Class (Microsoft.VisualBasic.Compatibility.VB6) | Microsoft Learn
  21. ^ Visual Basic 2010のしん機能きのう - @IT”. 2011ねん11月3にち閲覧えつらん
  22. ^ VB.NETに未来みらいはあるのか?
  23. ^ Download Microsoft .NET Framework 4.5.2 Developer Pack for Windows Vista SP2, Windows 7 SP1, Windows 8, Windows 8.1, Windows Server 2008 SP2 Windows Server 2008 R2 SP1, Windows Server 2012 and Windows Server 2012 R2 from Official Microsoft Download Center
  24. ^ Visual Studio 2015のしん機能きのう“Roslyn”とは - Build Insider
  25. ^ Visual Basic のしん機能きのう - Visual Basic | § Visual Basic 2017, 15.3, 15.5, 15.8 | Microsoft Docs
  26. ^ Visual Studio 2019 リリースノート
  27. ^ Visual Basic のしん機能きのう - Visual Basic | § Visual Basic 16.0 | Microsoft Docs

関連かんれん項目こうもく[編集へんしゅう]

外部がいぶリンク[編集へんしゅう]