Archive for the ‘VB.NET’ Category
-
Hello, Connector/NET(VB.NET) World!
Posted on 4月 2nd, 2013 by cx20
Connector/NET(VB.NET)
Connector/NET は、.NET ベースの MySQL 接続用 API である。
以下は VB.NET による Connector/NET ライブラリを使用した MySQL への接続例となっている。ソースコード(VB.NET + Connector/NET + MySQL)
Imports System Imports MySql.Data.MySqlClient Class Hello Shared Sub Main() Dim conStr As String = "server=localhost;user id=root;password=P@ssW0rd" Dim sqlStr As String = "SELECT 'Hello, Connector/NET World!' AS Message" Dim con As MySqlConnection = New MySqlConnection(conStr) Dim cmd As MySqlCommand = New MySqlCommand(sqlStr, con) con.Open() Dim reader As MySqlDataReader = cmd.ExecuteReader() While reader.Read() Console.WriteLine( reader.GetName(0) ) Console.WriteLine( "---------------------" ) Console.WriteLine( reader(0) ) End While reader.Close() con.Close() End Sub End Class
コンパイル方法
C:¥> vbc /r:MySql.Data.dll Hello.vb
実行結果
MESSAGE --------------------- Hello, Connector/NET World!
-
Hello, DirectX(VB.NET) World!
Posted on 7月 29th, 2012 by cx20
Win32 DirectX(VB.NET)
DirectX はマイクロソフトが Wnidows 用に開発したマルチメディア処理用 API である。
.NET Framework 用の DirectX ライブラリとしては、DirectX SDK より入手可能な Managed DirectX がある。
以下は VB.NET における Managed DirectX アプリケーション の例となっている。ソースコード
Imports System Imports System.Drawing Imports System.Windows.Forms Imports Microsoft.DirectX Imports Microsoft.DirectX.Direct3D Public Class HelloForm Inherits Form Private device_ As Device Private presentParam_ As PresentParameters Private font_ As Microsoft.DirectX.Direct3D.Font Public Sub New() MyBase.Size = New Size(640, 480) Me.Text = "Hello, World!" End Sub Public Function InitD3D() As Boolean Me.presentParam_ = New PresentParameters() Me.presentParam_.Windowed = True Me.presentParam_.SwapEffect = SwapEffect.Discard Me.device_ = New Device(0, DeviceType.Hardware, Me, CreateFlags.HardwareVertexProcessing, Me.presentParam_) Me.InitFont() Return True End Function Private Sub InitFont() Dim description As FontDescription = New FontDescription() description.Height = 16 description.FaceName = "MS ゴシック" Me.font_ = New Microsoft.DirectX.Direct3D.Font(Me.device_, description) End Sub Public Sub Render() If Not Me.device_ Is Nothing Then Me.device_.Clear(ClearFlags.Target, Color.Blue, 1.0F, 0) Me.device_.BeginScene() Me.font_.DrawText(Nothing, "Hello, DirectX(VB.NET) World!", New Point(10, 10), Color.White) Me.device_.EndScene() Me.device_.Present() End If End Sub Shared Sub Main() Using helloForm As New HelloForm() helloForm.InitD3D() helloForm.Show() While helloForm.Created helloForm.Render() Application.DoEvents() End While End Using End Sub End Class
コンパイル方法
C:¥> vbc ^ /target:winexe ^ /platform:x86 ^ /r:"C:WindowsMicrosoft.NETDirectX for Managed Code1.0.2902.0Microsoft.DirectX.dll" ^ /r:"C:WindowsMicrosoft.NETDirectX for Managed Code1.0.2902.0Microsoft.DirectX.Direct3D.dll" ^ /r:"C:WindowsMicrosoft.NETDirectX for Managed Code1.0.2911.0Microsoft.DirectX.Direct3DX.dll" ^ Hello.vb
実行結果
+------------------------------------------+ |Hello, World! [_][~][X]| +------------------------------------------+ |Hello, DirectX(VB.NET) World! | | | | | | | | | | | | | | | | | | | +------------------------------------------+
-
Hello, Win32 GUI(VB.NET) World!
Posted on 7月 10th, 2012 by cx20
Win32 GUI(VB.NET)
Win32 アプリケーションは Windows 標準 API である Win32 API を使用した Windows アプリケーションである。
以下は VB.NET において Win32 API を使用した GUI アプリケーション の例となっている。ソースコード
Imports System.Runtime.InteropServices Public Class HelloWindow Const WS_CAPTION As Integer = &HC00000 Const WS_MAXIMIZEBOX As Integer = &H10000 Const WS_MINIMIZEBOX As Integer = &H20000 Const WS_OVERLAPPED As Integer = &H0 Const WS_SYSMENU As Integer = &H80000 Const WS_THICKFRAME As Integer = &H40000 Const WS_OVERLAPPEDWINDOW As Integer = ( _ WS_OVERLAPPED Or _ WS_CAPTION Or _ WS_SYSMENU Or _ WS_THICKFRAME Or _ WS_MINIMIZEBOX Or _ WS_MAXIMIZEBOX) Const COLOR_WINDOW As Integer = 5 Const COLOR_BTNFACE As Integer = 15 Const CS_VREDRAW As Integer = &H1 Const CS_HREDRAW As Integer = &H2 Const CW_USEDEFAULT As Integer = &H80000000 Const IDI_APPLICATION As Integer = 32512 Const IDC_ARROW As Integer = 32512 Const LTGRAY_BRUSH As Integer = 1 Const SW_SHOWNORMAL As Integer = 1 Const SW_SHOWDEFAULT As Integer = 10 Const WM_DESTROY As Integer = &H2 Const WM_PAINT As Integer = &HF Delegate Function WndProcDelgate( _ ByVal hWnd As IntPtr, _ ByVal Message As Integer, _ ByVal wParam As IntPtr, _ ByVal lParam As IntPtr _ ) As IntPtr <StructLayout(LayoutKind.Sequential)> _ Structure POINTAPI Public x As Integer Public y As Integer End Structure <StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Auto)> _ Structure MSG Public hWnd As IntPtr Public Message As Integer Public wParam As IntPtr Public lParam As IntPtr Public time As Integer Public pt As POINTAPI End Structure <StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Auto)> _ Structure WNDCLASSEX Public cbSize As Integer Public style As Integer Public lpfnWndProc As WndProcDelgate Public cbClsExtra As Integer Public cbWndExtra As Integer Public hInstance As IntPtr Public hIcon As IntPtr Public hCursor As IntPtr Public hbrBackground As IntPtr Public lpszMenuName As String Public lpszClassName As String Public hIconSm As IntPtr End Structure <StructLayout(LayoutKind.Sequential)> _ Structure RECT Public Left As Integer Public Top As Integer Public Right As Integer Public Bottom As Integer End Structure <StructLayout(LayoutKind.Sequential)> _ Structure PAINTSTRUCT Public hdc As IntPtr Public fErase As Integer Public rcPaint As RECT Public fRestore As Integer Public fIncUpdate As Integer <MarshalAs(UnmanagedType.ByValArray, SizeConst := 32)> _ Public rgbReserved As Byte() End Structure Declare Auto Function LoadCursor Lib "user32" ( _ ByVal hInstance As IntPtr, _ ByVal lpCursorName As IntPtr _ ) As IntPtr Declare Auto Function LoadIcon Lib "user32" ( _ ByVal hInstance As IntPtr, _ ByVal lpIconName As IntPtr _ ) As IntPtr Declare Auto Function RegisterClassEx Lib "user32" ( _ ByRef pcWndClassEx As WNDCLASSEX _ ) As Integer Declare Auto Function CreateWindowEx Lib "user32" ( _ ByVal dwExStyle As Integer, _ ByVal lpClassName As String, _ ByVal lpWindowName As String, _ ByVal dwStyle As Integer, _ ByVal x As Integer, _ ByVal y As Integer, _ ByVal nWidth As Integer, _ ByVal nHeight As Integer, _ ByVal hWndParent As IntPtr, _ ByVal hMenu As IntPtr, _ ByVal hInstance As IntPtr, _ ByVal lpParam As IntPtr _ ) As IntPtr Declare Function ShowWindow Lib "user32" ( _ ByVal hWnd As IntPtr, _ ByVal nCmdShow As Integer _ ) As Boolean Declare Function UpdateWindow Lib "user32" (ByVal hWnd As IntPtr) As Boolean Declare Auto Function GetMessage Lib "user32" ( _ ByRef lpMsg As MSG, _ ByVal hWnd As IntPtr, _ ByVal wMsgFilterMin As Integer, _ ByVal wMsgFilterMax As Integer _ ) As Boolean Declare Function TranslateMessage Lib "user32" ( _ ByRef lpMsg As MSG _ ) As Boolean Declare Auto Function DispatchMessage Lib "user32" ( _ ByRef lpMsg As MSG _ ) As IntPtr Declare Sub PostQuitMessage Lib "user32" ( _ ByVal nExitCode As Integer _ ) Declare Function BeginPaint Lib "user32" ( _ ByVal hwnd As IntPtr, _ ByRef lpPaint As PAINTSTRUCT _ ) As IntPtr Declare Function EndPaint Lib "user32" ( _ ByVal hwnd As IntPtr, _ ByRef lpPaint As PAINTSTRUCT _ ) As IntPtr Declare Auto Function TextOut Lib "gdi32" ( _ ByVal hdc As IntPtr, _ ByVal x As Integer, _ ByVal y As Integer, _ ByVal lpString As String, _ ByVal nCount As Integer _ ) As Integer Declare Function GetStockObject Lib "gdi32" ( _ ByVal nIndex As Integer _ ) As IntPtr Declare Auto Function DefWindowProc Lib "user32" ( _ ByVal hWnd As IntPtr, _ ByVal wMsg As Integer, _ ByVal wParam As IntPtr, _ ByVal lParam As IntPtr _ ) As IntPtr Function WndProc( _ ByVal hWnd As IntPtr, _ ByVal msg As Integer, _ ByVal wParam As IntPtr, _ ByVal lParam As IntPtr _ ) As IntPtr Dim ps As New PAINTSTRUCT Dim hdc As IntPtr Dim strMessage As String strMessage = "Hello, Win32 GUI(VB.NET) World!" Select Case msg Case WM_PAINT hdc = BeginPaint(hwnd, ps) TextOut( hdc, 0, 0, strMessage, Len(strMessage) ) EndPaint( hwnd, ps ) Case WM_DESTROY PostQuitMessage(0) Case Else Return DefWindowProc(hWnd, msg, wParam, lParam) End Select Return IntPtr.Zero End Function Public Function WinMain() As Integer Const CLASS_NAME As String = "helloWindow" Const WINDOW_NAME As String = "Hello, World!" Dim hInstance As IntPtr = Marshal.GetHINSTANCE(GetType(HelloWindow).Module) Dim hWnd As IntPtr Dim msg As MSG Dim wcex As New WNDCLASSEX With wcex .cbSize = Marshal.SizeOf(wcex) .style = CS_HREDRAW Or CS_VREDRAW .lpfnWndProc = New WndProcDelgate(AddressOf WndProc) .cbClsExtra = 0 .cbWndExtra = 0 .hInstance = hInstance .hIcon = LoadIcon(hInstance, New IntPtr(IDI_APPLICATION)) .hCursor = LoadCursor(hInstance, New IntPtr(IDC_ARROW)) .hbrBackground = New IntPtr(COLOR_WINDOW + 1) .lpszMenuName = Nothing .lpszClassName = CLASS_NAME .hIconSm = LoadIcon(hInstance, New IntPtr(IDI_APPLICATION)) End With RegisterClassEx(wcex) hWnd = CreateWindowEx( _ 0, _ CLASS_NAME, _ WINDOW_NAME, _ WS_OVERLAPPEDWINDOW, _ CW_USEDEFAULT, CW_USEDEFAULT, 640, 480, _ IntPtr.Zero, IntPtr.Zero, hInstance, IntPtr.Zero) ShowWindow(hWnd, SW_SHOWDEFAULT) UpdateWindow(hWnd) Do While GetMessage(msg, IntPtr.Zero, 0, 0) TranslateMessage(msg) DispatchMessage(msg) Loop Return CType(msg.wParam, Integer) End Function Public Shared Sub Main() Dim hello As New HelloWindow hello.WinMain() End Sub End Class
コンパイル方法
C:¥> vbc /target:winexe Hello.vb
実行結果
+------------------------------------------+ |Hello, World! [_][~][X]| +------------------------------------------+ |Hello, Win32 GUI(VB.NET) World! | | | | | | | | | | | | | | | | | | | +------------------------------------------+
-
Hello, Windows Forms(VB.NET) World!
Posted on 6月 2nd, 2012 by cx20
Windows Forms(VB.NET)
Windows フォーム(Windows Forms)は .NET Framework におけるユーザーインターフェイス基盤である。Windows アプリケーションにおけるウィンドウやダイアログに対応する。
以下は VB.NET における Windows フォーム の例となっている。ソースコード
Imports System Imports System.Drawing Imports System.Windows.Forms Class HelloForm Inherits Form Public Sub New() Me.Size = New Size( 640, 480 ) Me.Text = "Hello, World!" Dim label1 As New Label label1.Size = New Size( 320, 20 ) label1.Text = "Hello, Windows Forms(VB.NET) World!" Me.Controls.Add( label1 ) End Sub <STAThread> _ Shared Sub Main() Dim form As New HelloForm() Application.Run(form) End Sub End Class
コンパイル方法
C:¥> vbc /target:winexe Hello.vb
実行結果
+------------------------------------------+ |Hello, World! [_][~][X]| +------------------------------------------+ |Hello, Windows Forms(VB.NET) World! | | | | | | | | | | | | | | | | | | | +------------------------------------------+
-
Hello, COM(VB.NET) World!
Posted on 5月 18th, 2012 by cx20
COM(VB.NET)
COM(Component Object Model)はマイクロソフトの提唱するプログラム部品の仕様である。
COM を用いて開発された部品であれば言語を問わず利用することができる。
以下は VB.NET による COM クライアント(事前バインディングならびに実行時バインディング)の例となっている。ソースコード(事前バインディング)
Imports System Imports System.Runtime.InteropServices Imports Shell32 Module Hello Sub Main() Dim shell As New Shell Dim folder As Folder Dim vRootFolder As Object = ShellSpecialFolderConstants.ssfWINDOWS folder = shell.BrowseForFolder(0, "Hello, COM(VB.NET) World!", 0, vRootFolder) If Not folder Is Nothing Then Marshal.ReleaseComObject(folder) End If Marshal.ReleaseComObject(shell) End Sub End Module
コンパイル方法(事前バインディング)
C:¥> SET PATH=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin;%PATH% C:¥> tlbimp %SystemRoot%\system32\shell32.dll /out:Shell32.dll C:¥> vbc /r:Shell32.dll Hello.vb
ソースコード(実行時バインディング)
Imports System Imports System.Runtime.InteropServices Module Hello Sub Main() Dim shell As Object Dim folder As Object shell = CreateObject("Shell.Application") folder = shell.BrowseForFolder(0, "Hello, COM(VB.NET) World!", 0, 36) If Not folder Is Nothing Then Marshal.ReleaseComObject(folder) End If Marshal.ReleaseComObject(shell) End Sub End Module
コンパイル方法(実行時バインディング)
C:¥> vbc Hello.vb
実行結果
+----------------------------------------+ |Browse For Folder [X]| +----------------------------------------+ | Hello, COM(VB.NET) Wolrd! | | | | +------------------------------------+ | | |[Windows] | | | | +[addins] | | | | +[AppCompat] | | | | +[AppPatch] | | | | +[assembly] | | | | : | | | | : | | | | : | | | +------------------------------------+ | | [Make New Folder] [ OK ] [Cancel] | +----------------------------------------+
-
Hello, Win32 API(VB.NET) World!
Posted on 4月 24th, 2012 by cx20
Win32 API(VB.NET)
Win32 API は、Windows の機能にアクセスする為の API(Application Programming Interface)である。
以下は VB.NET にて Declare ステートメントを用いた呼出し例である。ソースコード
Imports System Imports System.Runtime.InteropServices Module Hello Declare Auto Function MessageBox Lib "user32.dll" Alias "MessageBox" ( _ ByVal hWnd As IntPtr, _ ByVal lpText As String, _ ByVal lpCaption As String, _ ByVal nType As UInteger _ ) As Integer Sub Main() MessageBox( New IntPtr(0), "Hello, Win32 API(VB.NET) World!", "Hello, World!", 0 ) End Sub End Module
「文字セット」に「Auto」を指定した場合は「エイリアス名」「プラットフォーム」に応じて、呼び出される API 関数名が自動判別される。
「文字セット」に「Ansi」もしくは「Unicode」を指定した場合は「エイリアス名」が API 関数名として使用される為、”A” / “W” のどちらのバージョンであるか明示的に指定する必要がある。(指定を行わない場合、関数名が見つからずエラーとなる)文字セット指定 エイリアス名 プラットフォーム 文字変換 判別 API関数名 Auto MessageBox Windows 9x系 ANSI “A” MessageBoxA Auto MessageBox Windows NT系 Unicode “W” MessageBoxW Ansi または 省略 MessageBox – ANSI – Not Found Ansi または 省略 MessageBoxA – ANSI – MessageBoxA Unicode MessageBox – Unicode – Not Found Unicode MessageBoxW – Unicode – MessageBoxW また、Win32 データ型と VB.NET データ型の対応は主に以下のようになっている。「(2.0)」は、.NET Framework 2.0 で追加された型を示す。文字関連の型に関しては文字セット指定が必要なことに注意。
Win32 データ型 C/C++ データ型 .NET データ型 VB.NET データ型 HANDLE void * IntPtr – BYTE unsigned char Byte Byte SHORT short Int16 Short WORD unsigned short UInt16 UShort (2.0) INT int Int32 Integer UINT unsigned int UInt32 UInteger (2.0) LONG long Int32 Integer BOOL int Int32 Integer DWORD unsigned long UInt32 UInteger (2.0) ULONG unsigned long UInt32 UInteger (2.0) CHAR char Char (Ansi) Char (Ansi) WCHAR wchar_t Char (Unicode) Char (Unicode) LPSTR char * StringBuilder (Ansi) – LPCSTR const char * String (Ansi) String (Ansi) LPWSTR wchar_t * StringBuilder (Unicode) – LPCWSTR const wchar_t * String (Unicode) String (Unicode) FLOAT float Single Single DOUBLE double Double Double コンパイル方法
C:¥> vbc Hello.vb
実行結果
--------------------------- Hello, World! --------------------------- Hello, Win32 API(VB.NET) World! --------------------------- OK ---------------------------
-
Hello, ASP.NET Razor World!
Posted on 2月 11th, 2012 by cx20
ASP.NET Razor
Razor は ASP.NET の新しい Web ページ記述構文である。
ASP や PHP のように HTML の中にスクリプトを埋め込むように記述できるという特徴がある。
実際の記述コードの言語としては、C# や Visual Basic(VB.NET)が用いられる。
実行環境として ASP.NET MVC 3 もしくは WebMatrix が必要。ソースコード(C# による Razor 記法)
@{ var msg = "ASP.NET Razor"; } <html> <head> <title>Hello, World!</title> </head> <body> <p>Hello, @msg World!</p> </body> </html>
ソースコード(Visual Basic による Razor 記法)
@Code Dim msg = "ASP.NET Razor" End Code <html> <head> <title>Hello, World!</title> </head> <body> <p>Hello, @msg World!</p> </body> </html>
上記 Razor 記法のコードは、以下の .NET のコードに相当する。実行時に .NET アセンブリにコンパイルされ実行される。
ソースコード(C#)
namespace ASP { using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Web; using System.Web.Helpers; using System.Web.Security; using System.Web.UI; using System.Web.WebPages; using System.Web.WebPages.Html; using WebMatrix.WebData; using WebMatrix.Data; public class _Page_hello_cshtml : System.Web.WebPages.WebPage { public _Page_hello_cshtml() { } protected System.Web.HttpApplication ApplicationInstance { get { return ((System.Web.HttpApplication)(Context.ApplicationInstance)); } } public override void Execute() { var msg = "ASP.NET Razor"; WriteLiteral("<html>rn<head>rn<title>Hello, World!</title>rn</body>rn<body>rn<p>Hello, "); Write(msg); WriteLiteral(" World!</p>rn</body>rn</html> "); } } }
実行方法
1. IIS の公開フォルダ に配置 2. ブラウザで表示 http://localhost/doc/hello.cshtml … C# の場合 http://localhost/doc/hello.vbhtml … VB の場合
実行結果
Hello, ASP.NET Razor World!
-
Hello, ASP.NET World!
Posted on 2月 10th, 2012 by cx20
ASP.NET
ASP.NET は、ASP の後継でマイクロソフトの Web サーバー(IIS)でプログラムを動作させる技術の一つである。
既定の言語として Visual Basic(VB.NET)や C# が用いられるが、実際にはコンパイルされた .NET アセンブリが使用される為、JScript.NET や C++/CLI など .NET に対応した他の言語でも記述が可能である。
ソースコード(Visual Basic)
<%@ Page Language="VB" %> <html> <head> <title>Hello, World!</title> </head> <body> <p><% Response.Write( "Hello, ASP.NET World!" ) %></p> </body> </html>
ソースコード(C#)
<%@ Page Language="C#" %> <html> <head> <title>Hello, World!</title> </head> <body> <p><% Response.Write( "Hello, ASP.NET World!" ); %></p> </body> </html>
ソースコード(JScript.NET)
<%@ Page Language="JScript" %> <html> <head> <title>Hello, World!</title> </head> <body> <p><% Response.Write( "Hello, ASP.NET World!" ); %></p> </body> </html>
上記コードは、以下の .NET のコードに相当する(以下の例は C# のケース)。実行時に .NET アセンブリにコンパイルされ実行される。
ソースコード
namespace ASP { using System.Web; using System.Text.RegularExpressions; using System.Web.Profile; using System.Web.UI.WebControls; using System.Web.Security; using System.Collections.Generic; using System.Collections.Specialized; using System; using System.Xml.Linq; using System.Collections; using System.Linq; using System.Web.UI; using System.Web.DynamicData; using System.Text; using System.Web.Caching; using System.Web.UI.HtmlControls; using System.Configuration; using System.Web.UI.WebControls.WebParts; using System.Web.SessionState; using System.ComponentModel.DataAnnotations; [System.Runtime.CompilerServices.CompilerGlobalScopeAttribute()] public class hello_aspx : global::System.Web.UI.Page, System.Web.SessionState.IRequiresSessionState, System.Web.IHttpHandler { private static bool @__initialized; private static object @__fileDependencies; [System.Diagnostics.DebuggerNonUserCodeAttribute()] public hello_aspx() { string[] dependencies; ((global::System.Web.UI.Page)(this)).AppRelativeVirtualPath = "~/hello.aspx"; if ((global::ASP.hello_aspx.@__initialized == false)) { dependencies = new string[1]; dependencies[0] = "~/hello.aspx"; global::ASP.hello_aspx.@__fileDependencies = this.GetWrappedFileDependencies(dependencies); global::ASP.hello_aspx.@__initialized = true; } this.Server.ScriptTimeout = 30000000; } protected System.Web.Profile.DefaultProfile Profile { get { return ((System.Web.Profile.DefaultProfile)(this.Context.Profile)); } } protected override bool SupportAutoEvents { get { return false; } } protected System.Web.HttpApplication ApplicationInstance { get { return ((System.Web.HttpApplication)(this.Context.ApplicationInstance)); } } [System.Diagnostics.DebuggerNonUserCodeAttribute()] private void @__BuildControlTree(hello_aspx @__ctrl) { this.InitializeCulture(); @__ctrl.SetRenderMethodDelegate(new System.Web.UI.RenderMethod(this.@__Render__control1)); } private void @__Render__control1(System.Web.UI.HtmlTextWriter @__w, System.Web.UI.Control parameterContainer) { @__w.Write("rn<html>rn<head>rn<title>Hello, World!</title>rn</head>rn<body>rn<p>"); Response.Write( "Hello, ASP.NET World!" ); @__w.Write("</p>rn</body>rn</html> "); } [System.Diagnostics.DebuggerNonUserCodeAttribute()] protected override void FrameworkInitialize() { base.FrameworkInitialize(); this.@__BuildControlTree(this); this.AddWrappedFileDependencies(global::ASP.hello_aspx.@__fileDependencies); this.Request.ValidateInput(); } } }
実行方法
1. IIS の公開フォルダ に配置 2. ブラウザで表示 http://localhost/doc/hello.aspx
実行結果
Hello, ASP.NET World!
-
Hello, VB.NET World!
Posted on 12月 7th, 2011 by cx20
VB.NET
VB.NET はマイクロソフトが Visual Basic をベースに .NET Framework 環境向けに開発したプログラミング言語である。
C# 同様に、UNIX 環境向けの .NET Framework 互換プロジェクト「Mono」により他の OS でも動作できるようになってきている。
ソースコード
Imports System Class Hello Shared Sub Main() Console.WriteLine ("Hello VB.NET World!") End Sub End Class
コンパイル&実行方法(Mono)
$ vbnc Hello.vb $ mono Hello.exe
コンパイル&実行方法(.NET Framework)
C:¥> vbc Hello.vb C:¥> Hello
実行結果
Hello, VB.NET World!