Microsoft made very interesting announcements at .NET Conf: Focus on Blazor online conference. There are many great things are happening and Blazor is also making a fast progress on finding its way to mobile and desktop. Here’s the short overview of what’s happening and what’s coming next.
Blazor WebAssembly new features for May
Features of Blazor WebAssembly (aka client-side Blazor until now) were announced by Dan Roth:
- Runs on .NET Core 3.1 and is compatible with .NET Standard 2.1
- Blazor packages will be versioned as 3.2 because they are not part of .NET Core 3.1 (LTS)
- WebSockets and SingalR client
- Support debugging in Visual Studio and browser dev tools
- Automatic rebuild when something changes
- Intermediate Language (IL) trimming
- Brotli compression (already supported by ASP.NET Core)
- Static web assets integration
- Authentication options
Experimental Blazor projects
Dan Roth also announced some interesting experimental Blazor projects.
- Blazor + Electron (https://aka.ms/blazorelectron)
One option to build modern high-performance cross-platform desktop applications using Blazor, .NET and web technologies.
- Blazor + WebWindow (https://aka.ms/webwindow)
Running Blazor cross-platform Blazor desktop applications without full weight of Electron. Uses WebView based on technologies and has smaller download size compared to Electron version of application.
Image by Steven Sanderson (Meet WebWindow, a cross-platform webview library for .NET Core)
- Mobile Blazor Bindings (https://aka.ms/mobileblazorbindings)
Build native mobile apps with Blazor using tools and technologies you know: Razor, C# and CSS. There will be rich set of native mobile components available and access to native API-s like GPS and Media. NuGet libraries are supported. More in ASP.NET Blog post Announcing Experimental Mobile Blazor Bindings. Also check out Mobile Blazor Bindings documentation to get started.
Exploring Blazor Hybrid scenarios is one of major themes for coming .NET 5.
Testing comes to Blazor
There has been some on-going work to get testing to Blazor world. Last year, in the end of August, Steven Sanderson blogged about prototype level test tooling for Blazor: Unit testing Blazor components – a prototype. Here’s the tweet by Claudio Bernasconi showing one Blazor test.
Based on this early work Egil Hansen built Blazor Components Testing Library.
Default Blazor WebAssembly download size
Steven Sanderson told about progress on Blazor assembly trimming to get smaller download size. Current default Blazor application is around 2MB. Blazor team has target of 1.5MB when Blazor WebAssembly is released at May.
Assembly trimming is resource expensive and time consuming step. To avoid putting load to developer machines when building and testing applications, assembly trimming is moved to publishing phase. This is something that is not possible with JIT without losses on application loading time.
Videos of conference presentations should be shortly available here: https://channel9.msdn.com/Events/dotnetConf/Focus-on-Blazor
Check out if Carl Franklin’s Blazor Roadshow is happening somewhere near you. Dates in Europe and Canada will posted later. US dudes can make their plans already now. Event is free but be aware – the number of seats may be limited!