Curso de
Juan Carlos Ruiz
Senior Software Engineer
Microsoft
@JuanKRuiz
Bienvenidos
Instalación de
Herramientas
y prerrequisitos
para desarrollar
con ASP.Net
Core
http://asp.net
La importancia
del
middleware en
el entorno web
Mi primera aplicación
ASP.Net Core
Habilitar https, confiando en los
certificados
dotnet dev-certs https --trust
Plantillas pre instaladas para web
Development
Razor Page page
MVC ViewImports viewimports
MVC ViewStart viewstart
ASP.NET Core Empty web
ASP.NET Core Web App (Model-View-Controller) mvc
ASP.NET Core Web App razor
ASP.NET Core with Angular angular
ASP.NET Core with React.js react
ASP.NET Core with React.js and Redux reactredux
Razor Class Library
razorclasslib
ASP.NET Core Web API webapi
Crear una aplicación web vacía
dotnet new web -o HolaMundo
Crear una aplicación web mvc
dotnet new mvc -o HolaMundoMVC
Revisión detallada de la estructura de
directorios
Qué es el patrón MVC
MVC
MVC - Modelos
MVC - Controlador
El controlador responde
request teniendo en cuenta la
ruta y el método Http.
Acciones
Cada acción dentro de un
controlador es creada para
responder requests.
Las acciones tienen una firma
característica, devuelven un
IActionResult
MVC - Vista
Cada una de las acciones del
controlador está asociada a
una de las vistas.
Vistas de Alumno
-- Crear
-- Borrar
-- Index
-- Actualizar
-- Proceso Adicional
-- CalcularPromedios
-- etc
Resumen
Herramientas
Importancia del Middleware
Estructura de un proyecto
Fundamentos del patrón MVC
El proyecto
Nuestro Proyecto
Escuela Web
Etapa 1
Experimentando con MVC
Convenciones
Vista
Controlador
Modelo
Razor syntax
Resumen
Creación de un proyecto Escuela
sencillo utilizando el template
Fundamentos de Razor
Etapa 2
Plantillas
Resumen
Vistas
Plantillas
Archivos de inicio
Etapa 3
Creando la Escuela
Resumen
Modelos
Importación y Preparación
Etapa 4
Vista para listar
asignaturas
Resumen
Invocar otras vistas
Modelos simples y
listas
Etapa 5
Vistas parciales
Resumen
Invocación de Vistas
Vistas Parciales
Shared
<partial>
@foreach
Vistas fuertemente y
débilmente tipadas
Etapa 6
Mostrando otras listas de
objetos
Resumen
Bootstrap
Table
Otras construcciones HTML
Listas desde los controladores
Revisemos
Introducción
Providers Actuales para EF Core
NuGet Package Supported database engines
Microsoft.EntityFrameworkCore.SqlServer SQL Server 2008 onwards
Microsoft.EntityFrameworkCore.Sqlite SQLite 3.7 onwards
Microsoft.EntityFrameworkCore.InMemory EF Core in-memory database
Npgsql.EntityFrameworkCore.PostgreSQL PostgreSQL
Pomelo.EntityFrameworkCore.MySql MySQL, MariaDB
Pomelo.EntityFrameworkCore.MyCat MyCAT Server
EntityFrameworkCore.SqlServerCompact40 SQL Server Compact 4.0
EntityFrameworkCore.SqlServerCompact35 SQL Server Compact 3.5
MySql.Data.EntityFrameworkCore MySQL
FirebirdSql.EntityFrameworkCore.Firebird Firebird 2.5 and 3.x
EntityFrameworkCore.FirebirdSql Firebird 2.5 and 3.x
IBM.EntityFrameworkCore Db2, Informix
IBM.EntityFrameworkCore-lnx Db2, Informix
IBM.EntityFrameworkCore-osx Db2, Informix
Devart.Data.Oracle.EFCore Oracle 9.2.0.4 onwards
Devart.Data.PostgreSql.EFCore PostgreSQL 8.0 onwards
Devart.Data.SQLite.EFCore SQLite 3 onwards
Devart.Data.MySql.EFCore MySQL 5 onwards
EntityFrameworkCore.Jet Microsoft Access files
Instalación de EF en una solución
.NetCore
dotnet add package Microsoft.EntityFrameworkCore.InMemory
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
Resumen
Qué es EF
Instalación
Tipos de proveedor de acceso a datos
Etapa 7
Conectando la solución
con EF Core
Resumen
DataContext
DbSet
Siembra de datos
Convención de llave primaria
Configuraciones del entorno
Uso de una BD en memoria
Etapa 8
Refactoring del modelo
para un ORM
El Modelo
Asignaturas
Escuela
Cursos Alumnos Evaluación
Consideraciones
1 2 3
Cada Entidad Idealmente las La entidad ‘padre’
debe tener un Id Entidades ‘hijas’ tiene las
deben tener una entidades ‘hija’
referencia a la como referencias,
entidad ‘padre’ en forma de listas.
Resumen
Creación del modelo
Modelo de entidades navegables
Conversión a un modelo óptimo para EF
Convenciones para ID dependiendo del
motor
Proceso de siembra de datos
Etapa 9
Formularios
Resumen
Formularios
Acciones que responden a
diferentes métodos
Redirección
Estado del modelo
Completado de objetos
Dropdownlist de enums
• Implementar edición para
los cursos
• Implementar creación y
Reto edición de asignaturas
• Implementar creación y
edición de alumnos
Etapa 10
Data annotations
Resumen
Required
StringLenght
MinLength
Display, Prompt,
Name
•Configurar las
Reto validaciones para
todos los modelos
•Validaciones
Personalizadas
•Validación del lado
Profundizar cliente con Jquery
unobtrusive Validation
Etapa 11
Usando una BD de verdad
Instalación de EF en una solución .NetCore
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
Resumen
Archivo de configuración
Connection Strings
Azure SQL DB
Etapa 12
Scaffolding o borrón y
cuenta nueva
Instalación de componentes para scaffolding
dotnet tool install -g dotnet-aspnet-codegenerator
dotnet add package
Microsoft.VisualStudio.Web.CodeGeneration.Design
dotnet restore
Como generar un controlador y sus vistas para un
Modelo
dotnet aspnet-codegenerator controller `
-name AlumnoController `
-m Alumno `
-dc EscuelaContext `
--relativeFolderPath Controllers `
--useDefaultLayout `
--referenceScriptLibraries -f
Resumen
Que es Scaffolding
Instalación de las tools
Generación de controladores
y vistas
Optimizaciones
• Modificar todos los
Reto controladores para que
muestre los datos correctos
• Modificar todas las visas para
que muestren los datos
correctos
Etapa 13
Publicando al website
Resumen
Extensión de Azure para App Services
Login en el servicio
Publicación de la web app
Ajustes de configuración
Otros temas
relacionados
• Routing
• REST APIs
• Areas
• SignalR
• Razor
• TagHelpers
• HTMLHelpers
https://docs.microsoft.com/en-us/aspnet/core/
Curso de
Juan Carlos Ruiz
Senior Software Engineer
Microsoft
@JuanKRuiz