对于当前的项目,我试图了解如何有效地利用 Knockout 2.1.0、Upshot 1.0.0.2、ASP.NET MVC4 和 Entity Framework 4.3。有很多基本的架构问题似乎没有现成的答案。我列举了我的几个问题(在单独的帖子中),希望有人可以为我自己和其他人提供合理的指导,因为我们试图在现实世界的应用程序中实现这种组合。
在2 月的荷兰 TechDays 上, Steve Sanderson就 Knockout 和 Upshot.js 发表了精彩的演讲,他提到 Upshot 可以适应多种连接服务器的方法。(如果您还没有看过演示文稿,那么值得一看。您可以在http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2159查看。)
不幸的是,他没有时间详细说明这些通信机制是什么,或者推荐了哪些以及在什么情况下。
根据Denver Developer在其题为“深入了解 Upshot.js”( http://denverdeveloper.wordpress.com/2012/03/07/digging-into-upshot-js/ ) 的博客文章中的说法,共有三个数据提供者由Upshot.js。这些都是:
• 默认为DataProvider()并使用/Submit 方法和您提供的操作使用jQuery 的$.ajax 方法获取数据。(AG 注意:我相信这通常与WebAPI 公开的DbDataController对象相关,但我不确定确切的限制是什么。)
• 下一个是riaDataProvider() – 与第一个类似,但它使用 /json/SubmitChanges 方法和 /json/{your option} 来获取数据
• 最后,我们还有odataDataProvider() ——这个完全不同,因为它目前不支持更新数据——它是只读的。
许多密切相关的问题自然而然地出现在为典型用途选择供应商的问题上。
- 哪个数据提供者更好——默认数据提供者还是 RIA 数据提供者?
- 推荐哪一种正常使用,在什么情况下使用?
- 使用普通DataProvider与riaDataProvider对性能有何影响?
在相关的说明中,互联网上似乎很少有关于结果的文档。除了苦读 upshot.js 中的 4700 多行代码之外,这个库还有其他像样的文档来源吗?
到目前为止,我查看的资源包括以下(以及更多)。
来自 Steve Sanderson 的 SPA 演示的源代码(可从http://blog.stevensanderson.com/2012/03/06/single-page-application-packages-and-samples/获得)。
Bart Jolling 对 Steve Sanderson 的 SPA 演示应用程序的变体的源代码来自他关于“使用 ASP.NET MVC4 构建单页应用程序”的文章(第 1-4 部分)。http://bartjolling.blogspot.com/2012/04/building-single-page-apps-with-aspnet.html
来自 ASP.NET 站点的 Big Shelf SPA 演示代码 - http://www.asp.net/single-page-application/spa-samples/sample-bigshelf-application
Microsoft ASP.NET “A Tour through SPA”(主要关注结果示例) http://www.asp.net/single-page-application/spa-samples。