Академический Документы
Профессиональный Документы
Культура Документы
NET Core
Blazor
Introducción a
ASP.NET Core
Blazor
Diciembre de 2019
Soporte técnico:
soporte@mail.ticapacitacion.com
Autor
Miguel Muñoz Serafín
https://mvp.microsoft.com/es-es/publicprofile/21053
Este manual fue creado por TI Capacitación para uso personal de:
1 https://ticapacitacion.com/curso/aspcore3
Introducción a ASP.NET Core
Blazor
Contenido
Blazor ......................................................................................................................................... 3
Objetivos.................................................................................................................................... 3
Audiencia ................................................................................................................................... 3
Requisitos .................................................................................................................................. 4
¿Qué es Blazor?.......................................................................................................................... 5
Blazor WebAssembly .................................................................................................................. 6
Blazor Server .............................................................................................................................. 8
Plataformas soportadas.............................................................................................................. 9
Iniciando con ASP.NET Core Blazor ............................................................................................10
Instalar el SDK de .NET Core 3.1 .............................................................................................10
Crear un Proyecto Blazor Server App .....................................................................................11
Agregar un componente dentro de otro componente ...........................................................15
Trabajar con parámetros de un componente .........................................................................16
Inyección de dependencias....................................................................................................18
Desarrollando tu primera aplicación Blazor ...............................................................................21
Agregar un modelo de datos .................................................................................................23
Construir la interfaz de usuario..............................................................................................24
Agregar un manejador de eventos .........................................................................................26
Establecer enlace de datos ....................................................................................................27
2 https://ticapacitacion.com/curso/aspcore3
Este manual fue creado por TI Capacitación para uso personal de:
Jimmy Eliecer Romero Montero (Jerm.pcd@gmail.com)
Introducción a ASP.NET Core
Blazor
Blazor
Blazor es un framework que nos permite construir interfaces de usuario web interactivas del lado del
cliente.
Blazor presenta una alternativa para utilizar C# en lugar de JavaScript para ejecutar código en el
navegador web sobre un entorno de ejecución .NET.
Una aplicación Blazor puede ser hospedada completamente en un navegador web o en un servidor
web a través de una aplicación ASP.NET Core.
Esta lección presenta una introducción a Blazor y constituye el punto de partida para empezar a
desarrollar aplicaciones web con interfaz de usuario utilizando ASP.NET Core Blazor.
En esta lección se describe la funcionalidad de la plantilla Blazor Server App y se proporcionan los
pasos para desarrollar una aplicación básica utilizando ASP.NET Core Blazor.
El contenido de esta lección está basado en la documentación oficial de ASP.NET Core disponible en el
siguiente enlace:
https://docs.microsoft.com/aspnet/core
Para reforzar los conocimientos y como apoyo, al final de cada ejercicio se podrá encontrar un enlace
a un video explicativo que podrá ser visto en línea desde cualquier navegador web compatible con
HTML5.
Objetivos
Al finalizar esta lección, los participantes contarán con las habilidades y conocimientos para:
Audiencia
Esta lección está dirigida a desarrolladores web con experiencia en C# que deseen conocer qué es
ASP.NET Core Blazor.
3 https://ticapacitacion.com/curso/aspcore3
Este manual fue creado por TI Capacitación para uso personal de:
Jimmy Eliecer Romero Montero (Jerm.pcd@gmail.com)
Introducción a ASP.NET Core
Blazor
Requisitos
Para realizar los ejercicios de esta lección se requiere de un entorno de desarrollo con:
• Visual Studio 2019 versión 16.4 o posteriores con la carga de trabajo “ASP.NET and web
development”.
• NET Core SDK 3.1.
Introducción de la lección
https://ticapacitacion.com/content/aspcore3/10/30/0
4 https://ticapacitacion.com/curso/aspcore3
Este manual fue creado por TI Capacitación para uso personal de:
Jimmy Eliecer Romero Montero (Jerm.pcd@gmail.com)
Introducción a ASP.NET Core
Blazor
¿Qué es Blazor?
Blazor es un framework para construir interfaces de usuario web interactivas del lado del cliente con
NET. Con Blazor podemos:
Utilizar .NET para el desarrollo web del lado del cliente nos ofrece las siguientes ventajas:
Componentes
Las aplicaciones Blazor están basadas en componentes. Un componente en Blazor es un elemento de
interfaz de usuario tal como una página, un cuadro dialogo o un formulario para entrada de datos.
La clase del componente es escrita normalmente en forma de una página de marcado Razor con una
extensión de archivo .razor. Los componentes Blazor se denominan formalmente como componentes
Razor.
Blazor es un framework web diseñado para ejecutarse del lado del cliente en el navegador web en un
entorno de tiempo de ejecución .NET basado en WebAssembly (Blazor WebAssembly) o en el lado del
servidor en ASP.NET Core (Blazor Server). Independientemente del modelo de hospedaje, los modelos
de aplicación y de componente son los mismos.
5 https://ticapacitacion.com/curso/aspcore3
Este manual fue creado por TI Capacitación para uso personal de:
Jimmy Eliecer Romero Montero (Jerm.pcd@gmail.com)
Introducción a ASP.NET Core
Blazor
Blazor WebAssembly
Al momento de elaborar este contenido, Blazor WebAssembly se encuentra disponible como una
versión preliminar.
Blazor WebAssembly es un framework Single Page Application para crear aplicaciones web interactivas
del lado cliente con .NET. Blazor WebAssembly utiliza estándares web abiertos sin complementos
(plugins) ni transpilación de código y funciona en todos los navegadores web modernos, incluidos los
navegadores para dispositivos móviles.
El código WebAssembly puede acceder a toda la funcionalidad del navegador web mediante JavaScript
a través de la API JavaScript interoperability (o JavaScript interop). El código .NET que se ejecuta a
través de WebAssembly en el navegador se ejecuta en el espacio aislado (sandbox) de JavaScript del
navegador web con las protecciones que proporciona dicho espacio aislado contra acciones
malintencionadas en la máquina cliente.
6 https://ticapacitacion.com/curso/aspcore3
Este manual fue creado por TI Capacitación para uso personal de:
Jimmy Eliecer Romero Montero (Jerm.pcd@gmail.com)
Introducción a ASP.NET Core
Blazor
• Los archivos de código C# y los archivos Razor son compilados en ensamblados .NET.
• Los ensamblados y el entorno de ejecución de .NET son descargados en el explorador web.
• Blazor WebAssembly lanza el entorno de ejecución de .NET y lo configura para cargar los
ensamblados de la aplicación. El entorno de ejecución de Blazor WebAssembly utiliza Java
Script Interop para manejar la manipulación del DOM y las llamadas a la API del navegador
web.
7 https://ticapacitacion.com/curso/aspcore3
Este manual fue creado por TI Capacitación para uso personal de:
Jimmy Eliecer Romero Montero (Jerm.pcd@gmail.com)
Introducción a ASP.NET Core
Blazor
Blazor Server
Blazor Server proporciona el soporte para hospedar componentes Razor en el servidor mediante una
aplicación ASP.NET Core. Las actualizaciones de la interfaz de usuario son manejadas a través de una
conexión SignalR.
El entorno de ejecución maneja el envío de eventos de la interfaz de usuario desde el navegador web
hacia el servidor. El entorno de ejecución también aplica las actualizaciones a la interfaz de usuario
que son enviadas como respuesta del servidor hacia el navegador web después de ejecutar los
componentes.
La conexión utilizada por Blazor Server para comunicarse con el navegador web también es utilizada
para manejar las llamadas de JavaScript interop. La siguiente imagen muestra el flujo de ejecución en
una aplicación Blazor Server.
8 https://ticapacitacion.com/curso/aspcore3
Este manual fue creado por TI Capacitación para uso personal de:
Jimmy Eliecer Romero Montero (Jerm.pcd@gmail.com)
Introducción a ASP.NET Core
Blazor
Plataformas soportadas
Las siguiente tabla muestra las plataformas soportadas por Blazor WebAssembly.
Navegador Versión
Microsoft Edge Actual
Mozilla Firefox Actual
Google Chrome, incluyendo Android Actual
Safari, incluyendo iOS Actual
Microsoft Internet Explorer No soportado ya que no soporta WebAssembly
Navegador Versión
Microsoft Edge Actual
Mozilla Firefox Actual
Google Chrome, incluyendo Android Actual
Safari, incluyendo iOS Actual
Microsoft Internet Explorer 11. Con componentes adicionales como
Polyfill.io que le proporciona la característica
Promises.
9 https://ticapacitacion.com/curso/aspcore3
Este manual fue creado por TI Capacitación para uso personal de:
Jimmy Eliecer Romero Montero (Jerm.pcd@gmail.com)
Introducción a ASP.NET Core
Blazor
Realiza los siguientes pasos para instalar el SDK de .NET Core 3.1.
https://dotnet.microsoft.com/download/dotnet-core/3.1
2. Una vez que haya finalizado la instalación, abre una ventana de línea de comandos y ejecuta
el siguiente comando para verificar la versión del SDK de .NET Core instalada en tu equipo de
desarrollo:
dotnet –version
Iniciando con ASP.NET Core Blazor - Instalar el SDK de .NET Core 3.1
https://ticapacitacion.com/content/aspcore3/10/30/10
10 https://ticapacitacion.com/curso/aspcore3
Este manual fue creado por TI Capacitación para uso personal de:
Jimmy Eliecer Romero Montero (Jerm.pcd@gmail.com)
Introducción a ASP.NET Core
Blazor
3. En la ventana Create a new project, selecciona la plantilla Blazor App y haz clic en el botón
Next para continuar.
4. En la ventana Configure your new project proporciona el nombre, ubicación del proyecto y
haz clic en el botón Create para continuar.
11 https://ticapacitacion.com/curso/aspcore3
Este manual fue creado por TI Capacitación para uso personal de:
Jimmy Eliecer Romero Montero (Jerm.pcd@gmail.com)
Introducción a ASP.NET Core
Blazor
En la ventana Create a new Blazor app te será mostrada la plantilla Blazor Server App y en
caso de que hayas instalado la plantilla Blazor WebAssembly, esta también será mostrada.
5. Selecciona la plantilla Blazor Server App y haz clic en el botón Create para continuar.
6. Presiona F5 para ejecutar la aplicación. Te será mostrada una página similar a la siguiente.
12 https://ticapacitacion.com/curso/aspcore3
Este manual fue creado por TI Capacitación para uso personal de:
Jimmy Eliecer Romero Montero (Jerm.pcd@gmail.com)
Introducción a ASP.NET Core
Blazor
8. En la página Counter, haz clic en el botón Click me para incrementar el contador. Podrás notar
que no habrá una actualización de toda la página, únicamente el contador será actualizado.
Normalmente, en una página web, para incrementar el valor del contador es necesario utilizar
código JavaScript, sin embargo, con Blazor, podemos utilizar C#.
<h1>Counter</h1>
13 https://ticapacitacion.com/curso/aspcore3
Este manual fue creado por TI Capacitación para uso personal de:
Jimmy Eliecer Romero Montero (Jerm.pcd@gmail.com)
Introducción a ASP.NET Core
Blazor
@code {
private int currentCount = 0;
Los miembros de la clase componente son definidos en un bloque @code. En el bloque @code,
el estado del componente (propiedades, campos) y métodos son especificados para manejo
de eventos o para definir alguna otra lógica de renderización del componente.
14 https://ticapacitacion.com/curso/aspcore3
Este manual fue creado por TI Capacitación para uso personal de:
Jimmy Eliecer Romero Montero (Jerm.pcd@gmail.com)
Introducción a ASP.NET Core
Blazor
árbol de renderizado que después puede ser utilizado para actualizar la interfaz de usuario de
una forma flexible y eficiente.
Iniciando con ASP.NET Core Blazor - Crear un Proyecto Blazor Server App
https://ticapacitacion.com/content/aspcore3/10/30/11
15 https://ticapacitacion.com/curso/aspcore3
Este manual fue creado por TI Capacitación para uso personal de:
Jimmy Eliecer Romero Montero (Jerm.pcd@gmail.com)
Introducción a ASP.NET Core
Blazor
@page "/"
<h1>Hello, world!</h1>
<Counter/>
3. Ejecuta la aplicación. Podrás notar que ahora la página de inicio tiene su propio contador
proporcionado por el componente Counter.
@code {
private int currentCount = 0;
[Parameter]
public int IncrementAmount { get; set; } = 1;
<Counter IncrementAmount="10"/>
6. Ejecuta la aplicación.
7. Haz clic en el botón Click me y verifica que ahora el contador se incrementa de 10 en 10.
17 https://ticapacitacion.com/curso/aspcore3
Este manual fue creado por TI Capacitación para uso personal de:
Jimmy Eliecer Romero Montero (Jerm.pcd@gmail.com)
Introducción a ASP.NET Core
Blazor
Inyección de dependencias
Cuando trabajamos con la plantilla de proyecto Blazor Server App, el servicio WeatherForecastService
es registrado como un servicio Singleton y una instancia de este es disponible en toda la aplicación a
través de inyección de dependencias.
2. Examina el código del método ConfigureServices. Podrás ver el registro del servicio
WeatherForecastService.
4. Examina el código del componente FetchData. La directiva @inject es utilizada para inyectar
la instancia del servicio WeatherForecastService en el componente FetchData.
18 https://ticapacitacion.com/curso/aspcore3
Este manual fue creado por TI Capacitación para uso personal de:
Jimmy Eliecer Romero Montero (Jerm.pcd@gmail.com)
Introducción a ASP.NET Core
Blazor
Puedes notar que un ciclo @foreach es utilizado para renderizar cada instancia forecast como
un renglón en la tabla de datos de clima.
7. Ejecuta la aplicación.
8. Haz clic en la opción Fetch Data. Podrás notar que los datos del clima son mostrados.
19 https://ticapacitacion.com/curso/aspcore3
Este manual fue creado por TI Capacitación para uso personal de:
Jimmy Eliecer Romero Montero (Jerm.pcd@gmail.com)
Introducción a ASP.NET Core
Blazor
Hemos terminado el breve recorrido introductorio para iniciar con ASP.NET Core Blazor. Si lo deseas,
puedes realizar el recorrido utilizando la plantilla Blazor WebAssembly App y ver las diferencias. Por
ejemplo, el uso del servicio HttpClient para acceder a los datos del clima expuestos en un archivo JSON.
20 https://ticapacitacion.com/curso/aspcore3
Este manual fue creado por TI Capacitación para uso personal de:
Jimmy Eliecer Romero Montero (Jerm.pcd@gmail.com)
Introducción a ASP.NET Core
Blazor
1. Crea una nueva aplicación Blazor Server llamada ToDoList. La estructura de la aplicación será
similar a la siguiente.
2. Utiliza la plantilla Razor Component para agregar un nuevo componente llamado Todo.razor
dentro de la carpeta Pages.
21 https://ticapacitacion.com/curso/aspcore3
Este manual fue creado por TI Capacitación para uso personal de:
Jimmy Eliecer Romero Montero (Jerm.pcd@gmail.com)
Introducción a ASP.NET Core
Blazor
3. Modifica el código del componente Todo para proporcionar el marcado inicial del
componente.
5. Agrega el siguiente código al final de la lista de elementos existentes para definir un enlace de
navegación hacia el componente Todo.
22 https://ticapacitacion.com/curso/aspcore3
Este manual fue creado por TI Capacitación para uso personal de:
Jimmy Eliecer Romero Montero (Jerm.pcd@gmail.com)
Introducción a ASP.NET Core
Blazor
7. Haz clic en el enlace Todo para confirmar que el componente Todo se muestre correctamente.
23 https://ticapacitacion.com/curso/aspcore3
Este manual fue creado por TI Capacitación para uso personal de:
Jimmy Eliecer Romero Montero (Jerm.pcd@gmail.com)
Introducción a ASP.NET Core
Blazor
2. Agrega el siguiente código en el bloque @code para declarar un campo que nos permitirá
mantener el estado de la lista de tareas por hacer.
@code {
private List<TodoItem> ToDos = new List<TodoItem>();
}
24 https://ticapacitacion.com/curso/aspcore3
Este manual fue creado por TI Capacitación para uso personal de:
Jimmy Eliecer Romero Montero (Jerm.pcd@gmail.com)
Introducción a ASP.NET Core
Blazor
@page "/todo"
@using ToDoList.Models
<h1>Todo</h1>
4. Agrega el siguiente código para declarar una lista no ordenada de elementos debajo de la
etiqueta <h1>.
<h1>Todo</h1>
<ul>
</ul>
5. Dentro de las etiquetas <ul> </ul> agrega el siguiente código para definir un ciclo foreach que
permita renderizar cada elemento de la lista de tareas por realizar como un elemento <li>.
<ul>
@foreach(var ToDo in ToDos)
{
<li>@ToDo.Title</li>
}
</ul>
La aplicación requiere elementos de interfaz de usuario para poder agregar elementos a la lista
de tareas pendientes de realizar.
6. Agrega el siguiente código después de la etiqueta </ul> para declarar un elemento <input> y
un elemento <button>.
25 https://ticapacitacion.com/curso/aspcore3
Este manual fue creado por TI Capacitación para uso personal de:
Jimmy Eliecer Romero Montero (Jerm.pcd@gmail.com)
Introducción a ASP.NET Core
Blazor
Si haces clic en el botón Add to do notarás que nada sucede debido a que no ha sido asociado
un manejador de evento al botón.
2. Modifica la definición del elemento <button> para asociar el evento onclick con el método
AddToDo.
Cuando el usuario haga clic en el botón, el código del método AddToDo será ejecutado.
3. Agrega el siguiente código en el bloque @code para declarar un campo que permita almacenar
el titulo de una tarea por hacer.
4. Modifica el código del elemento <input> para enlazar su valor a la variable NewToDo. El
atributo bind permite realizar el enlace.
5. Actualiza el código del método AddToDo para agregar a la lista un elemento TodoItem con el
título especificado y limpiar nuevamente el elemento <input> asignando una cadena vacía a la
variable NewToDo.
26 https://ticapacitacion.com/curso/aspcore3
Este manual fue creado por TI Capacitación para uso personal de:
Jimmy Eliecer Romero Montero (Jerm.pcd@gmail.com)
Introducción a ASP.NET Core
Blazor
6. Ejecuta la aplicación y agrega algunos elementos a la lista de tareas por realizar para probar el
nuevo código. La página será similar a la siguiente después de agregar un par de tareas.
<li>
<input type="checkbox" @bind="ToDo.IsDone"/>
@ToDo.Title
</li>
2. Cambia el código @ToDo.Title por un elemento <input> y enlaza su valor a la propiedad Title.
<li>
<input type="checkbox" @bind="ToDo.IsDone"/>
<input type="text" @bind="ToDo.Title"/>
</li>
3. Actualiza el código de la etiqueta <h1> para mostrar un contador del número de elementos de
la lista que no han sido realizados (IsDone = false) y con esto verificar que los valores están
enlazados.
4. Ejecuta la aplicación.
27 https://ticapacitacion.com/curso/aspcore3
Este manual fue creado por TI Capacitación para uso personal de:
Jimmy Eliecer Romero Montero (Jerm.pcd@gmail.com)
Introducción a ASP.NET Core
Blazor
Con este ejercicio hemos desarrollado una aplicación sencilla con Blazor Server. Puedes intentar
realizar el ejercicio utilizando la plantilla Blazor WebAssembly App y comparar las diferencias.
El contenido de esta lección es tan solo una introducción, pero proporciona las bases para iniciar en el
mundo de desarrollo con Blazor.
28 https://ticapacitacion.com/curso/aspcore3
Este manual fue creado por TI Capacitación para uso personal de:
Jimmy Eliecer Romero Montero (Jerm.pcd@gmail.com)
Introducción a ASP.NET Core
Blazor
29 https://ticapacitacion.com/curso/aspcore3
Este manual fue creado por TI Capacitación para uso personal de:
Jimmy Eliecer Romero Montero (Jerm.pcd@gmail.com)