オープンソースCMS「DotNetNuke」のセットアップ
前回はMicrosoft Web Platform Installerを利用して、DotNetNukeとWebMatrixをインストールする方法を紹介した。今回は、DotNetNukeのインストール方法を紹介する。
ブックマークされました!
ブックマークがエラーになりました。もう一度お願いします。
作者 Roopesh Shenoy , 翻訳者 編集部N 投稿日 2012年1月16日
MS Office用OpenXML SDK 2.0はOpen XML ドキュメントを操作するための、厳密に型指定されたパーツ クラスを提供する。 WorddocGeneratorはテンプレート駆動でワードファイルを生成する、オープンソースのユーティリティであるが、このSDKを使って開発できる例の1つである。InfoQはこのユーティリティの開発者であるAtul Verma 氏にこのプロジェクトについて幾つか質問をした。
InfoQ: Worddocgeneratorは FlexDocのような他のドキュメント ジェネレータとどう違うのでしょうか?
Atul: このユーティリティは
- ドキュメントを生成するのにWordをインストールする必要がありません
- Open Xml 2.0とVisual Studio 2010 を使います
- ドキュメント生成用のコンテンツコントロールを使います
- Word文書を生成するための、多くのやり方を示すたくさんのサンプルを提供しています。例えば、
- C#(データバインディング無し)を使ったコンテンツの設定
- データバインド コンテンツコントロール
- XPath式
- Xml すなわち XNodeあるいはOrderのようなエンティティクラスを使って生成します
私はFlexDocを使ったことがないのですが、ホームページで警告メッセージを見ました。その警告は「FlexDocの現行バージョンは Microsoft Wordのフィーチャに依存しており、それはパテント問題のために(ある程度) Office 2010では除かれています。このことは2009年11月以降にリリースされた Office 2007のUS版にも当てはまります。」と言ってました。もしこれが真実ならドキュメント生成には、FlexDocは適切でない様だ、ということです。
InfoQ: 更新可能なコンポーネントは、どのように動くのですか?データを持ってくるのにサーバーに接続するのですか?
Atul: ユーティリティに必要なのは、データが収まるあらゆるコンテンツコントロールは、WordテンプレートのTagを特定することです。生成の間、適宜Tagを PlaceHolderType enumにマップする必要があります。
- Recursive:この型はテンプレートとデータ間で1:Nの関係にあるコントロールに対応します。Itemリストの繰り返しが1例です
- Non-Recursive:この型はテンプレートとデータ間で1:1の関係にあるコントロールに対応します。ユーザー名を表示するが1例です。
- Ignore:この種のコントロールにはアクションは不要です
- Container: この型は更新可能な文書のみに必要です。始めて文書がテンプレートから生成されると、 CustomXmlPartにコンテナリージョンを保存します。次からは保存されているコンテナリージョンを読みだして文書を更新します。このために文書は自己-更新可能になります。
例を使って更新操作を説明しましょう。例えば “Test.docx”というテンプレートがあるとします。文書を生成する必要のあるデータオブジェクトを得ます。例えば自分のデータ層(データベースを介して)からOrderを得ます。テンプレートから始めて文書を生成する時、コンテンツコントロール(Container型)は CustomXmlPartに保存されます。例えば生成された文書は “TestOut.docx”とします。Orderに変更があったとします。ということは、データベースと同期を取るためには、文書を更新する必要があります。私は文書すなわち “TestOut.docx”を得て、最新データすなわちデータ層からOrderオブジェクトを得て、文書を更新します。文書は更新可能なので、更新のために “Test.docx” を要求しません。サンプルではPlaceHoldersのこれら全ての型について扱いました。
ユーティリティには、文書、データオブジェクト、ジェネレータが必要で、生成文書を返します。どのようにデータを持ってくるかは必要ありません。文書生成にWordがインストールされている必要がありません。
私は、Word 2010向けの文書レベルのカスタマイズ機能を使って、Word内(例えば文書上で右クリックし、 Refresh Dataをクリック)から文書を更新する方法の1つを示すサンプルを1つ加えました。この特別な場合は、ユーティリティはサーバー上にホストでき(Wordはインストール不要)、クライアントから起動できます(Word文書は文書レベルのカスタマイズができます)。詳しくはこの リンクを見てください。
InfoQ: 同じデータで複数の文書を生成する時のパフォーマンスはどうですか?
Atul: 私はパフォーマンスのベンチマークをしていませんが、文書生成は非常に速いです。私は Open Xml 2.0 SDKを使って、概念実証/サンプルの観点からユーティリティを作りたいと思ってました。その内時間があったらリファクタリングとパフォーマンスに取り組みたいと思います。
InfoQ: Excelについても同様なユーティリティは可能ですか?
Atul: このユーティリティは、 Word 2007/ Word 2010専用でExcel用ではありません。しかし同様なユーティリティは OpenXml 2.0 SDKを使ってExcel用に簡単に作れます。例えば ClosedXmlはそのようなプロジェクトです。
InfoQ: これは OpenXML SDKを使って開発することができる良い例ですね。何か他に役立つ、素晴らしいフィーチャを加えるのですか?
Atul:このユーティリティを作成した目的は、
- 文書生成のための、最小限のコードを書く
- 以下に上げるアプローチを使って文書生成のサンプルを示すことです
- 更新可能、および更新不可能である文書を生成する
- オブジェクト(例えばOrder クラス) あるいは XmlNode(XPath式を使って)から文書を生成する
- C#を使ってコンテンツコントロールの値を設定する
- データバインドされたコンテンツコントロールを使う
- 主文書に文書を追加する
私はユーティリティに追加すべきサンプルについて、フィードバックが欲しいですね。
このユーティリティについてもっと詳しく知りたければ次の ブログ 投稿 を見て、氏にフィードバックして欲しい。 OpenXML SDK 2.0についてもっと知りたければ、 XML in Office Developer リソースと MSDNを見ると良い。
前回はMicrosoft Web Platform Installerを利用して、DotNetNukeとWebMatrixをインストールする方法を紹介した。今回は、DotNetNukeのインストール方法を紹介する。
DotNetNukeは、Windows Serverで動作するCMS(Contents Management System)である。この記事ではWeb Platform Installer を利用して人気CMS「DotNetNuke」と無償Web開発環境「WebMatrix」のインストールする方法を紹介する。
クラウドコンピューティングを前提とした大規模データ技術が利用可能となってきています。Big Dataが一過性のブームで終わるかどうかにかかわらず、スケーラブルな分散アーキテクチャーの基盤はデータベース技術に主導されつつあります。RDBとORM主体のエンタープライズシステムは、HadoopやNoSQLとの組み合わせにより複合的なデータモデルに発展しました。
2011年12月8日~2011年12月9日に、ロンドンのSkills Matter eXchangeにて開催された「Groovy & Grails eXchange 2011」の参加報告を、日本Grails/Groovyユーザーグループのメンバーが3回に渡って紹介します。
Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します
去る1月12日、定理証明支援系ツールCoqの初心者向けチュートリアルが開催さ れた(http://kokucheese.com/event/index/23667/)。今後も2月2日 (http://kokucheese.com/event/index/23744/)、2月9日、2月16日と引き続���開 催されていく予定である。本記事では、開催の様子をレポートする。
Neal Gafter氏はOracleによるJava買収の影響に関する議論、Javaにセグメンテッドスタックやメタオブジェクトプロトコルを追加することについての主張、そしてJavaとC#との比較について話をしてくれた。
No comments
スレッド表示 返信