RBB TODAYはブロードバンドへのエントリーから活用までをカバーした日本最大のブロードバンド情報サイトです。 PR PCならストーム■BTOとカスタムパソコン……2万円台〜超ハイエンドまで
RBBトップエンタープライズモバイルBizコンテンツ情報デジタル家電IT辞典スピード測定エンジニア生活

ブロードバンド

RBB検索

ソフトウェアレビュー


Microsoft開発の新言語

C#(シーシャープ)RADツール

Visual C#.NET



vcsstandard
 Visual C#.NETはMicrosoftが開発した新しいプログラミング言語C#(シーシャープ)のビジュアル開発環境だ。Visual Studio.NETに含まれるVisual BasicやVisual C++などとGUI環境は共通化されている。RAD(Rapid Application Development)ツールとしての実力はかなりのもので、Visual Basicの最大のライバルになるかもしれない。




■Microsoft版Javaはどこに?

 Visual Studio 6.0にはVisual J++というJava開発環境が含まれていた。Javaはご存じのとおり、Sun Microsysemsが開発したプラットホーム非依存の言語で、Java Virtual Machine(JVM)上で中間コード(classファイル)が動作する、という特徴を持っている。また、スタンドアロンで動作する「Javaアプリケーション」と、Webブラウザ環境でのみ動作する「Javaアプレット」という2つのアプリケーションの形態がある。特に後者のJavaアプレットは、表示のみを行う機能が中心のWebブラウザでは不可能な、さまざまなプログラムの実行のために広く利用されてきている。JavaServeletなど、最近ではWebサーバのサーバサイドプログラミングにも応用が広がっている。Javaには、1つのプログラムがさまざまなプラットホームで実行できるという利点がある反面、JVM上での動作となるためパフォーマンスが得られないとか、プラットホーム独自の機能が利用できない、といった不便さも同時に存在している。

 Microsoftは、Windowsに最適化したVirtual Machine(VM)や中間コードをネイティブコードにコンパイルしなおすJIT(Just-In-Time)コンパイラを独自に開発したり、Windows Foudation Classes(WFC)for Javaを用意するなどして、不便さの解決を図ってきた。しかし、この動きはJavaの開発を主体的に行いたいと考えているSun Microsystemsには受け入れがたいものであったようだ。Sun Microsystemsはライセンス契約違反であるとしてMicrosoftを提訴し、長期にわたる交渉の後ようやく両社は和解に達した。詳細は省くが、Microsoftに与えられていたJavaのライセンスは無効となり、「Java」の名称の使用も含めてこれまでの形でMicrosoftがJavaを利用することはできなくなった。両社にそれぞれの言い分はあるが、もっとも不利益を被ったのはJavaプログラマ達だ。MicrosoftはWindows XP(Internet Explorer 6)へのVMの搭載も行わず(Webサイトからのダウンロードは可能)、WindowsにおけるJava環境は後退していると言っていい。Javaの開発は現在のVisual J++を使い続けるか、Sun Microsystemsが提供するJ2SE/EE SDKやForte for Javaなどで行うことになる。

 言語から実行環境まで含めたJavaの使用ができなくなったものの、Microsoftは言語としてのJavaの利用は続けている。Visual J++の後継バージョンに相当するVisual J#(現在のところβ版)は、JVM用のコードの出力は行わないものの、Visual J++からの移行ツールなどMicrosoftが独自に開発した部分を中心に互換性を確保した開発ツールだ。ここで紹介するVisual C#.NETもJava言語からの移行を考慮しており、MicrosoftはJava言語をC#言語に変換するツール「Java Language Conversion Assistant」(現在のところβ版)の提供も行っている。


■それでは、C#とはどのような言語なのか?

 C#(シー・シャープ)は、Microsoft版のJavaと誤解されがちであるが、その実体はまったく異なる言語だ。JavaがCやC++を元に開発されたように、C#もCやC++を元に開発されているし、当然Javaも参考にしていると思われるので、言語仕様(文法)には類似点が多い。Javaを知っていればC#を習得するのは簡単だし、その逆も言える。しかし、Javaと似ているのは文法だけで、文法以外の部分はVisual Basicと同じ部分が多い。「C、C++、Javaによく似た言語で開発できるVisual Basic」と言うのがもっともふさわしい表現だろう(図1)。
図1
図1 Visual C#.NETのWindowsフォームデザイン画面。Visual Basic.NETのWindowsフォームデザイン画面と同じ画面と操作性を持つ。異なるのは作成するファイルの拡張子が.csであることくらいだ

 Microsoftは.NET Frameworkのひとつとして、Common Language Runtimeというプログラミング言語に依存しないモジュールを開発した。Visual Basic、Visual C++、JScript、そしてVisual C#で作成したアプリケーションが、Common Language Runtime上で動作する。Visual C++にはCommon Language Runtimeに依存しないコードを作成する機能があるが、Visual Basic、JScript、Visual C#で作成したコードの実行にはCommon Language Runtimeを必要とする。つまり、Visual Basic、JScript、Visual C#はそれぞれ言語仕様が異なるが、呼び出されて実行される部分は共通ということになるのだ。

 現在のところCommon Language RuntimeはWindows版しか存在していないが、Microsoftは他のプラットホームへの移植を否定していない。また、いくつかのベンダーがCommon Language Runtimeをターゲットにした開発言語を提供しており、中にはJava言語コンパイラもあると言う。MicrosoftのVisual J#もJava言語コンパイラのひとつと言えるだろう。Common Language Runtimeの考え方自体はJava Virtual Machineに近い。コンパイラはMSILという中間コードを生成し、JITコンパイラでネイティブコードに再コンパイルされたコードが実行されることになる。

 たとえば、「Hello, World!」と出力するコンソールアプリケーションを例にVisual Basic.NETとVisual C#.NETを比べてみよう。

