Luego de la salida a producción del blog de Rest Of My Cloud (ROMC) con el artículo de 3 Maneras únicas de utilizar Entity Framework con Blazor WebAssembly, me han preguntado mucho ¿Por qué elegí NextJs sobre Blazor? para construirlo.

Para responder esta pregunta haremos un pequeño viaje al pasado...

Los comienzos de ROMC

Cuando comencé a analizar con que tecnología iba a construir este blog que, actualmente se encuentra en producción, tenía como opciones: MVC, Blazor y NextJs.

Por opinión personal que les contaré en un futuro artículo, no considero buena idea crear nuevos proyectos con Asp NET Core MVC 🤫. Por lo tanto, ya la primera opción quedaba descartada. Así que el verdadero debate es sobre los últimos 2. 

Repasemos de que tratan los frameworks web NextJS y Blazor 👇

¿Que es NextJS?

NextJs es un framework de React para la construcción de aplicaciones web que se renderizan del lado del servidor y la generación de sitios web estáticos para aplicaciones web basadas en React.

¿Que es Blazor Server?

Blazor es un marco web para compilar componentes de UI web (componentes Razor) que se pueden hospedar de maneras diferentes. 

Con el modelo de hospedaje de Blazor Server, la aplicación se ejecuta en el servidor desde una aplicación ASP.NET Core. Las actualizaciones de la interfaz de usuario, el control de eventos y las llamadas de JavaScript se controlan mediante una conexión SignalR usando el protocolo WebSockets.

Ventajas y desventajas de usar NextJs

Voy a mencionar las ventajas de usar NextJs basándome en mi experiencia y relación previa a desarrollar ROMC.

Ventajas:

  • La curva de aprendizaje es muy corta
  • Soporta cualquier librería de React y JS
  • Soporta Typescript (Esto es muy importante!)
  • Tiene una gran velocidad de renderizado
  • Nos otorga varias herramientas para un SEO destacable.

Desventajas:

La mayor desventaja es que no teníamos experiencia previa con NextJs 😖

Ventajas y desventajas de usar Blazor Server

Ventajas:

  • Conozco y uso Blazor desde las versiones preview de NET Core 3.0 (2019).
  • Para desarrolladores .NET la curva de aprendizaje de Blazor es muy corta.
  • También tiene una gran velocidad de renderizado y de actualización de estado gracias a SignalR.

Desventajas:

Yo NO soy el único desarrollador de ROMC.

Hablemos del equipo de desarrollo

Como menciono, yo no soy el único que desarolla el sistema de Rest Of My Cloud También está Nicole Tevez, desarrolladora React, que ha hecho un gran trabajo en el maquetado del sitio web. 💁‍♀️

A la hora de elegir la tecnología a usar, sabía que tanto ella como yo tenemos experiencia en React y con Typescript. Si elegía crear ROMC con Blazor ella debería aprender desde cero C#, Asp NET Core y luego Blazor.🥱

En cambio, si elegía NextJs, ambos simplemente deberíamos complementar nuestro conocimiento de React con este framework. 😉

SEO como Atributo de Calidad

Un atributo de calidad es una propiedad medible de un sistema, que indica qué tan bien el sistema satisface las necesidades de las partes interesadas. 👨‍🏫

En este caso, para el armado de este blog, al atributo de calidad que elegí darle mayor prioridad es al SEO para un buen posicionamiento de los artículos en los motores de búsqueda.

Y tal como mencionamos antes, NextJs se lleva el premio por justamente ser su ventaja tener herramientas para la mejora del SEO.💪

Conclusión

A pesar de que los que me conocen saben de mi fanatismo con Blazor, esta vez tuve que mirar para otro lado, eligiendo una tecnología totalmente diferente para que el equipo (Nicole y yo) tenga una experiencia de desarrollo amena y para poder cumplir con los atributos de calidad establecidos en este proyecto.

De todas formas, Blazor me parece un framework web único en el mundo y tal como menciono en los últimos párrafos de ¿Qué es ROMC? Rest Of My Cloud comienza ahora como un blog, pero ya estamos desarrollando nuevos sistemas donde React y Blazor WebAssembly tendrán un papel, en conjunto, muy importante.

Si encuentras útil este trabajo y deseas mostrar tu apoyo, siempre puedes invitarme a un buen café ☕.

Buy Me A Coffee