8

受到 John Papa 在 Pluralsight 上的视频的启发,我开始学习 SPA。看起来很有趣。但是,在我完全投入之前,我想澄清我的一些问题。

  1. 据我所知,SPA 是一个精简的服务器、胖客户端应用程序。我认为这应该适用于像 John Para 演示的小型应用程序。它可以扩展吗?它可以有多大?有人有这方面的经验吗?

  2. 在 SPA 中,您似乎使用 JavaScript 编写所有业务逻辑。这是个好主意吗?如何隐藏业务“秘密”?

由于我的背景主要是 C#/WPF/.NET,转向 JavaScript 似乎非常困难(好吧,我在 10 多年前学习了一点 JavaScript - 我讨厌它,再也没有碰过它)。由于我的知识有限,我遇到了几个问题。调试 JavaScript 对我来说似乎是一场噩梦。备受赞誉的组件 Breezejs 似乎仍处于早期阶段(例如,它不支持 UOW,不支持 CascadeDelete,不支持枚举)。所以,我想知道这是跳槽的好时机吗?

4

4 回答 4

8

直接回答你的问题:

  1. 由于服务器逻辑很薄,您可以使用某种云服务,并且它们的扩展性非常好。大多数逻辑将由用户的浏览器处理。
  2. 如果你依赖于客户,你应该小心。HTTP 协议可以很容易地被操纵。不要忘记您应该始终在客户端和服务器端执行验证逻辑!此外,“隐藏”验证和其他“秘密”逻辑应仅位于服务器上。

调试 JavaScript 一点也不差。您可以使用内置工具(Chrome 中的 Inspect element 和 Firefox 中的 FireBug 等)还有很多有用的第三方工具可以帮助您进行调试。

如果您开始一个新项目只是为了自己使用,那么我建议您尝试 SPA 方法。如果您正在编写生产代码,您应该成为该领域的专家,然后尝试使用这些技术。

于 2013-07-25T22:53:29.027 回答
3

关于 UoW,请查看 TempHire 示例。它演示了在客户端和服务器上使用 UoW 模式。

https://github.com/IdeaBlade/Breeze/tree/master/Samples/TempHire

于 2013-07-26T00:36:57.297 回答
1

我相信 SPA 为业务密集型应用程序以及更简单的应用程序工作流程(例如 Facebook 的工作流程)提供了更好的框架。我曾使用多页应用程序来处理具有复杂工作流程的银行应用程序,处理所有事情并保持应用程序性能令人生畏。

但我确实认为 Knockout Alone 无法处理大型应用程序,因为它本质上是连接的。我会推荐像 Backbone Marionte 或 Angular 这样的项目。

我正在为开源社区构建一个大规模 SPA 开发框架,所以我相信这是正确的方向。

有兴趣的可以去我的demo page http:\saqibshakil.github.io 我已经在那里展示了我的一些工作。

于 2013-09-17T13:05:50.487 回答
0

我已经研究了几个月。我的结论是为您的 url 使用带有 light path.js 或 sammy.js 的 Knockout。我使用带有标准 Visual Studio MVC(可以返回 Json)的 json 作为后端。我还没有完成这个项目,但到目前为止一切都很好。它闪电般快速、优雅且轻巧。远离框架。看看标准库:它们是如何编写的;你可以通过这种方式学习很多 JavaScript。最后使用 chrome 或 explorer 开发者工具进行调试。祝你好运

于 2013-07-26T02:26:45.800 回答