Visual Basic.NET
Public Module modmain
   Sub Main()
     Console.WriteLine ("Hello World using Visual Basic!")
   End Sub
End Module 

Visual C#.NET
using System;

class MainApp {
   public static void Main() {
      Console.WriteLine("Hello World using C#!");
   }
} 

 BASICの流れを汲むVisual Basic.NETとC/C++の流れを汲むVisual C#.NETでは、大文字小文字の使い方、「{}」と「Sub...End Sub」、文末の「;」など、当然文法が異なる。しかし、多くの部分が一対一に対応しているため、相互間の移植は他の言語に比べるとかなり容易だといえる。また、Common Language Runtimeに含まれるオブジェクトやメソッドは、どちらの言語もその呼び出し方・記述方法が同じであるため、言語間の違いはない。

 Visual C#.NETとVisual Basic.NETで作成できるプロジェクトも以下の通りで同じである(図2)。WindowsフォームとWebフォームの2つのフォームへの対応についても、Visual C#.NETとVisual Basic.NETとの違いはない。ツールボックスも含めて操作性はまったく同じだ。単に部品を配置するだけであれば、Visual Basic.NETであるかVisual C#.NETであるかを意識する必要はないだろう。ADO.NETを使ったデータベースとの連携についてもVisual Basic.NETでできることはVisual C#.NETでも実現できる。


図2
図2 Visual C#.NETの新規プロジェクト作成ダイアログ。あらかじめ用意されたテンプレートから選ぶことができる。テンプレートの種類はVisual Basic.NETと同じ

作成可能なプロジェクト
Windowsアプリケーション Windowsで動作するGUIアプリケーション。Windowsフォームを利用したインターフェース作成はVisual C#.NETとVisual Basic.NETで共通。コードの記述言語が異なるだけだ。
クラスライブラリ 非GUIのオブジェクト、メソッド、プロパティが格納されたDLL。Visual C#.NETで作成したクラスライブラリをVisual Basic.NETで呼び出して使用することやその逆が可能だ。
Windowsコントロールライブラリ GUIのオブジェクト、メソッドなどが格納されたDLL。ユーザコントロールなどを含めることができる。Visual Basic、Visual C#双方で開発、双方からの利用が可能。
ASP.NET Webアプリケーション Webサーバで実行されるWebアプリケーション。ASP.NETでは逐次実行形式の.aspファイルに加えてコンパイル済みコード.aspxファイルの実行が可能となった。
ASP.NET Webサービス WebサーバからXMLの記述を使って別のWebサーバにオブジェクトやメソッドを提供するライブラリのようなもの。新たに開発された分散アプリケーション環境だ。
Webコントロールライブラリ Webアプリケーション用のクラスライブラリ。複数のWebアプリケーションから利用することができる。Webアプリケーションの開発言語が異なっていてもよい。
コンソールアプリケーション コマンドプロンプトやMS-DOSプロンプトで実行されるCUIアプリケーション。
Windowsサービス Windows NT/2000/XPで実行可能なサービス。サービスはバックグラウンドで動作するアプリケーションで、Windows起動時に自動的に起動するように設定することもできる。





  現在ページ(1/2) 次ページ(2/2) >>> 


Special Link
> ICTソリューション

ページトップへ






【連載】このパソコンが欲しい!
■超コンパクト!日本Shuttle「X2700DB」
■【ビデオ】日本Shuttleから、超コンパクトなシステムPCが発売に!










ADSLお得なサービスは?

メール配信登録はこちら


コラム&レビュー
神尾寿:神尾寿のビジネスモバイル最前線
【神尾寿のビジネスモバイル最前線】第4回:“市場トレンドを先取り”ソフトバンクモバイルの法人ビジネス
趙 章恩:現地直送!韓ドラ事情
最終回:ついに始りました!驚きの連続〜ペ・ヨンジュン主演『太王四神記』
プロバイダ検索

プロバイダエリア別検索

郵便番号検索  - 

無線スポット検索dokoyo.jp
Weeklyアンケート

IT辞典

検索したい用語を入力して下さい



ご存知ですか? アクセス・アルゴリズムとは?

MENU


ニュース

最新ニュース
アクセストップ5
前日のニュース一覧
バックナンバー
メール購読

スペシャル

スピードテスト
利用者の声
IT辞典
モバイルBiz
コンテンツ情報
インサイド
デジタル家電
インタビュー&企業訪問
コラム
レビュー
エンタープライズ
Weeklyアンケート

グループサイト


ユーザビリティ調査ならイード ユーザビリティ調査ならイード
RESPONSE 自動車最速ニュースサイト
e-nenpi.com e燃費
無線スポット検索サイト dokoyo.jp 無線LANスポット情報
コンピュータ書籍専門ネット書店 cbook24.com コンピュータ書籍専門店
モノ・マガジン オフィシャル ウェブサイト モノ・マガジン公式サイト
病院検索 MEDWEB 病院情報検索
任天堂&オンラインゲーム ニュースコミュニティ インサイド DS/Wii&オンラインゲーム情報
ガソリン価格ランキング スタンド情報 カ−ライフナビ ガソリン価格 クチコミ

リリースRSSによる配信についてビジネス向けサービス問い合わせ会社概要プライバシーポリシーリンクについて

本サイトの内容は、著作権による保護を受けています。
Copyright (c) 1998-2008 IRI Commerce and Technology, Inc. All Rights Reserved.
IRI Commerce and Technology, Inc.