Ctrl + B, el nemesis de Juan Carlos 😂
Introducción a ASP.NET Core
Todo lo que aprenderás sobre ASP.NET Core
Herramientas y prerrequisitos
La importancia del middleware en el entorno web
Mi primera aplicación ASP.Net Core
Habilitar certificados, planillas preinstaladas
Revisión detalladas de la estructura de directorios
¿Qúé es el patrón MVC?
Nuestro Proyecto
Modelo Vista Controlador a nivel básico
Vista y controlador
Modelo a nivel básico
Razor Syntax
Vistas Plantillas y modelo
Vistas, plantillas, Archivos de inicio
Importación de modelos
Vistas para listar asignaturas
Vistas parciales
Mostrando otras listas de objetos
Actualizando la versión de bootstrap
Entity Framework Core
Introducción a entity framework
Conectando la solución con Entity Framework Core
Sembrando datos en la base de datos
Optimizando siembra de datos
Refactoring del Modelo para un ORM
Implementando cambios en el modelo
Refactoring siembra de datos
Ajuste de vistas y formularios
Ajuste de enrutamiento
Ajuste de vistas y controladores
Creando un formulario
Validaciones de formularios
Tu primer Reto
Atributos de validación y bases de datos
Data annotations
Segundo Reto
Usando una Base de Datos de verdad
Diseño de vistas y controladores optimizado
Scaffolding o borrón y cuenta nueva
Tercer Reto
Deploy del sitio
Publicando el website
Conclusiones
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Juan Carlos Ruiz
Aportes 35
Preguntas 1
Ctrl + B, el nemesis de Juan Carlos 😂
A mi me parece interesante que se lleve una secuencia de desarrollo de proyecto durante toda la carrera.
Para el ID
private List<Alumno> GenerarAlumnosAlAzar()
{
string[] nombre1 = { "Alba", "Felipa", "Eusebio", "Farid", "Donald", "Alvaro", "Nicolás" };
string[] apellido1 = { "Ruiz", "Sarmiento", "Uribe", "Maduro", "Trump", "Toledo", "Herrera" };
string[] nombre2 = { "Freddy", "Anabel", "Rick", "Murty", "Silvana", "Diomedes", "Nicomedes", "Teodoro" };
var listaAlumnos = from n1 in nombre1
from n2 in nombre2
from a1 in apellido1
select new Alumno { Nombre = $"{n1} {n2} {a1}", UniqueId = Guid.NewGuid().ToString() };
return listaAlumnos.OrderBy((al) => al.UniqueId).ToList();
}
El curso es bueno pero es fastidioso que se reutilice código desde otro curso.
<table>
<thead class="table table-dark table-hover">
<tr>
<th scope="col">Id</th>
<th scope="col">Nombre</th>
</tr>
</thead>
<tbody>
@foreach (var alumno in @Model)
{
<tr>
<td>@alumno.Id</td>
<td>@alumno.Nombre</td>
</tr>
}
</tbody>
</table>
Si les llega a pasar…
en la etiqueta <partial> en el campo name, si dejan espacio en el = no funciona,
<partial name = “ObjetoEscuelaSimple”/> No es lo mismo que
<partial name= “ObjetoEscuelaSimple”/>.
<table class="table table-dark table-hover">
<thead>
<tr>
<th scope="col">Id</th>
<th scope="col">Nombre</th>
</tr>
</thead>
<tbody>
@foreach (var alumno in @Model)
{
<tr>
<td>@alumno.Nombre</td>
<td>@alumno.UniqueId</td>
</tr>
}
</tbody>
</table>
No se quejen tanto por el código reutilizado, en ambiente laboral es de lo mas común y es mejor acostumbrarse a interpretarlo rápidamente para poder usarlo sin perder el hilo del curso.
Lo de los errores es mejor que aparezcan en el curso, si no los cometiera(intencional o no) no sabríamos como resolverlos.
He visto un montón de cursos en linea o por vídeos, pocos permiten ver cuando se equivocan, luego, cuando intentamos replicarlo salen miles de errores que no sabemos como resolverlos.
Creo que lo mejor hubiera sido un proyecto nuevo y no estar copiando y pegando de un proyecto anterior, en este punto, ya me perdi entre tantos Copy & Paste y sobre todo con la prisa en hacerlo… 😒
Función
private List<Alumno> GenerarAlumnosAlAzar()
{
string[] nombre1 = { "Alba", "Felipa", "Eusebio", "Farid", "Donald", "Alvaro", "Nicolás" };
string[] apellido1 = { "Ruiz", "Sarmiento", "Uribe", "Maduro", "Trump", "Toledo", "Herrera" };
string[] nombre2 = { "Freddy", "Anabel", "Rick", "Murty", "Silvana", "Diomedes", "Nicomedes", "Teodoro" };
var listaAlumnos = from n1 in nombre1
from n2 in nombre2
from a1 in apellido1
select new Alumno {
Nombre = $"{n1} {n2} {a1}" ,
UniqueId = Guid.NewGuid().ToString()
};
return listaAlumnos.OrderBy((al) => al.UniqueId).ToList();
}
Este curso es un copia y pega de lo mismo de forma reiterativa, con un par de buenos conceptos en la mitad de todo eso, esos buenos conceptos son importantes y es lo bueno del curso, lo malo es aguantarse todo ese copia y pega para dar con ellos.
<table class="table table-dark table-hover">
<thead>
<tr>
<th scope="col">Id</th>
<th scope="col">Nombre</th>
</tr>
</thead>
<tbody>
@foreach (var alumno in @Model)
{
<tr>
<td>@alumno.UniqueId</td>
<td>@alumno.Nombre</td>
</tr>
}
</tbody>
</table>
nunca habia visto un proyecto de .net Core en algo que no sea visual studio 2017/2019
pensé iba a ser mas sacrificado y engorroso por las ayudas del editor de visual studio, pero no, se ve bien en visual studio code.
Cuando copias y pegas demasiado termina pasando lo que le ocurrió al profesor, te salen errores y terminas perdiendo tiempo y buscar en el código. 😛. Me ha pasado muchas veces jejeje
El contenido del video en general tiene demasiados errores, como para llevar un hilo conductor y entender. En varios momentos el mismo profesor se equivoca.
Esto es una posibilidad de mejora que ayudaría a bajar el tiempo de los videos.
Entiendo que es bueno mostrar errores para luego saber como solucionarlos, pero cuando estas recién aprendiendo no ayudan mucho.
Ctrl + H y remplazas Asignatura por Alumno
Con el select Documento actual (para evitar problemas)
![](
Creo que es importante no copiar y pegar el código, entiendo que es para darle rapidez al curso pero mezclas los nombres de las listas de asignaturas y listas y no es muy entendible, creo que es mejor programar desde 0 aunque sea mas trabajo
mucho copia y pega y los que estamos siguiendo con visual studio 2022 tenemos que hacer magia para seguirlo y corregir errores
Funcion Alumnos aleatorios para pegar:
private List<Alumno> GenerarAlumnosAlAzar()
{
string[] nombre1 = { "Alba", "Felipa", "Eusebio", "Farid", "Donald", "Alvaro", "Nicolás" };
string[] apellido1 = { "Ruiz", "Sarmiento", "Uribe", "Maduro", "Trump", "Toledo", "Herrera" };
string[] nombre2 = { "Freddy", "Anabel", "Rick", "Murty", "Silvana", "Diomedes", "Nicomedes", "Teodoro" };
var listaAlumnos = from n1 in nombre1
from n2 in nombre2
from a1 in apellido1
select new Alumno {
Nombre = $"{n1} {n2} {a1}" ,
UniqueId = Guid.NewGuid().ToString()
};
return listaAlumnos.OrderBy((al) => al.UniqueId).ToList();
}
Tabla simple para pegar :
<table class=“table table-dark table-hover”>
<thead>
<tr>
<th scope=“col”>Id</th>
<th scope=“col”>Nombre</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
Para los que se cansan de copiar y pegar codigo, los invito que lo hagan con la tematica que quieran, por ejemplo un registro de hospital o algo así, todo les deberia funcionar tal cual va el profe
Como observación, he tomado cursos de otras plataformas y he visto que el método para generar los alumnos no se debería poner en el controlador.
En mi caso realicé una clase llamada “Alumno_DAO” en una carpeta “Servicios” y dentro de ella está definido el método para generar todos los alumnos.
public class Alumno_DAO
{
public static List<Alumno> GenerarAlumnosAlAzar()
{
string[] nombre1 = { "Alba", "Felipa", "Eusebio", "Farid", "Donald", "Alvaro", "Nicolás" };
string[] apellido1 = { "Ruiz", "Sarmiento", "Uribe", "Maduro", "Trump", "Toledo", "Herrera" };
string[] nombre2 = { "Freddy", "Anabel", "Rick", "Murty", "Silvana", "Diomedes", "Nicomedes", "Teodoro" };
var listaAlumnos = from n1 in nombre1
from n2 in nombre2
from a1 in apellido1
select new Alumno { Nombre = $"{n1} {n2} {a1}", UniqueId=Guid.NewGuid().ToString() };
return listaAlumnos.OrderBy((al) => al.UniqueId).ToList();
}
}
Luego en el controlador simplemente se llama al método y se asigna a la variable “listaAlumnos”
public IActionResult MultiAlumno()
{
var listaAlumnos = new List<Alumno>();
listaAlumnos = Alumno_DAO.GenerarAlumnosAlAzar();
ViewBag.Fecha = DateTime.Now.ToString();
return View(listaAlumnos);
}
De esta forma dividimos las responsabilidades.
Excelente, realmente he aprendido bastante a usar las vistas y entender como funciona @model de una forma clara hasta el momento en este curso. La reutilización del código no supone un molestia en mi opinión ya que el objetivo es aprender a usar la herramienta.
😪
Aquí el Link del Repositorio:
https://github.com/JuanKRuiz/platzi-curso-csharp/blob/Etapa9/App/EscuelaEngine.cs
donde esta el codigo bootsrap?
excelente.
Listo el pollo
Excelente como usar estas vistas y como enviar la info a la vistas reutilizando código genial
buen ejemplo incluyendo bootstrap.
El css de boostrap se aplica cuando esta no esta asignado el Layout = “Simple”;
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?