CursosEmpresasBlogLiveConfPrecios

Configuración de Entity Framework

Clase 8 de 25 • Curso de Fundamentos de Entity Framework

Clase anteriorSiguiente clase

Contenido del curso

Introducción

  • 1
    Bienvenida y presentación

    Bienvenida y presentación

    01:51 min
  • 2
    Prerrequisitos

    Prerrequisitos

    03:04 min
  • 3
    Conexión a base de datos

    Conexión a base de datos

    07:20 min
  • 4
    ¿Qué es un ORM en programación?

    ¿Qué es un ORM en programación?

    08:51 min
  • 5
    Introducción a Entity Framework

    Introducción a Entity Framework

    06:53 min
  • 6
    Creación de proyecto .NET con Entity Framework

    Creación de proyecto .NET con Entity Framework

    11:57 min

Iniciando con Entity Framework

  • 7
    Creación de modelos

    Creación de modelos

    08:28 min
  • 8
    Configuración de Entity Framework

    Configuración de Entity Framework

    Viendo ahora
  • 9
    Mapeo de modelos usando atributos

    Mapeo de modelos usando atributos

    09:52 min
  • 10
    Utilizando base de datos en memoria

    Utilizando base de datos en memoria

    10:13 min
  • 11
    Conectado a base de datos SQL server

    Conectado a base de datos SQL server

    10:53 min
  • 12
    Agregando conexión al archivo appsettings

    Agregando conexión al archivo appsettings

    07:28 min

Utilizando Fluent API

  • 13
    Introducción a Fluent API

    Introducción a Fluent API

    03:29 min
  • 14
    Creando modelo de categoría con Fluent API

    Creando modelo de categoría con Fluent API

    08:30 min
  • 15
    Creando modelo de tarea con Fluent API

    Creando modelo de tarea con Fluent API

    07:36 min
  • 16
    Conectado a base de datos con Fluent API

    Conectado a base de datos con Fluent API

    07:42 min

Migraciones

  • 17
    ¿Qué son las migraciones?

    ¿Qué son las migraciones?

    03:14 min
  • 18
    Inicializar las migraciones

    Inicializar las migraciones

    11:27 min
  • 19
    Creando una migración

    Creando una migración

    07:18 min
  • 20
    Agregando datos semilla

    Agregando datos semilla

    16:31 min

Consumo de datos

  • 21
    Obteniendo datos con Entity Framework

    Obteniendo datos con Entity Framework

    11:31 min
  • 22
    Guardando datos con Entity framework

    Guardando datos con Entity framework

    09:07 min
  • 23
    Actualizando datos con Entity framework

    Actualizando datos con Entity framework

    10:17 min
  • 24
    Eliminando datos con Entity framework

    Eliminando datos con Entity framework

    07:59 min

Cierre del curso

  • 25
    Continúa tu camino desarrollando

    Continúa tu camino desarrollando

    01:45 min
