AngularJS和企业应用程序

21

我们目前正在评估在企业应用(e-银行)中使用AngularJS作为单页应用程序的可能性。

许多开发人员已经确信没有其他方法可供选择。它是潮流,也是未来的发展方向(html、css和js)。它易于操作,可减轻服务器负担等等。

尽管这一框架具有吸引力,但在采用这种方式之前必须考虑以下因素:

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

是否有人有类似构建企业应用程序的经验?我更倾向于使用Asp.Net MVC4。请不要提出假设性答案,我不希望引发争论。非常感谢真实世界的经验分享。

此致敬礼

2个回答

7
我在将Angular引入我们的企业应用程序时考虑过这个问题。首先是一些可选的背景信息。由于在服务器端重新创建页面状态是非常资源密集的任务,因此我确实需要将所有页面状态保留在客户端上。我最初只使用了JQuery构建它,因为我只需要一些简单的东西,但很快我发现自己难以跟踪我上周编写的回调函数。因此,我想进行重构。在这个过程中,Angular看起来是最适合我的编程风格的。
回答您的问题:
我认为它更易于维护,因为它鼓励你将事物拆分开来。然而,这完全取决于您的团队和您保持可维护性的纪律性。
Angular团队在制作它时肯定考虑了测试。从单元测试到e2e测试,测试非常容易。其他人甚至找到了一个中间地带。
我们在微软商店使用Jenkins进行持续集成,因为对我们来说,插入我们自己的程序使其与我们复杂的环境设置配合工作更容易。但是,我不认为这与您决定选择哪个框架有太大关系。
从Visual Studio来看,我觉得JavaScript整体上还有待提高。我喜欢编辑和继续,解开堆栈以及拖动那个黄色箭头。那些东西就是纯粹的魔法。在浏览器上调试并不能提供所有这些功能。
安全性非常好。通过查看文档,您可以看到团队关注安全问题,如XSS和CSRF攻击。但是,在浏览器上完成的任何操作都很难保护。每天都会发现新的攻击和漏洞。如果您真的关心安全性,您不会有在线应用程序。您将确保您的客户只在具有多种身份证明的分行进行银行业务。话虽如此,我认为Angular与任何其他JavaScript解决方案一样安全。
我还想提出另一个问题,即所有这些JavaScript框架/库。它们都相当新且不断发展。看看最近JQuery已弃用了多少函数,您就会了解到保持库的最新状态有多难。其中许多也被遗忘并被抛弃。由于Angular是Google的产品之一,这也让我有点害怕,因为他们一直在取消他们的项目。希望Angular不要成为其中之一。
文档也缺乏。尽管社区很好,但文档不够完整。许多页面都是半成品。再次与Microsoft的最新内容相比,文档非常稀少。
作为其中的新事物,更难聘请人来帮助/接管这些事情。
尽管存在所有这些缺点,但我真的很喜欢它,并且肯定会推动我的公司采用它。

非常感谢您的回答。最终,人们只能希望一些东西会占据主导地位。当有人意识到现在有多少框架存在时,情况变得很可怕,在两年内,其中一半可能会消失。这在项目庞大且需要1-2年才能完成时尤为关键。与不使用Asp.Net MVC4相比,真的有那么多好处吗?如果好处消除了另一个服务器或更大的服务器的需求,但是您需要双倍的时间来开发、测试(开发人员成本)呢? - Mantzas
ASP.NET MVC4也鼓励“分离”,并且使得犯错变得更加困难。Angular和SPA总体上是否超过了高服务器处理成本?即使使用Angular,由于故障转移原因,您仍然需要多个服务器。为什么不再增加1或2台服务器,并选择已经发布到版本4的MVC4,而且版本5也即将推出?如果我需要更多时间开发,那也会带来成本! - Mantzas
1
@Mantzas 我也非常喜欢MVC。我想使用客户端库的最大原因是,我的许多用户交互不需要返回服务器,并且验证用户输入对于我的应用程序需要很长时间。 - John Tseng
如果你已经熟悉MVC,那就去做吧。 - John Tseng

0

是的,我曾经使用过Angular与Asp.net WebAPI以及MongoDB。以下是我的发现:

1)可测试性非常棒。您可以轻松地使用karma和jasmine进行单元测试。

2)CI。 Jenkins的集成可用于Karma。

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


1
可维护性,安全性?这个网站必须非常安全! - Mantzas
@Ajay 我是AngularJS的新手,想要将其与ASP.NET WEB API一起实现,你有什么教程可以推荐吗?非常感谢。 - VAAA
可维护性如何?在代码中导航(例如Java / Eclipse中的“查找引用”或“转到声明”类型函数)如何?UI设计怎么样?如果这是一个内部银行应用程序(不面向客户),则UI可能会变得非常复杂,然后您需要一些快速预览/查看放置组件的布局的方法。例如,如果更改标签或调整组件大小,您可以多快确认更改是否可接受(而不仅仅是猜测)? - User

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接