私たちはOpenSocialガジェットの束を実装しようとしています。彼らはFacebookや他のソーシャルネットワーク上で実行されるのではなく、私たち自身の内部Apache Shindigサーバ上で実行されます。Visual Studio内でOpenSocialガジェットを開発する
<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs title="Hello World!">
<Require feature="opensocial-0.8" />
</ModulePrefs>
<Content type="html">
<![CDATA[
Hello, world!
]]>
</Content>
</Module>
HTML、CSSやJSが埋め込まれに対し:
http://docs.opensocial.org/display/OSREF/OpenSocial+Tutorialによると、ガジェットの構造は非常に似ている(私たちは、通常のASP.NET MVCのCSHTMLビューでのiframeを使用して、これらのガジェットを埋め込みます)タグ内のVisual StudioでこのようなXML形式のファイルを開発したい場合は、Syntax Highlighting、IntelliSense、IntelliTrace、JavaScriptのデバッグが不可能になります。それはあまり快適ではない。
質問1:これらのOpenSocial XMLガジェットのすべての機能を再び有効にするVisual Studioの拡張機能について知っていますか?
質問2:そうでない場合は、同じことを試したことがありますか、これらのハードルを回避する良い方法が見つかったのですか?
アップデート:私たちは、概念実証のプレーンなHTMLファイル、プレーンなJSファイル、およびXML骨格を取り、ガジェットにそれらをマージし、ポストビルドステップを使用してのを行っている。展開プロセスでは、我々はポストビルドステップからマージされたXMLファイルでShindigのを呼び出しながら、デバッグモードでは、我々は、おそらく直接通常のファイルが含まれます:
if (@Html.IsDebugMode())
{
<iframe src="/Gadgets/HelloWorld.html"/>
}
else
{
<iframe src="http://example.org/shindig?url=http://example.org/Gadgets/Merged/HelloWorld.xml"/>
}
これは、ソリューションがどのように働くかある:
- Gadgets \ HelloWorld.jsファイルを追加する
- jsファイルを含むGadgets \ HelloWorld.htmlファイルを追加します。
- ガジェットXMLを含むが、空の
<Content>
タグを含むGadgets \ HelloWorld.xmlファイルを追加します。 - プレーンHTMLファイルをデバッグモードで含むが、リリースモードのガジェットを含むiframeを含むCSHTMLページを作成します。
- HelloWorld.htmlの内容を読み取り、XMLのコンテンツタグに貼り付けるポストビルドイベントを定義します。さらに、JSファイルからJSコードを読み取り、インラインJavaScript
<script>...</script>
でスクリプトのインクルージョン<script src="HelloWorld.js" />
をHTMLに置き換えます。
利点:
- クリーンロジック(JSファイル)の分離、プレゼンテーション(HTMLファイル)とメタデータ(XMLファイル)。
- HTMLを操作する場合は、Visual StudioのHTMLオーサリングを完全にサポートしてください。
- JSで作業するときに、完全なJavaScriptのオーサリングサポート。
- JSLintなどのツールを使用してJavaScriptスタイルを確認できます。
警告:デバッグモードで
- 我々はガジェットをレンダリングするためにShindigのを呼び出す場合、我々は、Visual StudioでJavaScriptを開くための方法を持っているし、ブレークポイントを設定しないでください。ただし、JSコードにエラーが発生した場合、Visual StudioはJSコードのビューを開き、誤った行をマークします。ビューが開いたら、ブレークポイントの設定にも使用できます。元のJSファイルはビルド処理の過程でXMLにのみマージされるため、ライブ編集はできません。
- 一方、Shindigをレンダリングするのではなく、プレーンHTMLファイルをiframeとして含めると、それぞれのファイルでライブ編集とデバッグが可能になります。もちろん、Shindigのすべての機能は有効ではありません。特に、Shindigによって自動的に追加されたすべてのスクリプトが欠落しているか、手動でインクルードする必要があります。
理想的にはHTMLやJSファイル内のすべての変更は、すぐにマージされたガジェットXMLファイルを更新してしまうデバッグモードでアプリケーションを実行しているShindigのを使用するときためにも生命の編集を可能にしながら。
こんにちはuser1371592。どの特定の問題は、ガジェットのhtml内のフレームで対処しますか? – chiccodoro