写在前面
曾经我和前端朋友聊天的时候,我说我希望有一天可以用C#写前端,不过当时更多的是美好的想象,而现在这一切正变得真实……
什么是Blazor
我们知道浏览器可以正确解释并执行JavaScript代码,那么浏览器是如何执行C#代码的呢?答案是通过WebAssembly。通过WebAssembly,我们可以让浏览器运行很多的高级语言,如 C#、C、C++、GO等,并使他们运行在基于内存安全的沙箱环境中。如下图所示:
Blazor
作为一个已经五六年没有写过前端的.NET程序员,遇到Blazor实在是幸运中的幸运。它又让我可以很愉快的写前端了,而且还是用C#去写,我也就不用再分出精力去学习其他的JS框架了。
我们可以认为Blazor是.NET对WebAssembly的实现。通过使用Blazor,我们可以使用C#语言来取代JS去开发交互式Web UI。
值得一提的是,Blazor是由Browser和Razor这两个单词合并而成的,意思就是Blazor可以基于客户端执行Razor视图后将HTML呈现给浏览器。所以想要更好的理解Blazor,就要首先更好的了解浏览器和Razor。
Blazor有以下几个优点:
使用C#来取代JavaScript创建丰富的交互式UI
基于.NET及其生态编写服务器端和客户端应用程序逻辑
糅合现有HTML和CSS技术,提供了广泛的浏览器支持,包括移动浏览器(注意:Blazor取代的是基于JavaScript的UI交互,而其他部分如HTML、CSS,这些是我们的技术基础)
与现代托管平台(例如Docker)集成。
Blazor是开源的,其源码位置在GitHub上
另外需要注意的,Blazor和Silv