SQL Server実践的入門 (第5回)
InterDev 1.0による
サイト管理機能入門

横田 秀次郎

InterDev 1.0におけるサイト管理機能の概要


 Visual InterDevでは強力なサイト管理機能が開発環境に統合されています.新しいWebサイトの作成,既存のWebサイト中のコンテンツページの確認表示,Web中でのフォルダとファイルの作成,追加,または変更を行う機能です.
 ただし,内容的にはサイト管理というよりはサイト内の統合ファイル管理と呼ぶ方が誤解が無いかもしれません.具体的には,次の機能が用意されています.
(1) Webプロジェクトウィザードによる新しいWebサイトの作成
 このウィザードは,新しいWebサイトの開設を手助けしてくれるツール機能です.表現を変えると公開用Webの存在するディレクトリと作業中にコンテンツファイルを仮置きするワークエリアの両者の名前と場所を指定する機能です〔連載第1回目(1998年8月号)で紹介〕.
(2) Webサイトのページを構成するファイルの取り扱いを容易にする機能
 統合開発環境(IDE)の中からFile Viewを使用して,Webを構成するコンテンツファイルのコピー,削除,追加,名前の変更および編集を行うことができます.
(3) コンテンツファイルのWebサイトへのインポート
 最初に,開発用の別のサーバーマシンを使用してWebを構築し,その中でコンテンツを開発し,完成した後にファイルを本番Webにインポートすることができます.
 インポートはファイル単位ばかりでなく,ディレクトリ単位でのインポートが可能になっています.これはIDEの「プロジェクト(P)」メニューで操作できますが,Windows NTエクスプローラからドラッグ&ドロップで取り込むことも可能です.
(4) Web全体のサーバー間の移動
 Web構成ファイル全体をサーバー間で移動させることが可能です.これもIDEの「プロジェクト(P)」メニューで操作します.
 なお,コピーされるのはディレクトリ付きのファイル群で,コピー先はIISサーバーがインストールされており,インターネットサービスマネージャで仮想のホームディレクトリに指定された個所になります.
(5) ショートカットメニューで便利な操作が実現されている
 IDEのメニューバー,ツールバーによる操作のほかにFile View,Data View,あるいはLink Viewウインドウ中のオブジェクトを対象に,マウスの右クリックによってショートカットメニューが呼び出されます.このメニューでたいがいの必要な処理機能の呼び出しを行うことができます.

Web名,プロジェクト名,ワークスペース名の違いについて

 InterDevあるいはこれと類似していてパッケージとして単体売りされているFrontPage 97/98を並行して使用すると,多くの方はこの2つのソフトウエアが利用するディレクトリ構成や用語の違いが分からず,不安に駆られるかもしれません.
 InterDevでは,作成したコンテンツファイルは同じものが2個所に置かれます.1つはIISサーバーの仮想ルートディレクトリ(外部からインターネット経由でアクセスしたときに最初に入るディレクトリでホームディレクトリとも呼ばれる)の下であり,もう1つは作業中に使用されるクライアントPC側のワークスペースです.
 連載第1回の図3で紹介したように,InterDevで新規プロジェクトを作成するときにそのWeb名(連載第1回ではtest1)を入力しますが,この名称は指定されているサーバーのホームディレクトリ(InetBub\wwwroot\)の下に作られる仮想サブディレクトリ名となります.その実ディレクトリも同じ位置にあります(図1にtest1という実および仮想のディレクトリができている).

Image355 (2).gif (11409 バイト)

 もう片方の開発用クライアントPC側のワークスペースに使用されるサブディレクトリの名称は,連載第1回の図1で入力したプロジェクト名(test1)が使用され,その位置はその図1の「位置」コンボボックスで指定した場所となります.
 このワークスペースには複数のプロジェクトを収納できるようになっていますが,これは別のWeb関係ファイルを収納するためではなく,関連したVC++あるいはVJ++プログラムを収納するためのものです.ですから,ワークスペース名はプロジェクト名と同じでも良いわけです.
 ささいな点もしれませんが,こんなところに疑問を持ったままだと先へ進むことに不安を感じます.

