utilizando injection ;
@inject B_Category bCategory
protected override async Task OnInitializedAsync()
{
categories = bCategory.CategoryList();
}
Conocer las bases de .NET core
¿Qué necesitas para aprender a desarrollar aplicaciones profesionales en .NET con Blazor?
Todo lo que aprenderás sobre Blazor
Evolución de .Net
¿Cómo funciona el Desarrollo Web sin Blazor?
Instalando Visual Studio Community
Instalando SQL Server Express
Entender la estructura de Blazor
Webassemblies y .Net Core 3
Anatomía de una aplicación Blazor
Blazor pages
Blazor components
Introducción a formularios
Inyección de dependencias
Aplicar Entity Framework
Arquitectura vs. Patrones de Diseño
Estructurando nuestro proyecto
¿En qué consiste Entity Framework y por qué vamos a trabajarlo?
Creación de entidades
Data annotations
Trabajando el relacionamiento entre entidades
Creando el datacontext
Migraciones
Alimentando la base de datos
Integrar datos en ambientes Blazor
Construyendo la capa intermedia o capa de negocio
El CRUD de integración de datos
Creación de formularios con Blazor
Finalizando el formulario
Trabajando listas de datos
Agregando filtros a nuestra lista
Guardando nuevos registros
Creación formulario de actualización de datos
Aplicando actualización de datos
Registrando productos en almacenamiento
Creando página de almacenamiento
Cargando productos por Bodega para entradas y salidas
Relacionando productos y formulario de entradas y salidas
Finalizando el formulario de entradas y salidas
Aplicar Diseño con Bootstrap
Revisión de estilos: Introducción a Bootstrap
Publicando el sitio
Cierre del curso
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
La implementación de formularios en aplicaciones web puede parecer un desafío, pero con la guía adecuada, se convierte en un proceso claro y manejable. A continuación, exploraremos cómo crear un formulario para productos, asegurándonos de que se pueda integrar fácilmente en cualquier página.
Para comenzar, es esencial saber cómo integrar un componente de formulario ya preparado en una página específica. Aquí, vamos a utilizar la página Index como ejemplo. El procedimiento es bastante sencillo:
<!-- Ejemplo de llamado de componente en HTML -->
<Página>
<ComponenteLlamado />
</Página>
En ocasiones, al integrarlo, pueden surgir problemas de diseño. Un error común es el reconocimiento incorrecto de controles de formulario, especialmente si se trata de un grupo en lugar de un control individual. La solución implica:
Agregar categorías organizadas es clave para que el usuario pueda seleccionar adecuadamente al crear un producto. Sigue estos pasos para implementar un menú desplegable:
<select>
con opciones para las categorías.<!-- Ejemplo de menú desplegable en HTML -->
<select class="form-control">
<!-- Opciones cargadas dinámicamente -->
<option value="{{category.id}}">{{category.name}}</option>
</select>
Para optimizar el rendimiento de carga y asegurar las actualizaciones en tiempo real, requieres implementar técnicas asincrónicas mediante programación. Esto se logra definiendo una tarea asincrónica que se ejecuta al cargar el componente:
Un aspecto crucial de cualquier desarrollo web es la experiencia del usuario. Para mejorar la apariencia del formulario:
Con estos pasos y consideraciones, lograrás no solo implementar un formulario funcional y estético, sino también una integración eficaz dentro de las páginas de tu aplicación, fomentando una experiencia de usuario fluida y profesional. ¡Sigue adelante y sigue perfeccionando tus habilidades de desarrollo!
Aportes 9
Preguntas 8
utilizando injection ;
@inject B_Category bCategory
protected override async Task OnInitializedAsync()
{
categories = bCategory.CategoryList();
}
inspeccionando en la consola resulta que hay un error critico
con WebAssembly y SqlServer
busque pero no encontre ninguna solucion que funcionara al dia de hoy si alguien sabe como arreglarlo lo agradeceria mucho, dejo el codigo de error
Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer[100]
Unhandled exception rendering component: Strings.PlatformNotSupported_DataSqlClient
System.PlatformNotSupportedException: Strings.PlatformNotSupported_DataSqlClient
at Microsoft.Data.SqlClient.SqlConnectionStringBuilder…ctor(String connectionString)
at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerConnection.<>c.<get_IsMultipleActiveResultSetsEnabled>b__7_0(String cs)
Que lindo que fue este episodio. Ver como todo va saliendo como uno espera y entendiendo todo lo que va pasando es espectacular. Felicitaciones a Platzi y al profesor por este tremendo curso que nos brindan!!!
Si tienen problemas con el CategoryId que tiene el valor null y no les guarda el producto en la base, en el método OnInitializedAsync tienen que agregarle al oProduct.CategoryId el primer elemento de la lista de categorias (es el que se le muestra al cliente), es decir.
ProductEntity oProduct = new ProductEntity();
List<CategoryEntity> categories = new List<CategoryEntity>();
protected override async Task OnInitializedAsync()
{
categories = B_Category.CategoryList();
if (categories.Any())
{
Product.CategoryId = categories.First().Id;
}
}
Si al ejecutar la aplicación Blazor no les parece la lista de categorías en el desplegable, una de las primeras comprobaciones que haría es verificar que efectivamente se esta leyendo de la BBDD con la depuración de VS 😉
Para los que tiene problemas porque el CategoryId les aparece null en la tabla es porque deben seleccionar alguna opción en el InputSelect. Si agregan la que trae por defecto no toma el campo.
Muy interesante
Agregué un inputNumber para la cantidad de producto
<div class="form-group">
<label>Cantidad</label>
<InputNumber @bind-Value="oProduct.TotalQuantity" class="form-control" />
</div>
excelente el paso a paso del profesor!!
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?