<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comentarios en: Inyecci&#243;n de Dependencia con Spring.Net</title>
	<atom:link href="http://darionet.wordpress.com/2006/12/28/inyeccin-de-dependencia-con-springnet/feed/" rel="self" type="application/rss+xml" />
	<link>http://darionet.wordpress.com/2006/12/28/inyeccin-de-dependencia-con-springnet/</link>
	<description>responsabilidad del objeto: bloguear</description>
	<lastBuildDate>Sat, 31 Oct 2009 09:59:00 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Por: Raul</title>
		<link>http://darionet.wordpress.com/2006/12/28/inyeccin-de-dependencia-con-springnet/#comment-486</link>
		<dc:creator>Raul</dc:creator>
		<pubDate>Wed, 23 Jul 2008 17:33:06 +0000</pubDate>
		<guid isPermaLink="false">http://darionet.wordpress.com/2006/12/28/inyeccin-de-dependencia-con-springnet/#comment-486</guid>
		<description>Hola, Probe el ejemplo y funciona. Pero cuando le hago una modificación deja de funcionar. Por ejemplo, probe agragar un objeto Cliente2 igual a cliente y no funciona. Con solo agregar este Cliente2 debajo de objeto Cliente en la configuración tira una Exeption. También probe renombrando a Cliente, como objeto único y no anda tampoco. No entiendo que sucede con este ejemplo.</description>
		<content:encoded><![CDATA[<p>Hola, Probe el ejemplo y funciona. Pero cuando le hago una modificación deja de funcionar. Por ejemplo, probe agragar un objeto Cliente2 igual a cliente y no funciona. Con solo agregar este Cliente2 debajo de objeto Cliente en la configuración tira una Exeption. También probe renombrando a Cliente, como objeto único y no anda tampoco. No entiendo que sucede con este ejemplo.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Indirect</title>
		<link>http://darionet.wordpress.com/2006/12/28/inyeccin-de-dependencia-con-springnet/#comment-482</link>
		<dc:creator>Indirect</dc:creator>
		<pubDate>Thu, 19 Jun 2008 14:46:14 +0000</pubDate>
		<guid isPermaLink="false">http://darionet.wordpress.com/2006/12/28/inyeccin-de-dependencia-con-springnet/#comment-482</guid>
		<description>Somehow i missed the point. Probably lost in translation :) Anyway ... nice blog to visit.

cheers, Indirect!</description>
		<content:encoded><![CDATA[<p>Somehow i missed the point. Probably lost in translation <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Anyway &#8230; nice blog to visit.</p>
<p>cheers, Indirect!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Dario Quintana</title>
		<link>http://darionet.wordpress.com/2006/12/28/inyeccin-de-dependencia-con-springnet/#comment-41</link>
		<dc:creator>Dario Quintana</dc:creator>
		<pubDate>Fri, 29 Dec 2006 17:31:11 +0000</pubDate>
		<guid isPermaLink="false">http://darionet.wordpress.com/2006/12/28/inyeccin-de-dependencia-con-springnet/#comment-41</guid>
		<description>Es cierto, con interfaces hablamos sobre la descripción de comportamientos y es justamente los que necesitamos, por eso las usamos. Debemos saber exactamente que tiene que hacer alguien implemente una interfaz, sin importar como lo haga.

Tiene sus diferencias el hablar de clases Abstractas e Interfaces, aunque en algunos ambientes no importe que usemos. 

El tema aquí es que nosotros estamos estableciendo un compromiso contractual entre las clases que quieran implementar ICliente, de modo que sí o sí debemos dar una implementación de todos los methods/properties en las clases que heredan/implementan de ICliente. 
En una clase abstracta, no se dá esto, es decir, puedo en una clase derivada de AbstractCliente, no implementar un metodo ó una propiedad y optar hacerlo en una proxima derivada.
Otra cosa importante, es que al hablar de una clase abstracta (si bien no se puede instanciar) ya estamos hablando de una implementación, que puede ser mínima o no, y esto es justamente lo que estamos queriendo desacoplar, la implementación. Podría ser válido tener una clase AbstractCliente que implementa ICliente, y despues podríamos hacer que Cliente herede de AbstractCliente, pero en mi opinión no creo que justifique el esfuerzo, no creo que haya mucho que escribir en AbstractCliente.

Por cierto, muy buenos los comentarios! 
Saludos</description>
		<content:encoded><![CDATA[<p>Es cierto, con interfaces hablamos sobre la descripción de comportamientos y es justamente los que necesitamos, por eso las usamos. Debemos saber exactamente que tiene que hacer alguien implemente una interfaz, sin importar como lo haga.</p>
<p>Tiene sus diferencias el hablar de clases Abstractas e Interfaces, aunque en algunos ambientes no importe que usemos. </p>
<p>El tema aquí es que nosotros estamos estableciendo un compromiso contractual entre las clases que quieran implementar ICliente, de modo que sí o sí debemos dar una implementación de todos los methods/properties en las clases que heredan/implementan de ICliente.<br />
En una clase abstracta, no se dá esto, es decir, puedo en una clase derivada de AbstractCliente, no implementar un metodo ó una propiedad y optar hacerlo en una proxima derivada.<br />
Otra cosa importante, es que al hablar de una clase abstracta (si bien no se puede instanciar) ya estamos hablando de una implementación, que puede ser mínima o no, y esto es justamente lo que estamos queriendo desacoplar, la implementación. Podría ser válido tener una clase AbstractCliente que implementa ICliente, y despues podríamos hacer que Cliente herede de AbstractCliente, pero en mi opinión no creo que justifique el esfuerzo, no creo que haya mucho que escribir en AbstractCliente.</p>
<p>Por cierto, muy buenos los comentarios!<br />
Saludos</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Emilio Velardiez</title>
		<link>http://darionet.wordpress.com/2006/12/28/inyeccin-de-dependencia-con-springnet/#comment-40</link>
		<dc:creator>Emilio Velardiez</dc:creator>
		<pubDate>Fri, 29 Dec 2006 11:51:31 +0000</pubDate>
		<guid isPermaLink="false">http://darionet.wordpress.com/2006/12/28/inyeccin-de-dependencia-con-springnet/#comment-40</guid>
		<description>Hola Dario,

Hasta donde yo se de POO el uso de Interfaces tienen que ver con la descripción de comportamientos, como ejemplos ISerializable o IDataBound. Creo que el uso que hacemos de &quot;ICliente&quot; se aproxima más a la de una clase abstracta y no a la de una Interfaz. No se que opináis al respecto?

Saludos.</description>
		<content:encoded><![CDATA[<p>Hola Dario,</p>
<p>Hasta donde yo se de POO el uso de Interfaces tienen que ver con la descripción de comportamientos, como ejemplos ISerializable o IDataBound. Creo que el uso que hacemos de &#8220;ICliente&#8221; se aproxima más a la de una clase abstracta y no a la de una Interfaz. No se que opináis al respecto?</p>
<p>Saludos.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Dario Quintana</title>
		<link>http://darionet.wordpress.com/2006/12/28/inyeccin-de-dependencia-con-springnet/#comment-39</link>
		<dc:creator>Dario Quintana</dc:creator>
		<pubDate>Fri, 29 Dec 2006 06:14:27 +0000</pubDate>
		<guid isPermaLink="false">http://darionet.wordpress.com/2006/12/28/inyeccin-de-dependencia-con-springnet/#comment-39</guid>
		<description>Emilio, GLM respondió por mí. Al usar la interfaz ICliente, usas el intellisense sin problemas, que es un accidente de que se puedan ocupar los metodos, sino no tenés cómo trabajar con los métodos/properties/fields de Cliente.

Ahora bien, cual es la mayor diferencia entre Activator.CreateInstance(assembly,type) y lo que está haciendo Spring en el ejemplo ? CreateInstance es una función y Spring es un feroz framework :) ahora... hablando solamente de la instanciación...ninguna. Convengamos que la inyección por Spring te dá mucho vuelo (es un framework no?), con solo poner singleton=true ténes el singletón cocinado. Aparte la instanciación se está realizando para un contexto, que en otra app, el contexto puede es otro y puede q cambiar la implementación...y esto se complica programandolo sin un framework q te ayude.

Con respecto a los plugins...esto es lo que se usa, no tenés otra (q yo conozca). Cambiarle las palabras/framework/helper hechos por nosotros, pero tarde o temprano tenes que usar estos principios.

Y como nombraba entre todos los containers que te permiten hacer IoC el ObjectBuilder es escrito por los muchachos de Patterns and Practices y es lo que se ocupa en los App Blocks (el link está al comienzo del post)

Que opinan ?</description>
		<content:encoded><![CDATA[<p>Emilio, GLM respondió por mí. Al usar la interfaz ICliente, usas el intellisense sin problemas, que es un accidente de que se puedan ocupar los metodos, sino no tenés cómo trabajar con los métodos/properties/fields de Cliente.</p>
<p>Ahora bien, cual es la mayor diferencia entre Activator.CreateInstance(assembly,type) y lo que está haciendo Spring en el ejemplo ? CreateInstance es una función y Spring es un feroz framework <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ahora&#8230; hablando solamente de la instanciación&#8230;ninguna. Convengamos que la inyección por Spring te dá mucho vuelo (es un framework no?), con solo poner singleton=true ténes el singletón cocinado. Aparte la instanciación se está realizando para un contexto, que en otra app, el contexto puede es otro y puede q cambiar la implementación&#8230;y esto se complica programandolo sin un framework q te ayude.</p>
<p>Con respecto a los plugins&#8230;esto es lo que se usa, no tenés otra (q yo conozca). Cambiarle las palabras/framework/helper hechos por nosotros, pero tarde o temprano tenes que usar estos principios.</p>
<p>Y como nombraba entre todos los containers que te permiten hacer IoC el ObjectBuilder es escrito por los muchachos de Patterns and Practices y es lo que se ocupa en los App Blocks (el link está al comienzo del post)</p>
<p>Que opinan ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: GLM</title>
		<link>http://darionet.wordpress.com/2006/12/28/inyeccin-de-dependencia-con-springnet/#comment-38</link>
		<dc:creator>GLM</dc:creator>
		<pubDate>Fri, 29 Dec 2006 02:03:14 +0000</pubDate>
		<guid isPermaLink="false">http://darionet.wordpress.com/2006/12/28/inyeccin-de-dependencia-con-springnet/#comment-38</guid>
		<description>Emilio: evidentemente al hacer una instanciacion de un objeto que no lo tiene referenciado, pierde el intellisense del objeto en si (porque la referencia no esta en el proyecto), pero Dario deberia tener la interface ICliente bien conocida (referenciada) en su proyecto, por lo que el trata en la aplicacion al objeto como un ICliente, y tiene intellisense de ICliente.
Podes pensarlo, si se te hace mas facil, como que ICliente es una clase base, y por lo tanto tenes acceso al intellisense. De hecho es valido usar una clase base para este tipo de escenarios, pero no estoy seguro si Spring.Net lo soporta.

Saludos</description>
		<content:encoded><![CDATA[<p>Emilio: evidentemente al hacer una instanciacion de un objeto que no lo tiene referenciado, pierde el intellisense del objeto en si (porque la referencia no esta en el proyecto), pero Dario deberia tener la interface ICliente bien conocida (referenciada) en su proyecto, por lo que el trata en la aplicacion al objeto como un ICliente, y tiene intellisense de ICliente.<br />
Podes pensarlo, si se te hace mas facil, como que ICliente es una clase base, y por lo tanto tenes acceso al intellisense. De hecho es valido usar una clase base para este tipo de escenarios, pero no estoy seguro si Spring.Net lo soporta.</p>
<p>Saludos</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: GLM</title>
		<link>http://darionet.wordpress.com/2006/12/28/inyeccin-de-dependencia-con-springnet/#comment-37</link>
		<dc:creator>GLM</dc:creator>
		<pubDate>Fri, 29 Dec 2006 01:53:15 +0000</pubDate>
		<guid isPermaLink="false">http://darionet.wordpress.com/2006/12/28/inyeccin-de-dependencia-con-springnet/#comment-37</guid>
		<description>Cual es la mayor diferencia...

Estoy hablando nada mas y nada menos de Activator.CreateInstance(assembly, type);

o sea lo que veo es que Spring.net va a buscar el solo un objeto (¿Cualkiera?) que implemente ICliente y te lo tira... es algo un poco menos especifico que CreateInstance...

Recientemente estuve viendo el codigo de un plug in del Reflector de Lutz... y miraba como implementaba la conexion con la aplicacion host, es un tipico ejemplo ya que habia una linea: Reflector.ILoQueSea = this.plugInContext.GetLoQueSea();
(no era lo que sea, sino una de las tantas interfaces que expone Reflector, pero no es lo importante)
Dario, Podriamos usar este tipo de cosas para implementar un soporte de plugins? Hablando de plugins los nuevos aplication blocks traen un block para esto
Muy buen post!

Saludos</description>
		<content:encoded><![CDATA[<p>Cual es la mayor diferencia&#8230;</p>
<p>Estoy hablando nada mas y nada menos de Activator.CreateInstance(assembly, type);</p>
<p>o sea lo que veo es que Spring.net va a buscar el solo un objeto (¿Cualkiera?) que implemente ICliente y te lo tira&#8230; es algo un poco menos especifico que CreateInstance&#8230;</p>
<p>Recientemente estuve viendo el codigo de un plug in del Reflector de Lutz&#8230; y miraba como implementaba la conexion con la aplicacion host, es un tipico ejemplo ya que habia una linea: Reflector.ILoQueSea = this.plugInContext.GetLoQueSea();<br />
(no era lo que sea, sino una de las tantas interfaces que expone Reflector, pero no es lo importante)<br />
Dario, Podriamos usar este tipo de cosas para implementar un soporte de plugins? Hablando de plugins los nuevos aplication blocks traen un block para esto<br />
Muy buen post!</p>
<p>Saludos</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Emilio Velardiez</title>
		<link>http://darionet.wordpress.com/2006/12/28/inyeccin-de-dependencia-con-springnet/#comment-36</link>
		<dc:creator>Emilio Velardiez</dc:creator>
		<pubDate>Thu, 28 Dec 2006 22:00:53 +0000</pubDate>
		<guid isPermaLink="false">http://darionet.wordpress.com/2006/12/28/inyeccin-de-dependencia-con-springnet/#comment-36</guid>
		<description>Hola,

Cuando desarrollas con este tipo de fmks AOP que proporciona la reflexion pierdes la productividad que otorga el Intellisense del ensamblado que reflexionas?

Saludos.</description>
		<content:encoded><![CDATA[<p>Hola,</p>
<p>Cuando desarrollas con este tipo de fmks AOP que proporciona la reflexion pierdes la productividad que otorga el Intellisense del ensamblado que reflexionas?</p>
<p>Saludos.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
