2013-07-05 77 views
19

我们目前正在评估在企业应用程序(电子银行)作为单页应用程序使用AngularJS的。 许多开发人员的工作已经确信没有其他的路要走。这是大势所趋,是未来的证明(HTML,CSS和JS)这是很容易做到,服务器等等等等 就少负担,尽管该框架的有趣的部分,我不相信有因素必须是在走这条路之前考虑。这些可以是:代码AngularJS和企业应用

  • 的代码的可维护性
  • 可测性,不仅UI部分
  • 持续集成(如TeamCity的或TFS)
  • 开发者友好像调试,代码中导航
  • 安全(如果有风险)

有没有人在企业应用程序的任何经验建立这样的?我宁愿去与Asp.Net MVC4。请不要假设的答案,我不想开始战争。真正的生活体验真的很感激。

问候

回答

6

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

解决您的疑虑:

我觉得这是更易于维护,因为它鼓励你的东西分开。然而,这完全取决于你的团队和你的纪律,以保持可维护性。

的角度肯定团队想过,当他们使它测试。事情很容易测试,从单元测试到e2e测试。其他人甚至在两者之间找到了一个中间立场。

我们使用詹金斯在我们微软的商店持续集成,因为这是我们更容易在我们自己的程序插件,使之与我们的环境复杂的设置工作。但是,我认为这与您决定使用哪个框架无关。

从Visual Studio来,我发现JavaScript的一般叶片不理想的东西。我喜欢编辑并继续,展开堆叠,并拖动黄色箭头。那东西只是纯粹的魔法幸福。在浏览器上进行调试并不能为您提供所有这些。

安全性不错。仔细查看文档,您可以看到团队关注安全问题,如XSS和CSRF攻击。但是,通过浏览器完成的任何事情都很难保证。每隔一天都会发现新的攻击和错误。如果你真的担心安全问题,你就不会有在线应用。您将确保您的客户只使用多种形式的ID在分支中存入。据说,我不认为Angular比任何其他JavaScript解决方案都不安全。

我想提出所有这些JavaScript框架/库的另一个问题。他们都是相当新的,并不断发展。看看JQuery最近弃用了多少个函数,并且您会了解到如何保持在库的顶部。其中许多也被遗忘并腐烂。谷歌的产品之一Angular也让我有点害怕,因为他们已经取消了他们的项目浪潮。希望Angular不会成为其中之一。

该文档也缺乏。虽然社区很好,但文档不是。许多页面都完成了一半。同样,与微软的最新内容相比,文档相当稀少。

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

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

+0

非常感谢您的回答。最终有人只能希望有些东西会占上风。当有人意识到现在有多少框架时,这很可怕,并且在两年内,其中一半已经消失。尤其是当项目规模巨大,需要1 - 2年的时间才能完成。是否真的有很多好处,而不是使用Asp.Net MVC4呢?如果优势消除了对另一台服务器或更大的服务器的需求,但是您需要花费两倍的时间来开发,测试(开发人员成本)? – Mantzas

+0

asp.net mvc4也鼓励“分裂”,并且让你的脚更难拍摄。一般来说,角度和spa大于高服务器处理成本?即使有角度,你也必须有超过1台服务器才能实现故障切换。为什么不是1或2个服务器更多,并与mvc4,使其版本4和5即将到来?如果我需要更多时间来开发,那也需要花费! – Mantzas

+1

@Mantzas我也很喜欢MVC。我想使用客户端库的最大原因是,我的很多用户交互不需要返回到服务器,验证用户输入需要很长时间才能使用我的应用程序。 –

0

是的,我已经用MongoDB的.PLS一起使用角与Asp.net的WebAPI找到我的发现

1)可测性是绝对fantatic。你可以利用因果报应和茉莉

方便地测试你的单元测试

2)CI。詹金斯的集成可与噶

3)易于调试类似于JavaScript调试可以使用Chrome扩展Bartrang调试角应用程序中轻松

+1

可维护性,安全性?这必须是一个非常安全的网站! – Mantzas

+0

@Ajay Im AngularJS是新的,想用ASP.NET WEB API实现它,你推荐我的任何教程?非常感谢 – VAAA

+0

可维护性如何?浏览代码(例如Java/Eclipse中的“查找引用”或“转到声明”类型函数)? UI设计如何?如果这是一个内部银行应用程序(不是面向客户),UI可能会变得非常复杂,然后您需要某种方式来快速预览/查看您要放置的组件的布局。例如,如果您更改标签或调整组件大小,您可以多快确认该更改是否可以接受(某些情况下,不只是猜测)? – User