VS.NETをWebから解放しよう

株式会社ピーデー
川俣 晶
2002/10/25


最近取り組んでいるプログラム

 筆者が個人的に最近取り組んでいるプログラムがある。筆者の会社の製品である「りすと亭」の新バージョン(テスト稼働しているサイト)である。今回は、Visual Studio .NETを用いて、バージョンアップのコーディングを行いながら思った感想を記してみたい。

 最初に感じたのが、ある種の開放感である。現行バージョンはJavaで記述されているが、これが悩みの種であった。まず、大前提として、りすと亭はサーバ・アプリケーションとして、Windowsのサービスとして稼働しなければならない必要性があった。これをJavaで実現するには、マイクロソフト製のJava SDKのモジュールが必要だった。しかし、サンマイクロとの争いの中で、マイクロソフト製のJavaは進化が途中で止まってしまっていた。時代遅れの古いJavaでは不便が多いし、かといって、新しいJavaにも移行できず、ソフトの改良も停滞していた。しかし、C#というJavaよりも新しい言語に乗り換えたことにより、この停滞から脱出することができた。これで、すがすがしい開放感を感じることができた。

 停滞からの脱出によって、ソース・コードの悪い部分の改良にも取り組めるようになった。何しろ、右も左も分からないころに書いた回りくどくて汚いコードが山ほどあって、気になっていたのだ。簡易HTML機能でサービスするHTMLソースも、とても他人に見せられるような代物ではない汚い内容であった。これらを思い切り整理する機会が得られたのである。こういうものを直すことができると、とても気持ちが良いものである。

 ソース・コードを直すにあたっては、テスト・ファーストの技法が役に立った。全面的に書き直すクラスは、テスト・クラスを用意して、動作を確認してから書き直しに着手した。厳密にいえば、先にクラスがあるので、テスト「ファースト」ではないが、考え方やノウハウは役に立った。どんなに汚いソースでも、動いてきた実績のあるコードを直すのは勇気が必要だったが、勇気を与えてくれる方法をやっと手に入れた感がある。もっとも、通信やユーザー・インターフェイスが絡むとやりにくいのは欠点といえるが。

XML技術の全面的な導入

 現段階では利用者から見えないが、プログラム内部ではXMLを大々的に取り入れている。ファイルに記録される情報の多くが、XMLで表現するように変更された。XMLを利用することの長所は見えにくいかもしれない。独自形式で読み書きしても、ソフト全体の使い勝手は変わらないからだ。しかし、XMLの利用により、1文字ずつファイルの内容を調べて内容を解析するような、低レベルのコードをメンテナンスする面倒から解放され、より本質的な問題に集中できるようになった。

 また、XML文書であらかじめ定義を与えておくと、それに応じてユーザー・インターフェイスとなるHTML文書を自動的に生成する仕組みも新たに作成した。従来なら、設定項目を1つ増やすと、HTMLとプログラムのソースの複数の個所を正しく同期して直す必要があったが、1段高いレベルで記述する手段を提供したことで、XML文書を直すだけで全体が矛盾なく構成されるようになった。これは厳密にはXMLのメリットとはいえないが、相互に関連する情報をXML文書で記述してそれを自動的に反映させる考え方は、RelaxerなどのXML関連ツールを通じて教えられたものだと感じる。

 さらに、この先、もっとXML技術を取り入れていければよいと考えている。りすと亭が持っている情報を、人間が読むためのHTML文書ではなく、プログラムから読みやすいXML文書として提供できれば、情報の2次的な活用にも便利だろう。もっとも、メール・アドレスを読み出して、迷惑メールの送信リスト作成に使おう、などと思われると困ることではあるが。

