Blazor——Asp.net core的新前端框架

Blazor是微软在Asp.net core 3.0中推出的一个前端MVVM模型,它可以利用Razor页面引擎和C#作为脚本语言来构建WEB页面,如下代码简单演示了它的基本功能:

640?wx_fmt=png

和Angular JS和VUE的模型非常类似,Blazor 支持大多数应用所需的核心方案:

  • 参数

  • 事件处理

  • 数据绑定

  • 路由

  • 依赖关系注入

  • 布局

  • 模板

  • 级联值

使用Blazor主要有如下好处:

  • C# 语言:使用 C# 代替 JavaScript 来编写代码。

  • .NET 生态系统:利用现有的 .NET 库生态系统。

  • 完整堆栈开发:共享服务器和客户端逻辑。

  • 快速且具有可伸缩性:.NET 旨在实现出色的性能、可靠性和安全性。

  • 行业领先工具:始终高效支持 Windows、Linux 和 macOS 上的 Visual Studio。

  • 稳定性和一致性:以一组稳定、功能丰富且易用的通用语言、框架和工具为基础来进行生成。

客户端模式:

运行Blazor需要C#支持,在客户端模式下,通过WebAssembly的方式实现的:

  • C# 代码文件和 Razor 文件将被编译为 .NET 程序集。

  • 该程序集和 .NET 运行时将被下载到浏览器。

  • Blazor 客户端启动 .NET 运行时并配置运行时,为应用加载程序集。 文档对象模型 (DOM) 操作和浏览器 API 调用将由 Blazor 客户端运行时通过 JavaScript 互操作处理。

640?wx_fmt=png

服务端模式:

Blazor组件呈现逻辑也可以在服务端实现,通过SingalR连接传递UI更新:

  • 处理从浏览器到服务器的发送 UI 事件。

  • 运行组件后,将服务器发送的 UI 更新重新应用到浏览器。

640?wx_fmt=png

两种模式的比较:

和客户端模式相比,服务端模式有如下有点:

  • 客户端不需要WebAssembly支持,具有更好的客户端兼容性

  • 不需要下载.net webassembly程序集,具有更小的页面加载时间

  • 可以运行完整的.net runmtime,可以实现更加强大的功能

但同时也有如下缺点:

  • 所有操作都需要发往服务器,网络不好的时候有延时

  • 所有运算都在服务端进行,服务器端具有更大的处理压力

综上所述,客户端具有更好的效率,服务端具有更少的约束和更强大的功能,对于一些对性能要求不高和网络不差的场景,服务端模式无疑是非常合适的选择。

参考文章:

  1. Blazor 简介

  2. https://dotnet.microsoft.com/apps/aspnet/web-apps/client

  3. https://blazor-tutorial.net/

原文地址:https://www.cnblogs.com/TianFang/p/10808390.html

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com 
640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/315991.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CF1149B Three Religions

CF1149B Three Religions 题意: 给定长度为 n 的母串和三个子串s1,s2,s3s_1,s_2,s_3s1​,s2​,s3​ 。初始时子串均为空。有 q 次询问。你需要支持两种操作:向某个子串末尾添加一个字母,或者删去某个子串末尾的字母。在每次操作后&#xff…

【译文】领域模型的五个特征

我在这篇博客文章中,我试图给领域模型下一个非常合适的定义,我发现我的这些定义都不太妥当,不过,我们还是可以先来看一下wiki百科对领域驱动模型下的定义:问题解决和软件工程中的领域模型可以被认为是感兴趣的领域&…

Codeforces Round #556 (Div. 1Div. 2)

Codeforces Round #556 (Div. 1&&Div. 2) 题号题目知识点AStock Arbitraging贪心BTiling Challenge贪心CPrefix Sum Primes构造DThree Religions线性dpETree Generator™FAbandoning RoadsGElection Promises

使用ASP.NET Core 实现Docker的HealthCheck指令

写在前面HealthCheck 不仅是对应用程序内运行情况、数据流通情况进行检查, 还包括应用程序对外部服务或依赖资源的健康检查。健康检查通常是以暴露应用程序的HTTP端点的形式 实施,可用于配置健康探测的的场景有 :容器或负载均衡器 探测应用状…

VS Code 中有哪些好用的 Azure 插件?

在之前的文章中,我们提到了 Amazon、Google、IBM、Red Hat、Salesforce、Pivotal 等大厂都在 VS Code 中有提供相应的开发工具:亚马逊上了 VS Code 的船,还有哪些大厂也上了船?微软必定更是把 VS Code 作为其最重要的开发者平台了…

CF1592E Bored Bakry

CF1592E Bored Bakry 题意: 给你长度为n的数组a,现在定义一段区间[l,r]为good,如果al&al1&...&ar>al⊕al1⊕...⊕ara_{l}\& a_{l1}\&...\&a_{r}>a_{l}⊕a_{l1}⊕...⊕a_{r}al​&al1​&...&ar​&…

