2

随着ASP.NET CORE 2.0 版的最新版本,我们现在拥有我非常喜欢的Razor Pages,因为它展示了一种我已经熟悉的MVVM开发方式,因为我在UWP中使用过它。

我正在寻找开发没有js的 web 应用程序,因为我是一个.net 开发人员,我遇到了这个称为DOTVVM的框架,它很棒,因为它提供了 Angular、React 等 js 框架的一些功能,并且它也很好地集成了ASP.NET 核心 2.0

我想在以下 3 个场景之间讨论这个问题:

  • 我应该使用DOTVVM而根本不使用 JS。

  • 我应该在 asp.net core 2.0 中使用Razor 页面,因为 razor 页面提供了 dotvvm 提供的所有功能,并且将来会有更多的社区。

  • 我应该学习 Angular 或 React 之类的JS 框架,因为 razor pages 和 dotvvm 都不足以替代它们。

讨论可以从所有开发者的角度出发,所以我可以得到JS开发者以及那些使用过dotvvmRazor pages的人的意见。目的是创建具有良好性能的完全交互式和响应式的 Web 应用程序。

**重要:** 创建的网络应用程序可以从一开始就是渐进式网络应用程序,也可以在创建后变成pwa,这取决于我最后选择的技术。

我知道对于一个渐进式 Web 应用程序,我需要编写一些 JS,但考虑到它非常简单且编写量很少,这没关系。

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

4

2 回答 2

8

这实际上取决于您尝试创建的应用程序的类型。事实上,您可以使用任何 Web 技术构建任何应用程序。不同之处仅在于难度


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

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


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

因为 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 中制作网站的公共部分。

于 2017-10-04T08:58:00.930 回答
1

微软正在回归 WebForms 方法来简化项目结构,相信“约定优于配置”的口头禅,同时对开发人员隐藏配置以加快速度。但它的缺点是一切都会再次混合。我看起来不像是组织起来的明智之举。但是……嘿!一些新的东西必须引起开发人员对 Microsoft 的注意。

如果您的页面使用 RESTful 的 MVC Web API,那么仅使用 Razor 页面确实更容易。如果没有,我建议您使用 Core MVC。

于 2018-03-14T01:07:00.410 回答