blazor
几周前,我写了一篇有关在不接触Windows机器的情况下构建和部署Blazor应用程序的文章 ,并意识到也许我应该退后一步,解释一下Blazor是什么以及为什么有人会使用它。 对于大多数前端开发世界来说,它仍然是相当新的,但是它很棒,您应该检查一下。
那到底是什么呢?
Blazor是Microsoft提供的框架,可用于使用C#开发交互式客户端Web UI。
用他们自己的话说:
Blazor允许您使用C#而非JavaScript构建交互式Web UI。 Blazor应用由使用C#,HTML和CSS实现的可重用Web UI组件组成。 客户端和服务器代码都是用C#编写的,允许您共享代码和库。
很酷吧? 您可以在此处下载并开始使用。
旧的方式
还记得开发Web应用程序的旧方法吗?
![](https://i-blog.csdnimg.cn/blog_migrate/58825672e7c65e81b0c16df82c476811.png)
在最长的时间内,我们使用ASP.NET,PHP等工具构建了仅在服务器上运行的应用程序,并生成了要推送到浏览器HTML文件。
我们一直都与JavaScript和AJAX进行交互,但是多年来,大多数业务逻辑都是在服务器本身上处理的,吐出HTML页面进行交互。 多年以来,该浏览器只是一个出色的文档查看器。 它奏效了,但我们知道我们可以做得更好。
我们都知道这种模式有一些缺点:
- 服务器需要配置软件才能运行Web应用程序。 ASP.NET,PHP等。服务器上必须存在后端处理器或运行时。
- 大多数处理能力都在服务器上。
- 页面加载烦人且缓慢。
因此,我们找到了新的答案。
我们现在如何做
随着单页应用程序的兴起,我们有了一种新的模式,包括Angular,React和Vue等框架:
![](https://i-blog.csdnimg.cn/blog_migrate/387aba76bf55051d7dec094f091b22e4.png)
现在,我们正在使用运行在浏览器上JavaScript构建完整的应用程序。 这将拆分业务逻辑,以便某些在浏览器上运行,而某些在服务器上运行。 JavaScript应用程序在客户端运行,并使用消息传递与“服务器”进行通信。 您可以轻松地用云中的服务或应用程序替换“服务器”,但是模型仍然相同。
这是对我们以前的东西的一个很好的改进,实际上是对HTML的处理和来回的转换。 现在,我们已经在浏览器中运行了实际的应用程序,页面加载已成为过去。
但是Blazor进一步改善了这种模式。 开发它有两种主要方法。
选项1:Web组装方法
当您选择构建Blazor Web Assembly应用程序时,它看起来像这样:
![](https://i-blog.csdnimg.cn/blog_migrate/59313f1749be309dce35039dc7277243.png)
Blazor使用现在在所有主要浏览器中附带的Web Assembly 。 Web程序集是一种二进制指令格式,可在浏览器中运行虚拟环境。
那到底是什么意思呢?
现在,浏览器将充当您的应用程序的主机。 Blazor Web程序应用程序中内置的文件将被编译并发送到浏览器。 然后,浏览器在浏览器上的执行沙箱中运行JavaScript,HTML和C#。 它甚至运行.NET Runtime版本。 这意味着您可以从浏览器中执行对.NET的调用,这是浏览器中的完整应用程序。 它甚至可以脱机运行。
为什么这很酷:
- 您可以在任何静态文件服务器(Nginx,ISS,Apache,S3,Heroku等)上运行它
- 它以字节码形式运行JS,并以接近自然的速度运行C#。
- 您可以使用C#开发丰富的前端应用程序。
- Web Assembly随所有主要浏览器一起提供
- 重用.NET组件
- 使用Microsoft工具和调试
这对于低延迟的应用程序(例如游戏)非常有用。 如果不需要,则无需与服务器通信。 您可以下载该应用程序,然后在浏览器中离线运行它。 这非常适合游戏和其他需要在浏览器中快速运行闪电的事物。
一些缺点:
- .NET Framework和其他运行时文件需要下载(一次)
- 您只能使用浏览器的功能
- 本地下载的所有机密(凭证,API密钥等)
- 并非所有.NET Framework组件都兼容
因此,这可能不适用于所有应用程序。 好消息是,我们可以使用另一种Blazor模式。
选项2:Blazor服务器
如果您决定构建Blazor Server应用程序,则它看起来像这样:
![](https://i-blog.csdnimg.cn/blog_migrate/86eea986f1d7919b256b06f23012ca3f.png)
这更接近我们今天使用的模型。 您构建一个应用程序并拥有一个由.NET Core驱动的服务器,然后将HTML和JavaScript发送到浏览器以充当客户端。 这是使尖叫快速的瘦客户机的好方法。
为什么这很酷:
- 您将获得.NET Framework的全部功能
- 一切都在服务器上,少量下载
- 不需要Web Assembly
- 您的秘密很安全
一些缺点:
- 没有离线应用
- 需要运行.NET Core的服务器或服务
- 网络流量大时可能会出现高延迟
- 那么,我该如何选择使用哪一个呢?
如果您希望功能强大的客户端应用程序可以脱机运行并从静态服务器提供服务,请选择Blazor Web Assembly。 如果您需要.NET的全部功能,并且希望通过瘦客户端运行模型,请选择Blazor Server。
为什么这有什么大不了的?
开拓者模式为发展提供了巨大的机会。 无论您是想使用多个瘦客户端来构建功能强大的服务,还是要在浏览器中运行一些很棒的交互式游戏,Blazor都可以提供丰富的交互式应用程序潜力。
Web Assembly是未来的方式。 它在浏览器中实现接近自然的速度,并使用通用界面。 您将在PC,手机和平板电脑上找到Web Assembly。 如果您的团队中有很多不进行前端编程的C#开发人员,那么他们现在可以使用他们喜欢的语言来进行编程。
太棒了,很高兴看到Blazor的发展。
在哪里可以学习?
您可以从Microsoft的Blazor网站了解有关它的更多信息。
如果您想深入学习Blazor,Pluralsight提供了一些现代课程,可帮助您快速入门:
所以尝试一下! 让我知道您对Blazor的看法,并在评论中分享您的经验!
翻译自: https://hackernoon.com/how-blazor-is-going-to-change-web-development-y32i3zvw
blazor