Asp.net mvc 从ASP.NET MVC局部视图构建SPA-这是个好主意吗?

Asp.net mvc 从ASP.NET MVC局部视图构建SPA-这是个好主意吗?,asp.net-mvc,asp.net-mvc-5,Asp.net Mvc,Asp.net Mvc 5,我花了相当多的时间在React和Redux上,并且很喜欢它,但有时对于含有大量CRUD的业务线应用程序来说,这感觉有些过头了,但浏览器中没有大量的状态信息 我想知道我是否可以使用单个容器元素在ASP.NET MVC中创建SPA,然后在用户导航时交换不同的部分视图,从而使整个页面具有良好的行为,而不必重新加载,还允许我使用所有有用的支架,工具和代码在VisualStudio中第一次生成数据库,也不必用JS和C#编写所有验证逻辑(就像使用连接到WebAPI后端的SPA一样)。一些初步的实验似乎表明这

我花了相当多的时间在React和Redux上,并且很喜欢它,但有时对于含有大量CRUD的业务线应用程序来说,这感觉有些过头了,但浏览器中没有大量的状态信息

我想知道我是否可以使用单个容器元素在ASP.NET MVC中创建SPA,然后在用户导航时交换不同的部分视图,从而使整个页面具有良好的行为,而不必重新加载,还允许我使用所有有用的支架,工具和代码在VisualStudio中第一次生成数据库,也不必用JS和C#编写所有验证逻辑(就像使用连接到WebAPI后端的SPA一样)。一些初步的实验似乎表明这是可行的

显然,我不是第一个有这个想法的人,迪诺·埃斯波西托在Visual Studio杂志网站(和)上的两篇文章中描述了这个想法,并在年进行了跟进。John Fazzaro还解释了一种路由方法

编辑: 我将集中讨论这个问题,以避免它过于宽泛。就我而言,我并不担心网络流量,因为这些业务线应用程序是定制的内部系统,用户相对较少。在这些情况下,开发时间比可能产生的任何基础设施成本都要昂贵

因此,一些具体问题:

  • 这种方法是否有任何明显的危险信号,使其成为一种趋势 真是个坏主意
  • 有没有人在生产中这样做过,如果有,是怎么做到的 维持?当应用程序变得越来越大时,你是否感到痛苦
  • 如果我们使用VS工具,这种方法会更快地实现吗 开发而不是编写Web API后端和Redux/React客户端
  • 我们是否会通过在中重复交换部分视图来造成内存泄漏 然后出去

  • 这种方法的主要“问题”在于,您发送的是潜在的大型HTML响应,而不是纯JSON/XML/其他数据。这种情况有点违背了这一点,因为您仍然有大量的网络流量,会减慢速度,并且需要为每个不同的数据表示提供不同的局部视图

    这不是一个坏主意,它只是框架的主要优点是,您可以定义1个后端API(例如发送小型JSON),然后在多个页面上根据需要呈现不同的HTML。这意味着要测试的东西更少,网络流量更少(服务器负载也更少)


    一个好的折衷方法是使用MVC或WebAPI提供JSON API,然后使用较小的框架(如主干或敲除)将其呈现为html模板。

    这些都是非常好的观点,也是我为什么喜欢使用合适的SPA框架来编写更大的B2C云应用程序的原因,但对于我们的业务线应用程序来说,网络流量和服务器负载并不是真正主要的问题。对于这些应用程序,开发成本要比服务器托管成本高得多,因此利用所有这些巧妙的脚手架工具具有真正的好处。主干/淘汰等(我认为)的问题是,我现在必须在客户端复制验证逻辑,并用不同的语言将所有对象的客户端版本写入服务器端原始版本?