Archive for the ‘VB.NET’ Category

  1. 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!
  2. 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!             |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    +------------------------------------------+
  3. 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!           |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    +------------------------------------------+
  4. 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!       |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    |                                          |
    +------------------------------------------+
  5. 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] |
    +----------------------------------------+
  6. 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   
    ---------------------------
  7. 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!
  8. 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!
  9. 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!