Blazor 是否可以专门用于本机应用程序中的 GUI 渲染,而不是 XAML?
我在考虑是否应该投入时间和精力来学习 Blazor 。 据我所知,最初 Blazor 是用于开发 Web 应用程序 的框架,但它正在转向原生应用程序。
让我澄清一下:
- 我已经有足够好的堆栈(TypeScript + 框架)来开发 Web 应用程序,我不需要 Blazor 作为替代方案
- 我不需要 Blazor 的服务器功能 - ASP.NET 可以满足我的需求
我希望 Blazor 关注的是原生应用程序(例如 .NET MAUI)中的 GUI 渲染,而不是 XAML。 它的优点在于:
- HTML+CSS 比 XAML 更灵活
- 我可以在本机应用程序中重复使用我的 HTML+CSS 开发
谈到使用 Web View 的本机应用程序,我们需要明确以下两种情况:
-
在 Web View 内执行的前端 Web 应用程序。作为 Web 应用程序,它不能:
- 使用本地文件
- 使用本地数据库(请不要告诉我有关 IndexedDB 的信息 - 这是题外话)
- 使用本机 API
- 离线工作
作为本机应用程序,此类应用程序没有价值,在大多数情况下可以用 PWA 替换。
-
Web View 仅用于 GUI 渲染,而 Web View 可以与本机 API 交互,使用本地文件、本地数据库等。此类概念在 Electron.JS 中实现,但不支持移动设备。
我希望 Blazor 具有 第二个 功能。
关于 Blazor Hybrid 的说明
也许这就是我想要的,但我不确定。 例如,它具有 Web 复合体( wwwroot 目录)。
如果有 Web 版本,则它可能与本机应用程序完全不同,或者本机版本将具有与 Web 版本相同的限制(例如,使用本地文件系统等)
.NET MAUI Blazor 或 Blazor Hybrid 将作为 .NET 应用程序运行。它唯一仍与 Web 相关的东西是 UI。所以我想这就是对你的问题的简短回答:如果你使用 .NET MAUI Blazor,你 正在 使用 HTML 和 CSS 进行 GUI 渲染,而其余部分则作为 .NET 应用程序运行。
因为我们可以通过 .NET MAUI 在移动设备上运行 .NET 运行时,所以无需启动某种服务器进程或使用 WebAssembly,它可以直接作为 .NET 应用程序运行。
这也意味着你不受浏览器沙箱的约束。如果你想使用相机?你可以!地理位置?没问题!格式化硬盘?去做吧!当然,这取决于平台支持的内容以及你是否实现了正确的权限。它仍然是一个(移动)应用程序。
很酷的是,它仍然是 Blazor,所以如果你做出正确的代码共享选择,你可以轻松地在任何 Blazor Web 项目和 .NET MAUI Blazor 项目之间共享所有代码。
.NET MAUI Blazor 项目确实有 Web 组件,因为 Blazor 本质上是一种 Web 技术,这就是一切的开始,并且能够轻松地将其传输到刚刚被采用的本机应用程序中。
希望能澄清这一点!