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

2008 年 4 月 16 日 by ito

こんにちはitoです。

最近、WindowsからMacに移行し、UNIXベースのOSということで、ちょっとしたプログラミングが必要になったとき、シェル、もしくは標準でインストールされたPerlやRubyやPHPという軽量言語(Lightweight Language)を普段は利用しています。(もちろんJavaやCの環境も入っていますが、めったに使いません)

さて、そんな中、Windowsにおいては、VBScriptやJScript程度しか、プログラムを動かすための環境が標準ではほとんど入っておらず、またWindowsのバッチもコマンドが限られるため、たとえば「ファイル行数が何行か?」ということを知るというだけのことですら、簡単に調べることができないかと思います。

ちなみに上記はUNIX系のOSの場合、grepコマンドを用いて

$ grep -c ""

とすることで求められます。

さて、従来のVBScriptによる方法で同じことを書いてみましょう。

Option Explicit
Dim objFSO
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")

Dim objStream
Set objStream = objFSO.OpenTextFile("test.vbs", 1) '1: For read
Dim lines
lines = 0
Do Until objStream.AtEndOfStream
objStream.readLine
lines = lines + 1
Loop
objStream.Close
Wscript.echo lines

今回話題にしたいのは実はこれだけではありません。最近のほとんどのWindowsには実は、もうひとつの開発環境が備わっていることが多いのです。今回はその「.NET Framework」についてご紹介します。

.NET Framework はマイクロソフトが開発したアプリケーション開発、実行環境ですが、多くの方にとっては「実行環境」としてのイメージが強いでしょう。あるexe形式のファイルを実行したときに、.NET Frameworkがインストールされていないためにアプリケーションが動作しなかったことがある方もいらっしゃるのではないでしょうか。VBの時代では「ランタイム」と呼ばれていたものです。

実はこの.NET Frameworkの環境ですが%WINDIR%\Microsoft .NET配下にインストールされます。この下を見ていくと、バージョンによって、下記のようなフォルダが見つかります。

  • v1.0.3705
  • v1.1.4322
  • v2.0.50727

実はこの下に、.NET Framework で利用することのできる言語(C#、JScript、VB)の開発環境が含まれています。ためしに、以下のコマンドを実行してみましょう。(パス等はOS,.NET Frameworkのバージョンにより異なります)

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727> csc /help

以下のような結果が出力されたでしょうか?

Microsoft(R) Visual C# 2005 Compiler version 8.00.50727.42
for Microsoft(R) Windows(R) 2005 Framework version 2.0.50727
Copyright (C) Microsoft Corporation 2001-2005. All rights reserved.

これで、C#のコンパイラが入っていることがわかります。JScriptのコンパイラはjsc.exe、VBのコンパイラはvbc.exeです。次回はこれらのコンパイラを使って、コンソールアプリケーションを作ってみたいと思います。

タグ:

TrackBack