Programs / 最終更新時間:2004年04月25日 11時13分09秒

概要

マイクロソフトの提唱する.NET/.NET Frameworkについて紹介するメモです。

目次

.NETとは

VisualStudio.NETで、C++を使っていままでどおり使う分にはそんなに疑問はない。ただ、この「.NET」をどうするかが問題だ。もっと言うならASP.NET

詳しいことは@IT.NETとはなにかや過去の.NET Framework入門を見てもらうとして、単純に言うと.NETとは「アプリケーション同士をWeb/XMLを通してつなぐ」戦略であり、フレームワークであり、開発環境であると。

気になるのは、アプリケーションを作ったり運用したりするにあたって、どこまでMicrosoftの製品に依存することになるか、ということ。

開発環境

VisualStuidio.net 2003
基本はこれ。Professional以上は値がはります。

Web Matrix
マイクロソフトのASP.NETチームがC#で開発したVS.NETのコンパクト版。無償で使用でき、IISの代わりも入っている。デバッグ機能はない。詳しくはこちら

ASP.NETを利用したホームページなどはWebMatrixHosting利用することで導入でき、お試しも簡単。

SharpDevelop
NET Framework SDK Version 1.1上で動作するC#で書かれた.NET開発環境。フリーでここまでできれば十分という気がします。

Borland C# Builder
パーソナル版は無料で使用できるけれど、商用利用不可なことに注意。お試しで開発する分にはいいかもしれない。

Eclipse C# plugin
EclipseでもC#プラグインを入れて開発できるようです。

動作環境

Windowsだけでなく、Linuxで動作するmonoDotGNUといったオープンソースの.Net Frameworkがある。詳しくはZDNNの記事へ。

ASP.NET.NET Frameworkの一部で、通常、動作にIISが必要になる。Linux版でどうなのかよく知らないけれど、.NET互換環境「Mono」が新版を公開,Webサービスも動作というのは嬉しいニュース。ロードマップはこちら

.NETプログラミングも悪くない?

このように.NETの様々な互換環境が用意されようとしている。低コストでのサーバー運用の可能性や、一会社の技術で終わらないことなど、安心材料があった。.NET自体は便利な機能だと思うので、アプリケーションの用途によっては徐々に使っていくのも面白そうだ。

VisualStudio.net 2003

そろそろテンプレートのデバッグ環境をどうにかしたいとか、最新の最適化機能がほしいとか、C++のISO準拠とかいろいろあり、VisualStudio.netを購入。

説明書は事務的で読む気がしないので、Visual Studio .NET 2003 ガイドツアー & 評価ガイドにあるVisual Studio .NET 2003 評価ガイド (.pdf)Visual Studio .NET 2003 ガイドツアー ビデオ (.wmv)を見ることにする。

しかし、VisualStudioのインストールにこんなに時間がかかるとは…。

とりあえず.NETではない普通のプログラミングだ、とお急ぎの方は猫でも分かるプログラミングにある、設定方法のページへどうぞ。.netで従来の「コンソールアプリケーション」や「Win32 SDKによるWindowsアプリケーション」を作る場合の操作イメージが書かれていて、ナルホドそんな感じか、と分かります。

ASP.NETを使ったWebアプリケーションの制作のイメージについてはELNにあるプログラムサンプルのページに短くまとまっています。

新機能についてはより洗練されたVisual Studio .NET 2003の新機能を探るへ。

MSDNにあるVisualC++ 6.0とVisualC++.NETの違い開発生産性もどうぞ。

.NETならC#プログラミング?

同じことをやるにしても、C#でやるのが一番コードが少なくなるという。
また、こんな話もある。

VS .NETの出現は、筆者の心理にも影響を与えただろうか? 答はイエスである。明らかに、Visual Studio 6.0(以下VS 6)を使っていた時代と気持ちの持ちようも、それによって引き起こされる行動も、明らかに変化した。

具体的に、いったい何が変わったのか。最も分かりやすいのは、記述するコード量が圧倒的に増えたことだろう。仕事上でも、プライベートでも、記述するコード量が何倍にも増えた。しかし、VS 6の時代にプログラミングをしていなかったわけでもないし、特に避けていたわけでもない。それなのに、記述するコード量が増えたのは、主に心理的な側面の影響が大きい。

(中略)

