我们目前正在为一种新的基于网络的产品进行原型设计。 当我们启动项目时,我们决定技术堆栈将基于Bootstrap 4,Angular 4和ASP.Net MVC 5。 随着我们在项目中的进展,我们发现我们并没有真正使用Bootstrap,因为其他组件(例如PrimeNG)似乎更容易使用并且更适合Angular。 我们注意到的一件大事 - 这就是问题的关键点 - 就是我们不使用ASP.Net MVC。 我们有一个Web API层,我们所有的mvc控制器方法都只是调用web api方法并传递数据。 我的问题是:实际使用MVC有什么意义吗?我开始认为我们可以将Angular谈话直接引导到web api层,因为MVC在中间没有为我们做任何事情。 有没有人对我为什么不这样做有任何建议?
答案 0 :(得分:3)
不,你根本不需要MVC。您可以使用任何您喜欢的服务器语言 - 以API的形式(可能更容易)或其他GUI框架(如MVC)。
正如您已经意识到的那样,Angular只是一个客户端工具,并不关心后端是什么 - 它只是发出HTTP请求并接收响应,完全不知道代码是什么用于生成这些回复。
事实上,这是网络的美丽之一 - 浏览器和服务器之间的通信完全是使用商定的通用标准(主要是HTTP协议,由JSON之类的东西支持)完成的,允许几乎无限的组合只要服务器和客户端框架都遵守这些标准,它们就可以快乐地协同工作。
答案 1 :(得分:0)
如果您希望将角度应用程序呈现为服务器,然后将其提供给客户端,则可以使用MVC。您可以强制执行此操作的其他用例是,当您希望基本代码在一起时可以从一个项目而不是两个项目部署时,如果您有一个用于webapi的项目而另一个项目用于角度应用程序。
在最后一种情况下,部署两个不同的项目将具有以下优势:您的角度应用程序将完全与您的后端无关,这意味着您只需要更改服务的终端和bam!运行应用程序,没有?不是真的,反对的是你需要配置所有与CORS相关的垃圾,以便你的客户可以与你的后端进行通信。
答案 2 :(得分:-1)
HTML帮助程序是您问题的答案(它确实有帮助)。另一个优点是它提供了更好的模型和验证耦合。 要清楚地回答这个问题,需要了解后端是如何工作的。您需要了解html-helpers如何与后端连接并帮助实现开发的清晰度。另外,为了测试目的,ASP.net MVC + Angular是一个更好的选择。
所以这个决定(使用MVC.Net)不太可能来自UI开发人员,而是来自面临各种挑战的架构师。 1)与前端和后端的一致性(更好的通信/隔离开发) 2)改进代码重用 3)验证何时何地(边界) 4)类型安全 5)引入新开发者的容易性 6)可测试性