2015-05-07 155 views
8

我在三种技术MVC,Web API和AngularJS方面有一些经验。ASP.NET MVC或ASP.NET Web API + AngularJS

但是我单独使用了MVC + jQuery和Web API + AngularJS。

我发现somearticles关于混合MVC + AngularJS,但实际上我没有明白这一点:为什么我需要混合它们?

所以现在我的问题: - 什么过“网络API + AngularJS”混合“MVC + AngularJS”的利弊

编辑:如何通过混合MVC,以获得最佳的图像+角? 或者通过使用Web API + Angular,我不会错过任何东西(我认为是这种情况)?如果我决定单独使用Web API + Angular,特别是当我将SPA定位时,我会从MVC中错过什么?

回答

12

使用MVC + Angular over Web API + Angular的主要优势在于,您的服务器可以在将视图发送给客户端之前直接操作视图中的html标记。在Web API的情况下,服务器只产生一个json序列化模型,这个视图完全是Angular关心的。

喜欢MVC方法的另一个原因是如果你不想使用Angular的全部功能。例如,您可以选择使用MVC进行路由,而不是使用Angular路由提供程序。

MVC + Angular方法的缺点是您的html标记将包含混合的角度和剃须刀代码。这可能会降低其可读性,任何人工作都必须能够使用这两种语言。另外,如果你最终只使用一小部分角度,这可能是一个很好的迹象表明,你可以使用一个更简单的JavaScript框架来代替。例如,如果您只使用模型绑定,则可以使用Knockout

最后,您可能会考虑同时使用MVC和Web API以及Angular以努力获得两全其美。例如,您可以使用MVC视图来获取与SEO相关的标记,并使用Web API来展示您的模型。

+0

这是一个相当简单的观点,我会说pro和con的是? – BenjaminPaul

+3

@BenjaminPaul请随时通过提供答案来阐述。 – elolos

+0

在第一段中你提到MVC的主要优点是你的服务器可以在发送给客户端之前直接处理视图中的html标记,但是你没有提到那么简单? (除了SEO的角度来看,你已经提到在你的答案年底) – BornToCode

0

你确实可以只用WebAPI + AngularJS。如果您从头开始构建,则不需要MVC。你可以提供一个静态的index.html,启动你的AngularJS应用程序并从那里获取。

我已经完成了像这样的项目,但也做了项目,我们也决定在AngularJS和WebAPi上有一个MVC应用程序。因此,我们在webapp中创建了几个SPA。我想我已经在.NET Rocks的某个地方听说过'SPA的口袋'这个词了!

因此,如果您需要显示静态数据,只需快速在MVC中扔东西。如果有一个页面使用大量用户交互,请使用简单的控制器+视图进行配置,并通过AngularJS和WebApi将所有行为联系起来。简而言之:它允许您使用“两全其美”的方法,您可以使用MVC快速显示静态数据,并在您有非常活跃的页面时利用AngularJS。

0

我不确定这样的问题是否有正确的答案,因为大多数时候使用的技术都必须满足特定的业务需求。

如果你正在开发后台web应用程序,只对注册用户(或小团体的人)访问,使用的WebAPI +角增大的整体用户体验的速度,性能和响应速度方面。

如果你正在开发一个专门针对'访客用户'的网站,需要搜索引擎优化,需要建立索引,具有复杂的可用性要求等,你应该忘记与单一页面应用程序相信大多数WebAPI + Angular应用程序)并切换到可以满足特定需求的工具。

我不认为你应该考虑角度VS的WebAPI +角MVC +之间的差异 - 问题是,除了MVC + jQuery的应用程序使用的角度。如果您的视图中有很多逻辑(当然不是业务逻辑),并且希望避免将数据绑定到大量jQuery对象,则需要Angular并让您的生活更轻松。 Angular核心没有任何路由功能,所以说它只能用于SPA/SPI应用,这有点愚蠢。

对于我的大部分项目,我使用jQuery来操作DOM和Angular来操作数据。