Visual studio 在VisualStudio中开发OpenSocial小工具
我们即将实现一系列OpenSocial小工具。它们不会在Facebook或任何其他社交网络上运行,而是在我们自己的内部Apache Shindig服务器上运行。我们使用iFrame将这些小工具嵌入到普通的ASP.NET MVC cshtml视图中 根据,小工具的结构如下所示: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!">
<?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中的框架解决哪个特定问题?