<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Mejorando nuestro DAO y DTO</title>
	<atom:link href="http://www.miguelmatas.es/blog/2007/11/13/mejorando-nuestro-dao-y-dto/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.miguelmatas.es/blog/2007/11/13/mejorando-nuestro-dao-y-dto/</link>
	<description>Ingeniería de Software, Gestión de Proyectos, Programación, BPM, Arquitectura de Software, .NET, J2EE</description>
	<lastBuildDate>Fri, 12 Mar 2010 11:42:49 -0800</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Ignacio</title>
		<link>http://www.miguelmatas.es/blog/2007/11/13/mejorando-nuestro-dao-y-dto/comment-page-1/#comment-1160</link>
		<dc:creator>Ignacio</dc:creator>
		<pubDate>Wed, 15 Apr 2009 14:38:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.miguelmatas.es/blog/2007/11/13/mejorando-nuestro-dao-y-dto/#comment-1160</guid>
		<description>Miguel, muchas gracias por tu respuesta me aclaró las cosas y pude resolver mi problema. Yo necesitaba que la lista sea del tipo IEntidad y no clsArticulo. Por lo tanto, se me ocurrió hacer lo siguiente:

Private Function BuscarArticulo(ByVal Articulo As IEntidad) As Boolean
If CType(Articulo, clsArticulo).IdArticulo = Me.lvwLista.SelectedItems.Item(0).Text Then
Return True
Else
Return False
End If
End Function

De esta manera también me funcionó. Lo que hice fue poner la misma firma que el delegado y luego hice un CType de Articulo para que sea del tipo clsArticulo (que implementa la interfaz IEntidad) para tener la propiedad IdArticulo.

