Historia de Blazor

Por el año 2000, Microsoft lanza ASP.NET Web Forms, en el que podemos mezclar código HTML y .NET mediante la sintaxis <% y %>. En Marzo de 2009 aparece una extensión de ASP.NET a la que se le aplica el patrón MVC (Model-View-Controller) con el que ayuda a separar el modelo (lógica de negocio), la vista (presentación) y el controlador (intermediario). Posteriormente, aparece la web API con la que se separa la lógica de negocio de la capa de presentación. Por último, en 2017 aparecen las Razor Pages, pareciéndose a Web Forms pero usando la sintaxis @ en vez de <% %>.

Todos estos modelos de trabajo solían ir acompañadas de frameworks de Front End (Angular, VueJs, React, ...) y librerias (jQuery, Bootstrap, ...) para ayudar al desarrollo de la presentación. Empezaron a proliferar las aplicaciones SPA (Single Page Application), lo que hacía complicado su desarrollo al usar, aprender y gestionar diferentes lenguajes de programación para su realización.

Hace relativamente poco tiempo, aparece una especificación abierta por parte de la W3C (World Wide Web Consortium) llamada WebAssembly (Wasm). Esta define un formato binario capaz de ser entendible por los navegadores. Lenguajes de alto nivel tales como C o C++ estaban siendo compilados a este tipo de binario para que los navegadores lo pudieran usar.

Microsoft no se quiso quedar atrás y por ello, compilo su lenguaje de programación C# en WebAssembly para que los navegadores modernos pudieran ser capaces de ejecutar el resultado de dicha compilación. Para entender como Microsoft consiguió realizar la compilación tenemos que hablar del proyecto Mono.

El proyecto Mono es un proyecto de código abierto iniciado por Ximian (respaldado por Microsoft), que impulsó Novell (tras la adquisición de Ximian) para crear herramientas libres basadas en GNU/Linux y compatibles con .NET basándose en la especificación ECMA. En Abrill de 2011, de la mano de Attachmate se anuncia el despido de cientos de trabajadores, incluyendo a los desarrolladores de Mono. Miguel de Icaza, iniciador del proyecto Mono, anunció que la empresa Xamarin continuaría con el desarrollo del proyecto Mono. En 2016 Microsoft adquiere Xamarin, y con él, el proyecto Mono.

A finales de 2018, se corrió la noticia de que Microsoft estaba trabajando en un framework con el que se pudiera ejecutar el runtime de .NET en el navegador mediante WebAssembly con el nombre de Blazor. Posteriormente, aparecieron para este framework dos modos de funcionamiento Blazor Server y Blazor WebAssembly. Blazor Server mantiene una conexión persistente con el cliente mediante SignalR, mientras que Blazor WebAssembly se ejecuta completamente en el navegador. El modo servidor fue lanzado en septiembre de 2019 con la versión .NET Core 3.0, mientras que la versión Wasm apareció en Mayo de 2020 con .NET Core 3.1.

Blazor
Blazor