.NET でちょっとしたプログラミング(2)

2008 年 4 月 24 日 by ito

itoです。

前回 は.NETの言語開発環境であるコンパイラが、.NET関連のディレクトリの下にexe形式で存在するということをご紹介しました。

今回は、このコンパイラを作って、.NET上で動作するexeファイルを作ってみましょう。このコンパイラの使い方をマスターすれば、単純なコマンドラインプログラムを作成するためにVisual Studio Express Editionなどをインストールする必要はなくなります。

Javaなどの開発経験がある方は、Windowsの環境変数「PATH」というものを設定し(=パスを通し)、コマンドラインから実行していたかと思います。たとえばJavaの場合、環境変数には以下のようなものを設定します。

C:\j2sdk_1.4.2_06\bin

これは、このディレクトリの中にJavaのコマンドラインコンパイラであるjavac.exeが存在するため、ここにパスを通しておくのです。

同様に.NETをコマンドラインで開発する場合にはvbc.exe、csc.exe、jsc.exeのあるディレクトリにパスを通します。

C:\WINDOWS\Micfosoft.NET\Framework\v2.0.50727

環境変数の設定方法がわからない方は、@ITのWindowsTipsの記事をご覧ください。

それではさっそく、VB.NETとC#.NETにて、簡単なサンプルを作成してみましょう。

'' VB.NETの場合
'' SampleVB.vbという名前で保存
Imports System

Class Sample
    Public Shared Sub Main()
        Console.WriteLine("Hello, VB.NET")
    End Sub
End Class
// C#.NETの場合
// SampleCSharp.csという名前で保存
using System;

class SampleCSharp {
    public static void Main(string[] args) {
        Console.WriteLine("Hello, C#.NET");
    }
}

ちょっと脱線しますが、これがJavaで書いた同様のプログラムです。文法的にはC#とかなり似ていますね。Javaの経験がある開発者の方であれば、C#の習得は容易なのではないかと思います。また、VBとC#の言語に出てくる用語はお互いに似通っています。.NET Frameworkの利点の一つに、こういった言語感のなじみやすさというのはあるのではないかと考えます。

// Javaの場合
// SampleJava.javaという名前で保存
import java.lang.*;

class SampleJava {
    public static void main(String[] args) {
        System.out.println("Hello, Java");
    }
}

いよいよお待ちかね。コンパイルしてみましょう。

C:\work> vbc SampleVB.net
C:\work> csc SampleCSharp.cs

それぞれ、SampleVB.exe, SampleCSharp.exeというファイルが出力されたでしょうか。(もしエラーが出ている場合には、もう一度タイプミスがないかなどを確認してください)

実行してみます

C:\work> SampleVB
Hello, VB.NET
C:\work> SampleCSharp
Hello, C#.NET

※ SampleVB.exe、SampleCSharp.exeと実行しても同様です。これはWindowsの環境変数PATHEXTに、「PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH」のように、拡張子を指定していなくてもファイルが存在した場合にそれを実行する、というような仕組みになっているので、普段はexeをつけなくてもコマンドが実行できるという仕組みによるものです。

これで、.NET Framework を利用した開発の準備ができました。
次回は、具体的なアプリケーションを作るとともに、.NET ならではの機能についてご紹介する予定です。

タグ:

TrackBack