当前位置: 首页 > news >正文

asp.net web开发框架_ASP.NET Core Blazor未来的Web开发框架

如果你是一名.NET程序员,并且之前使用过Vue、Angular或者React,而没有了解过Blazor或者没有了解过WebAssembly,现在看到下面这段代码,我估计你一定会被. NET的创新震撼到,其实当我第一次看到这段代码的时候,我确实很惊讶,原来前端还可以这样玩。Blazor框架能够让你使用C#代替JavaScript来编写代码,是不是很酷。我只能说跟着.NET走,没错!

@Name

@ChildContentHello
@code {[Parameter]public string Name { get; set; }[Parameter]public RenderFragment ChildContent { get; set; }private void OnHello(){Console.WriteLine("Write to the console in C#! 'Hello' button was selected.");}}
60832057cae71f9961b5725326394f33.png

Blazor是什么?

Blazor 是一个客户端Web框架,是一个使用 .NET生成交互式客户端 Web UI的框架

  • 使用 C#代替 JavaScript 来编写代码,建丰富的交互式UI。
  • 共享使用 .NET 编写的服务器端和客户端应用逻辑。
  • 将UI呈现为 HTML 和 CSS,以支持众多浏览器,其中包括移动浏览器
  • 受益于 .NET 的性能、可靠性和安全性。
  • 支持 Windows、Linux 和 macOS 上的 Visual Studio。

Blazor有两种模式,一种是客户端模式,一种是服务端模式

  • 客户端模式(Blazor WebAssembly)

Blazor WebAssembly是单页应用框架,用于使用 .NET 生成交互式客户端 Web 应用。

WebAssembly 是开放的 Web 标准,是一种可以使用非 JavaScript 编程语言编写代码并且能在浏览器上运行的技术方案。现在各大主流的浏览器都支持该标准,无需安装任何插件(不像flash之流)。通过 WebAssembly,可在 Web 浏览器内运行 .NET 代码。

60832057cae71f9961b5725326394f33.png
  • 服务端模式(Blazor Server)

Blazor Server在 ASP.NET Core 应用中支持在服务器上托管Razor组件,通过SignalR(双向通讯)连接处理 UI更新。

16c4a5ac9e614d05f45337d242e37657.png

我们创建一个Blazor应用

使用VisualStudio 2019进行Blazor项目创建:

fb0a2607b7f31f3d55de0b5c2b03cbc6.png
a4f757d9cd1e4e91833250a925d024ed.png

Blazor应用的项目代码结构如下

f0da5e2605b9fe9610cd22b328c84881.png

运行Blazor项目,效果如下

8ffbb5f5ed346b2a0c5b9002fd566992.png

结语:本文是对Blazor技术做一个简单的介绍或者说是技术普及。关于Blazor的客户端模式和服务端模式,涉及的内容较多,如果有不清楚的地方,可以查阅微软的官方文档。

相关文章:

  • 操作系统实验c语言页面置换算法(lru和lfu算法)_「任性」的C语言之父:因拒付论文装订费错失博士学位,论文52年后重见天日...
  • python生日快乐代码_【震惊小伙伴的单行代码—Python篇】的实践操作
  • c3p0连接池配置_数据库连接池amp;Spring JDBC(JdbcTemplate)
  • cdr自动排版插件_牛逼!网上卖328的CorelDraw插件免费送一键转曲批量导图文字识别...
  • python最接近某个值怎么表示_在python3中实现查找数组中最接近与某值的元素操作...
  • java连接rabbitmq_RabbitMQ指南之一:Hello World!
  • python if 单行_学python时,发现很多高手的代码只有一行或几行就达到了我多行代码一样的功能,应该追求这种简洁吗?...
  • python openpyxl读写xlsx_Python使用openpyxl读取、修改excel文件及绘chart图(支持xlsx)...
  • java array 元素的位置_JAVA《集合框架》
  • 植物图像识别python_python 实现图像识别
  • python开发博客系统_python 全栈开发,Day80(博客系统分析,博客主页展示)
  • python如何执行部分代码_Python 在局部变量域中执行代码
  • gradle jar 修改 output 路径_Gradle系列之Java Gradle插件
  • sql数据源名称过长_使用Druid解析SQL小试
  • python学生信息管理系统 实验报告_hadoop实验报告.doc
  • C语言笔记(第一章:C语言编程)
  • exports和module.exports
  • Java 23种设计模式 之单例模式 7种实现方式
  • JavaScript服务器推送技术之 WebSocket
  • Java的Interrupt与线程中断
  • JS+CSS实现数字滚动
  • Quartz初级教程
  • React-生命周期杂记
  • SAP云平台里Global Account和Sub Account的关系
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 山寨一个 Promise
  • 少走弯路,给Java 1~5 年程序员的建议
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 小程序开发之路(一)
  • (03)光刻——半导体电路的绘制
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (多级缓存)多级缓存
  • (二)Eureka服务搭建,服务注册,服务发现
  • (剑指Offer)面试题34:丑数
  • (南京观海微电子)——I3C协议介绍
  • (十)c52学习之旅-定时器实验
  • (原)本想说脏话,奈何已放下
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (转)http协议
  • (转载)Linux 多线程条件变量同步
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .net core 6 集成和使用 mongodb
  • .net core开源商城系统源码,支持可视化布局小程序
  • .net mvc 获取url中controller和action
  • .Net Remoting常用部署结构
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .net反编译工具
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法