ページ間のリンクの張り方

 エディターでHTML文を作成する際には,ページ間のリンクは<A HREF=…で始まるアンカー文を挿入しました.InterDevではFile Viewなどでファイル名を選択しておいて,右クリックでショートカットメニューを呼び出して,そこで「ファイルを関連付けて開く(W)」から呼び出されるFrontPageエディターを使うと便利です.
 具体的には,表示ウィンドウでリンク文を挿入する個所をマウスクリックで指定しておいて,FrontPageエディターのメニューバー「挿入(I)」-「ハイパーリンク(K)」を選択すると図2の「ハイパーリンクの作成」ダイアログウィンドウが呼び出されます.このURLにで,アドレスを入力するだけでリンクが記述できます.

Image356 (2).gif (4994 バイト)


 このFrontPageエディターは別売パッケージのFrontPage 97/98のサブセットです.リンク先がプルダウンメニューで出てこないなどの点で,別売パッケージのものより機能が劣ります.
 もし同一クライアントPCにFrontPage 97/98がインストールされていると,前記メニューバーからそちらのフル機能エディタを呼び出すことが可能です.
 なお,コンテンツファイルが拡張子ASPになるとFrontPageエディターでは取り扱うことができません.この場合,最初にVBScript文を除いたものをFrontPageエディターでHTMファイルとして作成します.そのあとで,ASPにファイル名を変更し作業を継続することがマイクロソフトのチュートリアルにも書かれています.

Link Viewの紹介

 IDEのFile Viewのところで,ファイル名を指定しておいて,マウスの右クリックで呼び出されるショートカットメニューから「リンクを表示(L)」を指定することにより,図3のLink Viewウインドウを呼び出して,指定されたファイルを中心として張られたリンクの状況をビジュアルに表示することができます.詳細説明は省略しますが,次のような項目を選択し指定することにより,表示方法を状況に応じて変更することが可能です.

Image357 (2).gif (22986 バイト)


(1) 図4に示したフィルター機能メニューで,次の表示方法を選択できます.
◆リンク表示画面に加えるファイルの種類(たとえばすべてのオブジェクト,HTMLファイル,実行型ファイル,マルチメディアファイル,外部ファイル)
◆Web内部へのリンク/Web外部へのリンクの別
◆1次リンク/2次リンクの別

Image358 (2).gif (10046 バイト)

(2) File ViewあるいはLink Viewでファイルを指定し,メニューバーあるいはショートカットメニューで拡大率,中心となるページファイル,表示位置などを変更することが可能です.
 これらの機能により,必要に応じて必要な部分を見やすくすることができるようになっています.

(例外事項)
 エディターで書き下したり,FrontPageエディターで作成したリンク関係は間違いなくLink Viewに反映されますが,データフォームウィザードで作成された3つのASPファイル間の関係は反映されていませんでした.


Webプロジェクトウィザードによる新しいWebサイトの作成


 これまでの説明は個々の構成要素を作成する説明でしたが,いよいよInterDev 1.0でWebサーバー全体を構築する場合の問題点の解説に入ります.
 InterDevを利用してコンテンツファイルを作成する作業に入る前に,必ず行わなければならないことが2つあります.
(1) まず,Webサーバーの仮想ルートディレクトリ(インターネットサービスマネージャではホームディレクトリと名付けられている)をどこに置くか決めて,インターネットサービスマネージャを用いて再設定する.
 IISサーバーのインストール直後の仮想ルートディレクトリのデフォルト値はInetPub\wwwrootに設定されています.通常新たに実ディレクトリを作成し,そこを仮想のホームディレクトリに設定するかもしれませんが,学習用ということでInetPub\wwwrootをそのまま利用しても良いでしょう.
(2) 次にホームディレクトリを変更した場合は必ず,FrontPage 97/98の拡張機能を再インストールする.
 FrontPage 97/98の拡張機能をインストールすると,その時にホームディレクトリとなっているディレクトリの中に下記のようにいくつかのシステムデータを収納するディレクトリが作成されます.その後にホームディレクトリを変更しても,これらのディレクトリは自動的に移動しません.従って,FrontPage 97/98の拡張機能を再インストールしなければなりません.
 次にFrontPage 97/98拡張機能の組み込みを終えたWebサーバーに対し,クライアント側で動作するInterDev上で連載第1回で紹介した新規プロジェクトの設定を行います.
 新規プロジェクトがサーバーの仮想ルートディレクトリ(ホームディレクトリ)を占有するときは連載第1回の図3の「新規Webの作成」ウィンドウで「既存のWebに接続」を選ぶ必要があります.既存のホームディレクトリに既存のコンテンツファイルが存在しても,あるいは空でもどちらでもかまいません.
 もし,運用中の既存のWebが存在していて,そのホームディレクトリの下に新たにサブディレクトリを作成して,そこに新規プロジェクト関係コンテンツファイルを置くのであれば,前記図3のウインドウで「新規Webの作成」を選び,そのWeb名を指定します.なお,ここで指定された名前がそのサブディレクトリ名となります.
 完全に既存のWebと新規プロジェクト(これもWebと呼ばれるので混乱しやすい)が隔離されているのであれば,後者を選択するのは賢明です.
 後者では,新規Webディレクトリの内部から見て外部ディレクトリに存在することになるホームディレクトリ中にあった既存のコンテンツファイルは,この新規プロジェクト(新規Web)からはアクセスできなくなります.
 もしこの点で融通を利かせられるようにするには,前者の方式を採用し,ホームディレクトリへのアクセスを可能とし,その中にFile Viewを利用して,サブディレクトリを作成し,その中に新規コンテンツを封じ込めるようにするのが良いでしょう.

