【问题标题】:Structuring a SPA with modules使用模块构建 SPA
【发布时间】:2015-01-16 09:55:02
【问题描述】:

我正在开展一个项目,我们将创建一个必须由许多模块组成的 SPA。

这个想法是应用程序将具有以下模块:

  • 仪表板
  • 订单
  • 客户
  • 财务
  • 其他...

这个想法是任何模块都可以是一个单独的 SPA,它将由一个主 APP 合并,它将具有菜单并控制模块之间的导航。

在此基础上,我们计划像这样构建我们的 VS 解决方案:

-- Solution
   /ModuleA
       /FrontEnd (single page application)
   /ModuleB
       /FrontEnd (single page application)
   /Main
       /Front (web project that will consolidated others)

我们将使用 WEB.API (.net 4.5) 作为后端

我们的疑问是我们必须在这些 SPA 中使用哪些框架(实际计划是使用 knockout.js,但我们不知道是否是最佳选择)以及如何让这个 MAIN APP 加入其他应用程序动态模块。

【问题讨论】:

    标签: asp.net-mvc knockout.js architecture single-page-application


    【解决方案1】:

    Knockout 适用于更简单的用法。它不支持 SPA 和模块化方法。所以你必须自己处理它(或在一些扩展的帮助下)。

    我建议您查看支持 SPA 开箱即用的框架。我最喜欢的是Angular,由 Google 开发。

    它有很棒的模板引擎,支持 IoC,routing,模块。您可以轻松地为您的模块制作部分模板,将它们放入单独的文件中。

    【讨论】:

    • 感谢您的帮助。
    • 考虑到我们的应用程序,我们计划有类似 Outlook.com 的东西,您可以在其中有一个可以打开其他模块的菜单。考虑这种情况,我们可以看到他们为每个模块都有一个应用程序,并且每个模块都为其他模块运行。在我们的例子中,我们计划让所有模块在同一个上下文中,在同一个 SPA 中打开所有模块。您认为这是一个好的方案还是更好地执行诸如 outlook.com 之类的事情?
    • 使用 Angular,您可以为每个模块创建主控制器和控制器。 Angular 非常适合 SPA,无论您的应用程序是什么。
    • 好的。使用这种方法(主控制器和控制器),我可以为每个模块创建一个控制器,最后根据业务需求配置我的产品,对吧?
    • @TiagoSantos 绝对!你会发现 Angular 非常灵活。
    【解决方案2】:

    构建 SPA 应用程序的三个关键事实。

    1. 客户端路由
    2. 双向绑定
    3. 客户端模板

    knockout it self 只处理 2-way-binding,简单易用,功能强大,但需要很多朋友,例如 sammyjs 用于路由,handlebar 用于客户端模板

    而当你想让主应用动态地与其他模块交互时,使用淘汰赛变得困难。

    所以我的推荐是angularjs,它真的很强大,什么都管,值得花点时间看看

    【讨论】:

      【解决方案3】:

      如果您想继续使用 Knockout,请查看 Durandaljs,这是一个 SPA 框架。我发现它很容易启动和运行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-30
        • 1970-01-01
        • 1970-01-01
        • 2020-10-01
        • 1970-01-01
        相关资源
        最近更新 更多