.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です。次回はこれらのコンパイラを使って、コンソールアプリケーションを作ってみたいと思います。
タグ: .NET