InterDev管理下でのディレクトリとファイルの取り扱い


 InterDevでWebサーバーを構築するということは,そこに含まれるコンテンツファイルはInterDevの管理下に入るということを意味します.従って,Windows NTエクスプローラ,ファイルマネージャあるいはDOSコマンドで直接的にコンテンツファイルの追加,削除,ファイル名の変更などを行うのは禁止事項となります.
 あえてこれを行うとInterDevのプロジェクト内部に矛盾を生じ,プロジェクト管理機能が正常に動作しなくなります.従って,いったんInterDevの管理下に置かれたら以後はWebディレクトリ内部のファイルはInterDev内部で処理しなければなりません.
 冒頭の概要で述べたように,File View上でフォルダあるいはファイルを指定しておいて,IDEのメニュバー「編集」あるいは「プロジェクト(P)」のサブメニューの選択項目(図5)で処理する必要があります.

Image359 (2).gif (2979 バイト)   Image360 (2).gif (4649 バイト)


 あるいはショートカットメニューで同じ処理をより便利に行うことが可能になっています.図6はディレクトリ名で右クリックして呼び出されるショートカットメニューです.
 FrontPage 97/98で作成されたWebサーバーも同様な仕組みで動作します.InterDevとFrontPage 97/98はASP関係を除くとファイルの取り扱いに互換性があります.
 InterDevとFrontPage 97/98の採用以前に構築されてInterDevの管理下に入っていなかったWebでも,ひとたびFrontPage 97/98拡張機能を組み込み,InterDevで作成する新規プロジェクトに登録されると以後はInterDevの管理下に組み込まれてしまいますので,以前のような直接的なファイルの取り扱いは禁止事項です.
 理屈は理解してもおそらくこれまでの習慣で,一度や二度はこの禁じ手を破ってしまうことがあるでしょう.そうするとかなりシステムを混乱させてしまいます.これを手直しする解説はまだ見たことがありません.
 おそらくInterDevはこれから本格的に普及するでしょうから,避けて通れない方もおられるでしょう.そのような方は試験用サーバーを別に用意し,取り扱いに慣れておく必要があるかもしれません.早く失敗を経験し,勘所を会得する必要があります.
 ほかの解説書ではこのようなことを心配したものはまだ見当たらないかもしれません.筆者の杞憂であれば良いのですが,自分自身はこの点で引っかかって,Webサーバーの構築を最初からやり直したことが何回かあります.InterDevの盲点と弱点はは現状ではこの辺にあると思います.

外部ディレクトリからのファイルインポートの具体的操作例


 前もって他所で作成されたコンテンツファイルをファイル単位で外部からWeb内部のディレクトリの中にインポートするには,File View内の取り込み先ディレクトリの名前の上で右クリックして呼び出される図6のショートカットメニューから「ファイルの追加(F)」を指定します.すると,図7の転送元ファイルを指定する「プロジェクトへファイルを追加」画面が呼び出されるので,ここで取り込み元のファイルを指定します.

Image361 (2).gif (15652 バイト)

 前もって他所で作成されたコンテンツファイルをディレクトリ単位で外部からWeb内部のディレクトリの中にインポートするには,File View内の取り込み先ディレクトリの名前の上で右クリックして呼び出される図6のショートカットメニュから「フォルダの内容を追加(C)」を指定します.すると図8の転送元フォルダを指定する「フォルダの参照」画面が呼び出されるので,ここで取り込み元のファイルを収納したディレクトリ(フォルダ)を指定します.