Tomar examen
    Platzi Team

    Platzi Team

    student•
    hace 3 años

    Configuración de Entity Framework


    Para realizar la configuracion de EntityFramework creamos un archivo para nuestro contexto:

    using Microsoft.EntityFrameworkCore; using projectef.models; namespace TaskContext; public class TaskContext : DbContext { public DbSet<Category> categories { get; set; } public DbSet<Homework> homeworks { get; set; } public TaskContext(DbContextOptions<TaskContext> options) : base(options) { } }
    1. La primera línea using Microsoft.EntityFrameworkCore; incluye el namespace que contiene la clase base DbContext.
    2. La segunda línea using projectef.models; incluye el namespace que contiene los modelos de datos que se van a utilizar en la aplicación.
    3. La clase TaskContext hereda de DbContext y representa el contexto de Entity Framework para la aplicación.
    4. Dentro de la clase, existen dos propiedades públicas: categories y tasks. Estas propiedades representan las tablas en la base de datos y se declaran como DbSet.
    5. Por último, se tiene un constructor que acepta un objeto DbContextOptions<TaskContext> y lo pasa a la clase base DbContext para que pueda establecer la configuración necesaria para la conexión a la base de datos.

    Contexto:

    El contexto es una clase en Entity Framework que representa una conexión a una base de datos y permite el acceso a los datos en la base de datos.

    Es el intermediario entre la aplicación y la base de datos, y se encarga de traducir las operaciones de la aplicación en instrucciones que la base de datos puede comprender y ejecutar. Además, el contexto también administra el ciclo de vida de las entidades y sus cambios en la base de datos.

    • Por ejemplo, si una aplicación necesita recuperar una lista de tareas desde la base de datos, la aplicación llamará a un método en el contexto para recuperar esa información. El contexto, a su vez, generará una consulta a la base de datos, recuperará los resultados y los devolverá a la aplicación en forma de una lista de entidades.

    En resumen, el contexto es un componente clave en Entity Framework que actúa como intermediario entre la aplicación y la base de datos y facilita el acceso a los datos en la base de datos.

      Santiago Delavilla Sariella

      Santiago Delavilla Sariella

      student•
      hace 3 años

      me salvaste porque no entendi casi nada en el video jaja

      Roberto Carlos Herrera

      Roberto Carlos Herrera

      student•
      hace un año

      Gracias

    Celso ariel Santa cruz

    Celso ariel Santa cruz

    student•
    hace 3 años

    este chavon no explica nada. te dice lo que hay que hacer pero no te explica que es cada cosa. la verdad copie lo que hizo pero no entendi que hice ni por que. si lo quiero replicar por mi cuenta no se que hacer

      Carlos Andrés Castro Moreno

      Carlos Andrés Castro Moreno

      student•
      hace 3 años

      Le esta explicando textualmente para que se hace esta configuracion en el minuto 6:02 del video, de resto no creo que un tutor deba explicar cada linea de codigo si se tiene un minimo de conocimiento en C#

    David Santa Cruz

    David Santa Cruz

    student•
    hace 2 años

    La verdad la explicación del código fue muy superficial, a continuación mi colaboración para los compañeros que no entendieron nada.

    1) Al usar un ORM como Entity Framework Core, se hace un mapeo de la base de datos y tablas a clases de C#.

    En este caso para representar la base de datos se debe crear una clase que herede de DbContext, EF Core usa esta clase como puente entre C# y la base de datos.

    Para representar cada tabla de la base de datos se crea un modelo, en este caso una clase de C# con las propiedades equivalentes de cada columna de la tabla.

    Para completar el puente entre el modelo y cada tabla de la base de datos, dentro de la clase que hereda de DbContext, se debe crear una propiedad del tipo DbSet<ModeloTabla>, esta es genérica por eso en lugar de ModeloTabla se coloca el nombre de la clase que representa el modelo de una tabla.

    2) Respecto al constructor donde usa DbContextOptions, es un patrón llamado Options que creó Microsoft y lo usa mucho con inyección de dependencias para inyectar parámetros, en este caso los datos para conectarse a la base de datos que sería la cadena de conexión.

    El patrón options en realidad es una clase simple que envuelve o contiene propiedades de configuración como puede ser la cadena de conexión y que se pasa por inyección de dependencias cuando se crea una instancia del objeto en este caso del DbContext.

    Marcos Avila Rodriguez

    Marcos Avila Rodriguez

    student•
    hace 4 años

    Gracias por el libro, buen recurso para iniciar rápido con EF.

    Jhordy Samuel Toro Arroyo

    Jhordy Samuel Toro Arroyo

    student•
    hace 4 años

    Me pueden explicar mejor que hace esta linea de codigo? (Es lo mismo del profe pero en ingles)

    code.png

      Juan Betancur

      Juan Betancur

      student•
      hace 4 años

      sí, por favor que alguien nos explique 😊

      Gabriel Araya

      Gabriel Araya

      student•
      hace 3 años
      • "public TareasContext(DbContextOptions<TareasContext> options)" es el constructor de la clase TareasContext. Un constructor es un método que se llama cuando se crea una nueva instancia de una clase. En este caso, el constructor de la clase TareasContext recibe un objeto DbContextOptions<TareasContext> como argumento.

      • "base(options)" es el constructor de la clase base, que en este caso es DbContext. Una clase puede heredar de otra clase, y cuando se hace esto, la clase hija tiene acceso a todas las propiedades y métodos de la clase padre. El constructor de la clase padre se llama con el operador ":", seguido del nombre del constructor y sus argumentos entre paréntesis.

      En este caso, el constructor de la clase TareasContext está llamando al constructor de la clase base, DbContext, y le está pasando el objeto DbContextOptions<TareasContext> como argumento. Esto significa que el constructor de la clase TareasContext tiene acceso a todas las propiedades y métodos del constructor de la clase base, y puede usar o sobreescribir cualquiera de ellos según sea necesario.

      Repondido por ChatGPT :P

    LUIS ANGEL GALLEGO VILLA

    LUIS ANGEL GALLEGO VILLA

    student•
    hace 3 años

    Hola:

    Considero importante aclarar que se debe instalar la extensión ".NET Core Extension Pack" para que el Visual Studio Code ayude con la inserción de los using; de lo contrario, tienes qué hacerlo manualmente...

    Gonzalo Chaparro

    Gonzalo Chaparro

    student•
    hace 4 años

    Profe, esta sería la forma de configurar Entity Framework en una relacion 1:N, nos podria dar ejemplos de cuando se hace con relaciones 1:1 o N:N?

      Miguel Teheran

      Miguel Teheran

      teacher•
      hace 4 años

      Este es un ejemplo de 1:1, en lugar de poner WithMany usar WithOne:

      modelBuilder.Entity<Author>() .HasOne(a => a.Biography) .WithOne(b => b.Author) .HasForeignKey<AuthorBiography>(b => b.AuthorRef);

      Este seria un ejemplo de muchos con muchos: modelBuilder.Entity<BookCategory>() .HasKey(bc => new { bc.BookId, bc.CategoryId });
      modelBuilder.Entity<BookCategory>() .HasOne(bc => bc.Book) .WithMany(b => b.BookCategories) .HasForeignKey(bc => bc.BookId);
      modelBuilder.Entity<BookCategory>() .HasOne(bc => bc.Category) .WithMany(c => c.BookCategories) .HasForeignKey(bc => bc.CategoryId);

      Para mas info te recomiendo este sitio: https://www.learnentityframeworkcore.com/configuration/many-to-many-relationship-configuration

      Juan Betancur

      Juan Betancur

      student•
      hace 4 años

      no entendí bien como es que se haces los diferentes tipos de relaciones entre tablas, porque en esta clase lo que el profe está escribiendo no se vio

    Felipe de Jesús Isidro

    Felipe de Jesús Isidro

    student•
    hace 4 años

    Esto se me asemeja tanto a laravel con su Eloquent ORM

      Miguel Teheran

      Miguel Teheran

      teacher•
      hace 4 años

      Si, los ORM son muy parecidos y tienen el mismo fin. La idea es entender como funcionan por que el detalle se puede consultar en la documentación, esto te va permitir ser un poco mas agnóstico al lenguaje.

    Daniel Meza

    Daniel Meza

    student•
    hace 3 años

    ¿Cómo debería configurarse EF cuando tienes entidades que van a heredar de otra, para que eso se refleje en la BD

      Miguel Teheran

      Miguel Teheran

      teacher•
      hace 3 años

      No deberias tener problemas, no existe ninguna configuración solo debes heredar y luego en FuentAPI indicas como se va procesar esas propiedades

    Juan Rossano

    Juan Rossano

    student•
    hace 3 años

    Me aparece como en la pantalla subrayado el metodo TareasContext con el mensaje que Categorias no acepta nulos y debe contener un valor distinto de nulo al salir del constructor ¿a que se debe? ¿o se corrige mas adelante?

      Miguel Teheran

      Miguel Teheran

      teacher•
      hace 3 años

      Es una advertencia común, sin no se le coloca valor en el contrustor quedaria nula y peude causar errores de ejecución sin embargo no es necesario.

    Juan Betancur

    Juan Betancur

    student•
    hace 3 años

    Estoy creando los modelos tal cual lo estamos viendo en el curso. Luego de tener los modelos y el context listo estoy usando scaffolding para crear los controladores y las vistas. Luego de tener las vistas y los controladores creados hago pruebas con el create y el edit pero no me crea ni me edita. Le estoy haciendo seguimiento al código y cuando entra al if del create donde está validando si el modelo es válido este salta directamente y se sale de la ejecución, no sé por qué sucede, pero cuando quito la colección de matrículas ahí si me deja crear sin problema

    este es el código de crear del modelo del controlador

    public async Task<IActionResult> Create([Bind("Id,Nombre,Descripcion")] Curso curso) { if (ModelState.IsValid) { curso.Id = Guid.NewGuid(); _context.Add(curso); await _context.SaveChangesAsync(); return RedirectToAction(nameof(Index)); } return View(curso); }

    este es el modelo de curso

    public class Curso { public Guid Id { get; set; } public string Nombre { get; set; } public string Descripcion { get; set; } public virtual ICollection<Matricula> Matriculas { get; set; } }

    este es el modelo de matriculas

    public class Matricula { public Guid Id { get; set; } public DateTime Fecha { get; set; } public Guid EstudianteId { get; set; } public Guid CursoId { get; set; } public Guid DocenteId { get; set; } public virtual Estudiante Estudiante { get; set; } public virtual Curso Curso { get; set; } public virtual Docente Docente { get; set; } }
      Miguel Teheran

      Miguel Teheran

      teacher•
      hace 3 años

      Todo se ve bastante bien. Intenta ponerle [JsonIgnore] para excluirlo del Json cuando se recibe y se devuelve de pronto se soluciona.

      Juan Betancur

      Juan Betancur

      student•
      hace 3 años

      No funciona, esto es lo que esta sucediendo. primero ingreso a la vista para ingresar la información

      Screenshot 2022-08-04 154729.png

      cuando presiono en el botón create pasa esto

      Screenshot 2022-08-04 154959.png

      el campo colección de matrículas se ingresa como null, y al no poder ser null no entra en el if y no crea el nuevo curso

      Screenshot 2022-08-04 155205.png

      Miguel espero puedas ayudarme con esto, me estoy preparando para una entrevista técnica de c# con .NET y esto hace parte de los requerimientos de la entrevista.

      gracias

    Miguel Angel Porras Villarreal

    Miguel Angel Porras Villarreal

    student•
    hace 2 años

    DbContext es una clase fundamental en Entity Framework y Entity Framework Core que actúa como el puente entre tu código de aplicación y la base de datos. Proporciona una interfaz para interactuar con las entidades (clases de modelo) y realizar operaciones de lectura y escritura en la base de datos.

    En esencia, DbContext es una representación del modelo de datos de tu aplicación y contiene conjuntos de entidades que representan las tablas de la base de datos. Cada entidad en el DbContext representa una fila en la tabla correspondiente.

    Algunas de las tareas que puedes realizar con DbContext incluyen:

    1. Querying (Consulta): Utilizando LINQ, puedes realizar consultas a la base de datos para recuperar datos específicos. El DbContext traduce tus consultas LINQ en comandos SQL para ejecutar en la base de datos.
    2. Insertar, Actualizar y Eliminar datos: Puedes agregar nuevos registros a la base de datos (Insert), actualizar registros existentes (Update) y eliminar registros (Delete) utilizando métodos proporcionados por el DbContext.
    3. Seguimiento de cambios: El DbContext realiza un seguimiento de los cambios realizados en las entidades y los mantiene en memoria hasta que los confirmes mediante una operación de guardado (SaveChanges).
    4. Administrar transacciones: Puedes trabajar con transacciones para asegurar que un conjunto de cambios se realice como una unidad atómica y se pueda deshacer si ocurre algún error.
    5. Configurar relaciones y mapeo: Puedes definir las relaciones entre entidades y configurar el mapeo de propiedades para que coincida con la estructura de la base de datos.

    Un ejemplo simple de cómo se crea y se utiliza un DbContext en C# con Entity Framework Core:

    csharpCopy code using Microsoft.EntityFrameworkCore; public class MyDbContext : DbContext { // DbSet para representar una tabla en la base de datos public DbSet<Product> Products { get; set; } // Configuración de la cadena de conexión a la base de datos protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlServer("tu_cadena_de_conexion"); } } public class Product { public int Id { get; set; } public string Name { get; set; } public decimal Price { get; set; } }

    En este ejemplo, se crea un DbContext llamado MyDbContext que contiene un DbSet para representar la tabla "Products" en la base de datos. La cadena de conexión se establece en el método OnConfiguring. Luego puedes utilizar MyDbContext para interactuar con la base de datos a través de las entidades Product.

    Recuerda que, antes de utilizar un DbContext, debes instalar el paquete NuGet necesario y configurar correctamente la cadena de conexión en tu aplicación

    Victor Alexander De Jesus De Nobrega

    Victor Alexander De Jesus De Nobrega

    student•
    hace 4 años

    Según la clase Entity Framework es interesante por que nos permite crear un contexto donde tengamos toda la relación que tenemos con la finalidad de transfórmalo en colecciones que se representaran en la base de datos

    Sebastián Sebastian NavarroC.

    Sebastián Sebastian NavarroC.

    student•
    hace 3 años

    que hay de mal en mi Tareas Context???? me da 7 errores

    using Microsoft.EntityFrameworkCore; using projectef.Models;

    namespace projectef;

    public class TareasContext: DbContext

    { public DbSet<Categoria> Catogorias {get;set;}

    public DbSet<Tarea> Tareas {get;set;} public TareasContext(DbContextOptions<TareasContext> options) :base(options){ }

    }

      Miguel Teheran

      Miguel Teheran

      teacher•
      hace 3 años

      Esta clase se ve bastante bien, no veo el error

    Sebastián Sebastian NavarroC.

    Sebastián Sebastian NavarroC.

    student•
    hace 3 años

    C:\platzi\projectef\TareasContext.cs(3,29): error CS0246: El no text' no se encontró (¿falta una directiva using o una referenc ctef.csproj] C:\platzi\projectef\TareasContext.cs(6,12): error CS0246: El no <>' no se encontró (¿falta una directiva using o una referencia ef.csproj] C:\platzi\projectef\TareasContext.cs(6,18): error CS0246: El no oria' no se encontró (¿falta una directiva using o una referenc ctef.csproj] C:\platzi\projectef\Models\Categoria.cs(15,36): error CS0246: E area' no se encontró (¿falta una directiva using o una referenc ctef.csproj] C:\platzi\projectef\TareasContext.cs(8,12): error CS0246: El no <>' no se encontró (¿falta una directiva using o una referencia ef.csproj] C:\platzi\projectef\TareasContext.cs(8,18): error CS0246: El no ' no se encontró (¿falta una directiva using o una referencia d .csproj] C:\platzi\projectef\TareasContext.cs(10,26): error CS0246: El n ntextOptions<>' no se encontró (¿falta una directiva using o un ctef\projectef.csproj]

    ERROR al compilar.

      Miguel Teheran

      Miguel Teheran

      teacher•
      hace 3 años

      El error no es claro, parece que quedo cortado. Pero debes revisar bien los using que estan agregando ala archivo. Visual Studio tye ayuda a identificar si algo esta faltando o si las directivas estan mal escritas, en el caso de Visual Code tiene que hacerse manual.

    Jhon Alexander  Perez Beltran

    Jhon Alexander Perez Beltran

    student•
    hace 2 años

    Hola tengo una duda, si yo quisiera trabajar un proyecto solo con el ORM de EntityFramework, como deberia crear el proyecto debido a que no puedo crearlo como api y quiero crearlo con net core

      Miguel Teheran

      Miguel Teheran

      teacher•
      hace 2 años

      Te refieres a que quieres crearlo como una aplicación de consola ? la configuración es exactamente la misma, no tiene problema.

      Jhon Alexander  Perez Beltran

      Jhon Alexander Perez Beltran

      student•
      hace 2 años

      Seria como una biblioteca pero no estoy seguro que funcione con net core las librery

    joan luna

    joan luna

    student•
    hace 3 años

    como hace para que le aparezca las le opcion de agregar using cuando pone el mouse ensima ?

      Miguel Teheran

      Miguel Teheran

      teacher•
      hace 3 años

      Solo debes instalar la extension de C# para visual studio code

    Gaspar.meza

    Gaspar.meza

    student•
    hace 3 años

    ¿Que extension permite dar sugerencias para agregar los using faltantes?

      Miguel Teheran

      Miguel Teheran

      teacher•
      hace 3 años

      Solo debes tener la extension de C#

      https://code.visualstudio.com/docs/languages/csharp

    Stalyn Contreras

    Stalyn Contreras

    student•
    hace 10 meses
    Daniel Valencia Alvarez

    Daniel Valencia Alvarez

    student•
    hace 10 meses

    Profesor Miguel me ha quedado una duda. Me gustaría que quedara más clara la construcción de los contextos. En un proyecto más robusto y grande, ¿Cada modelo debe contar con un archivo de contexto propio dentro de una carpeta con dichos contextos?

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads