ASP.NET MVC和Angular 1.5架构和职责分离

时间:2016-11-25 07:54:32

标签: c# angularjs architecture asp.net-mvc-5

我和我的同事一起开发了一个带有ASP.NET MVC 5(从现在开始只是MVC)和Angular 1.5的Web应用程序。

我将 MVC 纯粹用作后端 actor:暴露API并与数据库交互,而不生成任何视图。另一方面, Angular 将负责整个客户端,使用视图,路由和服务的组件和模板来调用MVC端点。

我thnk这将明确分离责任和整洁的架构。但是我的同事更愿意保留MVC路由,从服务器生成视图和注入" Angular进入它们,因此将其用作客户端业务逻辑。这将带来一些其他好处,作为加速某些安全措施的可能性(例如,通过使用@Html.AntiForgeryToken())。但是,这会使得使用角度组件和新组件模式变得更加困难。
当然,不同的方法可以是将WebApi仅用作后端并保持清晰,但我很好奇听取别人如何解决同样的问题。

1 个答案:

答案 0 :(得分:1)

Angular用于创建单页面应用程序,遵循您的同事方法意味着每个路由只有一个页面应用程序,这将破坏单页面应用程序的目的。 SPA加载需要一些时间,如果每条路线有一个SPA,您将为每条路线支付加载时间,并且因为它是一个新页面,您将失去上一页的状态。

角度应用中也可以使用防伪标记,请参阅this

我们在公司创建角度应用程序,我们使用web api,只有两个剃刀页面,一个用于登录,一个用于spa应用程序。只有index.html是可能的,但是将登录页面分开会带来一些简单性,并且在主页面中注入一些初始数据可以简化角度引导。