C#めも

作成 2003/9/30

ちょっと用事でC#に触ってみたメモです。今回利用した環境は.Net FrameWork SDKです(単にコンパイルしたり実行するだけなら、Visual何某がなくてもできるみたいです)。C#でハローワールドを書きました。あと、wsdl.exeに触ってみました。

開発環境の準備と設定

環境

準備

C#のコンパイルには、.Net FrameWork(再頒布パッケージ)、および.Net FrameWork SDKが必要です。以下のサイトからダウンロードできます。ここでは1.1をダウンロード、インストールしました。

http://www.microsoft.com/japan/msdn/netframework/downloads/

設定

コンパイラなどの実行前に、環境変数の設定が必要です。設定ファイルが、SDKをインストールしたディレクトリのBin/SDKVars.batにあります。うちの場合はここC:\Program Files\Microsoft.NET\SDK\v1.1\Binにありました。これを実行します。

参考
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cptools/html/cpconnetframeworktools.asp

はろーわーるど

ソース書く

こんな感じです。

リスト hello.cs

using System;
class Hello{
    public static void Main(string[] args){
        Console.WriteLine("hello!");
    }
}

javaと比較すると、usingはpackage。stringは小文字。System.outはConsole.WriteLineて感じです。なお、Mainの頭文字は大文字です。

コンパイル

コンパイルコマンドはcsc(しーしゃーぷこんぱいら、多分)です。エラーがなければexeができます。

C:\tmp\cs>csc hello.cs
Microsoft (R) Visual C# .NET Compiler version 7.10.3052.4
for Microsoft (R) .NET Framework version 1.1.4322
Copyright (C) Microsoft Corporation 2001-2002. All rights reserved.

実行

hello.exeを実行。

C:\tmp\cs>hello
hello!

おおおお、動いた!

Webサービスの利用

wsdl.exe

wsdl.exeはWSDLファイルからC#プロキシコードを生成するツールです。最も簡単な例ではWSDLのURL(かパス)を指定して実行します。なお、ここでは指定しているWSDLは、ローカルホストのTomcat / Apache Axisで動いているWebサービスのWSDL(←※注、これはうちのローカルホストです)です。どっかで公開されてるWSDLを指定しても同じことができるでしょう。

C:\tmp\cs>wsdl http://localhost:8080/axis/Hello.jws?wsdl
Microsoft(R) Web Services Description Language Utility
[Microsoft (R) .NET Framework, Version 1.1.4322.573]
Copyright (C) Microsoft Corporation 1998-2002. All rights reserved.

ファイル 'C:\tmp\cs\HelloService.cs' に書き込んでいます。

クライアントコード

作成されたHelloService.csを使ってWebサービスのクライアントコードを書きます。

リスト Client.cs

using System;

public class Client{
    public static void Main(string[] args){
        HelloService s = new HelloService();
        string message = s.sayHello();
        Console.WriteLine(message);
    }
}

実行

コンパイルして、

C:\tmp\cs>csc *.cs
Microsoft (R) Visual C# .NET Compiler version 7.10.3052.4
for Microsoft (R) .NET Framework version 1.1.4322
Copyright (C) Microsoft Corporation 2001-2002. All rights reserved.


C:\tmp\cs>dir
 ドライブ C のボリューム ラベルは IBM_PRELOAD です
 ボリューム シリアル番号は EC63-DD0E です

 C:\tmp\cs のディレクトリ

2003/09/30  11:19    <DIR>          .
2003/09/30  11:19    <DIR>          ..
2003/09/30  11:19               194 Client.cs
2003/09/30  11:19             4,096 Client.exe
2003/09/30  11:12             1,993 HelloService.cs
               3 個のファイル               6,283 バイト
               2 個のディレクトリ  13,719,879,680 バイトの空き領域

実行です。

C:\tmp\cs>Client
hello!

Axis(Tomcat)側

2003/09/30 10:01:16 org.apache.struts.util.PropertyMessageResources 
情報: Initializing, config='org.apache.webapp.admin.ApplicationResources', retur
nNull=true
2003/09/30 10:01:20 org.apache.coyote.http11.Http11Protocol start
情報: Coyote HTTP/1.1をポート 8080 で起動します
2003/09/30 10:01:20 org.apache.jk.common.ChannelSocket init
情報: JK2: ajp13 listening on /0.0.0.0:8009
2003/09/30 10:01:20 org.apache.jk.server.JkMain start
情報: Jk running ID=0 time=40/130  config=C:\app\jakarta-tomcat-4.1.27\bin\..\co
nf\jk2.properties
- Unable to find config file.  Creating new servlet engine config file: /WEB-INF
/server-config.wsdd
call sayHello

動いてます〜〜〜

感想

Visual Studio入れなくても、これぐらいの簡単な例はできちゃうってのが感動です。複雑なクラスなどは動かないとめんどくさいのでやりません。


TOP