Image362 (2).gif (7275 バイト)

 これで指定のディレクトリに含まれるすべてのファイルの転送が行われます.もし元ファイルがInterDevの管理下で作成されたものであるなら,この転送されたファイル間のリンク関係は転送後もそのまま生きています.それはInterDevで関連ファイル間のリンクを張ると相対アドレスでリンクが張られるので,ディレクトリ単位で転送した場合はリンク文に記載のアドレスを修正する必要はありません.

Web全体のサーバー間の移動

 ASPファイルのようなCGI機能を利用する場合は,IISサーバーのようなWebサーバーシステムなしではコンテンツファイルをWebブラウザを用いて表示確認テストを行うことはできません.
 そのためInterDevによるWebコンテンツファイルの作成は,IISサーバーと接続した状態で行わなければなりません.そこで,これまでの説明は最初から本番用公開サーバーと組み合わせるというシステム構成で行ってきました.
 さらに,Windows NTであればIISサーバーの走るサーバーマシンとInterDevの走るクライアントマシンを同一マシンとすることも可能です.
 公開済みのサーバーは慎重に扱われるので,手軽に開発テストに使わせてもらえない場合もあるでしょう.
そのような場合は,試験用IISサーバーと組み合わせたInterDevでWebプロジェクトを開発し,完成したら試験用サーバーから公開用サーバーに移すということになります.これがWeb全体のサーバー間の移動ということです.
 それでは最後に,図9のツリーに示されたようなファイル構成のWebが試験用サーバー(サーバー名をWINNT3とする)上で完成しているものとし,公開用サーバー(サーバー名をWINNT1とする)に移すための操作要領を説明します.なお,WINNT3(クライアントも兼ねる)とWINNT1の2台のマシンはLANで接続されているものとします.当然サーバーWINNT1にはIISサーバー3.0以上,ASP,FrontPage 97/98拡張機能がインストール済みとします.

Image363 (2).gif (5669 バイト)

 図10に示されたようにIDEのメニューバー「プロジェクト(P)」-「Webのコピー(W)」を指定し,図11のダイアログウィンドウ「Webのコピー」を呼び出します.

Image364 (2).gif (2249 バイト)Image365 (2).gif (10522 バイト)

 この画面で「コピー先サーバー(S)」にWINNT1を,「コピー先でのWeb名(N)」にMyWebを入力します.オプションのチェックマークは全部はずして「OK」ボタンを押すとWebのコピー作業が実行されます.
 完了メッセージが表示されたら,サーバーWINNT1上でディレクトリ構成を参照すると,図12に示されたようにWINNT1のホームディレクトリの下にサブディレクトリMyWebが作成され,その中に必要なファイルとディレクトリが含まれていることが確認されます.念のため,作成されたファイルとディレクトリのアクセス権をチェックすると,このサーバーでのインターネットゲストアカウント(例えばIUSR_WINNT1)とEveryoneが設定されています.

Image366 (2).gif (5555 バイト)

 もし,ASPコンテンツファイルが含まれており,その中でDSN(Data Souree Name)が参照されているなら,転送先サーバーマシンのコントロールパネルでDSNの登録が必要です.転送先サーバー上のIISサーバーのホームページの管理者に依頼して,この追加プロジェクト(Web)の先頭ページであるdefault.aspに対し,既存のページからリンクを張ってもらうことも追加作業として必要です.

Image367 (2).gif (13294 バイト)


まとめ
 SQL Server 7.0の正規バージョンの出荷にはまだしばらく時間があるようですが,Visual Studio 6.0は9月24日に発売開始です.InterDev 6.0がこれに含まれています.
 InterDev 6.0に慣れるのに少し時間が掛かるでしょうが,間違いなく大幅に進歩しています.移行しないわけにはいきません.そこでできれば本連載最後の6回目はInterDev 6.0の新機能の紹介にするよう努力したいと考えています.乞う御期待!
 ここまで先の見通しが付くようになった以上旧バージョンに必要以上の労力を払う必要はありませんが,過渡期の穴埋めは旧バージョンの役目ですし,切り替え時の状況判断に組織内の調整まとめ役にあるような方は特に常識としてある程度の旧バージョンに関する知識が必要です.今回まで5回に渡って紹介と説明を行った事項は,そのような目的からも決して無駄ではないでしょう.


copyright 1998 横田秀次郎