asp.net core 2.0 dotvvm vs razor pages - 对于交互式网络应用程序来说,哪个更强大?

asp.net core 2.0 dotvvm vs razor pages - which one is more powerful for an interactive web app?

随着 ASP.NET CORE 版本 2.0 的最新版本,我们现在有了 Razor Pages,我非常喜欢它,因为它显示我已经熟悉的 MVVM 开发方式,因为我在 UWP.

中使用过它

我正在寻找没有 js 的网络应用程序开发,因为我是一名 .net 开发人员,我遇到了这个称为 DOTVVM ,它很棒,因为它提供了 js 框架的一些特性,如 Angular、React 等,并且它还与 ASP.NET CORE 2.0

很好地集成

我想在以下 3 种情况下讨论这个问题:

讨论可以从所有开发人员的角度出发,所以我可以得到 JS 开发人员以及那些与 dotvvm[ 合作过的人的意见=50=] 或 Razor 页面。目的是创建具有良好性能的完全交互式和响应式网络应用程序。

**重要提示:**创建的网络应用程序可以从一开始就是一个渐进式网络应用程序,或者可能变成一个pwa创建之后,取决于我最后选择的技术。

我知道对于渐进式 Web 应用程序我需要编写一些 JS,但考虑到它非常简单且几乎不需要编写,所以没关系。

这个问题的原因是为了让我们可以从多个角度讨论这些选项,并在最后为我的应用推导出一个更好的选项。

这实际上取决于您要创建的应用程序的类型。事实上,您可以使用任何 Web 技术构建任何应用程序。区别仅在于难度[​​=46=]。


Razor Pages 非常易于使用,它们是 ASP.NET 核心平台的一部分。他们使用的是 MVVM 模式,但对客户端交互没有帮助。如果您需要根据某些条件隐藏某些表单域,则需要在 JavaScript 中进行。

我会将它们用于一个简单的公司网站,非常简单的管理网站,页面少且表单简单,或者用于 public 面向某些电子商务网站的部分。我可能还会使用 jQuery 或其他库来进行交互、动画和类似的事情。


DotVVM 是一个 MVVM 框架,它特别有助于具有复杂 UI 的 Web 应用程序:许多具有数十个字段和交互性的复杂表单(当您 select 组合框中的一个项目,另一个组合框将获得新值,一些字段将被预填充,表单的一部分将消失或更改等等)。模态对话框、多步骤向导、大量带有数据的网格、排序、分页...

因为 DotVVM 为您处理很多事情并将数据绑定转换为 JavaScript,您不需要自己编写 JS。这并不意味着你不应该学习它。如果您了解它,它将对您有很大帮助 - 您将能够添加更多交互性,在需要时扩展框架等等。 DotVVM 可以让你在不懂 JS 的情况下做很多事情,但如果你知道它,你会走得更远。


Angular、React 或其他客户端框架在今天被广泛使用,许多网站和应用程序都是在其中构建的。它们比 DotVVM 更通用,DotVVM 主要针对业务应用程序段并且需要在服务器上安装 .NET(因为它不仅仅是客户端库)。

使用 Angular 或 React 需要 JavaScript 的知识,而且不仅如此。您将需要了解 Node.js 和相关工具,例如 npm。您将需要与服务器交换数据,因此您可能需要构建一个 REST API,使用 Swagger 生成客户端代理 类,然后您可能需要一些其他 JS 库与控制和类似的东西。

需要学习的东西很多,如果您习惯了 Visual Studio 的舒适性,例如 IntelliSense 或调试器,您肯定会错过这些功能。


最后,您不需要拘泥于一种技术。例如,您可以将 Razor Pages 与 DotVVM 结合使用。您可以在 DotVVM 中制作管理仪表板,在 Razor Pages 中制作网站的 public 部分。

Microsoft 正在回归 WebForms 方法来简化相信 "Convention over configuration" 咒语的项目结构,同时向开发人员隐藏配置以加快速度。但它有一个缺点,就是一切都会再次混合。我看起来不像是组织的明智之举。但是……嘿!新事物必须引起开发人员对 Microsoft 的注意。

如果您的页面使用 MVC Web API 作为 REStful,使用 Razor 页面确实更容易。如果没有,我建议您使用 Core MVC。