Warning : Undefined variable $type in /home/users/1/sub.jp-asate/web/wiki/extensions/HeadScript/HeadScript.php on line 3
Warning : "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /home/users/1/sub.jp-asate/web/wiki/includes/json/FormatJson.php on line 297
Warning : Trying to access array offset on value of type bool in /home/users/1/sub.jp-asate/web/wiki/includes/Setup.php on line 660
Warning : session_name(): Session name cannot be changed after headers have already been sent in /home/users/1/sub.jp-asate/web/wiki/includes/Setup.php on line 834
Warning : ini_set(): Session ini settings cannot be changed after headers have already been sent in /home/users/1/sub.jp-asate/web/wiki/includes/session/PHPSessionHandler.php on line 126
Warning : ini_set(): Session ini settings cannot be changed after headers have already been sent in /home/users/1/sub.jp-asate/web/wiki/includes/session/PHPSessionHandler.php on line 127
Warning : session_cache_limiter(): Session cache limiter cannot be changed after headers have already been sent in /home/users/1/sub.jp-asate/web/wiki/includes/session/PHPSessionHandler.php on line 133
Warning : session_set_save_handler(): Session save handler cannot be changed after headers have already been sent in /home/users/1/sub.jp-asate/web/wiki/includes/session/PHPSessionHandler.php on line 140
Warning : "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /home/users/1/sub.jp-asate/web/wiki/languages/LanguageConverter.php on line 773
Warning : Cannot modify header information - headers already sent by (output started at /home/users/1/sub.jp-asate/web/wiki/extensions/HeadScript/HeadScript.php:3) in /home/users/1/sub.jp-asate/web/wiki/includes/Feed.php on line 294
Warning : Cannot modify header information - headers already sent by (output started at /home/users/1/sub.jp-asate/web/wiki/extensions/HeadScript/HeadScript.php:3) in /home/users/1/sub.jp-asate/web/wiki/includes/Feed.php on line 300
Warning : Cannot modify header information - headers already sent by (output started at /home/users/1/sub.jp-asate/web/wiki/extensions/HeadScript/HeadScript.php:3) in /home/users/1/sub.jp-asate/web/wiki/includes/WebResponse.php on line 46
Warning : Cannot modify header information - headers already sent by (output started at /home/users/1/sub.jp-asate/web/wiki/extensions/HeadScript/HeadScript.php:3) in /home/users/1/sub.jp-asate/web/wiki/includes/WebResponse.php on line 46
Warning : Cannot modify header information - headers already sent by (output started at /home/users/1/sub.jp-asate/web/wiki/extensions/HeadScript/HeadScript.php:3) in /home/users/1/sub.jp-asate/web/wiki/includes/WebResponse.php on line 46
http:///mymemo.xyz/wiki/api.php?action=feedcontributions&user=240F%3A70%3A9FD7%3A1%3A85C9%3A9031%3A2153%3ADE38&feedformat=atom
miniwiki - 利用者の投稿記録 [ja]
2024-05-21T01:50:29Z
利用者の投稿記録
MediaWiki 1.31.0
Microsoft Visual Basic .NET
2018-05-11T14:44:56Z
<p>240F:70:9FD7:1:85C9:9031:2153:DE38: </p>
<hr />
<div>{{出典の明記|date=2015年7月}}<br />
<br />
{{Infobox programming language<br />
| name = Visual Basic .NET<br />
| year = {{release date and age|2001}}<ref>[https://msdn.microsoft.com/ja-jp/library/Dd314340.aspx VB .NET プログラミングリファレンス - はしがき]</ref><br />
| designer = [[マイクロソフト]]<br />
| developer = [[マイクロソフト]] <br />
| latest preview version = <br />
| latest release version = 14.0<br />
| latest release date = {{release date and age|2015|7|20}}<br />
| implementations = [[.NET Framework]], [[Mono (ソフトウェア)|Mono]]<br />
| influenced_by = <br />
| influenced = <br />
| typing = 強い[[静的型付け]]<br />
| dialects = .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)<br />
| paradigm = [[構造化プログラミング]], [[命令型プログラミング]], [[オブジェクト指向]], [[宣言型プログラミング]]<br />
| logo = <br />
| operating_system = [[Microsoft Windows]] <br />
| license = <br />
| website = [https://msdn.microsoft.com/ja-jp/library/2x7h1hfk.aspx Visual Basic - MSDN]<br />
| file_ext = .vb<br />
}}<br />
{{プログラミング言語}}<br />
'''Visual Basic .NET''' (ヴィジュアル ベーシック ドットネット)は[[マイクロソフト]]が開発した[[プログラミング言語]]およびその処理系。'''VB.NET'''と略されて呼ばれることが多い。[[.NET]]に対応していない旧来の[[Microsoft Visual Basic]](バージョン6.0まで、VB6)の後継である。<br />
<br />
なお[[Visual Studio]] 2005以降では、「Visual Basic .NET」や「VB.NET」という呼称ではなく、従来のように「Visual Basic」という呼称が用いられるようになっている<ref>[https://msdn.microsoft.com/ja-jp/library/sh9ywfdk%28v=vs.80%29.aspx Visual Basic リファレンス]</ref>が、6.0以前との互換性はなく、また.NETベースであることには変わりない。<br />
<br />
== 概説 ==<br />
[[C++]]や[[Java]]、[[C Sharp|C#]]などのC系言語と比較して、VB/VB.NETは文法が[[自然言語]]に近いため、[[プログラミング (コンピュータ)|プログラミング]]初心者にも比較的習得しやすく、また使いやすいといわれているが、本格的な[[ソフトウェア]]の作成にも使用できる。なおVB.NETはマイクロソフトが推進している[[.NET]]の一環で開発された言語であり、[[アプリケーション]]実行コードは[[.NET Framework]]上で動作するほか、言語仕様に[[オブジェクト指向]]が本格的に取り入れられるなど、前バージョンの[[Microsoft Visual Basic|Visual Basic 6.0]]からの変更点はかなりの数にのぼり、言語仕様の互換性は低い。VB.NETに移行できない旧VB製アプリケーションを救済するため、VB.NETがリリースされた後にリリースされた[[Microsoft Windows]] OSにおいても、旧VBの開発環境や旧VBランタイムのサポートが条件付きで継続されるなどの特別延命措置が図られたりしている。Visual Basic .NETには、従来のVisual Basicからの移行を容易にするアップグレードウィザード<ref>[https://msdn.microsoft.com/ja-jp/library/dd297684.aspx VB 6.0 ユーザーのための VB .NET 移行ガイド - アップグレードウィザードの利用]</ref>や、従来の一部機能を実現する互換ライブラリが実装されている<ref>[http://itpro.nikkeibp.co.jp/members/NSW/ITARTICLE/20001212/1/ ITレポート(動向/解説) - 【速報】これがニューVBだ!:ITpro]</ref> <ref name=":0">[https://msdn.microsoft.com/ja-jp/library/wk6ka2wf%28v=vs.90%29.aspx Visual Basic 6.0 互換性ライブラリ]</ref>。<br />
<br />
{{See also|Microsoft Visual Basic}}<br />
<br />
[[コンパイラ]]はマイクロソフトから無料で提供されているので、[[Microsoft Windows|Windows]]付属のメモ帳等を使ってプログラムすることもできるが、専用に開発された[[統合開発環境]]を使って開発するのが一般的である。<br />
<br />
かつては旧来のVisual Basicと同様、製品は有償でのみ提供されていたが、バージョン2005以降は機能制限版であるExpressエディションが、またバージョン2013以降はProfessionalエディション相当の機能を持ちライセンス制約の強いCommunityエディションがそれぞれ無償で配布されている。<br />
<br />
VB.NETでは[[Microsoft Windows]]用の[[アプリケーションソフトウェア|アプリケーション]]開発、[[World Wide Web|Web]]用のアプリケーション開発、およびモバイル向けのアプリケーション開発などを行なうことができる。利用可能なVisual Studioプロジェクトテンプレートも、[[Microsoft Visual C Sharp|Visual C#]]とほぼ同様である。<br />
<br />
{{See also|Microsoft Visual Studio}}<br />
{{See also|Microsoft Visual Studio Express}}<br />
<br />
=== 実行速度 ===<br />
旧来のVBは[[Visual C++]]と比較してアプリケーションの実行速度性能に問題が発生することもあったが、実行環境を[[.NET Framework]]に移したVB.NETでは、最終的にコンパイラが出力するコードは[[Microsoft Visual C Sharp|Visual C#]]等と同じ[[MSIL]][[中間コード]] (Javaの[[バイトコード]]に近い) であるため、他の.NET言語と比較して速度面でも遜色ないものとなっている。なお、MSILは実行時に.NETの[[ジャストインタイムコンパイル方式|JIT]]コンパイラにより最適化されたネイティブコードに変換される。<br />
<br />
=== DirectXのサポート ===<br />
[[Direct3D]]などのマルチメディアコンポーネントを含む[[Microsoft DirectX]]に関しては、VB.NETおよび[[Microsoft Visual C Sharp|Visual C#]]などの.NET言語からDirectX 9を操作するための.NETマネージ ライブラリである[[Microsoft DirectX|Managed DirectX]]が提供されている。なお、[[Microsoft XNA|XNA]]のリリースに伴い、Managed DirectXの更新は終了しているが、[[Microsoft DirectX|Windows API Code Pack for Microsoft .NET Framework]]と呼ばれるWindows APIおよびDirectXを含むCOMコンポーネントの.NET用ラッパーライブラリ、もしくはオープンソース開発されている[[SlimDX]]ライブラリや[[Microsoft DirectX|SharpDX]]ライブラリなどを使用することで、.NET言語からもDirectX 9、DirectX 10、DirectX 11やDirectX 12を使用することが可能となっている。[[C++/CLI]]などの[[グルー言語]]により独自のラッパーを明示的に作成することで、.NET言語からDirectXを間接的に利用することも可能である。<br />
<br />
== コード例 ==<br />
以下はコンソールに"Hello, World!"と出力する例である。<br />
<source lang="vb"><br />
Module Module1<br />
Sub Main()<br />
Console.WriteLine("Hello, World!")<br />
End Sub<br />
End Module<br />
</source><br />
<br />
== Visual Basicとの文法の比較 ==<br />
これらはVisual BasicとVisual Basic .NETの文法の類似点を示したサンプルコードである。どちらもメッセージボックスに"Hello, World"のメッセージとOK[[ボタン (GUI)|ボタン]]を表示させるものである。<br />
<br />
従来のVisual Basicのコード例:<br />
<source lang="vb"><br />
Private Sub Command1_Click()<br />
MsgBox "Hello, World"<br />
End Sub<br />
</source><br />
<br />
Visual Basic .NETのコード例:<br />
<source lang="vbnet"><br />
'Imports System.Windows.Forms ' Windows Forms の場合。<br />
'Imports System.Windows ' WPF の場合。<br />
Private Sub Button1_Click(ByVal sender As System.Object, _<br />
ByVal e As System.EventArgs) Handles Button1.Click<br />
MessageBox.Show("Hello, World")<br />
End Sub<br />
</source>なお、Visual Basic .NETでも旧VBや[[VBScript]]<ref>[https://msdn.microsoft.com/ja-jp/library/cc410277.aspx MsgBox 関数]</ref> <ref>[https://msdn.microsoft.com/ja-jp/library/cc392490.aspx バージョン情報 (VBScript)]</ref>に実装されていた旧MsgBox関数などの互換機能はライブラリによってサポートされている<ref name=":0" /> <ref>[https://msdn.microsoft.com/ja-jp/library/139z2azd%28v=vs.90%29.aspx MsgBox 関数 (Visual Basic)]</ref> <ref>[http://www.atmarkit.co.jp/fdotnet/vblab/opensemi_06/opensemi_06_02.html 第6回 VB開発者が最新.NET Frameworkを効率よく習得する方法 - @IT]</ref>が、以下のように()を使ったメソッド呼び出しの形で記述しなければならない。<br />
<source lang="vbnet"><br />
Imports Microsoft.VisualBasic.Compatibility ' ファイル先頭に記述する。<br />
Private Sub Button1_Click(ByVal sender As System.Object, _<br />
ByVal e As System.EventArgs) Handles Button1.Click<br />
MsgBox("Hello, World")<br />
End Sub<br />
</source><br />
<br />
== Visual Basic 6.0からの変更点 ==<br />
=== オブジェクト指向への対応 ===<br />
VB6ではクラスモジュールを作ることができ、変数やメソッドのカプセル化ができた。しかし、これは[[継承 (プログラミング)|継承]]や[[ポリモーフィズム]]をサポートするものではなくオブジェクト指向プログラムと呼び難いものであった。VB.NETではこれらがサポートされ本格的なオブジェクト指向言語となった。<br />
<br />
=== .NET Frameworkライブラリ ===<br />
VB6ではVisual Basicに固有のステートメントによってフォームの制御や文字列の操作をプログラムしていたが、VB.NETでは[[C Sharp|C#]]などと共通に使われる.NET Frameworkの標準ライブラリに従ったプログラミングが必要となった。このため、従来のVBプログラマのノウハウが通用しにくい状況が生まれた。{{要出典範囲|このことがVBプログラマがVB6からVB.NETへの移行が進まない原因の一つではないかとの指摘がある|date=2015年7月}}。<br />
<br />
=== エラー処理 ===<br />
VB6ではエラー発生時に<code>On Error GoTo</code>文によってメソッド内のエラー処理にジャンプさせる方式であった。VB.NETでは[[C Sharp|C#]]や[[Java]]などと同様に<!-- ネイティブC++は標準言語仕様でfinallyブロックをサポートしていないことに注意。 -->、<code>Try〜Catch〜Finally</code>による[[例外処理]]を記述できる。これによって呼び出し先メソッド内部で生じたエラーを、呼び出し側メソッドで一括して取り扱うことができるなど、プログラムの柔軟性が増した。<br />
<br />
=== 固定長文字列の廃止 ===<br />
他の.NET言語との互換性確保のため<ref>[https://msdn.microsoft.com/ja-jp/library/dd297714.aspx VB 6.0 ユーザーのための VB .NET 移行ガイド - 固定長文字列]</ref>、固定長文字列は (基本データ型としては) サポートされなくなった。Visual Basic 6.0互換関数が用意されているが、マルチバイト文字では正常に動作しないため、目的の出力形式にエンコードしてバイト数をカウントしてから処理を行うといったコーディングが必要となる。<br />
<br />
== Visual Basic .NET の歴史 ==<br />
バージョン7.xに限りVisual Basic .NETと称しているが、従来のようにVisual Basicと名称が改められた8.0以降もVB.NETの系列であることに違いはない。Microsoft.VisualBasic.dllやvbc.exe、およびVisual Studio [[統合開発環境|IDE]]のバージョン情報ダイアログに見られるように、'''製品バージョンおよび内部バージョンはVisual Studioと同様のバージョン番号が割り当てられている'''。また、内部バージョン13は[[忌み番]]のためスキップされた。<br />
<!-- 製品バージョン番号は、Visual Studioメニューの[ヘルプ]→[Microsoft Visual Studio のバージョン情報]を参照のこと。内部バージョン番号は各アセンブリのバージョン情報を参照のこと。なお、製品バージョンと内部バージョンを混用する人間が二度と出ないよう、あえてボールド体により強調している。 --><br />
<br />
{| class="wikitable"<br />
|+ バージョンの履歴<br />
! 製品名 !! {{Nowrap|バージョン}} !! {{Nowrap|内部バージョン}} !! {{Nowrap|リリース}} !! 備考<br />
|-<br />
| Visual Basic .NET || 2002 || 7.0 || 2002年 || 言語仕様の大幅変更(完全なオブジェクト指向)。実行環境に .NET Framework 1.0 を採用。<br />
|-<br />
| {{Nowrap|Visual Basic .NET 2003}} || 2003 || 7.1 || 2003年 || .NET Framework 1.1 に対応。<br />
|-<br />
| Visual Basic 2005 || 2005 || 8.0 || 2005年 || .NET Framework 2.0 に対応。<br />
|-<br />
| Visual Basic 2008 || 2008 || 9.0 || 2007年 || LINQやラムダ式の導入など言語機能を強化。.NET Framework 3.5 に対応。<br />
|-<br />
| Visual Basic 2010||2010||10.0||2010年||.NET Framework 4.0 に対応。<br />
|-<br />
| Visual Basic 2012||2012||11.0||2012年||.NET Framework 4.5 に対応。Async/Awaitの導入。<br />
|-<br />
| Visual Basic 2013||2013||12.0||2013年||.NET Framework 4.5.1 に対応。<br />
|-<br />
| Visual Basic 2015||2015||14.0||2015年||.NET Framework 4.6 に対応。<br />
|-<br />
| Visual Basic 2017||2017||15.0||2017年||<br />
|}<br />
<br />
=== Visual Basic .NET (2002) ===<br />
[[2002年]]に、Visual Basicを基に強い[[オブジェクト指向プログラミング]]の概念を取り入れた新しい言語Visual Basic .NETの開発環境・処理系として、Microsoft Visual Studio .NET (Microsoft Visual Basic .NET) がリリースされた。VB.NETはVB6の後継言語とされ、マイクロソフト社の[[.NET Framework]]という新しい技術基盤に対応している。対応する.NETのバージョンは.NET Framework 1.0。<br />
<br />
VB.NETは新たに[[ウェブサーバ]]用のプログラム、[[World Wide Web|Web]]用のプログラムが開発できるなどの[[コンピュータネットワーク|ネットワーク]]開発機能が追加された。VB6の後継といっても、豊富な[[デバッグ]]機能が追加されたり、[[中間言語|中間コード形式]]になるといった言語設計思想そのものが変わるなど、様々な点で大幅な機能の追加および削除が行われた。<br />
<br />
=== Visual Basic .NET 2003 ===<br />
対応する.NETのバージョンは.NET Framework 1.1。<br />
<br />
=== Visual Basic 2005 ===<br />
製品名称からは「.NET」という名前がなくなったが、上記のVB.NETと連続性がある言語である。言語仕様が強化され、C# 2.0同様に[[ジェネリックプログラミング|ジェネリック]]の要素が導入されたほか、[[パーシャルクラス]]や演算子の[[オーバーロード]]などがサポートされた。また、開発環境も大きく強化されている。<br />
<br />
対応する.NETのバージョンは.NET Framework 2.0であるが、Visual Studio用の拡張をインストールすることで.NET Framework 3.0対応アプリケーションの開発も可能になる。<br />
<br />
=== Visual Basic 2008 ===<br />
同時期にリリースされたC# 3.0に合わせて言語仕様が強化され、構造化照会構文である[[統合言語クエリ|LINQ]]や、[[ラムダ計算|ラムダ式]]、[[匿名型]]などの要素が追加された。<br />
対応する.NETのバージョンは.NET Framework 3.5(.NET 3.5は3.0および2.0の完全な[[スーパーセット]]のため、3.0および2.0のアプリケーション開発も可能となっている)。<br />
<br />
=== Visual Basic 2010 ===<br />
対応する.NETのバージョンは.NET Framework 4.0(3.5、3.0、2.0での開発も可能)。<br />
<br />
C#の言語設計者として知られるアンダース・ヘルスバーグ氏が設計に携わり、VBとC#との間の言語間の格差の低減が図られるようになった<ref>{{Cite web|title=Visual Basic 2010の新機能 - @IT|url=http://www.atmarkit.co.jp/fdotnet/chushin/vb2010features_01/vb2010features_01_01.html|accessdate=2011-11-03}}</ref> <ref>[http://www.infoq.com/jp/news/2009/06/Future-VB.NET VB.NETに未来はあるのか?]</ref>。<br />
<br />
=== Visual Basic 2012 ===<br />
.NET Framework 4.5とともに公開。[[Visual Studio]] 2012に同梱される。<br />
<br />
C# 5.0同様、非同期プログラミングを言語仕様レベルでサポートするAsync/Await構文を導入した。<br />
<br />
=== Visual Basic 2013 ===<br />
.NET Framework 4.5.1とともに公開。[[Visual Studio]] 2013に同梱される。<br />
<br />
Developer Packをインストールすることで.NET Framework 4.5.2対応アプリケーションの開発も可能になる<ref>[http://www.microsoft.com/en-us/download/details.aspx?id=42637 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]</ref>。<br />
<br />
=== Visual Basic 2015 ===<br />
2015年に.NET Framework 4.6とともに公開。[[Visual Studio]] 2015に同梱される。Roslynと呼ばれるコンパイラレイヤーにより、Visual C#と同等のIDE機能を備えるに至った<ref>[http://www.buildinsider.net/enterprise/roslyn/01 Visual Studio 2015の新機能“Roslyn”とは - Build Insider]</ref>。<br />
<br />
VB.NET 14の主要な新機能は下記のとおり。<br />
* Null値反映演算子 <code>?.</code><br />
* 複数行の文字列リテラル<br />
* <code>NameOf</code>演算子<br />
* [[文字列補間]]<br />
* 行末コメント<br />
<br />
== 脚注 ==<br />
{{Reflist}}<br />
<br />
== 関連項目 ==<br />
* [[.NET Framework]]<br />
* [[Microsoft Visual Basic]]<br />
<br />
== 外部リンク ==<br />
* [https://msdn.microsoft.com/ja-jp/library/2x7h1hfk.aspx Visual Basic - MSDN]<br />
* [https://msdn.microsoft.com/ja-jp/library/Dd314356.aspx Visual Basic 6.0 ユーザーのための Visual Basic .NET 移行ガイド - MSDN]<br />
<br />
{{.NET}}<br />
{{BASIC}}<br />
<br />
{{DEFAULTSORT:Visual Basic .NET}}<br />
[[Category:BASIC]]<br />
[[Category:オブジェクト指向言語]]<br />
[[Category:統合開発環境]]<br />
[[Category:コンパイラ]]<br />
[[Category:Microsoft Visual Studio|Basic .NET]]<br />
[[Category:.NET Framework]]<br />
[[Category:マイクロソフトのプログラミング言語]]</div>
240F:70:9FD7:1:85C9:9031:2153:DE38
Warning : Cannot modify header information - headers already sent by (output started at /home/users/1/sub.jp-asate/web/wiki/extensions/HeadScript/HeadScript.php:3) in /home/users/1/sub.jp-asate/web/wiki/includes/WebResponse.php on line 46