【问题标题】:AngularJS and Enterprise applications [closed]AngularJS 和企业应用程序 [关闭]
【发布时间】:2013-07-04 00:28:51
【问题描述】:

我们目前正在评估在企业应用程序(电子银行)中使用 AngularJS 作为单页应用程序。 许多 devs@work 已经确信没有其他路可走。这是趋势,它是面向未来的(html、css 和 js),它很容易做到,减少服务器的负担等。 尽管这个框架很有趣,但我不相信在走这条路之前必须考虑一些因素。这些可以是:

  • 代码的可维护性
  • 代码的可测试性,不仅仅是 ui 部分
  • 持续集成(如 TeamCity 或 TFS)
  • 开发人员友好性,例如调试、代码导航
  • 安全性(如果存在风险)

有没有人在构建这样的企业应用方面有任何经验?我宁愿使用 Asp.Net MVC4。请不要假设性的答案,我不想发动战争。非常感谢真实的生活体验。

问候

【问题讨论】:

    标签: javascript user-interface angularjs client enterprise


    【解决方案1】:

    在将 Angular 整合到我们的企业应用程序中时,我曾考虑过这一点。首先,一些可选的背景信息。我真的需要将所有页面状态保留在客户端,因为在服务器端重新创建它是一项非常耗费资源的任务。我开始只使用 JQuery 构建它,因为我只需要一些东西,但很快我发现自己无法跟踪我上周刚刚写的回调。因此,我想重构。当我使用它时,Angular 看起来最适合我的编程风格。

    解决您的疑虑:

    我认为它更易于维护,因为它鼓励您将事物分开。然而,这完全取决于你的团队和你的纪律来保持事情的可维护性。

    Angular 团队在制作时肯定考虑过测试。事情很容易测试,从单元测试到 e2e 测试。其他人甚至在两者之间找到了一个中间立场。

    我们在 Microsoft 商店使用 Jenkins 进行持续集成,因为我们可以更轻松地插入自己的程序,使其与我们复杂的环境设置一起工作。但是,我认为这与您决定使用哪个框架没有太大关系。

    来自 Visual Studio,我发现 JavaScript 通常还有一些不足之处。我喜欢编辑并继续,展开堆栈,并拖动那个黄色箭头。那东西只是纯粹的神奇幸福。在浏览器上进行调试并不能为您提供所有这些。

    安全性非常好。翻阅文档,您可以看到该团队关注 XSS 和 CSRF 攻击等安全问题。但是,通过浏览器所做的任何事情都很难保证安全。每隔一天就会发现新的攻击和漏洞。如果您真的关心安全性,您将不会拥有在线应用程序。您将确保您的客户仅在具有多种形式的 ID 的分行中进行银行业务。话虽如此,我认为 Angular 的安全性并不低于任何其他 JavaScript 解决方案。

    我想就所有这些 JavaScript 框架/库提出另一个问题。它们都是相当新的并且不断发展。看看最近有多少 JQuery 函数被弃用,你就会明白保持库的顶部是多么困难。其中许多也被遗忘并腐烂。 Angular 作为谷歌的产品之一也让我有点害怕,因为他们一直在取消他们的项目。希望 Angular 不会成为其中之一。

    文档也缺乏。尽管社区很好,但文档却不是。许多页面已经完成了一半。同样,与 Microsoft 的最新产品相比,文档非常少。

    这是新事物之一,很难雇人来帮助/接管这些东西。

    尽管有所有这些缺点,但我真的很喜欢它,而且我肯定会推动我的公司采用它。

    【讨论】:

    • 非常感谢您的回答。最终有人只能希望某些东西会占上风。当有人意识到现在有多少框架存在时,这是很可怕的,而在两年内其中一半已经消失。这一点至关重要,尤其是当一个项目很大并且需要 1-2 年才能完成时。不使用 Asp.Net MVC4 真的有那么多好处吗?如果好处消除了对另一台服务器或更大型服务器的需求,但您需要双倍的时间来开发、测试(开发人员成本)?
    • asp.net mvc4 也鼓励“分裂”,让你的脚更难射击。 angular 和 spa 通常会超过服务器处理成本的高昂吗?即使使用 Angular,出于故障转移的原因,您也必须拥有超过 1 个服务器。为什么不增加 1 或 2 台服务器并使用使其成为版本 4 和 5 的 mvc4 即将到来?如果我需要更多的时间来开发,那也太贵了!!!
    • @Mantzas 我也很喜欢 MVC。我想使用客户端库的最大原因是因为我的很多用户交互不需要返回到服务器,而验证用户输入对于我的应用程序来说需要很长时间。
    • @Mantzas 如果你已经熟悉 MVC,那就去试试吧。
    • 非常感谢您的洞察力!
    【解决方案2】:

    是的,我已将 Angular 与 Asp.net WebAPI 以及 MongoDB 一起使用。请找到我的发现

    1) 可测试性绝对是一流的。您可以使用 karma 和 jasmine 轻松测试您的单元测试

    2)CI。 Karma 可以集成 Jenkins

    3) 易于调试类似于 Javascript 调试可以使用 chrome 扩展 Bartrang 轻松调试 Angular 应用程序

    【讨论】:

    • 可维护性、安全性?这一定是一个非常安全的网站!
    • @Ajay 我是 AngularJS 的新手,想用 ASP.NET WEB API 来实现它,有什么教程可以推荐给我吗?非常感谢
    • 可维护性怎么样?浏览代码(例如 Java/Eclipse 中的“查找引用”或“转到声明”类型函数)? UI设计怎么样?如果这是一个内部银行应用程序(不是面向客户的),那么 UI 可能会变得非常复杂,然后您需要某种方式来快速预览/查看您正在放置的组件的布局。例如,如果您更改标签或调整组件大小,您能多快确认更改是可接受的(确定,而不仅仅是猜测)?
    猜你喜欢
    • 2013-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-09
    • 2013-07-04
    • 1970-01-01
    相关资源
    最近更新 更多