InterDevを使う InterDevとはWebアプリ開発用RADツール。VisualStudioの一部である、 VisualStudio97ではバージョン1、同6.0ではバージョン6。いきなり番号が飛ぶのはご愛敬。ここでは6.0を対象とする。 まじめに使い込んでいるわけではないので、メモ書き程度にポイントを列挙していく。 #まじめに使い込んでる人は少なそうだけど。 InterDev FAQ&関連サポート情報(英語) http://support.microsoft.com/directory/content.asp?PR=vid&FR=0&SD=GN&LN=EN-US&CT=SD&SE=NONA ・webプロジェクトの形 InterDevの開発ターゲットは基本的にIISのみと思われる。 ApacheでもFrontPage Server Extensionを入れれば使えるかも知れない。あるかどうかはわからないが。 実際にはこのような構図で動く。 InterDev -- ローカルフォルダ -- network -- 公開フォルダ ローカルフォルダは自分のマシン上にあり、公開フォルダは公開マシン上にある。 InterDevではローカルフォルダ上のファイルを更新し、その変更を公開フォルダに反映する形を取る。この機能を実現するには、FrontPage Server Extensionが公開マシン上に入っていないといけない。 このExtensionを通じてファイルをPOSTして、webコンテンツを更新するという仕掛けだ。 マスターモードでは常時公開マシンに接続され、セーブするたびに公開フォルダを更新する。 ローカルモードではユーザの指示でローカルから公開マシンにcommitする。 #セキュリティホールの疑念が…… ・プロジェクト作成――いざ作るとなると ローカルマシン上で開発をしようと思うと、InterDevは実に使いにくい。 http://localhost/webapp というディレクトリにアプリを作るとしよう。 ウィザードで"localhost/webapp"というアプリケーションを作ると、InterDevはIISのルート直下に"webapp"というディレクトリを切り、これを公開フォルダにする。 これは「既定のアプリケーション」を継承するので、なにかと具合が悪い。 自前の仮想ディレクトリをターゲットとするときは、先に以下の操作を行う。 1:IISコンソールで仮想ディレクトリを先に作る。 2:タスク→Server Extensionsの設定 でExtensionを有効にする。 これでWeb プロジェクトウィザードの「既存のwebアプリケーション」の一覧に名前が出てくる。 ------------------------------------- ふつうは c:\webapp をファイルの置き場にしたくなるが、ここを公開フォルダにすると、これを直接いじることはできなくなる。 公開フォルダに対して、ローカルフォルダは c:\<プロジェクト名>\<プロジェクト名_local> に設定される。このディレクトリ内のファイルを操作し、InterDevがc:\webappに送信する。 この構図を理解するのに苦労する。むしろただのムダ。 _vti_cnfやらなにやら余計なディレクトリを作りまくるので、きわめて美しくない。 webアプリを管理する場合は「ユーティリティプロジェクト」を作って、そこに手動でファイルを追加するのがシンプルで良いかと。 ディレクトリ構造はフォルダの新規作成で対応可能。 ・ソース管理は? Visual Studioを買えば、Visual Source Safeがついてくる。当然InterDevとは連携可能……と思ったら、Webプロジェクトの場合、VSS用のServer ExtensionをVSSが入っているマシンに入れないと連携できないのだった。これまた美しくない。VBは自前でできるんだが。 この場合、公開フォルダがソース管理の対象になる。 ユーティリティプロジェクトの場合は、アドインのインストールなしで直接VSSと連携できる。VSSサーバはローカルになくてもOK。 ・DTC InterDevにはDesign Time Controlという仕組みがある。フォームやDBコントロールの設計を支援する機構なのだが: >IDEでデザインをするときはActiveX ControlでLook&Feelをシミュレートする。 >Webページとして表示するときは、サーバ内でコントロール部分をHTMLに展開する。 >DHTMLが使えるブラウザ(IE4以上)の場合は、クライアント側で展開する。 という、結構ビックリするしかけ。Scripting Object Modelとも呼ばれる。 OBJECTタグをはさむコメントを外してIEで表示させると、ダミーのコントロールが出現する。これがDTCの正体で、見た目以外の機能は持っていない。再配布もできないので、開発時のみ使われる。 これを実現するために、webアプリケーションには専用ライブラリを同梱する必要がある。 _ScriptLibraryディレクトリ下にJavaScriptのライブラリファイルが含まれている。VBライクなイベントモデルをJavascriptでゼロから実装した労作。JavaScript開発者にはかなり参考になるだろう。JavaScriptの言語仕様を駆使していて、一見わけがわからない。 逆に言えばMS謹製のライブラリをコピーしないとwebアプリが動かないので、いささか気分が悪いかも知れない。 分散トランザクションとは関係がありません。 ・エディタ クライアント側/サーバ側スクリプトを区別して、アウトライン表示してくれる。 ただしクライアント表示を文字列操作で組むと解析できないので、ヒアドキュメント的に書き出す。 コードヘルパーは実装されているが、ASPの解析はほとんどしてくれない。せいぜいグローバル変数/メソッドと、CreateObjectしたCOMのタイプライブラリまで。これもオブジェクトブラウザで参照を入れておく必要がある。 残念ながらincludeの中身までは追跡してくれない。(当たり前か) どうやらASPの入力支援はIIS4までらしい。 javascript構文のハイライトだけでも十分使えるのではないか。 ・データプロジェクト じつは一番使える代物。OLEDBに対応したデータベースはなんでもプロジェクトの対象にできる。Accessならmdb単位、SQLServerならデータベース単位で一つのプロジェクトになる。SP5を当てればSQLServer2000にも接続できるようになった。 ダイアグラム、テーブル、ビュー、ストアドプロシージャを操作可能。 テーブルのデザインはEnterprise Managerに準じた操作ができる。InterDevのUIでSQLを編集できるので、EMよりよほど使いやすい。 ストアドプロシージャの実行もサポートしている。 ストアドプロシージャのデバッグができるらしいが、SQLServerが動いているマシンにデバッグ用アドインを入れる必要がある。まだためしていない。 ・その他 Office2000のインストール時にFrontPageを入れると、Microsoft Script Editor(MSE.EXE)がインストールされる。HTML/ASPの編集機能だけ実装したInterDevのサブセットである。 単なるエディタとしてはなかなか使い勝手がいい。 ……データプロジェクト以外にInterDevの存在意義はないかも。 ・余談:ASP.NET ASP.NETにはスクリプトオブジェクトモデルを徹底的に拡張したものが実装されている。 .aspxファイルに sub button1_onclick() end sub などと書くと、ブラウザ上でbutton1を押したときにこの関数が呼ばれるよう.NETのライブラリが処理してくれる。衝撃的だ。 もはやHTTP/HTML/ブラウザの挙動を知らなくてもwebアプリが組めると言わんばかり。WebFormsという用語まで作っているし。ブラウザもVBのフォームになぞらえているつもりだろうか。むちゃくちゃだぞMicrosoft。 .NETではInterDevは消滅して、各言語のIDEに機能統合されたようだ。C++でもwebアプリ作れるって言ってるし。 ではこのドキュメントにはたして意味は……?