Muchas Gracias!!
Saludos,
Ignacio.</description>
		<content:encoded><![CDATA[<p>Miguel, muchas gracias por tu respuesta me aclaró las cosas y pude resolver mi problema. Yo necesitaba que la lista sea del tipo IEntidad y no clsArticulo. Por lo tanto, se me ocurrió hacer lo siguiente:</p>
<p>Private Function BuscarArticulo(ByVal Articulo As IEntidad) As Boolean<br />
If CType(Articulo, clsArticulo).IdArticulo = Me.lvwLista.SelectedItems.Item(0).Text Then<br />
Return True<br />
Else<br />
Return False<br />
End If<br />
End Function</p>
<p>De esta manera también me funcionó. Lo que hice fue poner la misma firma que el delegado y luego hice un CType de Articulo para que sea del tipo clsArticulo (que implementa la interfaz IEntidad) para tener la propiedad IdArticulo.</p>
<p>Muchas Gracias!!<br />
Saludos,<br />
Ignacio.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Explotando el método &#8220;Find&#8221; de listas genéricas. Predicados y Delegados. &#124; Miguel Matas Blog</title>
		<link>http://www.miguelmatas.es/blog/2007/11/13/mejorando-nuestro-dao-y-dto/comment-page-1/#comment-1157</link>
		<dc:creator>Explotando el método &#8220;Find&#8221; de listas genéricas. Predicados y Delegados. &#124; Miguel Matas Blog</dc:creator>
		<pubDate>Sat, 11 Apr 2009 07:43:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.miguelmatas.es/blog/2007/11/13/mejorando-nuestro-dao-y-dto/#comment-1157</guid>
		<description>[...] en uno de los comentarios añadidos al post Mejorando Nuestros DAO y DTO, se ha tratado el uso del método Find en listas [...]</description>
		<content:encoded><![CDATA[<p>[...] en uno de los comentarios añadidos al post Mejorando Nuestros DAO y DTO, se ha tratado el uso del método Find en listas [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Miguel</title>
		<link>http://www.miguelmatas.es/blog/2007/11/13/mejorando-nuestro-dao-y-dto/comment-page-1/#comment-1156</link>
		<dc:creator>Miguel</dc:creator>
		<pubDate>Sat, 11 Apr 2009 07:37:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.miguelmatas.es/blog/2007/11/13/mejorando-nuestro-dao-y-dto/#comment-1156</guid>
		<description>Hola Ignacio,

Mucho me temo que para utilizar la solución Predicate+Delegate+Find es obligatorio mantener la misma firma.

Por lo que me he podido documentar, el Find internamente lo que hace es una especie de &quot;For Each&quot;, así que tal vez si encapsulas dicho funcionamiento en un método tuyo, puedas obtener el mismo resultado que pretendes obtener con el Find, pero utilizando la &quot;potencia&quot; del IEntidad.

Te dejo el link a un artículo que marca el ejemplo donde me he apoyado para responderte.

http://www.eggheadcafe.com/conversation.aspx?messageid=32369677&amp;threadid=32369628

Un saludo.</description>
		<content:encoded><![CDATA[<p>Hola Ignacio,</p>
<p>Mucho me temo que para utilizar la solución Predicate+Delegate+Find es obligatorio mantener la misma firma.</p>
<p>Por lo que me he podido documentar, el Find internamente lo que hace es una especie de &#8220;For Each&#8221;, así que tal vez si encapsulas dicho funcionamiento en un método tuyo, puedas obtener el mismo resultado que pretendes obtener con el Find, pero utilizando la &#8220;potencia&#8221; del IEntidad.</p>
<p>Te dejo el link a un artículo que marca el ejemplo donde me he apoyado para responderte.</p>
<p><a href="http://www.eggheadcafe.com/conversation.aspx?messageid=32369677&#038;threadid=32369628" rel="nofollow">http://www.eggheadcafe.com/conversation.aspx?messageid=32369677&#038;threadid=32369628</a></p>
<p>Un saludo.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ignacio</title>
		<link>http://www.miguelmatas.es/blog/2007/11/13/mejorando-nuestro-dao-y-dto/comment-page-1/#comment-1154</link>
		<dc:creator>Ignacio</dc:creator>
		<pubDate>Fri, 03 Apr 2009 14:19:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.miguelmatas.es/blog/2007/11/13/mejorando-nuestro-dao-y-dto/#comment-1154</guid>
		<description>Miguel, buen día! Mi nombre es Ignacio. Estoy siguiendo tus consejos para el desarrollo de un software pero me surgió el siguiente problema. Creé una IEntidad (que vendría a ser tu IBean) y la implementé a todos los DTO de mi aplicación. Cuando los uso, los declaro según el tipo de Entidad. Por ejemplo, tengo una entidad clsArticulo, entonces cuando declaro un objeto a partir de esta clase lo hago de la siguiente manera: dim oArticulo as clsarticulo. Hasta acá todo bien. En cambio, cuando declaro una lista de estos objetos tengo que hacerlo de la siguiente manera: dim oListaArticulos as list(of IEntidad). En tu ejemplo veo que hacés lo mismo. El problema surge cuando quiero utilizar el método find de la clase List. Te paso mi fragmento de código para que puedas ver lo que te voy a comentar:

Private Sub MostrarArticulo()
        _Articulo = Nothing
        Dim IdArticulo As New Predicate(Of IEntidad)(AddressOf BuscarArticulo)
        _Articulo = CType(_ListaArticulos.Item(_ListaArticulos.FindIndex(IdArticulo)), clsArticulo)
        If Not _Articulo Is Nothing Then
            Dim frmArticulo As New frmArticulo
            frmArticulo.Articulo = _Articulo
            frmArticulo.ShowDialog()
        End If
End Sub

Private Function BuscarArticulo(ByVal Articulo As clsArticulo) As Boolean
        If Articulo.IdArticulo = Me.lvwLista.SelectedItems.Item(0).Text Then
            Return True
        Else
            Return False
        End If
End Function

Me dice que BuscarArtículo tiene distinta firma que el delegado predicate. Si en todos los lugares donde dice clsArticulo pongo IEntidad, la propiedad IdArticulo me va a tirar error. Evidentemento pq pertenece a la clase clsArchivo. No se cómo salir de este inconveniente. En VS2008 me anda pero le tengo que poner option strict off.

Si pudieras darme una mano con esto te lo agradecería mucho.

Desde ya muchas gracias.
Saludos,
Ignacio.

PD: Excelente tu blog!</description>
		<content:encoded><![CDATA[<p>Miguel, buen día! Mi nombre es Ignacio. Estoy siguiendo tus consejos para el desarrollo de un software pero me surgió el siguiente problema. Creé una IEntidad (que vendría a ser tu IBean) y la implementé a todos los DTO de mi aplicación. Cuando los uso, los declaro según el tipo de Entidad. Por ejemplo, tengo una entidad clsArticulo, entonces cuando declaro un objeto a partir de esta clase lo hago de la siguiente manera: dim oArticulo as clsarticulo. Hasta acá todo bien. En cambio, cuando declaro una lista de estos objetos tengo que hacerlo de la siguiente manera: dim oListaArticulos as list(of IEntidad). En tu ejemplo veo que hacés lo mismo. El problema surge cuando quiero utilizar el método find de la clase List. Te paso mi fragmento de código para que puedas ver lo que te voy a comentar:</p>
<p>Private Sub MostrarArticulo()<br />
        _Articulo = Nothing<br />
        Dim IdArticulo As New Predicate(Of IEntidad)(AddressOf BuscarArticulo)<br />
        _Articulo = CType(_ListaArticulos.Item(_ListaArticulos.FindIndex(IdArticulo)), clsArticulo)<br />
        If Not _Articulo Is Nothing Then<br />
            Dim frmArticulo As New frmArticulo<br />
            frmArticulo.Articulo = _Articulo<br />
            frmArticulo.ShowDialog()<br />
        End If<br />
End Sub</p>
<p>Private Function BuscarArticulo(ByVal Articulo As clsArticulo) As Boolean<br />
        If Articulo.IdArticulo = Me.lvwLista.SelectedItems.Item(0).Text Then<br />
            Return True<br />
        Else<br />
            Return False<br />
        End If<br />
End Function</p>
<p>Me dice que BuscarArtículo tiene distinta firma que el delegado predicate. Si en todos los lugares donde dice clsArticulo pongo IEntidad, la propiedad IdArticulo me va a tirar error. Evidentemento pq pertenece a la clase clsArchivo. No se cómo salir de este inconveniente. En VS2008 me anda pero le tengo que poner option strict off.</p>
<p>Si pudieras darme una mano con esto te lo agradecería mucho.</p>
<p>Desde ya muchas gracias.<br />
Saludos,<br />
Ignacio.</p>
<p>PD: Excelente tu blog!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeff</title>
		<link>http://www.miguelmatas.es/blog/2007/11/13/mejorando-nuestro-dao-y-dto/comment-page-1/#comment-1105</link>
		<dc:creator>Jeff</dc:creator>
		<pubDate>Tue, 02 Sep 2008 06:24:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.miguelmatas.es/blog/2007/11/13/mejorando-nuestro-dao-y-dto/#comment-1105</guid>
		<description>Primera ves que veo esta instruccion SyncLock pero ya entiendo algo como para que sirve 

El uso más común de SyncLock es impedir que más de un subproceso actualice los datos simultáneamente. Si las instrucciones que manipulan los datos deben completarse sin interrupciones, colóquelas dentro de un bloque SyncLock.</description>
		<content:encoded><![CDATA[<p>Primera ves que veo esta instruccion SyncLock pero ya entiendo algo como para que sirve </p>
<p>El uso más común de SyncLock es impedir que más de un subproceso actualice los datos simultáneamente. Si las instrucciones que manipulan los datos deben completarse sin interrupciones, colóquelas dentro de un bloque SyncLock.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