Visual Studio .NETはWeb開発専用ではない

 ここで1つ注意していただきたいことがある。りすと亭は、Visual Studio .NETで開発しているが、Webアプリケーションでもなければ、Webサービスでもないということである。確かにネットワークに対してサービスするプログラムではあるが、りすと亭はASP.NETの技術にはまったく無関係のソフトである。Webブラウザ経由でアクセスできるのは、りすと亭自身が簡易httpd機能を持っているからで、IISなどのWebサーバはまったく使っていない。そういう意味で、Visual Studio .NETでいうところの、Webアプリケーションでもなければ、Webサービスでもないし、それらを開発するために提供されている便利な機能を何も使っていない。それでも、りすと亭を開発する上で、Visual Studio .NETは快適かといえば、イエスである。

 そもそもVisual Studio .NETは、Visual Studio 6.0の進化形の新バージョンであって、Webと無関係のプログラム開発に使っても良好なものである。しかし、Visual Studio 6.0を使っている開発者に、「Visual Studio .NETへのバージョンアップはしないのですか?」と質問すると、「うちはWebサービスと関係ない古いシステムを扱ってるから」「IISはどうも……」といった答えが返ってくることがある。どうも、名前に“.NET”の文字が入り、Webサービスなどの機能が宣伝されすぎた結果、Visual Studio .NETはWeb対応の開発を行うためのツールであると思い込んでしまった人たちがいるようだ。

 確かにWebサービスは役に立つ機能だが、すべてのプログラムがWebサービスを利用する必要があるわけではない。しかし、そういうケースでも、Visual Studio .NETが役に立つことは多いのではないかと感じる。

 具体的に、どのような点でVisual Studio .NETがVisual Studio 6.0よりも役に立つのか。それは、2点あると筆者は感じている。1つは、言語そのものの進化。プログラム言語はみな同じではない。生産性の高い言語もあれば、そうではない言語もある。C#は明らかにC/C++よりも生産性がけた違いに高い。また、Visual Basicも、6.0からVisual Basic .NETになってかなり進化している。新しく追加されたデータ型の暗黙の自動変換を制約する「Option Strict On」を設定して開発すれば、同じBasicを冠した言語ではあるが、かなりのレベルまで生産性をアップできるだろう。もう1つは、.NET Frameworkのクラス・ライブラリである。基本的な機能がよく揃っていて、従来なら自分で記述したり、回りくどい使い方を必要とされたりした機能が、ストレートに利用できるようになっている。これを活用するだけでも、コーディング量は減らせるだろう。

 もちろん、.NET Frameworkという新しい実行環境を要求するプログラムはまだ作りにくいかもしれない。しかし、それはいま現在の状況であって、近未来には、これと異なる状況が訪れる可能性は高いだろう。実際、いつの間にかOSに組み込まれ、標準的に普及していった新技術は少なくない。.NET Frameworkも、いずれはそうなると期待してもよいのではないだろうか?End of Article


川俣 晶(かわまた あきら)
 株式会社ピーデー代表取締役、日本XMLユーザー・グループ代表、日本規格協会 次世代コンテンツの標準化に関する調査研究委員会 委員、日本規格協会XML関連標準化調査研究委員会 委員。1964年東京生まれ。東京農工大化学工学科卒。学生時代はENIXと契約して、ドラゴンクエスト2のMSXへの移植などの仕事を行う。卒業後はマイクロソフト株式会社に入社、Microsoft Windows 2.1〜3.0の日本語化に従事。退職後に株式会社ピーデーの代表取締役に就任し、ソフトウェア開発業を始めるとともに、パソコン雑誌などに技術解説などを執筆。Windows NT、Linux、FreeBSD、Java、XML、C#などの先進性をいち早く見抜き、率先して取り組んできている。代表的な著書は『パソコンにおける日本語処理/文字コードハンドブック』(技術評論社)。最近の代表作ソフトは、携帯用ゲーム機WonderSwanの一般向け開発キットであるWonderWitch用のプログラム言語『ワンべぇ』(小型BASICインタプリタ)。

 「Insider.NET - Opinion」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間