この記事 きじ は検証 けんしょう 可能 かのう な参考 さんこう 文献 ぶんけん や出典 しゅってん が全 まった く示 しめ されていないか、不十分 ふじゅうぶん です。 出典 しゅってん を追加 ついか して記事 きじ の信頼 しんらい 性 せい 向上 こうじょう にご協力 きょうりょく ください。(このテンプレートの使 つか い方 かた ) 出典 しゅってん 検索 けんさく ? : "Visual Basic .NET" – ニュース · 書籍 しょせき · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2015年 ねん 7月 がつ )
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++ 、Java 、C# などの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では、制限 せいげん 付 つ きではあるがネイティブコードを生成 せいせい する事前 じぜん コンパイル技術 ぎじゅつ もサポートしている。
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] 。
^ Option Strict
で変更 へんこう 可能 かのう [4] 。
^ Windows Vista 以降 いこう のOSには、.NET Framework用 よう のC#/VBの旧 きゅう コンパイラが標準 ひょうじゅん 的 てき に付属 ふぞく する。