#5 Programando un sistema de ventas real | Creación de CRUD en backend

Поділитися
Вставка
  • Опубліковано 13 січ 2025

КОМЕНТАРІ • 124

  • @hdeleonnet
    @hdeleonnet  4 роки тому +34

    Si te ha gustado el video puedes apoyarme con un like y compartiéndolo en tus redes sociales, te agradeceré bastante.
    Siguiente aquí: ua-cam.com/video/m_SwqJCG7hk/v-deo.html

  • @ualvarez95
    @ualvarez95 4 роки тому +24

    Atajos super útiles: #1 prop + tab + tab (crea una propiedad de clase). #2 try + tab + tab (crea try catch completo). #3 ctor + tab + tab (crea un constructor de clase). Saludos

  • @miusicpro-musicaparacreado9513
    @miusicpro-musicaparacreado9513 2 роки тому

    Tus videos son Excelentes, Gracias Hector.

  • @haroldjonathan9143
    @haroldjonathan9143 3 роки тому

    Gracias es el mejor prof que he tenido (y no pago nada increíble)

  • @jorgeavila9472
    @jorgeavila9472 4 роки тому +2

    Voy por aquí y hasta el momento excelentes videos y explicaciones concretas sin redundar ni irse de largo! 10 de 10 bro

  • @TonicoBonico
    @TonicoBonico 4 роки тому

    Estás hecho un fiera, chaval. Vídeo tuyo que vea, like que te llevas para la cesta.

  • @hoeangeru2
    @hoeangeru2 3 роки тому +1

    Mis respetos, si simplificaste la manera de explicar esto, te lo agradezco mucho.

  • @juanmurillo3457
    @juanmurillo3457 4 роки тому

    Vamos ahi, ya estoy en el 5to video y no quiero parar de aprender, esto va bien, todo funciona.

  • @fernandorivasc6540
    @fernandorivasc6540 3 роки тому

    Ya ando por aquí, excelente todos tus videos. En mi app ando usando PostgreQSL. Pero hasta aquí funciona todo

  • @josuebriceno29
    @josuebriceno29 4 роки тому +3

    Veo tus videos desde hace poco y me has ayudado muchísimo, ahora estoy haciendo un e-commerce pero quiero hacer exactamente esto, dividir mi front del backend, en estos momentos estoy pagando mi suscripción porque quiero este curso, ya!
    Felicidades Héctor, sigue así.👏🏼👏🏼

  • @julianandresortizgalindo1376
    @julianandresortizgalindo1376 2 роки тому

    Muy bien explicado !!!

  • @diegopallares7110
    @diegopallares7110 3 роки тому

    muchas gracias, por estos videos !!

  • @douglasperez3701
    @douglasperez3701 4 роки тому +2

    Eres un capo, te sigo ya desde un tiempo, y siempre me es grato ver tus videos por facilidad como imparte tus clases, por ejemplo éste que yo soy más de ADO y siempre tuve roces con entity, pero con esta clase el panorama me queda más claro y como poder sacar provecho de esta tecnología, te mando un gran saludo desde Perú.

  • @mariorosalesfigueroa1782
    @mariorosalesfigueroa1782 4 роки тому +3

    Excelente , he visto los vídeos que públicas y la verdad que enseñas muy bien 👏👏

  • @Rich-Hari
    @Rich-Hari 4 роки тому +3

    Muchas gracias!
    Pude resolver un problema q tenía meses sin encontrar en Internet!
    Más profes como tu! 👍🎉🎊

  • @enriquerivera814
    @enriquerivera814 4 роки тому

    Excelente, claro , conciso y didáctico como todo debería ser

  • @binaryfab
    @binaryfab 4 роки тому +1

    Gracias por compartir conocimientos a nivel Pro. Excelente.

  • @zavierquinde6006
    @zavierquinde6006 4 роки тому +1

    Eres mi dios de la programación

  • @antoniohernandezhernandez6081
    @antoniohernandezhernandez6081 4 роки тому +1

    Héctor gracias por compartir tu conocimiento, saludos

  • @Mrleopola
    @Mrleopola 4 роки тому +1

    Por cierto. Eres un crack. Tremendo curso!!!!! Brillante!

  • @jaimerojas6578
    @jaimerojas6578 4 роки тому +1

    Genial justo estoy haciendo un proyecto similar y me ayudan mucho tus videos gracias!!

  • @carloscarlos7558
    @carloscarlos7558 4 роки тому +1

    Excelente video Héctor! Gracias x compartir tu conocimiento. Estoy aprendiendo mucho en tu canal. 👍 Espero con ansías el siguiente vídeo!! Saludos!!

  • @mecoboy0027
    @mecoboy0027 3 роки тому

    Grande bro, gracias por el curso

  • @madriagac
    @madriagac 4 роки тому +1

    muy buenos tus videos !!!

  • @davidmauricio6951
    @davidmauricio6951 3 роки тому

    excelente video amigo!

  • @sergioromero6646
    @sergioromero6646 4 роки тому +1

    excelente video sigue asi 😁👍

  • @moisesgonzalez8314
    @moisesgonzalez8314 4 роки тому +1

    Saludos desde Jutiapa, sigue así 😎

  • @hac02803
    @hac02803 4 роки тому

    Muchas gracias por este curso, Héctor. Por qué usar:
    db.Entry(oCliente).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
    en vez de:
    db.Update(oCliente);
    Abrazo desde AR

  • @gogeta6485
    @gogeta6485 4 роки тому +1

    grACIas hector

  • @sistemasaudiovisuales1950
    @sistemasaudiovisuales1950 4 роки тому +1

    Muy bueno

  • @507master
    @507master 4 роки тому +1

    Me estoy comiendo este curso cual serie de Netflix. Esta bien bue nardo.

  • @rvcontra
    @rvcontra 4 роки тому

    Muy buenos tus videos, gracias por compartirlos. Solo una pequeña observación, cuando te refieres a "protocolo GET" o "protocolo POST" en realidad te estás refiriendo a métodos, el protocolo es HTTP que tiene varios métodos. Solo eso, en buena onda, para que están recien aprendiendo luego no se confundan.

    • @hdeleonnet
      @hdeleonnet  4 роки тому

      Gracias por la observación, todo comentario que aporte siempre es bienvenido

  • @anacontrerasplus
    @anacontrerasplus 3 роки тому

    Antes de ver cómo hacías el método para editar, lo hice así public IActionResult Edit(int id,[FromBody] ClienteRequest model) {
    Respuesta respuesta = new Respuesta();
    try
    {
    using (SistemaVentasContext db = new SistemaVentasContext()) {
    respuesta.Data=db.Clientes.SingleOrDefault(x => x.Id==id).Nombre=model.Nombre;
    db.SaveChanges();
    respuesta.Exito = 1;
    }
    }
    catch (Exception ex) {
    respuesta.Mensaje = ex.Message;
    }
    return Ok(respuesta);
    }
    Quisiera saber si afecta a las buenas prácticas. Me está ayudando mucho este curso, muchas gracias

  • @fjr519
    @fjr519 4 роки тому

    Excelente video crack

  • @bezael
    @bezael 4 роки тому +1

    👏🏾👏🏾👏🏾

  • @craxxfort9601
    @craxxfort9601 4 роки тому

    Saludos Hector, gran video tan solo tengo una pregunta, por qué pones o al principio del algunas variable por ejemplo oRespuesta ????

  • @Mrleopola
    @Mrleopola 4 роки тому +2

    El sonido característico de cuánto nos conectamos a internet vía cable de teléfono jajajaj

  • @fernandosanchez3199
    @fernandosanchez3199 4 роки тому +1

    the best

  • @MSanchez1197
    @MSanchez1197 2 роки тому

    Excelente curso Hector muchas gracias, estos son mis primeros pasos con C# y está super interesante
    Una consulta, cuando marco el breakpoint para debuggear no me sale ninguna consola o algo que me muestre lo que llega, estoy googleando pero increiblemente no encuentro como "mostrar" esa consola, estoy con la última versión de visual studio

  • @hernandezla73
    @hernandezla73 2 роки тому

    Hector muchas gracias por compartir tus conocimientos me han servido de mucho, tengo una duda no se si tonta, por que creas clases en Request y no utilizas las que ya estan en Models? Gracias por tu respuesta

  •  4 роки тому

    Buenas HdeLeon, primero que nada debo felicitarte porque todos tus videos son excelentes y muy explicativos, mil gracias he aprendido muchisimo en tu canal. Por otra parte quería preguntarte si tienes algún video donde consumes esa API que realizaste pero con solicitudes PUT y DELETE desde Windows Forms, tengo tiempo buscando y no consigo un ejemplo concreto donde se explique. Agradezco tu respuesta, saludos.

  • @Abbathorn
    @Abbathorn Рік тому

    Hector, tengo una duda, si por ejemplo yo realizo una venta hoy a un cliente llamado Pedro, y luego al mes le actualizo el nombre y le pongo pedrito, no estaría cambiando el histórico de la venta? Como se debería manejar esto? Debería agregar en la venta el nombre del cliente?

  • @fokofreyre3967
    @fokofreyre3967 4 роки тому

    Me agrada mucho tu video, también tengo un sistema de ventas pero esta hecho en windows forms, basicamente todo lo manejo en la base de datos y ese sistema lo quiero migrar a web pero tengo una pregunta. Antes de guardar una venta mantengo los datos en una tabla para dar opcion a cancelar algun producto o agregar mas pero para guardar los datos en esa tabla primero consulto si el producto existe y luego en la tabla temporal consulto si ese producto ya esta insertado y si lo esta actualizo pero si no lo esta entonces si inserto. ¿Como podria hacer esto en la API? Ya que por lo que veo se tiene que especificar el metodo por el que vas a entrar y segun como lo hago seria usar varios metodos al mismo tiempo y no termino de entender como hacerlo

  • @nestorpasos7001
    @nestorpasos7001 3 роки тому

    Que tan bueno sería usar interfaces para la realización de los crud en vez de hacerlos directamente desde el controlador?

  • @youberton
    @youberton 3 роки тому

    Buenas Hector!, una consulta, que opcion marcas para que te muestre sobre la propiedad, funcion, clase, etc la cantidad de veces que es referenciada? me parece algo super util cuando el codigo empieza a crecer

  • @MarioAlvarezinformatico
    @MarioAlvarezinformatico 4 роки тому

    Excelente contenido!! un pregunta como agrego valores a 2 tablas relacionadas por una clave foranea mediante el model?

  • @franmartin2758
    @franmartin2758 4 роки тому +1

    Muchas gracias, has pensado en vez de hacerlo en SQL Server hacerlo en firebase?

    • @hdeleonnet
      @hdeleonnet  4 роки тому

      haré un crud separado de estos videos con firebase

  • @holmesBPM
    @holmesBPM 2 роки тому

    Muchas gracias por tu ayuda. Me sale el error al ejecutar el método POST, me salta a la excepción 0, ya revisé el cod y no encuentro nada raro

  •  3 роки тому

    Comunidad, Ayuda... Como modificaría el código para la edición de mas de 3 campos?. Gracias por su apoyo.

  • @luiseduardoostosfebres8968
    @luiseduardoostosfebres8968 Рік тому

    Pregunta ❔ solo puede ser slq server
    Se podría hacer con mysql igualmente es una pregunta ❔

  • @mazzfotovideo
    @mazzfotovideo 3 роки тому

    Hola, muchas gracias por este video, sin embargo tengo un problema, el codigo esta igualito, pero en el postman me da ete error: " An error occurred while updating the entries. See the inner exception for details. " sin embargo al hacer un select a mi base el ID que es automatico se va generando en cada prueba que realizo. En que estoy fallando.

    • @hdeleonnet
      @hdeleonnet  3 роки тому +1

      mirar inner exception, debuguea y en el catch ve en el atributo inner exception el error, ahí te dirá más detalles

  • @haas448
    @haas448 3 роки тому +1

    Hola. Seria bueno la publicación de un repositorio Git del resultado de cada proyecto.

    • @hdeleonnet
      @hdeleonnet  3 роки тому

      es contraproducente, ya que muchos se apegaran a eso y no aprenderán lo que se debe aprender.

  • @gamermtzjrqn
    @gamermtzjrqn 3 роки тому

    me da este error en el postman "An error occurred while updating the entries. See the inner exception for details" en la función del Post. ¿Alguien sabe como solucionarlo y me ayuda? min 11:50

  • @OscarGarcia-up3ph
    @OscarGarcia-up3ph 4 роки тому

    Hola Hector no es mejor utilizar los métodos IActionResult asíncrono? de la manera del video actual cual seria la desventaja o ventaja

    • @hdeleonnet
      @hdeleonnet  4 роки тому +3

      Vamos caminando, muchos no saben nada de backend

    • @OscarGarcia-up3ph
      @OscarGarcia-up3ph 4 роки тому

      @@hdeleonnet ahh esta bien, esque como lo hiciste tu y eres un crack (eh aprendido tanto de ti) y al no mencionar acerca de ello pense que de este modo sería mejor , losiento, muchos saludos

  • @Cristian-ch9wp
    @Cristian-ch9wp 4 роки тому

    hector consulta, en la parte de editar un cliente, usaste db.Entry(oCliente).State = Microsoft.EntityFrameworkCore.EntityState.Modified, es lo mismo usar db.Update(oCliente)?

  • @jairohv
    @jairohv 4 роки тому

    Una consulta la logica de negocios no debería estar en el Modelo? Osea los insertar,buscar, etc. El controlador solo debería llamar a esas funciones ya que tengo entendido que es solo el intermediario entre la vista y el modelo???

    • @hdeleonnet
      @hdeleonnet  4 роки тому +1

      Para eso tenemos entity framework

    • @jairohv
      @jairohv 4 роки тому +1

      Claro ya lo entiendo. Todas esas funciones ya son implementadas. Gracias amigo

  • @patricioalcivar3758
    @patricioalcivar3758 3 роки тому

    Hola profesor, buen video, solo una pregunta.
    ¿Cuál es la diferencia entre usar:
    * db.Remove(oCliente);
    y
    * db.Entry(oCliente).State = Microsoft.EntityFrameworkCore.EntityState.Deleted;?
    Los probé y hacen lo mismo pero no se si abra alguna otra repercusión.

  • @andresflg
    @andresflg 4 роки тому +1

    Se puede crear un TryCatch general para todos los controladores sin tener que declararlo en cada método?

    • @hdeleonnet
      @hdeleonnet  4 роки тому +1

      Si. Con un filter de mvc. Después hago un video de esto

  • @diegopallares7110
    @diegopallares7110 Рік тому

    a mi me sale el mensaje de Exito, pero no me elimina, será posible algo este bloqueando este proceso, no se alguna configuración, ya eh verificado varias veces y tengo igual el código pero no me elimina.

  • @ualvarez95
    @ualvarez95 4 роки тому +1

    ¿Si usara Post para editar, estaría bien o mal?

    • @hdeleonnet
      @hdeleonnet  4 роки тому +1

      No te recomiendo hacerlo por que puedes confundir a los devs que esperarian que sea put. Pero si puede funcionar. Solo el tema de la confusión

  • @marcosilva4219
    @marcosilva4219 Рік тому

    por q creas el clienteRequest y no usas un Cliente directamente?

  • @BreegBenjamin
    @BreegBenjamin 4 роки тому

    La razón por la que el parámetro Id Int llegaba en 0, era porque estabas enviándolo como si fueran un JSON, y el método Delete(int id) estaba esperando un número plano.
    {"Id" : 1} != int;. Tendrías que haber enviado el 1 en el body directamente.
    Me corrigen si me equivoco.

  • @chinxd405
    @chinxd405 4 роки тому +1

    Consulta.. porque el postman no lee mis url??

  • @cefas89
    @cefas89 3 роки тому

    hola, porque al llamar el metodo con postman o con js el response viene todo en minúsculas, cuando el objeto está declarado con mayúsculas pero en el swagger si lo regresa como lo tengo declarado , hay forma de que lo regrese tal cual lo estoy declarando?

    • @hdeleonnet
      @hdeleonnet  3 роки тому

      ua-cam.com/video/A7NcQKg38h4/v-deo.html

  • @abelherrera4182
    @abelherrera4182 4 роки тому

    por lo que entiendo con esos 4 metodos ya podras hacer todo tu crud sin importar cuantos parametros necesites enviar? porque yo todo novato hice mi capad de datos a mano y tenia un metodo para cada procedimiento almacenado

    • @hdeleonnet
      @hdeleonnet  4 роки тому

      Si pero iremos incrementando nivel de módulos

  • @josuecaleb6482
    @josuecaleb6482 4 роки тому

    Que es mejor usar IActionResult o IHttpActionResult hasta he visto gente q usa Task con async 😖

    • @hdeleonnet
      @hdeleonnet  4 роки тому +2

      Mejor hago un video comparando

  • @MrJpfdesign
    @MrJpfdesign 4 роки тому

    Hola, para borrar podrias usar....
    db.Entry(cliente).State = Microsoft.EntityFrameworkCore.EntityState.Deleted;
    db.SaveChanges(); ???? Saludos

    • @hdeleonnet
      @hdeleonnet  4 роки тому +2

      te recomendaria utilizar ese modo cuando estes en transacción, ya que de otra forma no le veo mucha diferencia, saludos!

  • @ArturoBrionesOrtega
    @ArturoBrionesOrtega 4 роки тому +1

    al hacer el PUT tengo el sig. error: "The key value at position 0 of the call to 'DbSet.Find' was of type 'int', which does not match the property type of 'long". Cómo puedo solucionarlo?

    • @hdeleonnet
      @hdeleonnet  4 роки тому +1

      Manda un long en lugar de int

    • @ArturoBrionesOrtega
      @ArturoBrionesOrtega 4 роки тому +1

      @@hdeleonnet gracias, pero cómo envío un long desde json? entiendo que al recibir el valor y tratar de actualizar la db tiene conflicto

    • @hdeleonnet
      @hdeleonnet  4 роки тому +1

      mas bien es antes, un tipo de tu modelo es int, y cambialo por long

  • @Warmage90
    @Warmage90 3 роки тому

    Como se podría insertar a la base una "transacción", incluyendo el id del usuario según el usuario que este logeado?

    • @hdeleonnet
      @hdeleonnet  3 роки тому

      más adelante hablamos de transacciones

  • @reiferdalis5409
    @reiferdalis5409 4 роки тому

    Hector por favor puedes subir el proyecto de forma local, en nuestra propia maquina, IIS (LOCALHOST) para no tener que compilar a cada rato?? por favor

    • @hdeleonnet
      @hdeleonnet  4 роки тому

      ua-cam.com/video/iaFBQcd26HE/v-deo.html

  • @mareitorm1106
    @mareitorm1106 4 роки тому

    Cual es la diferencia en hacer la actualizacion con db.Cliente.Update(oCliente); o con db.Entry(oCliente).State = Microsoft.EntityFrameworkCore.EntityState.Modified; ???

  • @adpa12345
    @adpa12345 4 роки тому

    Hola Hector, Por alguna extraña razon no anda el HttpPost del Insert, El Get funciona perfecto. El mensaje de error es "An error occurred while updating the entries. See the inner exception for details." he revisado el código como 10 veces y no encuentro el error, no se si sera un tema de permisos desde el postman, estoy haciendo esto en VS2017.

    • @adpa12345
      @adpa12345 4 роки тому

      El objeto del la clase ClienteRequest donde seteas ocliente.Nombre=oModel.Nombre--> Llega en Null

    • @hdeleonnet
      @hdeleonnet  4 роки тому

      Tu json esta mal verifica el encode sea json

    • @adpa12345
      @adpa12345 4 роки тому

      En postman esta seteado raw y JSON

    • @adpa12345
      @adpa12345 4 роки тому

      @@hdeleonnet Si hago oCliente.Nombre="Juan" Funciona perfecto desde Postman, En problema esta en que la propiedad Nombre del Objeto del ClienteRequest llega en Null

    • @hdeleonnet
      @hdeleonnet  4 роки тому

      Ponlo en minuscula

  • @joluval
    @joluval 4 роки тому

    Pero es correcto enviar el "Id" para el borrado por medio de la URL???

    • @hdeleonnet
      @hdeleonnet  4 роки тому +1

      claro, si tienes permiso para borrar, envíes por body, por url o header puedes igual rastrear ese valor, que el backend te proteja. Al final vas a encontrar quienes te digan que lo envíes en el header, o en el body o en la url, y cada quien tiene su opinión, tu ve cual te conviene más dependiendo el fin al que quieres llegar.

    • @joluval
      @joluval 4 роки тому +1

      @@hdeleonnet entiendo, gracias por la respuesta. Tuve la duda porque me pareció raro mostrar el ID del registro en la URL.

  • @jonatham48
    @jonatham48 3 роки тому

    Ayuda sensei en el post me devuelve un estado 415 {"type":"tools.ietf.org/html/rfc7231#section-6.5.13","title":"Unsupported Media Type","status":415,"traceId":"|3d456cca-4862607a96517fbc."}
    se lo paso el parametro por body

  • @infotips2475
    @infotips2475 4 роки тому

    por qué llego en null el Id???

    • @hdeleonnet
      @hdeleonnet  4 роки тому +1

      Por que lo mande como objeto {Id=1} en lugar de Id=1

  • @callejero5991
    @callejero5991 3 роки тому +1

    Buen contenido pero el intro es molesto