いまや、筆者は、クラス・ライブラリのAPIリファレンスの記述が不十分だったりすると、即座に検証プログラムを1本書いてしまうほど、新しいプログラムに取り組む心理的ハードルが低くなっている。また、しばしば使い捨てプログラムもC#で書く。以前なら複雑なバッチで何とかしようとした対象でも、いまはC#で書いてしまう。その方が楽だからだ。そして、何でもC#で書いているとますますC#に慣れて、楽に書けるようになる。そうやって書かれたソースが蓄積されていくと、別のところで転用できるケースが出てきて、ますますコーディングの手間が減る。これらのすべてがプラス方向に作用しているのである。

ただ、困るのはJavaやVBを使う周囲と話が合わなくなることだ、と。またVisual Studio .NETは魔法の杖じゃないとも。

ノータッチ・デプロイメントとは

Webページの柔軟性+Windowsアプリの迅速な応答ということで、こちらに詳しい解説がある。

簡単にいうとexeファイルをサーバに置いて、Webページからリンク。.NET Frameworkが入ったクライアントのブラウザでそのリンクをクリックすると、そのままクライアント上でexeが実行されるというもの。

Windowsフォームによるウインドウデザイン

VisualStudio.NETにはMFCに代わるクライアントアプリケーション用ライブラリが用意されている[1]。それがWindowsForm。これが使ってみるとなかなか便利で、Windowアプリケーションなら確かに生産性はあがりそうだ。

  • [1]MFCもなくなったわけではなくて、MFC7として使用することはできる

感覚としてはMFCでのダイアログアプリケーション開発に似ている。ただ、WindowFormの場合はダイアログに限らず、MDIアプリケーションだろうが、SDIだろうが、すべて共通で、フォーム(というウインドウ)にコントロールや機能(印刷ドキュメント、開くダイアログ、とか)を貼り付けて簡単にインターフェイスが作れることが違う。

ウインドウにボタンやリストボックスを配置できる――だけではなく、メニュー、タブ、子ウインドウ、さらにはその配置位置の動的な制御(右側の辺にボタンを固定とか)、バックグラウンド色、画像の指定などなど、いままでコードを書かなければできなかったことが、コントロールのプロパティ設定だけでできる[2]

  • [2]プロパティの変更はリソースファイルではなく、コード自体に反映される。VisualStudio.NETのフォームデザイナではなく、プログラムで制御したい場合も同様のコードを書くだけで好きなときにプロパティを変更でき、分かりやすい

イベントの処理、コードの記述も新しいクラスライブラリ/フレームワークによって簡単になっている。このクラスライブラリのデザインが、C#でもマネージドC++[3]でも書式以外ほとんど変わらないのは嬉しい。どちらの参考書を見ても、C#だったらこう、C++だったらこうというのが想像できるからだ。クラスライブラリのデザインとして、MFCでコントロールごとに違ったAPIもできるだけ統一されているし、ほぼ同じ形でアクセスできる。もちろん、ガベレージコレクションもプログラムの簡素化に役立っている。

  • [3]ガベレージコレクション機能付きC++。マネージされないコードも同時に使用できる。VisualStudio.NET上からの起動読み込み時間はC#よりもかなりかかるものの、既存のC++ライブラリをそのまま生かせるメリットがある。

たとえば従来の SetWindowText("NAME") のような関数は、ControlName.Text = "NAME" のような直接的な表現で書ける。強力なIntelliSense機能とあいまって、非常に書きやすくなっている。

とはいえ、作っていて面倒だなぁと思うことも結構ある。ヘルプが重くて使い難い感じもするし、コントロールに名前をつける作業が手間[4]だし、.NET依存も困る場合がある。深みにはまれば難しくなるのは同じ――だけれど、簡単に見えることは簡単に、込み入ったことは難しくというのはストレスのかかり方としては悪くない気がした。

  • [4]といってもビジュアル記述型の言語にして、コントロールから線を引っ張り変数名を省略、というのもコードが見づらいだろう。

.Netユーザーコンポーネント

WindowsFormに使えるカスタムコンポーネントを探してみると結構あるようで、コンポーネント単位の再利用というのも進んできた感がある。

使ってみると本当に便利。「作る前に探す」が大事だ。ただし…英語で、あと有料も多い。

VisualStudio .NET 2005

2005年12月15日、VisualStudio .NET 2005日本語版が一般公開されました。

Visual Studio Express

MS SQL Server 2005/Visual Studio 2005日本語版開発完了 Expressの提供も
予定通りVisual Studio 2005 Express Editionの日本語版が正式公開されました。今日から1年間無償でダウンロードもできます。詳しくはよく寄せられる質問へ。


Tag : ツール, C++

Trackback(24)