Web Development InfoQ Trends Report Find out what technologies from the web development space you should keep an eye on this year. Be the innovator in your team and learn more about Vue.js, GraphQl and React. Read the report.

Microsoft has taken another step towards .NET running in the browser by adopting the web UI framework Blazor from its creator Steve Sanderson. By doing so, Microsoft adds another piece to their WebAssembly/.NET stack, giving .NET developers a higher order abstraction to build browser-based apps with.

In a blog post, Dan Roth says that Blazor is a "new experiment" that allows .NET developers to build single-page applications for web browsers. The news may be a little confusing because Blazor was first created by Microsoft engineer Steve Sanderson and was demoed in mid-2017. The change is that the project is now officially part of the ASP.NET project hierarchy rather than a personal project. Sanderson's wrote a post on his blog that provides some more context:

Today the ASP.NET team announced that Blazor has moved into the ASP.NET organization, and we’re beginning an experimental phase to see whether we can develop it into a supported shipping product.

Sanderson says that Blazor is inspired by JavaScript frameworks such as React, Vue, and Angular but mashed up with technologies familiar to an ASP.NET programmer.

Blazor will have a feature set similar to other web application frameworks such as a component model, routing, and JavaScript interop. Components, for example, can be done via C# classes or as a Razor page. Routing and layouts are often essential features of a web framework but are optional, a nod towards keeping the payload size as small as possible.

The JavaScript ecosystem is huge and has many libraries that JavaScript developers depend on. Sanderson says that the team is looking to see if they can use existing TypeScript definition files to provide tooling support for calling them from C# code.

The Blazor project builds on top of the work done by the Mono team to compile C# to WebAssembly. That work is at a lower-level and doesn't provide any sort of framework for typical web application development; it's purely .NET running in the browser.

The move to the ASP.NET team likely means that the project will have more resources to grow at a faster pace, but it's too soon to announce that the project will become a production-grade reality.

During this experimental phase, we expect to engage deeply with early Blazor adopters to hear your feedback and suggestions. This time allows us to resolve technical issues associated with running .NET in the browser and to ensure we can build something that developers love and can be productive with.

WebAssembly is a binary format, intended to give web developers near-native performance in the browser, without the need to parse and interpret JavaScript. It is now supported in all major browsers.