Visual studio 在VisualStudio中开发OpenSocial小工具

Visual studio 在VisualStudio中开发OpenSocial小工具,visual-studio,opensocial,Visual Studio,Opensocial,我们即将实现一系列OpenSocial小工具。它们不会在Facebook或任何其他社交网络上运行,而是在我们自己的内部Apache Shindig服务器上运行。我们使用iFrame将这些小工具嵌入到普通的ASP.NET MVC cshtml视图中 根据,小工具的结构如下所示: <?xml version="1.0" encoding="UTF-8" ?> <Module> <ModulePrefs title="Hello World!">

我们即将实现一系列OpenSocial小工具。它们不会在Facebook或任何其他社交网络上运行,而是在我们自己的内部Apache Shindig服务器上运行。我们使用iFrame将这些小工具嵌入到普通的ASP.NET MVC cshtml视图中

根据,小工具的结构如下所示:

<?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则嵌入在标签中。如果我们想在VisualStudio中以XML格式开发这样的文件,那么语法高亮显示、IntelliSense、IntelliTrace和JavaScript调试就不可能了。那不太舒服

问题1:你知道有什么有用的吗!Visual Studio的扩展,为这些OpenSocial XML小工具重新启用所有这些功能

问题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文件。 添加一个Gadgets\HelloWorld.xml文件,其中包含gadget xml,但标记为空。 使用iframe创建CSHTML页面,iframe在调试模式下包含普通HTML文件,但在发布模式下包含Gadget。 定义一个生成后事件,该事件读取HelloWorld.html的内容并将其粘贴到XML的内容标记中。此外,它从JS文件读取JS代码,并用内联JavaScript替换HTML中包含的脚本。。。使用相应的代码。 优点:

逻辑JS文件、表示HTML文件和元数据XML文件的清晰分离。 在处理HTML时,完成Visual Studio HTML创作支持。 在使用JS时,完成Javascript创作支持。 诸如JSLint之类的工具可用于检查JavaScript样式。 注意事项:

在调试模式下,如果我们调用Shindig来呈现这个小工具,我们没有办法在VisualStudio中打开JavaScript并设置断点。但是,如果JS代码中出现任何错误,VisualStudio将在JS代码上打开一个视图并标记错误行。一旦该视图打开,我们也可以使用它来设置断点。但由于原始JS文件仅在构建过程中合并到XML中,因此无法进行实时编辑。 另一方面,如果我们将普通HTML文件作为iframe包含,而不是让Shindig渲染它,那么我们就可以直接在相应的文件中进行实时编辑和调试。但当然,所有的Shindig功能都不是有效的。特别是,Shindig自动添加的所有脚本都丢失或必须手动包含。
理想情况下,在调试模式下运行应用程序时,HTML或JS文件中的每一个更改都会立即更新合并的Gadget XML文件,从而即使在使用Shindig时也可以进行生活编辑。

A2:您可以在单独的JS文件中开发javascript,并将其包含在Gadget XML中,就像在HTML文件中包含JS包含一样。此外,您可以在小工具html中使用框架,但这可能会阻止您使用Shindig提供的一些js API。

Hi user1371592。您会针对gadget html中的框架解决哪个特定问题?