邀请 | 关于微软容器服务,你需要知道的二三事

容器是近年来特别火的话题,那么,什么是容器?为什么我们需要容器服务?微软容器服务特点是什么?今天我们用一种特殊的方式为大家介绍这三大话题。什么是容器这个部分,我们用一个故事进行开场。很久以前&#…

Codeforces Round #746 (Div. 2)

Codeforces Round #746 (Div. 2) 题号题目难度AGamer HemoseBHemose ShoppingCBakry and PartitioningDHemose in ICPC ?EBored Bakry二进制思想F1Alice and Recoloring 1F2Alice and Recoloring 2

CF1592D Hemose in ICPC ?

CF1592D Hemose in ICPC ? 题意: 给你一棵n个节点的树,定义dis(a,b)a,b两点之间路径的gcd的最大值 最多可以询问12次,每次询问给出一个点集合,系统返回当前点集的所有点对中的最大Dist,最终需要输出a,b两…

UWP 推荐 | 限时免费的RSS阅读器《RSS 追踪》登录 Windows 10

前不久,本公号作者 Bravo Yeung 写了一篇不错的关于 RSS 的文章 .Net开发者必知的技术类RSS订阅指南。RSS 现在用的人很少了,而且就算是我,也不过是在一周前才开始正视 RSS 。只因为接触到了一个很好很强大的社区 RSS Hub ,当时看…

King Gym - 102471H

King Gym - 102471H 题意: 给你一个数组b,让你找到一个最长的最长的king子序列,如果长度大于等于n/2,输出长度值,否则输出-1 一个序列(a1,a2,...,an)(a_{1},a_{2},...,a_{n})(a1​,a2​,...,an​)是king序列当且仅当…

常见跨域解决方案以及Ocelot 跨域配置

常见跨域解决方案以及Ocelot 跨域配置Intro我们在使用前后端分离的模式进行开发的时候,如果前端项目和api项目不是一个域名下往往会有跨域问题。今天来介绍一下我们在Ocelot网关配置的跨域。什么是跨域跨域:浏览器对于javascript的同源策略的限制,例如a.cn下面的js不…

E - Flow Gym - 102471E

E - Flow Gym - 102471E 题意: n个点,m条边,从点1到点n有k条相同长度的路径,每个边都有对应的容量,你可以进行任意次操作,每次将一个边的容量-1,将另一个边的容量1,问最少操作多少…

解读大内老A的《.NET Core框架本质》

老A说的一句话让我很受启发,想要深入了解框架,你要把精力聚焦在架构设计的层面来思考问题。而透彻了解底层原理,最好的笨办法就是根据原理对框架核心进行重建或者说再造。看起来没有捷径,也是最快的捷径。相信很多读者已经看过老A…

2019 ICPC Asia-East Continent Final

2019 ICPC Asia-East Continent Final 题号题目知识点ACity贪心BBlack and WhiteCDirichlet kkk-th rootDFireEFlow思维FGameGHappinessHKing随机思维IMoonJPermutationKAll Pair Maximum FlowLTravelMValue状压贪心

Mono和.NET Core 从比翼双飞到合体

.NET 开源之路就是 Mono和.NET Core 从比翼双飞到合体:2001年12月-2002年2月。一个新的平台诞生了。与惠普、英特尔和其他公司一起, 创建了 ECMA-335 标准, 该标准定义了支持多种编程语言的公共语言基础结构,C# 和 Visual Basic. Net。 F # 于2007年晚些…

7-3 打怪升级 (25 分)

7-3 打怪升级 (25 分) 题意: 很多游戏都有打怪升级的环节,玩家需要打败一系列怪兽去赢取成就和徽章。这里我们考虑一种简单的打怪升级游戏,游戏规则是,给定有 N 个堡垒的地图,堡垒之间有道路相连,每条道路…

Skywalking部署常见问题以及注意事项

Skywalking部署常见问题以及注意事项IntroSkyWalking 创建与2015年,提供分布式追踪功能。从5.x开始,项目进化为一个完成功能的Application Performance Management系统。他被用于追踪、监控和诊断分布式系统,特别是使用微服务架构&#xff0c…

CF1486B Eastern Exhibition

CF1486B Eastern Exhibition 题意: 二维平面上有 n 个点,要找一个点,使得所有点到它的曼哈顿距离( x 和 y 的坐标差距之和)之和最小。请问有几个满足该要求的点? 题解: 我们先考虑一维的情况…

GitHub推出包管理服务,npm与Nuget全支持

GitHub 今天推出了一项名为 GitHub Package Registry 的新产品,它提供了软件包管理服务,开发者通过它可发布公共或私有软件包。官方介绍,GitHub Package Registry 完全集成在 GitHub 中,因此和 repo 一样,用户可以使用…