Importar configuración correctamente a nuestras aplicaciones | Iconfiguration en .NET

แชร์
ฝัง
  • เผยแพร่เมื่อ 12 พ.ย. 2024

ความคิดเห็น • 39

  • @NetMentor
    @NetMentor  3 ปีที่แล้ว +3

    Blog: www.netmentor.es/entrada/configuracion-iconfiguration
    Twitter: twitter.com/NetMentorTW

  • @nicolas28500
    @nicolas28500 2 ปีที่แล้ว +2

    Excelente video, muy completo y claro para mi. Saludos

  • @andrescamperos
    @andrescamperos 2 ปีที่แล้ว

    Hola NetMentor, primero darte las gracias varios de tus videos me han ayudado mucho, en esta oportunidad quería hacerte una critica constructiva y a cualquier youtuber que lea esto, solicitar inscribirse al canal o un like antes de ver el contenido de tu video no se ve bien, es como que alguien me venda un auto y yo se lo compre sin verlo o probarlo, sugiero "solicitar" un like o una suscripción a mediados de tu video o al final, hablo como espectador, casi siempre dejo un like cuando aprendo algo nuevo o me agrada mucho el video, no antes, no dudo que tendrás mejores resultados, un saludo.

    • @NetMentor
      @NetMentor  2 ปีที่แล้ว

      Hola agradezco la sugerencia, pero el hacerlo asi esta básado en opiniones de otros youtubers mas grandes que se "dedican" a saber cuales son las "mejores" técnicas (como todo, todo cambia con el tiempo). la realidad es que los vídeos que tienen recordatorios son mas efectivos, de hecho, debería poner uno o dos mas durante el vídeo, pero obviametne, paso.
      de todas formas yo pongo lo de los capitulos, episodios o como se llame, lo de la timeline en youtube, el anuncio de la subscripción esta siempre después de la introducción, así que es facil saltarselo sin perderse contenido de verdad.
      un saludo!

  • @luisfernandodeolazabalsche3317
    @luisfernandodeolazabalsche3317 2 ปีที่แล้ว +1

    Gracias, muy buena la información que nos das.

  • @devAnel
    @devAnel ปีที่แล้ว

    Gracias, me sirvió mucho.

  • @monicagonzalez5631
    @monicagonzalez5631 2 ปีที่แล้ว

    Excelente video todo muy claro... Gracias

  • @TheMdecima
    @TheMdecima 2 ปีที่แล้ว

    Buena presentacion, completa y simple de entender. Sere curioso que IDE estas usando en el video?

    • @NetMentor
      @NetMentor  2 ปีที่แล้ว

      Hola! me alegro de que te guste el vídeo. El IDE que utilizo es Jetbrains Rider.
      Un saludo!

  • @elsart6688
    @elsart6688 2 ปีที่แล้ว

    Buenas ¿cómo estas? gracias por los videos. Te hago una consulta... ¿que tipo de proyecto estas utilizando? Porque cuando creo un proyecto en MVC el startup no tiene mas nada que una funcion llamada Configuration. No encuentro donde puedo visualizar el contenedor para la inyección de dependencias. No se si esto cambio con Visual Studio 2022 o estoy creando un proyecto distinto al tuyo... gracias.

    • @NetMentor
      @NetMentor  2 ปีที่แล้ว

      es un proyecto web api sin "top level statement" y con controladores un saludo
      Aunque ese proyecto es de cuando utilizaba net core 3.1, en las versiones nuevas han cambiado un poco la configuración pero sigue estando todo en el program cs

  • @pollo5422
    @pollo5422 3 ปีที่แล้ว +3

    Hola NetMentor, ¿cuál es la diferencia entre inyectar la configuración usando IConfiguration vs IOption?

    • @NetMentor
      @NetMentor  3 ปีที่แล้ว +1

      Hola! Eso lo veremos en el siguiente vídeo 👀. Pero entre inyectar IOptions y simplemente T. No hay ninguna más allá de la forma de inyectarla.
      Un saludo !

  • @RicottiDev
    @RicottiDev 2 ปีที่แล้ว +1

    Buenas, muchas gracias por el video, queria hacerte una consulta
    Hablas de las Settings para Development y Production, pero por default aparecen dos creadas, appsettings.json y appsettings.Development.json, que diferencia hay?
    Muchas gracias
    Saludos

    • @NetMentor
      @NetMentor  2 ปีที่แล้ว +2

      la de development sobreescribe la normal siempre y cuando la variable de entorno sea development, pero si es diferene la de development se ignora. digamos que appsettings.json actua como base, y luego puedes sobreescrbir ya bien sea con appsettings.development.json o con otra variable de entorno qeu tu definas.
      un saludo!

  • @Jocker88
    @Jocker88 3 ปีที่แล้ว +1

    Muy buen vídeo, pregunta (hago muchas, lo sé) en .Net 6 ya no nos crea el StartUp.cs por defecto. ¿Tendremos IConfiguration inyectado por defecto también? Se me escapa, supongo que hasta que pase un tiempo no me iré acostumbrando.
    Por cierto, poder hacer bind me ha dejado "loco", ya tengo ganas de refactorizar jajaja.
    Un saludo!

    • @NetMentor
      @NetMentor  3 ปีที่แล้ว +1

      Si, también viene por defecto en el webaplicationbuilder.
      Desafortunadamente utilizar _config["propiedad"] es una práctica muy común en todas las empresas, cuando en hacer el bind se tardan dos segundos :(

  • @10tronic
    @10tronic ปีที่แล้ว

    Todo el código que usas en esta lista de reproducción lo tienes en algún lado? o hace parte de algún curso pago?

    • @NetMentor
      @NetMentor  ปีที่แล้ว +1

      Yo soy de los que piensan que la educacion debe ser libre y gratuita, todo lo que hago es gratuito en TH-cam o en mi Blog;
      Por este motivo todo el código que utilizo en mis vídeos esta disponible en GitHub el cual esta enlazado en el propio blog (comentario fijado en el video)
      un saludo!

    • @10tronic
      @10tronic ปีที่แล้ว

      @@NetMentor Gracias!

  • @wijanruiz1481
    @wijanruiz1481 2 ปีที่แล้ว

    Buenas, muchas gracias por el vídeo, muy útil.
    Tengo una duda que creo que no se plantea en el vídeo:
    ¿sería posible actualizar la información que hay en el appsettings en tiempo de ejecución?
    Imagina que tengo en el appsettings los datos de conexión con un api de terceros por ejemplo para un servicio de email con un proveedor a través de lo típico, key-secret de api. Y ahora se decide que se cambia el plan de dicho proveedor a uno superior y utilizaremos otro par de key-secret.
    ¿Sería posible tener esto en BDD y que al actualizar el registro de mi app de la key y el secret, se pueda actualizar también el appsettings sin tener que volver a hacer un deploy?
    Sé que es más sencillo directamente atacar a los datos de BDD y utilizar eso, es solo por ver si existe la posibilidad, porque de ser así, me ahorraría peticiones a BDD cada vez que llame al servicio de mail.
    Gracias.

    • @NetMentor
      @NetMentor  2 ปีที่แล้ว +1

      Lo que buscas se puede hacer con el options pattern aquí tienes un vídeo:
      th-cam.com/video/uR_bff8xOB8/w-d-xo.html
      Pero para la contraseña de la BBDD sinceramente te recomiendo un sistema de gestión de credenciales. Pero vaya que con ioptionsmonitor/ioptionssnapchot te funcionará bien.

  • @doncarlos212
    @doncarlos212 3 ปีที่แล้ว

    Y cuál sería la forma para encriptar la pass de la base de datos en el app settings y luego obtener la cadena de conexión sin problemas?

    • @NetMentor
      @NetMentor  3 ปีที่แล้ว +5

      tener la conexión encriptada en el appsettings no sirve de mucho, ya que tienes que desencriptarla en el cóigo, y normalmente vas a tener la forma de desencriptarla en el propio código.
      dicho esto, lo recomendable es untilizar un "secret vault" ya sea AWS secrets, o inyectar el secret en el deploy si usas kuberntes por ejemplo.
      la idea es evitar tener la información crítica (passwords) en el código fuente o en git, para evitar hacks, leaks, etc.
      esto lo veremos en 2022 mas en detalle en una serie de vídeos que quiero hacer.
      un saludo!

  • @AbrahamJLR
    @AbrahamJLR 3 ปีที่แล้ว

    Hola señor Ivan, disculpe pero en minuto 6:50 comentó "Que un EndPoint debería esta en Discovery en vez de la configuración", imagino que ahí habla de algún EndPoint de alguna API de terceros que consuma nuestro servicio o algo por el estilo. ¿En un futuro cercano podría hablar de esta funcionalidad, caso de uso y beneficios?

    • @NetMentor
      @NetMentor  3 ปีที่แล้ว +1

      Hola, pues tanto API de terceros como nuestra, si está fuera de nuestro microservicio debe (o debería) estar detrás de lo que se denomina "service discovery" y si, tengo idea de hablar de ello, pero será en unos meses. En 2022 empezaré una serie de vídeos donde está funcionalidad entra.
      Un saludo !

    • @AbrahamJLR
      @AbrahamJLR 3 ปีที่แล้ว

      @@NetMentor Muchas gracias por responder, buscaré información al respecto.

  • @edwinlozano6891
    @edwinlozano6891 3 ปีที่แล้ว +1

    Excelente video. Pero me surgió la duda de cómo usar el DBconnection en mi API. Algún consejo?

    • @NetMentor
      @NetMentor  3 ปีที่แล้ว +1

      Te recomiendo que te veas este vídeo th-cam.com/video/5Bj2mGXkjk0/w-d-xo.html simplemente cambia mysqlconnection por el que necesites, pero sigue el mismo patrón.
      También lo tengo en formato blogpost: www.netmentor.es/entrada/conectar-basededatos-net-core

    • @edwinlozano6891
      @edwinlozano6891 3 ปีที่แล้ว

      @@NetMentor muchas gracias. Le daré una revisada. Saludos!

    • @edwinlozano6891
      @edwinlozano6891 3 ปีที่แล้ว

      @@NetMentor revise el vídeo y el blog y en el vídeo mencionas que no mostrarlas como traer el connection desde un archivo de configuración jejeje y es lo que necesito pero sin usar EF

    • @NetMentor
      @NetMentor  3 ปีที่แล้ว

      Pues lo mismo pero juntando ambos videos, en vez de tener la URL hardcoded, simplemente asignala en una variable como en este vídeo.
      Si no es eso, no entiendo a qué te refieres.
      La conexión en si nunca la puedes coger de un fichero, lo único que puedes coger de un fichero es la connectionString

    • @edwinlozano6891
      @edwinlozano6891 3 ปีที่แล้ว

      @@NetMentor tienes razón. Me refiero a que como el connection string que se toma del fichero es guardado en el DbConnection agregado al Scope de Services. Y en si mi duda era como puedo obtener el connection string guardado en bdConnection. Ya que no he encontrado información en la web sobre eso. O el connection string está guardado en la clase que se creo llamada DatabaseSettings con un método BuilderConnectionString. Intenté tomar este método y usar para obtener el connection pero recibe el IConfiguration como parámetro. Y desde mi clase en la cual quiero usar el connection string no supe cómo obtenerlo. No sé si me explique bien. gracias por tu ayuda