Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 混合使用Angular和ASP.NET MVC/Web api?_Asp.net Mvc_Angularjs_Asp.net Mvc 4 - Fatal编程技术网

Asp.net mvc 混合使用Angular和ASP.NET MVC/Web api?

Asp.net mvc 混合使用Angular和ASP.NET MVC/Web api?,asp.net-mvc,angularjs,asp.net-mvc-4,Asp.net Mvc,Angularjs,Asp.net Mvc 4,我从使用ASP.NETMVC/WebAPI开始,现在我开始使用Angular,但我不清楚如何正确地将它们混合使用 一旦我使用Angular,MVC服务器端的概念是否仍然有价值?或者我应该严格使用WebAPI来获取HTTP调用的数据吗 任何关于ASP.NET MVC人员过渡到Angular的技巧都会很有帮助AngularJS更多地与单页应用程序范例相关联,因此,无法从呈现标记的服务器端技术中获得太多好处。没有任何技术原因阻止您一起使用它们,但在实际意义上,您为什么要这样做 SPA检索所需的资产(J

我从使用ASP.NETMVC/WebAPI开始,现在我开始使用Angular,但我不清楚如何正确地将它们混合使用

一旦我使用Angular,MVC服务器端的概念是否仍然有价值?或者我应该严格使用WebAPI来获取HTTP调用的数据吗


任何关于ASP.NET MVC人员过渡到Angular的技巧都会很有帮助

AngularJS更多地与单页应用程序范例相关联,因此,无法从呈现标记的服务器端技术中获得太多好处。没有任何技术原因阻止您一起使用它们,但在实际意义上,您为什么要这样做

SPA检索所需的资产(JS、CSS和HTML视图)并自行运行,与服务通信以发送或检索数据。因此,服务器端技术对于提供这些服务(以及其他方式,如身份验证等)仍然是必要的,但是呈现部分基本上是无关的,也不是特别有用,因为这是重复的工作,除了MVC在服务器端和Angular在客户机上进行。如果您使用的是Angular,则希望在客户端上使用它以获得最佳效果。您可以制作Angular post HTML表单并从MVC操作中检索部分视图,但您可能会错过Angular的最佳和最简单的功能,从而使您的生活更加艰难

MVC非常灵活,您可以使用它为SPA应用程序的呼叫提供服务。然而,WebAPI经过了更精细的调整,并且对于此类服务更易于使用

我已经编写了许多AngularJS应用程序,包括一对从现有WebForms和MVC应用程序迁移而来的应用程序,ASP.NET方面逐渐发展成为一个平台,用于将AngularJS应用程序作为实际客户机交付,以及托管客户机通过REST(使用WebAPI)与之通信的应用程序层。MVC是一个很好的框架,但它通常在这类应用程序中找不到工作

ASP.NET应用程序成为基础架构的另一层,其职责仅限于:

  • 托管依赖项容器
  • 将业务逻辑实现连接到容器中
  • 为JS和CSS设置资产包
  • 托管WebAPI服务
  • 加强安全性,执行日志记录和诊断
  • 与应用程序缓存接口以提高性能
水疗的另一个好处是可以增加团队的带宽。一个组可以启动服务,而另一个组则在客户端应用程序中。由于您可以轻松地创建存根或模拟REST服务,因此您可以在模拟服务上拥有一个完全工作的客户端应用程序,并在完成后替换为真正的应用程序


你确实需要在Angular上预先投资,但它的回报很大。由于您已经熟悉MVC,因此您在一些核心概念上有了长足的进步。

纯Web API

我曾经是ASP.NET MVC的铁杆人物,但自从我遇到Angular之后,我看不出有什么理由我会使用任何服务器端内容生成框架。纯角度/静止(WebApi)提供了更丰富、更平滑的结果。它的速度要快得多,并且允许您构建非常接近桌面应用程序的网站,而无需任何时髦的黑客攻击

Angular确实有一点学习曲线,但一旦您的团队掌握了它,您将在更短的时间内建立更好的网站。这主要是因为你不再有这些状态(更少)问题了

例如,想象一个带有任何传统服务器端框架的向导表单。每一页都需要单独验证和提交。页面的内容可能取决于上一页的值。可能用户按下了后退按钮,正在重新提交以前的表单。我们在哪里存储客户端的状态?所有这些并发症都不存在时,使用角和休息

所以。。。到黑暗面来。。。我们有饼干


这取决于您正在从事的项目

如果angularJS对你来说是新事物,我宁愿选择一个小的低风险/压力项目开始,并确保你学会如何以正确的方式做事(我看到许多项目使用Angularjs时出错,因为压力大、期限长……没有时间以适当的方式学习,例如使用JQuery或在控制器内部访问DOM等等)

如果该项目是一个全新的项目,并且您在AngularJS方面有一些经验,那么放弃ASP.net MVC并在服务器端使用纯REST/WebAPI是有意义的


如果它是一个现有的项目,你可以选择一个复杂的功能子集,并将该页面构建为一个单独的angularJS应用程序(例如,你的应用程序由大量基于剃刀的标准简单/中等复杂度页面组成,但你需要高级编辑器/页面,这可能是使用angularJS构建的目标页面).

您可以使用Angle framework进行前端开发,即构建视图。它为您提供了一个健壮的体系结构,一旦您了解了它,您就会发现它比Asp.net MVC的razor视图引擎更具优势。要获取数据,您必须使用WebAPI,现在Asp.net MVC项目支持WebAPI和MVC控制器。您可以参考下面的链接从Angular和ASP.NETMVC应用程序开发开始

目前有两个框架可用于为angular应用程序开发UI组件。我在一个angular项目中使用了这两个框架

材料

涂底漆

这要视情况而定,但我认为“我是否应该严格使用Web API纯粹是为了获取angular HTTP调用的数据”是正确的方法。以下是使用ASP.NET核心Web API后端构建angular应用程序的教程->我同意:通过angular.In MVC或WebForms(ugh)开发应用程序的速度和流畅性你把这段时间花在