Microsoft Technology Associate旨在促进 .net 开发人员利用最新 Blazor 工具包的潜力来创建 Web 应用程序或本机 iOS/Android 应用程序。微软已经为 Blazor 宣布了一个实验性的“Blazor 构建”,这是 ASP.NET 平台的一项功能,使开发人员能够在 C# 而非 JavaScript 的帮助下创建交互式 Web 应用程序和用户界面。组件的这种绑定允许他们在熟悉的 Web 编程的帮助下使用 .NET 或 C# 为 Android 或 iOS 创建本机移动应用程序。
在 2019 年,微软展示了一个解决方案,该解决方案使用与开发桌面 Flutter 应用程序相同的技术,该应用程序适用于移动设备并用 dart 编写,但在 Blazor 和 .NET 的帮助下进行。 Microsoft Blazor 是 ASP.NET 的一个实验性 Web 用户界面框架,旨在通过 WebAssembly 将应用程序带到所有浏览器。它允许开发人员创建真正的全栈应用程序并在客户端和服务器之间共享代码,而无需任何插件或转译。 Microsoft 正在对该平台进行试验,以满足熟悉 Web 编程基础知识和用于创建本机应用程序的模式的开发人员的需求。在本文中,我们将探讨 Microsoft Blazor 如何彻底改变 .NET 中的网站开发服务。
为什么 Blazor 是新的炒作?
Microsoft 的 Blazor 是源自 ASP.NET 社区的最新客户端用户界面框架。该平台最大的卖点是它能够借助 CSS、HTML 或 C# 而不是 JavaScript 来开发丰富的 Web UI 界面体验。它拥有大多数开发人员长期以来梦寐以求的一切。作为Microsoft 网站开发人员或助理,如果您在过去几年一直关注 ASP.NET 领域的新发展,那么您肯定听说过 Blazor。 JavaScript 框架自成立以来一直是用于前端 Web 开发的事实上的衡量标准,开发人员似乎从未对它感到满意。并且在过去几年中涌现出许多转译和超集,如 Dart、CoffeeScript、Elm、Scala 等,以改进 JavaScript 平台并使其更易于维护。然而,Blazor 已经开始了这个过程,因为它有潜力成为一个高效和高产的编程平台,而不是它的原始设计,并且被证明是 JavaScript 的单页应用程序开发框架的直接当代。该框架的主要目标是-
借助C#而不是JavaScript创建丰富且交互式的Web应用程序/用户界面
共享或收集.NET框架中开发的服务器端或客户端应用程序逻辑
为浏览器支持渲染用户界面 CSS 和 HTML,包括移动浏览器
集成最新的托管平台,如 Docker 等等。
Blazor 框架是一种单页应用程序开发解决方案,它允许用户借助 C# 而不是 JavaScript 来构建交互式 Web 用户界面。受 Angular、Vue 或 React 等 JavaScript 框架的启发,它使用类似的概念来开发交互式解决方案。任何 Blazor 应用程序都是从 Razor 的可重用组件(即 C# 和 HTML 的标记语法)开发的。通过 Blazor,Microsoft 分享了正在进行的各种实验,并在 Web Window 的帮助下用顶级桌面应用程序对其进行了钻研。但是对于本机移动应用程序开发的最新版本是 Blazor 编程与 Xamarin 控件配对的地方。
是什么让 Blazor 成为最佳 Web 开发公司的灵活平台?
Blazor 是架构,因为它在如何呈现更改与如何计算用户界面组件模型或应用程序更改之间进行了分离。这一特性使这个平台有别于同时代的其他用户界面开发框架,如 ReactJS、Angular 或 React Native,它们只能基于用户界面开发 Web 技术。通过利用多个渲染来开发解决方案,Blazor 不仅能够开发基于 Web 的组件,还可以开发本机移动用户界面。此外,它不需要以不同的方式开发组件,因此为 Web 渲染器开发的组件不能与其他原生移动渲染器一起使用。但是编程模型保持不变,这意味着一旦开发人员熟悉这个模型,就可以在任何渲染器的帮助下轻松创建用户界面。其应用程序模型的组件是-
WebAssembly 渲染器
远程渲染
电子渲染器
移动 Blazor 绑定渲染器
托管模型- Blazor 的 AP 模型在其核心负责计算和维护跨 ASP.NET 开发服务的 UI 更改。但是,开发人员也可以使用其他渲染器来控制显示和更新。这些应用程序渲染器模型大多称为托管模型,在开发时,Blazor 中通常有四种模型。他们是-
Blazor 服务器
BlazorWebAssembly
Blazor 电子
Blazor 绑定
在这些模型中,Blazor Server 是唯一在撰写本文时被归类为生产支持的模型,而 Blazor Bindings 和 Electron 被标记为实验支持的模型。
Microsoft 技术助理:Blazor 的功能
已经宣布 2020 年绝对是微软 Blazor 的巅峰之作,很快它将成为主流。该平台真正简单易用,因为它结合了 Razor(浏览器 + Razor)的便利性和 ASP.NET 概念。 Blazor还利用了Dotnet约定或Razor提供的模板,简化了流行的JavaScript框架(如React或Angular)中令人难以置信的模式。 Blazor 是一个令人难以置信的平台,它有助于在 ASP.NET 框架的帮助下创建交互式客户端 Web 用户界面。在 Blazor 平台的帮助下,开发人员可以重用来自服务器端应用程序任何部分的库和代码。由于它还使用 ASP.NET 框架来开发交互式客户端应用程序,因此它构建在已经很强大的框架和库集之上。该平台的一些有用功能使其脱颖而出 -
它具有大量预制的用户界面组件,因此开发人员可以轻松开始创建出色的应用程序。每个自定义 Web 开发公司或组织都非常欣赏此功能
此包不需要 JavaScript 技术或功能。相反,可以使用 C# 轻松完成任务。这是为了提高开发人员或组织的整体生产力
它具有对 .NET 框架的应用程序开发组件进行身份验证的内置支持
开发人员可以借助名为“JavaScript 互操作性”的功能从 ASP.NET 方法中调用 JavaScript 功能
每个Microsoft网站开发人员都认为Blazor具有吸引力,因为它是由ASP.NET社区开发的,它是用于创建在WebAssembly下运行的客户端应用程序的框架。它提供了使用 ASP.NET 端到端技术的现代且丰富的单页应用程序框架的优点。此外,这个框架的想法可以潜在地结合 C# 的效率,而 Razor 是一个可以完全在浏览器中运行的客户端 Web 项目。它具有创建现代 Web 框架所需的所有功能,其中一些已在下面列出-
用于开发可组合用户界面的模型
在应用程序开发阶段实时加载浏览器
使用最新的 Web 开发功能
依赖注入
能够在旧浏览器上运行
完成ASP.NET调试
无需插件即可开发开放式 Web 开发平台的各个部分
丰富的智能和UI开发工具
服务端渲染
阅读博客- C#、.NET、ASP.NET、Microsoft.NET 和 Visual Studio 之间的区别是什么?
Microsoft Blazor 与 ASP.NET 交互式 Web 开发的比较
任何常规的 ASP.NET 都将用户界面呈现为一个字符串块。另一方面,Blazor 开发或渲染了一棵树而不是字符串。此框架是文档对象模型的表示,这意味着它在内存中保存组件,而 Blazor 保留表示。在这些组件中进行的任何更改或修改都可以触发相同文档对象模型元素的用户界面更新。这两个渲染字符串的过程之间存在巨大差异。特别是,最好的 Web 开发公司使用 Blazor 代码,无法直接访问文档对象模型代码。此限制对于 ASP.NET Core 和 Razor 的工作方式不同,因为它们依赖于 JavaScript 框架才能完全访问交互式应用程序的用户界面元素。
Blazor 度假村渲染树以移回较早的文档对象模型 (DOM) 表示并查找同一模型的特定部分。稍后,此框架会相应地更新、编辑或删除它们。该框架简化了对文档模型所做的更改或操作呈现树以执行更改。这种机制允许 C# 语言在客户端交互式应用程序呈现上工作。客户端 Blazor 的优点是-
对于网站开发服务,Blazor 允许开发人员直接在浏览器中运行 ASP.NET 代码。该框架还打破了 JavaScript 框架在全栈平台上的垄断,因为有了它的帮助,.NET 专业人员不需要成为编程多语言者。他们还可以在不使用 JavaScript 编写代码的情况下开发整个解决方案
Blazor UI 代码作为中间语言编译到 ASP.NET 中,这意味着该框架具有与 JavaScript 代码相同的潜力。它的编译模型还可以为性能驱动的浏览器 Web 解决方案创造巨大的差异。
开发人员可以轻松地验证服务器或客户端应用程序之间的代码。例如,假设ASP.NET 开发服务平台具有可应用于后端和浏览器的验证逻辑。 Blazor 允许他们在 ASP.NET 标准中创建类库,并在服务器端或客户端应用程序之间共享它。此外,验证逻辑中的任何更改都将自动应用于这些平台中的每一个。
Blazor 服务器
该模型是目前官方支持的模型之一,在它的帮助下,应用程序可以轻松地在服务器上运行,而不能在浏览器中运行。 Blazor 服务器使用 SignalR 连接将用户界面更新从服务器传输到浏览器。此服务器托管模型目前处于 Microsoft 基本开发的生产状态支持选项中。在此模型下,面向平台的应用程序运行在服务器和 ASP.NET 运行库的顶部。当开发人员或用户加载此应用程序时,首先会下载一个小的 JavaScript 文件,该文件与服务器建立双向实时连接(SignalR 连接)。用户和应用程序之间的任何交互都会立即传输回相应的服务器,并通过服务器处理连接。服务器完成处理后,用户界面更新和更改将传输回同一客户端并应用于文档对象模型。 Microsoft 开发了一种高性能算法来计算差异并以紧凑的二进制格式传输它们。与通常采用无状态方法的大多数其他交互式 Web 应用程序不同,Blazor 服务器应用程序模型在整个服务器上保持相同的状态。
对于开发人员社区,在少数情况下需要重新思考方法,但总的来说,他们可以使用与在 ASP.NET 核心应用程序中使用的概念类似的概念。这种模型的最大优点是您不必开发另一个应用程序编程接口来在服务器和客户端之间进行通信。这是因为每个方面都在服务器上运行,因此自定义 Web 开发公司或开发人员可以根据其逻辑直接调用这些函数。由于服务器上的计算过程,Blazor Server 交互式 Web 解决方案非常适合低端设备或瘦客户端。
BlazorWebAssembly
对于托管模型来说,这是一件大事,但有充分的理由。该模型为 JavaScript 交互式应用程序开发提供了直接竞争,例如 React、VueJS 或 Angular。使用 WebAssembly,开发人员可以在 C# 而非 JavaScript 的帮助下轻松编写用户界面逻辑和代码。当微软最初宣布 Blazor 时,它完全是关于 WebAssembly 模型。该模型允许应用程序首先以运行时格式加载,然后加载整个应用程序程序集及其依赖项。 BlazorWebAssembly 的依赖包括框架、System.dll 等,但运行时为二进制格式,其他程序集格式相同,以便开发人员可以在通常的 ASP.NET 应用程序开发中使用它。
Blazor WebAssembly 利用解释器代码来运行或加载应用程序,在这种模式下,解释器可以执行交互式应用程序用户界面。在 WebAssembly 模式中组合的这个过程的唯一部分是它的单声道运行时。它的主要优点是性能和与大文件或大量文件的权衡。 Blazor 中 WebAssembly 的一些优点是-
它编译静态文件,这意味着开发人员不需要考虑服务器上的 ASP.NET 运行时
Blazor 中的大部分任务都从服务器卸载到其客户端
应用程序也可以在离线模式或状态下运行
它有助于代码共享,其中 C# 组件可以在服务器和客户端之间有效共享
通常,在ASP.NET应用程序中,使用了即时编译器,但WebAssembly最近不支持它。但是,它可能会添加到标准的未来版本中,但就目前而言,另一个用于执行 ASP.NET 代码。 Microsoft 联合平台正在制定计划和提前编译 (AOT),以便将应用程序或框架程序集直接编译到 WebAssembly。这种编译产生了有效的交互式应用程序开发时间,并将证明在运行时方面是面向性能的。
底线
在这个已经有很多关于 Blazor 进入 .NET 开发的关注和讨论的时候,开发人员有很多选择。在本文中,我们介绍了微软的 Blazor、Sever、WebAssembly 等的介绍和核心概念。我们还讨论了如何在当前时间部署该框架以在 ASP.NET 平台上进行交互式 Web 应用程序开发。 Blazor 是一个令人兴奋的平台,并且有更大的改进空间,尤其是在开发和工具方面。
此外,WebAssembly 是大多数应用程序开发公司或前端开发人员不能简单忽视的主要技术。对于 ASP.NET 专业人员来说,这是一个出色的平台,使他们能够利用它成为全栈开发人员,而无需学习其他编程语言。该平台在为单个编程模型开发用户界面时提供了清晰性,并且可以轻松学习并在任何地方应用框架组件。