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 el examen del curso
    • 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 3 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 3 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 3 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 3 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 2 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 2 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 9 meses
      Daniel Valencia Alvarez

      Daniel Valencia Alvarez

      student•
      hace 9 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