Blazor如何改变Web开发
几周前,我写了一篇关于在不接触Windows机器的情况下构建和部署Blazor应用程序的文章 ,并意识到也许我应该退后一步,解释一下Blazor是什么以及为什么有人会使用它。 对于大多数前端开发世界来说,它仍然是相当新的,但是它很棒,您应该检查一下。
那到底是什么呢?
Blazor是Microsoft提供的框架,可用于使用C#开发交互式客户端Web UI。
用他们自己的话说:
Blazor允许您使用C#而不是JavaScript构建交互式Web UI。 Blazor应用由使用C#,HTML和CSS实现的可重用Web UI组件组成。 客户端和服务器代码都是用C#编写的,允许您共享代码和库。
很酷吧? 您可以在此处下载并开始使用。
旧的方式
还记得开发Web应用程序的旧方法吗?
在最长的时间里,我们使用ASP.NET,PHP等工具构建了仅在服务器上运行的应用程序,并且它们生成了要推送到浏览器的HTML文件。
我们一直都与JavaScript和AJAX进行交互,但是多年来,大多数业务逻辑都是在服务器本身上处理的,吐出HTML页面进行交互。 多年来,该浏览器只是一个出色的文档查看器。 它奏效了,但我们知道我们可以做得更好。
我们都知道这种模式有一些缺点:
- 服务器需要配置软件才能运行Web应用程序。 ASP.NET,PHP等。后端处理器或运行时必须在服务器上存在。
- 大多数处理能力都在服务器上。
- 页面加载烦人且缓慢。
因此,我们找到了新的答案。
我们现在如何做
随着单页应用程序的兴起,我们有了一种新的模式,其中包括Angular,React和Vue等框架:
现在,我们正在使用运行在浏览器上的JavaScript构建完整的应用程序。 这将拆分业务逻辑,以便某些在浏览器上运行,而某些在服务器上运行。 JavaScript应用程序在客户端运行,并使用消息传递与“服务器”进行通信。 您可以轻松地用云中的服务或应用程序替换“服务器”,但是模型仍然相同。
这是对我们以前的东西的一个很好的改进,实际上是对HTML的处理和来回的转换。 现在,我们已经在浏览器中运行了实际的应用程序,页面加载已成为过去。
但是Blazor进一步改善了这种模式。 用它进行开发有两种主要方法。
选项1:Web组装方法
当您选择构建Blazor Web Assembly应用程序时,它看起来像这样:
Blazor使用的Web汇编现在已在所有主要浏览器中提供。 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应用程序,则它看起来像这样:
这更接近我们今天使用的模型。 您构建一个应用程序,并拥有一个由.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的看法,并在评论中分享您的经验!
From: https://hackernoon.com/how-blazor-is-going-to-change-web-development-y32i3zvw