Implementar IDisposable correctamente 🚮 - Con ejemplos

  Рет қаралды 6,158

NetMentor

NetMentor

Күн бұрын

Пікірлер: 40
@NetMentor
@NetMentor 4 жыл бұрын
Blog: www.netmentor.es/Entrada/implementar-idisposable Tiwtter: twitter.com/NetMentorTW
@ManuelRBercian
@ManuelRBercian 3 жыл бұрын
Belleza de Video, siempre quise saber eso y te soy sincero nunca profundice en el tema y siempre tuve el problema, buenísimas todas las recomendaciones que das y te agradezco la dedicación. Sigue Adelante! Saludos desde Guatemala.
@TioCachasDeOro
@TioCachasDeOro 2 жыл бұрын
Excelente video, hacer mas con los recursos minimos necesarios y así ahorrar recursos. Muchas gracias
@2005bgva
@2005bgva 2 жыл бұрын
muchas gracias, muy interesante.
@giorgiocipriano3334
@giorgiocipriano3334 4 жыл бұрын
Video muy claro y ejemplos perfectos, gracias y felicitaciones.
@carlosgrover9967
@carlosgrover9967 4 жыл бұрын
Grandioso video, muchas gracias y saludos desde México
@NetMentor
@NetMentor 4 жыл бұрын
Gracias!
@arielcattaneo
@arielcattaneo 3 жыл бұрын
Genial NetMentor ! Esta bien des referenciar los handler a eventos que se hallan asignados en la implementación del Dispose(). Dispose() { myEvent -= HandlerMethod }
@NetMentor
@NetMentor 3 жыл бұрын
no se si es una pregunta o una afirmación, pero sí, si tienes eventos debes des-referenciarlos en el dispose (o antes en un metodo propio) 👍
@arielcattaneo
@arielcattaneo 3 жыл бұрын
@@NetMentor Se me olvido el "?". Entonces esta bien y no tengo que cambiar mi habito. Gracias, saludos !
@kervytmarrerorosales535
@kervytmarrerorosales535 4 жыл бұрын
❤️ gracias!
@jorgemar1469
@jorgemar1469 11 ай бұрын
cuando inyecto por dependencia mi dbcontext es necesario usar using?
@NetMentor
@NetMentor 11 ай бұрын
Nope, deja a EF que administre el lifetime
@jorgemar1469
@jorgemar1469 11 ай бұрын
@@NetMentor gracias
@Mirandayomar
@Mirandayomar 4 жыл бұрын
Muy buen video
@NetMentor
@NetMentor 4 жыл бұрын
Gracias !
@LicAntoMiranda
@LicAntoMiranda 3 жыл бұрын
tengo una duda...si tengo una app q se conecta a sql.. pero antes de terminar cierra la conexion osea conection.close(); .. asi como tmb usa un fichero en donde escribe StreamWriter sw pero luegosw.close(); ... es necesario usar IDisposable?? si durante el codigo fui cerrando todo...
@NetMentor
@NetMentor 3 жыл бұрын
hola! sí, tienes que llamar dispose. Si la clase que estas creando utiliza una clase que implementa IDisposable, debes limpiar los recursos con .dispose(). En el 99% de casos implementarás el Dispose utlizando using(){}. Ténicamente en streamwriter.close llama a .dispose así que en el stream te da igual uno que el otro, pero como es un caso excepcional yo lo ignoraría. Un saludo!
@javiopakan2
@javiopakan2 4 жыл бұрын
Saludos, gracias por tus video y esfuerzos.... una curiosidad, he visto a otros que han dicho que sin implementar el IDipose en la clase, solo con el hecho de usar usin (....){..}.. aseguramos que llamara el IDipose
@NetMentor
@NetMentor 4 жыл бұрын
Sí, con using(){} llamamos al dispose cuando se cierra el using, el problema es que si no implementamos el método no hay metodo al que llamar. este ejemplo lo puedes ver en el vídeo en el minuto 8:00 nuestro wrapper contiene el tipo MySqlConnection el cual si tiene dispose, entonces, para este ejemplo podríamos hacer using(MySqlConnection){ select *... } en vez de new mysqlconnection y llamaría al dispose de mysqlconnection, con lo que el resutlado seria el mismo. Pero en el mundo real (que es lo que mis ejemplos siempre intentan simular), no insertamos en todas las tablas en el mismo método (o no deberíamos) sino que debemos crear una transacción. ir insertando en cada una de las tablas y cuando terminamos hacemos el commit junto con el dispose, ya que así reutilizamos la misma conexión en todos los inserts, además de que si falla, no hay que elminar información ya insertada. un saludo.
@javiopakan2
@javiopakan2 4 жыл бұрын
@@NetMentor gracias!!! En algún momento me gustaría que subas un vídeo implementando el patrón repositorio y UoW... Así como haces en el mundo real el ejemplo.... Gracias por todo
@NetMentor
@NetMentor 4 жыл бұрын
Pues posiblemente lo suba, eso sí, no se.cuando, tengo una larga lista de pendientes primero 😂
@TioCachasDeOro
@TioCachasDeOro 2 жыл бұрын
Existen herramientas para detectar los recursos que no se liberaron?
@NetMentor
@NetMentor 2 жыл бұрын
nope, no hay nada, lo único que podrias tener es algo que te cierre conexiones y tal, pero automatico no hay nada, o por lo menos nada que yo sepa.
@hector9079
@hector9079 3 жыл бұрын
Tendrás el código de ejemplo?
@NetMentor
@NetMentor 3 жыл бұрын
Hola! En el primer comentario del vídeo, tienes un enlace al blog, donde esta el cóigo, tanto explicado en el propio post, como un link a GitHub. Un saludo!
@hector9079
@hector9079 3 жыл бұрын
Ok gracias, esta muy bueno tu video 👍
@Jocker88
@Jocker88 3 жыл бұрын
"un parche bastante malo, eso no lo tenemos que hacer jamás" xD. Bien, llama a mi empresa que no quiere pagar el tiempo que vale arreglar el problema jajaja, resumen, cada vez el pool es mayor y llegará el punto que los hierros no den para más. Buen vídeo, gracias! P.D.: Me enganché a tu canal una cosa barbara!
@NetMentor
@NetMentor 3 жыл бұрын
haha y lo he visto ya, de normal no recibo tantos mensajes 😂 Espero que pulses en la publi 😂😂
@juliofrias3984
@juliofrias3984 3 жыл бұрын
Windows Form: View -> creo objeto -> SuplidorController -> creo objeto -> SuplidorDTO & SuplidorDTA, mi pregunta: Debo implementar la Interfaz IDisposable en las tres clases???
@NetMentor
@NetMentor 3 жыл бұрын
Hola a que te refieres a los dto? en el dto seguro que no y en el resto depende, si acceden a algo de fuera si, pero si accedes a algo de fuera si, la forma mas facil es comprobar que es lo que estas haciendo y hacer f12 en la clase y mirar si usa IDisposable e implementarla
@Lorshi
@Lorshi Жыл бұрын
amigo muy interesante tu video pero me quema los ojos ver el tema claro de noche
@adolfovanegas7802
@adolfovanegas7802 4 жыл бұрын
Pero en este caso, using no resuelve este problema sin tener qee implementar disponse. Saludos
@NetMentor
@NetMentor 4 жыл бұрын
No entiendo muy bien a qué te refieres, ha que cuando utilizas using estas utilizando dispose
@adolfovanegas7802
@adolfovanegas7802 4 жыл бұрын
@@NetMentor bien, usted explica que para cerrar la coneccion de base de datos, hay que implementar Idisponsable, yo actualmente libero el recueso encereando la coneccion de base de datos, con un using, pero me interesa saber si la forma que explica , es mas efectiva. Saludos. Algo cm esto: using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); ... command.ExecuteNonQuery(); } aqui se libera el recurso
@NetMentor
@NetMentor 4 жыл бұрын
Si, en ese caso es igual se libera al cerrar el using. Pero esa forma de implementar el mysqlconnection no es 100% correcta ya que si tuvieras que por ejemplo insertar en 5 tablas distintas necesitarías hacerlo todo dentro del using lo que no sería correcto. (Ya que si una falla debería cancelar/rollback) Para el ejemplo que acabo de decir, necesitarás abrir una transacción , y cuando terminas con la última cerrar, commit y liberar memoria, eso solo lo puedes hacer si implementado un wrapper sobre la conexión. (Hablo siempre con la idea de dejar un código limpio y ordenado, obviamente si se puede hacer ) El ejemplo era para explicar idisposable, más que para explicar cómo cerrar la conexión a la base de datos. Un saludo. Edit: básicamente es mejor utilizar un wrapper ya que así puedes reutilizar la conexión.
@adolfovanegas7802
@adolfovanegas7802 4 жыл бұрын
@@NetMentor muchas gracias, voy a seguir leyendo al respecto, gracias por tu tiempo.
@arturosalas8799
@arturosalas8799 Жыл бұрын
útil pero aun no me queda muy claro.
How to use Yield in programming 🔻- With an example in C#
5:46
Thread pool Starvation y y problemas con hilos en Csharp
24:39
NetMentor
Рет қаралды 4,5 М.
BAYGUYSTAN | 1 СЕРИЯ | bayGUYS
36:55
bayGUYS
Рет қаралды 1,9 МЛН
“Don’t stop the chances.”
00:44
ISSEI / いっせい
Рет қаралды 62 МЛН
Todo lo que necesitas saber para mapear objetos en C#
21:29
NetMentor
Рет қаралды 5 М.
How IDisposable and Using Statements Work Together in C#
10:01
IAmTimCorey
Рет қаралды 34 М.
La Magia 🧙‍♂️ del Patrón Repositorio en C#
12:55
NetMentor
Рет қаралды 15 М.
Using IDisposable in C#
4:48
Everything C#
Рет қаралды 3,2 М.
La importancia de la interfaz IQueryable de Entity Framework
9:26
El patrón Unit of work con implementación en C#
20:38
NetMentor
Рет қаралды 11 М.