
Cuando empezamos a estudiar Blazor WebAssembly e interiorizamos que para ejecutar .NET en el navegador es necesario llevar hasta éste el runtime y bibliotecas, tanto del propio framework como las de nuestra aplicación, una de las primeras dudas que nos asaltan es que cuánto peso tendrá eso. O dicho de otra forma, qué recursos tendrán que descargar los usuarios y qué tiempo tendrán que esperar hasta tener la aplicación en funcionamiento.
En este post vamos a intentar dar respuesta a esta pregunta, aunque con matices. Obviamente, parte de ese peso dependerá de la aplicación; si se trata de un proyecto grande, con muchos ensamblados o que usen muchos componentes externos (p.e. paquetes NuGet), el número de archivos y el tamaño de la descarga crecerá inexorablemente. Por esa razón, no podremos ver aquí números absolutos, sino los mínimos, es decir, lo que pesará una aplicación Blazor WebAssembly recién creada, con los contenidos proporcionados por la plantilla por defecto usando .NET 5.
Tampoco hablaremos de tiempos, pues son totalmente dependientes de las condiciones de red, la infraestructura en la que despleguemos la aplicación y las posibilidades del cliente. Simplemente tendremos en consideración que a más peso, mayor tiempo será necesario para llevarlo al navegador y ejecutarlo.
Ojo: lo que vamos a ver son los datos aproximados obtenidos en mi máquina de desarrollo y con la versión actual de Blazor (5.0.4). Los números exactos variarán si hacéis pruebas en vuestro entorno, aunque seguro que el espíritu de las conclusiones seguirá siendo el mismo.
Publicado por José M. Aguilar a las 8:05 a. m.
Etiquetas: blazor, blazorwasm
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
Por si te lo perdiste...
- Usar Razor desde una aplicación de consola .NET Core (1 de 2)
José María Aguilar - Error 404 cargando páginas Blazor Server con parámetros que contienen un punto
José María Aguilar
.NET Core / .NET
- Getting started with .net core microservices with dapr
Gary Woodfine - My Favorite C# Features - Part 3: Nullability
Jeffrey T. Fritz - .NET 6: Date and Time Structures
Jonathan Allen - Subscribe users to a Mailchimp newsletter from .NET/C#
Thomas Ardal - C# 9 new features for methods and functions
Tom Deseyn - Testing Exceptions with xUnit and Actions
Steve Smith - Top Level Statement in C# 9.0
Abhijit Jana - .NET 6: Async Improvements
Jonathan Allen - Show dotnet: Build your own unit test platform? The true story of .NET nanoFramework.
Laurent Ellerbach - WebView2: Forwarding Alt Keys to a Host WPF Window
Rick Strahl - Deep C# - Casting the Escape from Strong Typing
Mike James

A raíz de los posts sobre generadores de código (como éste y éste), un amigo del blog me escribió para ver si de alguna forma era posible examinar el código fuente generado para poder depurarlo con mayor facilidad.
Y en efecto, es posible. Pero en vez de responderle directamente, he pensado que sería mejor compartirlo por aquí, de forma que pueda resultar de utilidad para alguien más :)
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
Por si te lo perdiste...
- Detectar la prerenderización en Blazor
José María Aguilar - Desordenar un array en C# y VB.NET
José María Aguilar
.NET Core / .NET
- Announcing .NET 6 Preview 3
Richard Lander - Announcing Open Source C# standardization
Bill Wagner - Migrando desde Net Core 2.2 a Net 5.0 y/o 6.x
Juan Luis Guerrero - Back to Basics: What Is a Delegate?
Hasan Hasanov - Performance Improvements in NuGet
Nikolche Kolev - What's Cool in C# 8 and .NET Core 3
Peter Vogel - Async/Await Explained with Diagrams and Examples
David Deley - C# 9 - Making your code simpler
Damir Arh - The pain points of C# source generators
James Turner - Announcing Facteur, a mailing kit for .NET
Hendrik Bulens - C# 9 pattern matching
Tom Deseyn
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
Por si te lo perdiste...
- Generar redirecciones HTTP 307 y 308 en ASP.NET Core MVC
José María Aguilar - Cómo personalizar los mensajes de error de conexión en Blazor Server
José María Aguilar
.NET Core / .NET
- Announcing Project Reunion 0.5!
Andrew Clinick - Serilog.Expressions 2.0 update
Nicholas Blumhardt - Viewing app configuration using Oakton's Describe command and Spectre.Console
Andrew Lock - The .NET Stacks #43: DateTime might be seeing other people
Dave Brock - Be careful when mixing ValueTask and Task.Run
Gérald Barré - C# 9 (Two Decades of C#: A Reference)
Ben Bowen - The Future of Windows Apps, Demystified
Matthew MacDonald - C# .NET - How to get the proper length of a Unicode string
Metadata Consulting - .NET Standard 1.3 is no longer supported in AWS SDK for .NET version 3.7
Alex Shovlin - Jump-starting Migration to .NET Core with Upgrade Assistant
Richard Reedy - C# 9 top-level programs and target-typed expressions
Tom Deseyn - 8 Books to Improve as a .NET Developer
Patrick Smacchia
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
Por si te lo perdiste...
- Valores y parámetros en cascada con Blazor
José María Aguilar - ¿Aún usas ToString() para obtener el nombre de los elementos de un enum?
José María Aguilar
.NET Core / .NET
- ICYMI C# 8 New Features: Asynchronous Streams
Jason Roberts - Debugging .NET Core memory issues (on Linux) with dotnet dump
Tess Ferrandez - Cloud-Native learning resources for .NET developers
Nish Anil - Creating Resilient Microservices in .NET with Polly
Marinko Spasojevic - Fusing await using and await foreach and await
Jiří Činčura - Rewriting git history using C# (git filter-branch alternative)
Gérald Barré - Two Decades of C#: A Reference: C# 5 and C# 6 & C# 7
Ben Bowen - Getting Started with the Roslyn APIs: Writing Code with Code - Steve Gordon
Steve Gordon - Testing Web Applications with PlayWright and C#
Anuraj Parameswaran - Easy generation of fake/dummy data in C# with Faker.Net
Kristoffer Strube - Easily Perform LINQ Mocking to Unit Test ASP.NET Core Application
Priyanka - Practical differences between C# vs Vb.Net
Michał Białecki - Loop alignment in .NET 6
Kunal Pathak - 4 Features Every Developer Must Know in C# 9.0
Prasanth R - Using Tuples in C# to Initialize Properties in the Constructor and to Deconstruct Your Object
Thomas Claudius Huber