米MicrosoftのASP.NETプラットフォーム用に開発されたオープン・ソースのコンテンツ管理システム(CMS)「DotNetNuke」のことをご存じだろうか。DotNetNukeは,MicrosoftがASP.NETの能力を示すために.NET Framework 1.0と同時に開発したサンプル・アプリケーション「IBuySpy.com」をベースにしている。

 DotNetNukeは,DotNetNukeのWebサイトで無料でダウンロードできる(訳注:日本にも既に「日本DotNetNukeユーザー会」のWebサイトが存在する。日本語化モジュールなどはこちらでダウンロードできる)。先ほどDotNetNukeが「IBuySpy.com」をベースにしていると書いたが,実は現在,「IBuySpy.com」のWebサイトにアクセスすると,DotNetNukeのWebサイトにリダイレクトされるようになっている。

 そもそも「IBuySpy.com」は,一般的なポータルWebサイトの基礎機能を提供する,モジュラ・アーキテクチャを採用したプログラムとして開発された。DotNetNukeも同様に,拡張可能なアーキテクチャを持つポータル・サイト構築アプリケーションとして提供されている。

日米で書籍の刊行も始まっている

 IBuySpyから分岐して以来,DotNetNukeは大きなユーザー・コミュニティを生み出している。実際のところ「大きなコミュニティ」という表現さえ,もはや控えめなものになっているだろう。「Linuxが一般にまで普及したのはいつか?」という質問に対して,筆者は「出版社がLinuxに関する書籍を発行し始めたとき」と答えるようにしている。最近米Wrox Pressが「Professional DotNetNuke 4」という書籍を出版している(訳注:日本でも技術評論社が「ドットネットヌークWebサイト構築」という書籍を出している)。つまりDotNetNukeも,それほどの存在になりつつあるのだ。

 ただマーケットシェアという視点に立つと,DotNetNukeは「Microsoft Office SharePoint Portal Server」の代替品という限定的な位置付けにある。SharePoint Portal Server 2003と異なり,DotNetNukeは既にASP.NET 2.0上で動作しており,ASP.NET 2.0の新機能である「メンバーシップ」のような機能に対応している。そしてDotNetNukeのメンバー管理機能は,ASP.NETのメンバーシップ・モデルと完全に統合されている。

 DotNetNukeは,あらかじめ構築されたWebサイト・インフラストラクチャを提供するという点や,プログラマでなくてもポータル・サイトの構成の変更が可能であるという点などがSharePointと競合するが,コンテンツ管理システムという巨大な製品分野の中で,それぞれの位置付けはことなっている。

 つまり,部門内でOffice文書を共有するためのコラボレーション・サイトが必要ならば,SharePointが向いている。これとは対称的に,DotNetNukeは全社や全世界に公開するような,ポータル・サイトを構築するのに向いている。

カスタマイズが容易なDotNetNuke

 DotNetNukeには,いくつかの標準的なモジュールとスキンが付属している。エンドユーザーはこれらの素材を使って,自分の好みに合うWebサイトを作成できる。DotNetNukeはは「SQL Server 2005 Express Edition」に対応しており,インストールも簡単だ。さらに重要なのは,プログラム技術のあるユーザーならカスタム・コードを追加して,DotNetNukeを拡張して,ポータル・サイトに特定の機能を追加できることだ。昔だと,コンテンツ管理システムの拡張は,非常に難しかった。

 先日筆者は,クライアントから次のような依頼を受けた。社内のサポート部門が製造現場にあるデータを管理するのに利用できる,管理ポータル・サイトを構築してほしいというのだ。筆者のクライアントは,DotNetNukeがメンバーシップやロールといった機能を搭載していることや,拡張可能なアーキテクチャになっていることを評価し,管理ポータル・サイトをDotNetNukeで構築することを選択した。

 筆者はまず,DotNetNukeでサイトを拡張する方法について調べ始めた。まず,必要な手順を解説している資料を発見し,その後,DotNetNukeと一緒にダウンロードできる「DotNetNukeのStarter Kit」を発見した(DotNetNuke 4.3のStarter Kitダウンロード・サイト,ユーザー登録が必要)。

 Starter Kitのパッケージを展開すると,複数の.zipファイルと1個の.vscontentファイルが生成された。.vscontentファイルは,インストールすべきパッケージがあるということを「Visual Studio 2005」に知らせる役割を持っている。この場合は,Visual Studio 2005に取り込むプロジェクト・テンプレートがそれに該当する。 

 .vscontentファイルをクリックすると,.zipパッケージのインストールが始まる。すなわち,DotNetNuke Webアプリケーション・テンプレートと,VBモジュール・パッケージ,C#モジュール・パッケージ,スキン・パッケージである。

 パッケージのインストールが完了すると,Visual Studioを起動できるようになる。Visual Studioの[ファイル]メニューで[新しいWebサイト]を選択して,Visual BasicのWebサイトを選択しよう(DotNetNuke WebサイトのコアはVisual Basicアプリケーションなので,Visual Basic Webサイトをデフォルトとして利用する必要がある)。

 ここで,C#モジュール・パッケージがあるということを,思い出して頂きたい。つまり,画面の指示に従ってサイトをインストールした後で,サイト名を右クリックして新しいモジュールを追加できるのだ。もしあなたがC#開発者なら,C#モジュールを追加して,あとで自由にカスタマイズできる。この自由度の高さこそが,DotNetNukeの最大の魅力だと筆者は考えている。この非常に強力なDotNetNukeインフラストラクチャは,ユーザーが好みに応じて自由にアプリケーションを開発できるように設計されているのだ。ポータル・サイトをDotNetNukeで構築したくないという読者でも,DotNetNukeが拡張可能なWebアプリケーションを構築できるソリューションであるということに,注目して頂きたい。