オープンソースCMS「DotNetNuke」のセットアップ
前回はMicrosoft Web Platform Installerを利用して、DotNetNukeとWebMatrixをインストールする方法を紹介した。今回は、DotNetNukeのインストール方法を紹介する。
ブックマークされました!
ブックマークがエラーになりました。もう一度お願いします。
作者 Jonathan Allen , 翻訳者 徳武 聡 投稿日 2011年10月27日
昨日はRosylnコンパイラとWorkspace APIを紹介した。今日は、Rosyln Service APIとこのAPIを使ったVisual Studioエクステンションの作り方を紹介する。この記事では、Code Issue、Code Refactoring、Completion Provider、Outlinerの4つのエクステンションを紹介する。
他のVisual Studioエクステンションと同様、Service APIはMEFを使って登録する。つまり、開発者は単に特定のインターフェイスを実装し、MEFの属性を使えばいい。以前のVisual Studioではコード署名とCOM登録が必要だったので、この属性は歓迎された。
Code Issue
Code Issue拡張を使うと開発者は独自のコンパイラ警告やエラーを定義できる。CTPに同梱されているサンプルプロジェクトは、シンタックスに‘a’が含まれるとコンパイラが警告を出力するというものだ。下の画像の通り、この機能はVisual Studioのワークフローにしっかりと統合されている。


ICodeIssueProviderはとてもシンプルで3つのGetIssuesメソッドがあるだけだ。各メソッドはIDocumentを受け取る。このIDocumentには生のテキストファイルやシンタックスツリー、セマンティックモデル、このプロジェクトへの後方参照などの情報を含む。また、ユーザがファイルを編集して、IDEが解析を中止した場合のためにキャンセル用のトークンも保持している。
メソッドの3つのオーバーロードはそれぞれ3つのタイプのシンタックスを受け付ける。ノード、トークン、トリビアの3つだ。ほとんどの場合、ノードのレベルで分析が行われる。トリビアはコンパイラには必要ない情報、例えば、空白やコメントを表し、トークンは必要な情報を欠いている。一方ノードはトップレベルの名前空間宣言から一番小さい式まで表すことができる。
検知したエラーは、CodeIssue列挙体でIDEに返される。この列挙体はエラーの深刻度(情報、警告、エラー)とエラーの発生箇所を表すSpanオブジェクト、そしてエラーの説明で構成される。
Quick Fix
Code Issuesはひとつ以上のICodeActionオブジェクトを含む場合がある。このオブジェクトを使うと開発者は下記の画像のようなオートコレクトの選択肢を提供できるようになる。

ICodeActionを作り、ICodeActionEditと適合させるのはCode Issuesを作るより遥かに難しい。シンタックスツリーの編集してIWorkstationインターフェイス経由で公開する方法を知っていなければならないからだ。RosylnのサイトにはQuick Fixesを書くための説明が公開されている。
Code Refactoring
Code Refactoringのサポートは“quick fix”がCode Issues向けにコレクト機能を提供するのに似ている。しかし、Code Refactoringの場合はテキストレベルで適用される。ICodeRefactoringProviderにはドキュメントとTextSpanが含まれ、CodeRefactoringオブジェクトを返す。このオブジェクトはICodeActionオブジェクトのコレクションを持つ。
Code Refactoring向けのテンプレートはデモには含まれていないが、上述したQuick Fixの説明で使われている技術が適用できる。
Completion Provider
ICompletionProviderインターフェイスはGetItemsというメソッドがあるだけだ。このメソッドはIDocumentと数値型のポジションパラメータを受け取る。各CompletionItemには表示用のテキストが必要になる。アイコンや説明、代替文を含める開発者もいるだろう(insertionTextを使うか、デフォルトの表示用テキストを使う)。
使いやすさはまだ他のプロバイダに及ばないが、普通のコードスニペット環境には複雑すぎるビルドテンプレートを作るというような面白い仕掛けを作ることができる。
Outlining
最後のテンプレートのSyntax OutlinerはISyntaxOutliner経由でアクセスできる。これを使うとエディタ上に折り畳み可能なアウトラインを作成できる。ちょうど領域やクラス、メソッドで折りたたみを使うのと同じだ。このインターフェイスはシンタックスノードを受け取り、OutliningSpanオブジェクトの列挙体を返す。この列挙体には折り畳まれる領域を表すTextSpan、HintSpan(マウスオーバに反応するテキスト)、バナーテキスト、AutoCollapseオプションが含まれる。
前回は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
スレッド表示 返信