- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
随着 ASP.NET CORE 版本 2.0 的最新发布,我们现在有了 Razor Pages,我非常喜欢它,因为它展示了一种MVVM 方式我已经熟悉的开发,因为我在 UWP 中使用过它。
我正在寻找不使用 js 开发网络应用程序,因为我是一名 .net 开发人员,我遇到了这个名为 DOTVVM 的框架。 , 它很棒,因为它提供了 js 框架的一些功能,如 Angular、React 等,并且它还与 ASP.NET CORE 2.0 很好地集成
我想在以下 3 个场景之间讨论这个问题:
我应该使用 DOTVVM 而根本不使用 JS。
我应该使用 Razor 页面 而不是 asp.net core 2.0,因为 razor 页面提供了 dotvvm 提供的所有功能,并且将来会有更多的社区。
我应该学习像 Angular 或 React 这样的 JS 框架,因为 razor pages 和 dotvvm 都不足以替代它们。
讨论可以从所有开发者的角度出发,所以我可以得到 JS 开发者以及使用过 dotvvm 或 的开发者的意见 Razor 页面。目标是创建具有良好性能的完全交互式和响应式网络应用程序。
**重要:**创建的网络应用程序可以从一开始就是一个渐进式网络应用程序,也可以在创建后变成一个pwa,这取决于技术我在最后选择。
我知道对于渐进式 Web 应用程序我需要编写一些 JS,但考虑到它非常简单且无需编写,这没关系。
这个问题的原因是为了让我们可以从多个角度讨论这些选项,并在最后为我的应用推导出一个更好的选项。
最佳答案
这实际上取决于您要创建的应用程序的类型。事实上,您可以使用任何网络技术构建任何应用程序。区别仅在于难度。
Razor Pages 非常易于使用,它们是 ASP.NET Core 平台的一部分。他们使用的是 MVVM 模式,但对客户端交互没有帮助。如果您需要根据某些条件隐藏某些表单字段,则需要使用 JavaScript 来完成。
我会将它们用于一个简单的公司网站,非常简单的管理网站,页面少且表单简单,或者用于某些电子商务网站的面向公众的部分。我可能还会使用 jQuery 或其他库来进行交互、动画和类似的事情。
DotVVM 是一个 MVVM 框架,特别适用于具有复杂 UI 的 Web 应用程序:许多复杂的表单具有数十个字段和交互性(当您在组合框中选择一个项目时,另一个组合框将获得新值,一些字段将被预先-filled,表格的一部分会消失或改变等等)。模态对话框、多步骤向导、大量带有数据的网格、排序、分页...
因为 DotVVM 会为您处理很多事情并将数据绑定(bind)转换为 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)部分。
关于c# - asp.net core 2.0 dotvvm vs razor pages - 对于交互式网络应用程序来说,哪个更强大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46545062/
我是一名优秀的程序员,十分优秀!