03 .netってなんだ
VS.netが使えるよぅになったところで。
実は私、言語仕様がどのくらい変わったかってことよりも、自分の作ったプログラムが安定供給/動作できる仕組みかどぅかの方がやたらと気になってるんですね。
VB4や5の時に、SP(バグフィックス用のパッチ)を当てたとたんに古いEXEが動かなくなったり動作が変わっちゃったりしたことがあったんです。
IEやOfficeのバージョン違いで動作が不安定になるなんて話もありましたね。
VB6/IE5/Office98(2000?)くらいになってかなり安定してきて、そのへんの不整合でで動作しないなんてことはなくなってきたんですけどね、最近。
で、ここへ持ってきて大幅な仕様の変更でしょ?…またOSや各種製品の不整合がぶり返さないのかなぁ。
ぶり返すとしたら、どこらへんに着眼して対処を考えればいいのかなぁ。
また、従来のVBの配布上の泣き所はランタイムでした。
他の言語で作ったプログラムと違って、VBは動作に絶対ランタイムファイルが必要なんですね。
これが1.5~2MBくらいあった上に、インストールプログラムをカマしてレジストリにばりばり登録しまくらないとならなかったので、配る方ももらう方もたいそうな時間を割かれてしまうってのがあったんです。
(当時はモデム~ISDNくらいの通信速度でしたし。ADSLなどブロードバンドにも耐えられる技術が普及を始めた現在、2MBなんか1分以内って感じになってきてはいるんですけどね。)
このへんの仕組みを調べていったら、話はどぅもVBだけでまとめられない感じだといぅことがわかってきました。
ので。
ちょっと話が遠回りになって申し訳ないんですが、ざっと.netのあたりから理解しておく必要がありそぅです。
最初に一言お断り。
Microsoft .netとか.NETとか、どぅもMicrosoftの中でも用語が統一されていないよぅな印象を受けます。従ってマスコミの記事回りでもこのへんの呼び名はバラバラ。私は本コンテンツ中では .net で統一しておきます。
.netについての公式な説明についてはこのへんをお読みいただくこととして。
簡単に言うと、今まで1台のパソコン+ひとつのOSでプラットフォーム(プログラムが動作する環境)としていた考え方を、インターネット(技術)を媒介とした複数のコンピュータ+それぞれのOSでひとつのプラットフォームという考え方に変えてしまえ、ってことですね。
えー、ピンときました?
まず、インターネットを介しての各種サービスが、近年むちゃくちゃ多様化/複雑化してきました。かなり高機能なビジネスモデルを実現したいなんてニーズも市場として確立してきています。
これらビジネスモデルの実装を行うには、サーバの構築、サーバ上でのサービスの作成、クライアントの構築、クライアント側のプログラムの作成なんて作業が必要です。
これがWeb機能やらメールやらをややこしく組み合わせたり、今流行のブロードバンド技術による動画の表示なんてことまで考えると、いろんなコンピュータ/OS/言語とか各技術の仕様なんかをそれぞれ調べて組み合わせてどぅのこぅのと、割と大変だったり途中で破綻したりしていたわけです。
で、これをひとつの開発環境にまとめてしまえと。サーバサービスからクライアントまでをひとつの開発環境でまとめて作成できるなら開発が簡単になるし、その後のメンテナンスもちょー楽ちんになるでしょ、と。
で、開発環境がひとつなんだから、もぅOSの枠に囚われずにこの開発環境丸ごとひとつのプラットフォームと考えちゃえ、と。
とまぁこんな感じの理解でいいかなと思います。
もちろん、この考え方は広くインターネット一般の開発環境をフォローするものではありません。
サーバからクライアントまで全部Microsoft製でなきゃいけないわけですし。
ですから、これは不特定多数に対する情報提供などを実現するモデルではなく、特定のサーバ/クライアントの関係を持つビジネスモデルの構築時に効果を発揮するんでしょうね。
趣味でのみインターネットを利用している方にはピンと来にくいかもしれませんが、企業内での情報インフラとか企業→顧客への特定サービス提供なんてのにもインターネットは活用されてまして、正直インターネットで金になるビジネスはこの部分です。
ので、Microsoftとしては一番金になる部分をみごとに取り込んだアプローチを開始した、と私は思っているんです。
ちょっと繰り返しますが。
前述のMicrosoftの公式説明では、サーバサービスはすべてWindows2000(XPも?)Server上でのみ実装されます。
いぇ、このへんを取り込んで .net Enterprise Servers と呼んでいますね。
また.netに対応するクライアントOSとしては Windows CE/2000/XP ということになっています。
ですから、現在インターネットサーバとして定評のあるUNIX/linuxはこの対象外ですね。パソコン以外のコンピュータももれなく対象外です。またクライアントとしても、UNIX/linuxやMacintoshは対象外となります。
さらに、たぶんクライアント上での動作保証ブラウザはIEのみになります。ので、趣味でサーバを立てて不特定多数のいろんな環境の人に利用してもらえるよぅな高度な情報提供が.netで実現できるかといぅと…まず無理なんではないかと。
うーん。なんか、MicrosoftのMicrosoftによるMicrosoftのためのインターネットって感じがしてきました。
ただし。
Macintosh用にはOfficeやIEも提供されていますし、いずれMac用の.netコンポーネントなんかも提供されそぅな気もします。
linuxは…なんかコミュニティ側で独自に作っちゃいそぅな気も…。