<?xml version="1.0" encoding="ISO-8859-1" ?> 
	                <rss version="2.0"> 
                    <channel> 
	                        <title>Synnax.net - Blog Directory</title> 
	                        <link>http://blogs.synnax.net/</link> 
	                        <description>Blogs de Synnax.net</description> 
	                        <language>Spanish</language> <item> 
	                <title>Frameworks Open Source para .NET</title> 
	                <link>http://blogs.synnax.net/javier.centurion/2008/12/06/frameworks-open-source-para-net/</link> 
	                <description><![CDATA[<p>En este post voy a presentar una breve descripción de alguno de los frameworks con los que nos podemos encontrar mientras trabajamos con esta plataforma. 
</p><p><span style="font-size:12pt"><strong>NHibernate
</strong></span></p><p>    Hibernate es un <a href="http://en.wikipedia.org/wiki/Object-relational_mapping"><span style="font-size:9pt"><strong><em>ORM</em></strong></span></a>, Object Relational Mapping, nos facilita el mapeo entre tablas de una base de datos (modelo relacional) y las clases de nuestro dominio, mediante la utilización de archivos de mapeo.  Una de las características de Hibernate es la de poder independizarse del modelo relacional, es decir, tenemos dentro de este framework definidos una serie de providers extensibles que nos permiten aislar el modelo de dominio del motor de base de datos. Dentro de los motores más conocidos tenemos Microsoft Sql Server, Oracle y DB2, entre otros.
</p><p>    <strong>Más información</strong>
	</p><ul style="margin-left: 54pt"><li><a href="http://www.hibernate.org/"><span style="font-size:8pt">http://www.hibernate.org/</span></a><span style="font-size:8pt">
			</span></li><li><a href="http://groups.google.com.ar/group/NHibernate-Hispano"><span style="font-size:8pt">http://groups.google.com.ar/group/NHibernate-Hispano</span></a><span style="font-size:8pt">
			</span></li><li><a href="http://www.codeproject.com/KB/architecture/NHibernateBestPractices.aspx"><span style="font-size:8pt">http://www.codeproject.com/KB/architecture/NHibernateBestPractices.aspx</span></a><span style="font-size:8pt">
			</span></li></ul><p><span style="font-size:12pt"><strong>Spring.Net</strong>
		</span></p><p>    Este framework nos ofrece una amplia infraestructura para el desarrollo de aplicaciones Enterprise, está  basado en la técnica de Inversión de Control (<a href="http://martinfowler.com/articles/injection.html"><span style="font-size:10pt"><strong><em>IoC</em></strong></span></a>) y el paradigma de la programación orientada a aspectos (<a href="http://en.wikipedia.org/wiki/Aspect-oriented_programming"><span style="font-size:10pt"><strong><em>AOP</em></strong></span></a>). Spring está compuesto de:
</p><ul><li><a href="http://www.springframework.net/doc-latest/reference/html/objects.html"><span style="font-size:9pt"><strong>Spring.Core</strong></span></a><span style="font-size:9pt">, módulo de configuración de Springs mediante la utilización del patrón de inyección de dependencias.
</span></li><li><a href="http://www.springframework.net/doc-latest/reference/html/aop.html"><span style="font-size:9pt"><strong>Spring.Aop</strong></span></a><span style="font-size:9pt">, módulo de apoyo para el desarrollo de aplicaciones mediante el paradigma de la programación orientada a aspectos.
</span></li><li><a href="http://www.springframework.net/doc-latest/reference/html/spring-middle-tier.html"><span style="font-size:9pt"><strong>Spring.Data</strong></span></a><span style="font-size:9pt">, módulo de apoyo al acceso a datos mediante la utilización de Ado.Net.
</span></li><li><a href="http://www.springframework.net/doc-latest/reference/html/orm.html"><span style="font-size:9pt"><strong>Spring.Data.Hibernate</strong></span></a><span style="font-size:9pt">, módulo de apoyo al acceso a datos mixto entre Ado.Net y NHibernate.
</span></li><li><a href="http://www.springframework.net/doc-latest/reference/html/web.html"><span style="font-size:9pt"><strong>Spring.Web</strong></span></a><span style="font-size:9pt">, módulo de apoyo para el desarrollo de aplicaciones web sobre Asp.Net.
</span></li><li><a href="http://www.springframework.net/doc-latest/reference/html/ajax.html"><span style="font-size:9pt"><strong>Spring.Web.Extensions</strong></span></a><span style="font-size:9pt"><strong>, </strong>módulo para la exposición de objetos planos (</span><span style="font-size:8pt"><em>PONO</em></span><span style="font-size:9pt">) a través de la inyección de dependencias y la programación orientada a aspectos.
</span></li><li><a href="http://www.springframework.net/doc-latest/reference/html/spring-services.html"><span style="font-size:9pt"><strong>Spring.Services</strong></span></a><span style="font-size:9pt">, módulo para la exposición de objetos planos en la forma de alguna de las tecnologías de de comunicación distribuida de .NET (servicio web, Net remoting, WCF).
</span></li><li><a href="http://www.springframework.net/doc-latest/reference/html/testing.html"><span style="font-size:9pt"><strong>Spring.Testing.NUnit</strong></span></a><span style="font-size:9pt"><strong>, </strong>integración con el framework NUnit.
</span></li><li><a href="http://www.springframework.net/doc-latest/reference/html/msmq.html"><span style="font-size:9pt"><strong>Spring.Messaging</strong></span></a><span style="font-size:9pt">, módulo para la integración con <a href="http://en.wikipedia.org/wiki/Microsoft_Message_Queuing"/></span><span style="font-size:8pt"><strong><em>MSQM</em></strong></span><span style="font-size:9pt">.
</span></li><li><a href="http://www.springframework.net/doc-latest/reference/html/messaging.html"><span style="font-size:9pt"><strong>Spring.Messaging.Nms</strong></span></a><span style="font-size:9pt">, módulo para la integración con <a href="http://en.wikipedia.org/wiki/Apache_ActiveMQ"/></span><span style="font-size:8pt"><strong><em>Apache ActiveMQ</em></strong></span><span style="font-size:9pt">.
</span></li><li><a href="http://www.springframework.net/doc-latest/reference/html/scheduling.html"><span style="font-size:9pt"><strong>Spring.Scheduling.Quarz</strong></span></a><span style="font-size:9pt">, módulo para la integración con </span><span style="font-size:8pt"><em>Quartz.Net</em></span><span style="font-size:9pt">.<strong>
				</strong></span></li></ul><p><strong>Más información<span style="font-size:10pt">
			</span></strong></p><ul style="margin-left: 54pt"><li><a href="http://www.springframework.net/"><span style="font-size:8pt">http://www.springframework.net/</span></a><span style="font-size:8pt">
			</span></li><li><a href="http://www.codeproject.com/KB/aspnet/spring-asp.aspx"><span style="font-size:8pt">http://www.codeproject.com/KB/aspnet/spring-asp.aspx</span></a><span style="font-size:8pt">
			</span></li></ul><p><span style="font-size:12pt"><strong>NUnit
</strong></span></p><p>    NUnit es un framework para la realización de pruebas unitarias que cumple con las misma tareas que JUnit en java. Existe dos proyectos paralelos a NUnit especializados en WebForms y WinForms:
</p><ul style="margin-left: 54pt"><li><a href="http://nunitforms.sourceforge.net/docs.html"><span style="font-size:10pt"><strong><em>NUnitForms</em></strong></span></a><span style="font-size:10pt"><strong><em>
					</em></strong></span></li><li><a href="http://nunitasp.sourceforge.net/"><span style="font-size:10pt"><strong><em>NUnitAsp</em></strong></span></a><span style="font-size:10pt"> (proyecto descontinuado apartir del 31/01/2008)
</span></li></ul><p>    <strong>Más información
</strong></p><ul style="margin-left: 54pt"><li><a href="http://www.nunit.org/index.php"><span style="font-size:8pt">http://www.nunit.org/index.php</span></a><span style="font-size:8pt">
			</span></li><li><a href="http://www.elguille.info/colabora/puntoNET/giovannyf_NUnit.htm"><span style="font-size:8pt">http://www.elguille.info/colabora/puntoNET/giovannyf_NUnit.htm</span></a><span style="font-size:8pt">
			</span></li><li><a href="http://www.codeproject.com/KB/dotnet/tdd_in_dotnet.aspx"><span style="font-size:8pt">http://www.codeproject.com/KB/dotnet/tdd_in_dotnet.aspx</span></a><span style="font-size:8pt">
			</span></li></ul><p><span style="font-size:12pt"><strong>Castle Project
</strong></span></p><p style="margin-left: 4pt">    Este framework pretende simplificar el desarrollo web y el desarrollo de aplicaciones Enterprise mediante un conjunto de herramientas que funcionan tanto de manera independiente como conjunta, también tiene integración con otros proyectos open source. Castle Project está compuesto de:
</p><ul><li><a href="http://www.castleproject.org/container/index.html"><span style="font-size:9pt"><strong>Castle MicroKernel</strong></span></a><span style="font-size:9pt">, es simplemente un contenedor ligero.
</span></li><li><a href="http://www.castleproject.org/container/index.html"><span style="font-size:9pt"><strong>Windsor Container</strong></span></a><span style="font-size:9pt">, es un agregado a MicroKernel que permite realizar mediante el archivo de configuración la registración de componentes y la utilización de interceptores.
</span></li><li><a href="http://www.castleproject.org/monorail/index.html"><span style="font-size:9pt"><strong>MonoRail</strong></span></a><span style="font-size:9pt">, este módulo es un framework <a href="http://en.wikipedia.org/wiki/Model-view-controller"/></span><span style="font-size:8pt"><strong><em>MVC</em></strong></span><span style="font-size:9pt"> basado en <a href="http://es.wikipedia.org/wiki/Action_Mailer"/></span><span style="font-size:8pt"><strong><em>RubyOnRails</em></strong></span><span style="font-size:9pt">.
</span></li><li><a href="http://www.castleproject.org/activerecord/index.html"><span style="font-size:9pt"><strong>ActiveRecord</strong></span></a><span style="font-size:9pt">, este módulo presenta la implementación del patrón <a href="http://en.wikipedia.org/wiki/Active_record_pattern"/></span><span style="font-size:8pt"><strong><em>ActiveRecord</em></strong></span><span style="font-size:9pt"> sobre la base del proyecto NHibernate, nos evita la escritura de los archivos de mapeo de NHibernate.
</span></li><li><a href="http://www.castleproject.org/dynamicproxy/index.html"><span style="font-size:9pt"><strong>DynamicProxy</strong></span></a><span style="font-size:9pt">, sirve para la creación de proxy 'on the fly' sobre interfaces o clases concretas.
</span></li><li><a href="http://www.castleproject.org/aspectsharp/index.html"><span style="font-size:9pt"><strong>Aspect#</strong></span></a><span style="font-size:9pt">, es un framework de programación orientada a aspectos basado en DynamicProxy, es compatible con </span><span style="font-size:8pt"><em>AopAlliance</em></span><span style="font-size:9pt">.
</span></li></ul><p><strong>Más información</strong>
	</p><ul style="margin-left: 54pt"><li><a href="http://www.castleproject.org/"><span style="font-size:8pt">http://www.castleproject.org/</span></a><span style="font-size:8pt">
			</span></li><li><a href="http://www.castleproject.org/sitemap.html"><span style="font-size:8pt">http://www.castleproject.org/sitemap.html</span></a><span style="font-size:8pt">
			</span></li><li><a href="http://en.wikipedia.org/wiki/Castle_Project"><span style="font-size:8pt">http://en.wikipedia.org/wiki/Castle_Project</span></a><span style="font-size:8pt">
			</span></li><li><a href="http://www.codeproject.com/KB/architecture/introducingcastle.aspx"><span style="font-size:8pt">http://www.codeproject.com/KB/architecture/introducingcastle.aspx</span></a><span style="font-size:8pt">
			</span></li></ul><p><span style="font-size:12pt"><strong>Quartz.Net
</strong></span></p><p>    Este framework deriva de su contraparte en java llamado Quartz, es un programador de tareas, por lo cual compite directamente con el programador de tareas de windows. Esta desarrollado íntegramente en C# y tiene soporte desde la versión 1.1. A partir de la versión 1.2.0 M1 Spring.Net tiene integración con Quartz.Net.
</p><p>    <strong>Más información</strong>
	</p><ul style="margin-left: 54pt"><li><a href="http://quartznet.sourceforge.net/"><span style="font-size:8pt">http://quartznet.sourceforge.net/</span></a><span style="font-size:8pt">
			</span></li><li><a href="http://quartznet.sourceforge.net/tutorial/index.html"><span style="font-size:8pt">http://quartznet.sourceforge.net/tutorial/index.html</span></a><span style="font-size:8pt">
			</span></li></ul><p><span style="font-size:12pt"><strong>Log4Net
</strong></span></p><p>    Log4Net es un framework que nos permite agregar 'logging' en nuestro sistema de una manera fácil y sencilla, además soporta una amplia gama de formatos (correo electrónico, archivos de texto,  salida a bases de datos, etc) para la exposición de la información. Log4Net  deriva de su contraparte en java llamada Log4J. Este framework puede ser configurado dinámicamente o por medio del archivo de configuración.
</p><p><strong>    Más información
</strong></p><ul style="margin-left: 54pt"><li><a href="http://logging.apache.org/log4net/index.html"><span style="font-size:8pt">http://logging.apache.org/log4net/index.html</span></a><span style="font-size:8pt">
			</span></li><li><a href="http://www.ondotnet.com/pub/a/dotnet/2003/06/16/log4net.html"><span style="font-size:8pt">http://www.ondotnet.com/pub/a/dotnet/2003/06/16/log4net.html</span></a><span style="font-size:8pt">
			</span></li><li><a href="http://www.codeproject.com/KB/trace/log4net_intro.aspx"><span style="font-size:8pt">http://www.codeproject.com/KB/trace/log4net_intro.aspx</span></a><span style="font-size:8pt">
			</span></li></ul><p><span style="font-size:12pt"><strong>NLog
</strong></span></p><p>    NLog es un framework de logging diseñado para los lenguajes .NET, es simple y flexible y nos permite generar información en distintos formatos y enviarlo a uno o varios destinos.
</p><p>    <strong>Más Información
</strong></p><ul style="margin-left: 54pt"><li><a href="http://www.nlog-project.org/"><span style="font-size:8pt">http://www.nlog-project.org/</span></a><span style="font-size:8pt">
			</span></li><li><a href="http://www.codeproject.com/KB/trace/nlog.aspx"><span style="font-size:8pt">http://www.codeproject.com/KB/trace/nlog.aspx</span></a><span style="font-size:8pt">
			</span></li></ul><p><span style="font-size:12pt"><strong>Common.Logging
</strong></span></p><p>    Este framework nos provee una interfaz común entre los distintos frameworks de logging existentes para .NET. Su utilización es recomendable si se piensan usar distintos frameworks de logging.
</p><p>    <strong>Más información</strong>
	</p><ul style="margin-left: 54pt"><li><a href="http://netcommon.sourceforge.net/"><span style="font-size:8pt">http://netcommon.sourceforge.net/</span></a><span style="font-size:8pt">
			</span></li><li><a href="http://netcommon.sourceforge.net/doc-latest/reference/html/logging.html#logging-abstract"><span style="font-size:8pt">http://netcommon.sourceforge.net/doc-latest/reference/html/logging.html#logging-abstract</span></a><span style="font-size:8pt">
			</span></li></ul><p><span style="font-size:12pt"><strong>MbUnit
</strong></span></p><p>    MbUnit es un framework de testing para .NET, fue pesado para dar todas las prestaciones que nos ofrece NUnit y csUnit, además de ofrecer la extensibilidad que estos dos no ofrecen.
</p><p><strong>    Más información
</strong></p><ul style="margin-left: 54pt"><li><a href="http://www.mbunit.com/About.aspx"><span style="font-size:8pt">http://www.mbunit.com/About.aspx</span></a><span style="font-size:8pt">
			</span></li><li><a href="http://docs.mbunit.com/"><span style="font-size:8pt">http://docs.mbunit.com/</span></a><span style="font-size:8pt">
			</span></li><li><a href="http://www.codeproject.com/KB/architecture/gunit.aspx"><span style="font-size:8pt">http://www.codeproject.com/KB/architecture/gunit.aspx</span></a><span style="font-size:8pt">
			</span></li></ul><p><span style="font-size:12pt"><strong>CsUnit
</strong></span></p><p>    CsUnit es un framework de testing de la familia xUnit, está diseñado para trabajar con todos los leguajes de la plataforma .NET, a partir de la versión 2.4 también soporta la ejecución de pruebas NUnit 2.4.7.
</p><p><strong>Más información
</strong></p><ul style="margin-left: 54pt"><li><a href="http://www.csunit.org/"><span style="font-size:8pt">http://www.csunit.org/</span></a><span style="font-size:8pt">
			</span></li><li><a href="http://en.wikipedia.org/wiki/CsUnit"><span style="font-size:8pt">http://en.wikipedia.org/wiki/CsUnit</span></a><span style="font-size:8pt">
			</span></li></ul><p><span style="font-size:12pt"><strong>Moq
</strong></span></p><p>    Moq es un framework de <a href="http://en.wikipedia.org/wiki/Mock_Object"><strong><em>mocking</em></strong></a> para .NET, el fuerte de este framework es que utiliza toda la potencia de la versión 3.5 de la plataforma  (Linq, expresiones lambda, etc), lo cual nos ayuda a obtener código de prueba más compacto y natural. Está
</p><p><strong>    Más información
</strong></p><ul style="margin-left: 54pt"><li><a href="http://code.google.com/p/moq/"><span style="font-size:8pt">http://code.google.com/p/moq/</span></a><span style="font-size:8pt">
			</span></li><li><a href="http://code.google.com/p/moq/wiki/QuickStart"><span style="font-size:8pt">http://code.google.com/p/moq/wiki/QuickStart</span></a><span style="font-size:8pt">
			</span></li></ul><p><span style="font-size:12pt"><strong>Rhino Mocks
</strong></span></p><p>    Este framework sirve para la creación dinámica de objetos mock, su propósito es la de ayudar a la generación de código de prueba, es un hibrido entre el modelo Record/Replay de EasyMock.Net y el modelo basado en expectativas de NMock.
</p><p><strong>    Más información
</strong></p><ul style="margin-left: 54pt"><li><a href="http://ayende.com/projects/rhino-mocks.aspx"><span style="font-size:8pt">http://ayende.com/projects/rhino-mocks.aspx</span></a><span style="font-size:8pt">
			</span></li><li><a href="http://www.codeproject.com/KB/dotnet/Rhino_Mocks_Version_20.aspx"><span style="font-size:8pt">http://www.codeproject.com/KB/dotnet/Rhino_Mocks_Version_20.aspx</span></a><span style="font-size:8pt">
			</span></li></ul><p><span style="font-size:12pt"><strong>NMock
</strong></span></p><p>NMock es un framework de mocking para .NET, está pensado para la generación de objetos mock de forma dinámica.<span style="font-size:12pt"><strong>
			</strong></span></p><p><strong>Más Información
</strong></p><ul style="margin-left: 54pt"><li><a href="http://www.nmock.org/"><span style="font-size:8pt">http://www.nmock.org/</span></a><span style="font-size:8pt">
			</span></li><li><a href="http://www.nmock.org/tutorial.html"><span style="font-size:8pt">http://www.nmock.org/tutorial.html</span></a><span style="font-size:8pt">
			</span></li></ul><p><span style="font-size:12pt"><strong>NInject
</strong></span></p><p>    Es framework nos ayuda a implementar el patrón de inyección de dependencias (<a href="http://martinfowler.com/articles/injection.html"><span style="font-size:10pt"><strong><em>IoC</em></strong></span></a>) de manera simple y sencilla sin la utilización de archivos xml de configuración. NInject es el único framework de inyección de dependencias que oficialmente da soporte al NET Compact Framework y a <a href="http://es.wikipedia.org/wiki/Microsoft_Silverlight"><strong><em>Silverlight</em></strong></a> 2.0.
</p><p><strong>    Más información
</strong></p><ul style="margin-left: 54pt"><li><a href="http://ninject.org/"><span style="font-size:8pt">http://ninject.org/</span></a><span style="font-size:8pt">
			</span></li><li><a href="http://dojo.ninject.org/Blog%20Posts%20and%20Tutorials.ashx"><span style="font-size:8pt">http://dojo.ninject.org/Blog%20Posts%20and%20Tutorials.ashx</span></a><span style="font-size:8pt">
			</span></li></ul><p><span style="font-size:12pt"><strong>Fluent NHibernate
</strong></span></p><p>    Fluent NHibernate es un framework que nos evita la escritura de los archives de mapeo de NHibernte, está basado en los nuevos features de C# 3.0, como por ejemplo expresiones lambda, además nos agrega la posibilidad de testear los mapeos.
</p><p><strong>    Más información
</strong></p><ul style="margin-left: 54pt"><li><a href="http://code.google.com/p/fluent-nhibernate/"><span style="font-size:8pt">http://code.google.com/p/fluent-nhibernate/</span></a><span style="font-size:8pt">
			</span></li><li><a href="http://blog.jagregory.com/2008/08/08/introducing-fluent-nhibernate/"><span style="font-size:8pt">http://blog.jagregory.com/2008/08/08/introducing-fluent-nhibernate/</span></a><span style="font-size:8pt">
			</span></li><li><a href="http://blogs.hibernatingrhinos.com/nhibernate/archive/2008/08/11/a-fluent-interface-to-hibernate.aspx"><span style="font-size:8pt">http://blogs.hibernatingrhinos.com/nhibernate/archive/2008/08/11/a-fluent-interface-to-hibernate.aspx</span></a><span style="font-size:8pt">
			</span></li></ul><p>Espero que les sea de utilidad.
</p><p>Saludos.</p>]]></description> 
	            </item><item> 
	                <title>Enviar mails con imágenes embebidas</title> 
	                <link>http://blogs.synnax.net/javier.centurion/2008/12/05/enviar-mails-con-imagenes-embebidas/</link> 
	                <description><![CDATA[<p>En esta oportunidad les voy a contar como enviar imágenes embebidas en un email mediante la utilización del espacio de nombre <a href="http://msdn.microsoft.com/es-es/library/system.net.mail(VS.80).aspx">System.Net.Mail</a>. 
</p><p>Pongamos manos a la obra, primero lo que debemos hacer es configurar el servidor 'SMTP' y el 'Mensaje', esto lo haremos mediante la utilización de las clases:
</p><ul style="margin-left: 54pt"><li><a href="http://msdn.microsoft.com/es-es/library/system.net.mail.smtpclient.credentials(VS.80).aspx"><span style="color:#17365d"><strong><em>SmtpClient</em></strong></span></a><span style="color:#17365d"><strong><em>
					</em></strong></span></li><li><a href="http://msdn.microsoft.com/es-es/library/system.net.mail.mailmessage.attachments(VS.80).aspx"><span style="color:#17365d"><strong><em>MailMessage</em></strong></span></a>
		</li></ul><p><img src="http://blogs.synnax.net/javier.centurion/wp-content/uploads/2008/12/120608-0243-enviarmails1.png" alt=""/>
	</p><p>De la clase <a href="http://msdn.microsoft.com/es-es/library/system.net.mail.smtpclient.credentials(VS.80).aspx"><span style="color:#17365d"><strong><em>SmtpClient</em></strong></span></a> bastara con setear las propiedades <strong><em>Host (string)</em></strong>, <strong><em>EnableSsl (bool)</em></strong>, <strong><em>Port (int)</em></strong> y <strong><em>Credentials (<span style="color:#17365d">ICredentialsByHost<span style="font-family:Arial">t</span></span>)</em></strong> con los datos correspondientes al servidor SMTP que estemos usando, en este caso usaremos Gmail, y a la clase <a href="http://msdn.microsoft.com/es-es/library/system.net.mail.mailmessage.attachments(VS.80).aspx"><span style="color:#17365d"><strong><em>MailMessage</em></strong></span></a>, por el momento, le pasaremos por constructor los valores <em>MailAddressFrom (string)</em> y <em>MailAddressTo (string)</em>.
</p><p>Luego agregaremos una variable de tipo <a href="http://msdn.microsoft.com/es-ar/library/system.net.mail.linkedresource.aspx"><span style="color:#17365d"><strong><em>LinkedResource</em></strong></span></a>, esta clase representa a un recurso embebido.
</p><p><img src="http://blogs.synnax.net/javier.centurion/wp-content/uploads/2008/12/120608-0243-enviarmails2.png" alt=""/>
	</p><p>Al constructor de la clase <a href="http://msdn.microsoft.com/es-ar/library/system.net.mail.linkedresource.aspx"><span style="color:#17365d"><strong><em>LinkedResource</em></strong></span></a> le pasamos la dirección física del archivo que queremos embeber y su tipo <em>MIME</em> mediante la utilización de la clase <a href="http://msdn.microsoft.com/es-ar/library/system.net.mime.mediatypenames.aspx"><span style="color:#17365d"><strong><em>MediaTypesNames</em></strong></span></a>. También debemos setear la propiedad <strong><em>ContentdId (string)</em></strong>, esta propiedad representa al Identificador del tipo <a href="http://en.wikipedia.org/wiki/MIME"><em>MIME</em></a> y es al que haremos referencia más adelante.
</p><p>Ahora agregaremos una variable de tipo <a href="http://msdn.microsoft.com/es-ar/library/system.net.mail.alternateview(VS.80).aspx"><span style="color:#17365d"><strong><em>AlternateView</em></strong></span></a> que representa al formato con que se mostrara el mail, para crear una instancia de esta clase utilizaremos el método estático <em>CreateAlternateViewFromString</em>.
</p><p><img src="http://blogs.synnax.net/javier.centurion/wp-content/uploads/2008/12/120608-0243-enviarmails3.png" alt=""/>
	</p><p>Al método <em>CreateAlternateViewFromString </em>le pasamos tres valores <strong><em>content</em></strong> (string – representa al contenido del mail, en este caso html), <strong><em>contentEncoding</em></strong> (Encoding – indica el tipo de codificación del contenido, en este caso no se especifica) y <strong><em>mediaType</em></strong> (string – representa al tipo <a href="http://en.wikipedia.org/wiki/MIME"><em>MIME</em></a> del contenido). También aprovecharemos para agregar al recurso embebido que configuramos previamente mediante la propiedad <strong><em>LinkedResources (<a href="http://msdn.microsoft.com/es-es/library/system.net.mail.linkedresourcecollection(VS.80).aspx"><span style="color:#17365d">LikedResourceCollection</span></a>)</em>.
</strong></p><p>Debemos notar que en el html escrito en la variable <em>htmlBody</em>, el atributo <strong>scr</strong> del nodo <strong>img</strong> tiene como valor '<em>cid: Logo'</em>, siendo '<em>Logo'</em> el valor que le dimos a la propiedad <strong><em>ContentId</em></strong> de la variable de tipo <a href="http://msdn.microsoft.com/es-ar/library/system.net.mail.linkedresource.aspx"><span style="color:#17365d"><strong><em>LinkedResource</em></strong></span></a>.
</p><p><img src="http://blogs.synnax.net/javier.centurion/wp-content/uploads/2008/12/120608-0243-enviarmails4.png" alt=""/>
	</p><p>Por último lo que debemos hacer es terminar de configurar la clase <a href="http://msdn.microsoft.com/es-es/library/system.net.mail.mailmessage.attachments(VS.80).aspx"><span style="color:#17365d"><strong><em>MailMessage</em></strong></span></a> y enviar el mail mediante la utilización de la clase <a href="http://msdn.microsoft.com/es-es/library/system.net.mail.smtpclient.credentials(VS.80).aspx"><span style="color:#17365d"><strong><em>SmtpClient</em></strong></span></a>, en este caso el único detalle importante es agregar a la propiedad <strong><em>AlternateViews (<a href="http://msdn.microsoft.com/es-es/library/system.net.mail.alternateviewcollection(VS.80).aspx"><span style="color:#17365d">AlternateViewCollection</span></a>) </em></strong>la vista que configuramos previamente, el código completo quedaría.
</p><p><img src="http://blogs.synnax.net/javier.centurion/wp-content/uploads/2008/12/120608-0243-enviarmails5.png" alt=""/>
	</p><p>Espero que les sirva.
</p><p>Saludos.</p>]]></description> 
	            </item><item> 
	                <title>Microsoft Virtual Academy</title> 
	                <link>http://blogs.synnax.net/jose.franco/2008/07/22/microsoft-virtual-academy/</link> 
	                <description><![CDATA[<p><img align="left" src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/07/072308-0018-microsoftvi1.gif" alt=""/>Gente, ya está disponible la carrera básica de Sql Server 2008, les dejo el link <a href="http://www.microsoftmva.com/">http://www.microsoftmva.com/</a> .
</p><p>También están disponibles un par de clinics <a href="https://www.microsoftelearning.com/eLearning/offerDetail.aspx?offerPriceId=139087">https://www.microsoftelearning.com/eLearning/offerDetail.aspx?offerPriceId=139087</a>
	</p><p>
 </p><p>Yo me enteré a través del blog de Guillermo Taylor. 
</p><p>Les dejo el post de él: <a href="http://blogs.technet.com/guillermotaylor/archive/2008/07/22/ya-est-lista-la-carrera-mva-de-sql-server-2008.aspx">http://blogs.technet.com/guillermotaylor/archive/2008/07/22/ya-est-lista-la-carrera-mva-de-sql-server-2008.aspx</a>
	</p><p>Saludos.</p>]]></description> 
	            </item><item> 
	                <title>Apple iPhone 3G!</title> 
	                <link>http://blogs.synnax.net/jose.franco/?p=456</link> 
	                <description><![CDATA[Este post no tiene nada que ver con desarrollo, y como no tuve mucho tiempo este ultimo mes, les comparto este articulo, ya que se escucho hablar mucho de este bebe ultimamente, y bueno...

<a href="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/07/210689.jpg"><img class="alignnone size-medium wp-image-457" title="210689" src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/07/210689-300x211.jpg" alt="" width="300" height="211" /></a>

Les dejo esta dire para que chusmeen este post

<a href="http://content.techrepublic.com.com/2346-13636_11-210341.html?tag=nl.e102">http://content.techrepublic.com.com/2346-13636_11-210341.html?tag=nl.e102</a>]]></description> 
	            </item><item> 
	                <title>Genesis Studio: un IDE para AjGenesis </title> 
	                <link>http://blogs.synnax.net/jose.franco/?p=453</link> 
	                <description><![CDATA[Es un post viejo de ajLopez, pero les dejo el link sobre un ide para laburar con los templates de ajGenesis, yo prefiero usar el notepad++ o editplus, pero tal vez a alguien le es mas simple este IDE

<a href="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/06/genesisstudio061.png"><img class="alignnone size-full wp-image-455" title="genesisstudio061" src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/06/genesisstudio061.png" alt="" width="706" height="332" /></a>

<a href="http://msmvps.com/blogs/lopez/archive/2007/12/24/genesis-studio-una-ide-para-ajgenesis.aspx ">http://msmvps.com/blogs/lopez/archive/2007/12/24/genesis-studio-una-ide-para-ajgenesis.aspx</a>

Los dejo, Saludos.]]></description> 
	            </item><item> 
	                <title>Ya soy Oracle PL/SQL Developer Certified Associate</title> 
	                <link>http://blogs.synnax.net/jose.franco/?p=452</link> 
	                <description><![CDATA[No me quejo, certifique en Oracle... Asi que imaginen mi alegria!

<a href="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/06/dsc00256.jpg"><img class="alignleft size-medium wp-image-451" title="dsc00256" src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/06/dsc00256-225x300.jpg" alt="" width="225" height="300" /></a>

Saludos, sigo trabajando que estoy en epocas de bombas... y no hay mucho tiempo ni para respirar.

El jueves se pone productiva una aplicacion, con la arquitectura que implemente, y el generedo que arme, asi que espero que todo este andando bien.]]></description> 
	            </item><item> 
	                <title>JavaOne Hands-on Labs 2008</title> 
	                <link>http://blogs.synnax.net/jose.franco/2008/06/01/javaone-hands-on-labs-2008/</link> 
	                <description><![CDATA[No estoy mucho en lo que se refiere a Java, programe muy poco, pero el otro dia buscando alguno que otro tutorial me cruce con la pagina de sun que tiene varios "Hands-On Labs"

Les dejo el link <a href="http://developers.sun.com/learning/javaoneonline/j1labs2008.jsp?track=1&amp;yr=2008">http://developers.sun.com/learning/javaoneonline/j1labs2008.jsp?track=1&amp;yr=2008</a>

Pueden encontrar las siguientes cosas:
- Java Performance Tuning
- HotSpot JVM Trouble Shooting Tools In a Nutshell
- Adding Convergence of media to your Java EE Application using NetBeans IDE and Sailfin
- Metro: Try Out Simple and Interoperable Web Services
- Adding performance to your SIP based applications
- Develop an AJAX Portlet with Netbeans IDE, OpenPortal and Google Web Toolkit
- Plug into GlassFish V3 with JavaServer Faces and jMaki
- Building Rich Web Applications Using jMaki
- How to Build Ajax enabled Web Applications Using Project Woodstock
- Dynamic Service Composition with Open ESB: JavaOne Poll Application
- Orchestration of Web Services, Using WS-BPEL
- Building Secure, Reliable, Transactional SOA Applications Using Open ESB
- Query Continuous Data streams Using OpenESB's Intelligent Event Processor
- Create Your Own Mobile Game
- Build Flickr Client On Mobile Phones
- Building Interactive TV Applications for the OCAP Platform
- Getting started with the JavaFX SDK
- Project Darkstar
- Developing Grid Applications with Compute Server Technology
- The Real-Time Java Programming Challenge: How to Build Real-Time Solutions for Real-World Devices
- Developing Distributed Wireless Applications Using Sun Small Programmable Object Technology (Sun SPOT) Systems
- Developing (J)Ruby on Rails Applications with the NetBeans IDE
- JavaFX Script Exposed Live with NetBeans IDE
- Building and Consuming SOAP and RESTful Web Services with NetBeans IDE
- Isolating Performance Bottlenecks and Memory Leaks With the NetBeans Profiler
- Exposing the Depth JDK 7.0 Applications with DTrace
- OpenOffice.org Extensions with NetBeans
Saludos.]]></description> 
	            </item><item> 
	                <title>Intento de Generación de Código con AjGenesis (2)</title> 
	                <link>http://blogs.synnax.net/jose.franco/2008/06/01/intento-de-generacion-de-codigo-con-ajgenesis-2/</link> 
	                <description><![CDATA[<span style="color: #0d0d0d;">Acá esta la última modificación
</span>

<a href="http://swap.synnax.net/download.php?synx.1994-Tools.rar"><span style="text-decoration: underline; color: #0d0d0d;">http://swap.synnax.net/download.php?synx.1994-Tools.rar</span></a><span style="color: #0d0d0d;">
</span>

<span style="color: #0d0d0d;">Esto va en c:\Projects
Saludos, ya esta versión la voy a dejar de lado… voy a hacer pruebas para usar nhybernate y castle.</span>]]></description> 
	            </item><item> 
	                <title>Intento de Generación de Código con AjGenesis</title> 
	                <link>http://blogs.synnax.net/jose.franco/2008/06/01/intento-de-generacion-de-codigo-con-ajgenesis/</link> 
	                <description><![CDATA[<span style="font-size: 10pt; font-family: Verdana;">Estuve varios  días alejado, porque estuve acostumbrándome a la metodología de trabajo, de desarrollo, y demás factores al nuevo cliente, y haciendo pruebas para cambiar un generador de código que tenían con CodeDom a AjGenesis.
</span>

<span style="font-size: 10pt; font-family: Verdana;">La Arquitectura que tenemos, no sé si llamarla "Arquitectura", solo tenemos un ServiceLocator, que tenemos todas mapeadas las entidades de spring.net, con una implementación de Ado para cada una, así es posible en usarla en distintos motores. Estas entidades son más un mapeo de la tabla, no posee ni conceptos de hijos, nietos ni nada similar, cosa que voy a intentar madurar a futuro, pero ya la próxima voy a estar implementando nhybernate.</span><span style="font-size: 9pt; font-family: Arial;">
</span>

<a href="http://swap.synnax.net/download.php?synx.5307-Alpha0.2.zip" target="_blank"><span style="font-size: 10pt; font-family: Verdana;">http://swap.synnax.net/download.php?synx.5307-Alpha0.2.zip</span></a><span style="font-size: 10pt; font-family: Verdana;">
</span><span style="font-size: 9pt; font-family: Arial;">
</span>

<span style="font-size: 10pt; font-family: Verdana;"> Una vez instalado, van a la carpeta <strong>C:\Projects\Tools (No modifiquen el path en la instalación)</strong></span><span style="font-size: 9pt; font-family: Arial;">
</span>

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/06/060108-1839-intentodege1.jpg" alt="" /><span style="font-size: 9pt; font-family: Arial;">
</span>

<span style="font-size: 10pt; font-family: Verdana;"> Ejecutamos:</span><span style="font-size: 9pt; font-family: Arial;">
</span>

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/06/060108-1839-intentodege2.jpg" alt="" /><span style="font-size: 9pt; font-family: Arial;">
</span>

<span style="font-size: 10pt; font-family: Verdana;"> Nos abre nuestro gestor de proyectos</span><span style="font-size: 9pt; font-family: Arial;">
</span>

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/06/060108-1839-intentodege3.jpg" alt="" /><span style="font-size: 9pt; font-family: Arial;">
</span>

<span style="font-size: 10pt; font-family: Verdana;">Podemos agregar nuevas entidades a los existen, tanto la eliminación de Proyectos y entidades, se hace a mano por ahora.</span><span style="font-size: 9pt; font-family: Arial;">
</span>

<span style="font-size: 10pt; font-family: Verdana;">Generemos un nuevo proyecto</span><span style="font-size: 9pt; font-family: Arial;">
</span>

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/06/060108-1839-intentodege4.jpg" alt="" /><span style="font-size: 9pt; font-family: Arial;">
</span>

<span style="font-size: 10pt; font-family: Verdana;">Ingresamos los datos</span><span style="font-size: 9pt; font-family: Arial;">
</span>

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/06/060108-1839-intentodege5.jpg" alt="" /><span style="font-size: 9pt; font-family: Arial;">
</span>

<span style="font-size: 10pt; font-family: Verdana;">En directory, no generar directorios con espacios, lo mismo sucede con el NameSpace. La Connecion String, también tiene que ser válida, así se conecta a base de datos y mapea.</span><span style="font-size: 9pt; font-family: Arial;">
</span>

<span style="font-size: 10pt; font-family: Verdana;">Y el provider, en esta versión tiene implementadno  Sql Server y Oracle (el tema que el template que deje es el que uso en el cliente, y hay ciertas referencias que no van a andar, pero modificando el helper ya estaria, prometo hacer un template neutro para la semana que viene)</span><span style="font-size: 9pt; font-family: Arial;">
</span>

<span style="font-size: 10pt; font-family: Verdana;"> Aceptamos, retornamos en la página anterior, y presionamos botón derecho sobre "WebCTC" (si nos basamos en los datos que ingrese anteriormente).</span><span style="font-size: 9pt; font-family: Arial;">
</span>

<span style="font-size: 10pt; font-family: Verdana;"> <img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/06/060108-1839-intentodege6.jpg" alt="" /></span><span style="font-size: 9pt; font-family: Arial;">
</span>

<span style="font-size: 10pt; font-family: Verdana;">Vamos a Ver Entidades, nos va a aparecer un listado vacio</span><span style="font-size: 9pt; font-family: Arial;">
</span>

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/06/060108-1839-intentodege7.jpg" alt="" /><span style="font-size: 9pt; font-family: Arial;">
</span>

<span style="font-size: 10pt; font-family: Verdana;">Vamos a la opción de "Crear", los literales están mal.. ya que es una versión muy alfa.. </span><span style="font-size: 9pt; font-family: Arial;">
</span>

<span style="font-size: 10pt; font-family: Verdana;"> <img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/06/060108-1839-intentodege8.jpg" alt="" /></span><span style="font-size: 9pt; font-family: Arial;">
</span>

<span style="font-size: 10pt; font-family: Verdana;"> Nos aparece las tablas a mapear, yo voy a mapear un par de Tablas, y le indico que me elimine el prefijo "AG_" (Así me genera la class Contractor, en vez de Ag_contractor), clickeamos en "Generar".</span><span style="font-size: 9pt; font-family: Arial;">
</span>

<span style="font-size: 10pt; font-family: Verdana;">Ya nos aparece en la lista de entidades </span><span style="font-size: 9pt; font-family: Arial;">
</span>

<span style="font-size: 10pt; font-family: Verdana;"> <img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/06/060108-1839-intentodege9.jpg" alt="" /></span><span style="font-size: 9pt; font-family: Arial;">
</span>

<span style="font-size: 10pt; font-family: Verdana;">Si hacen doble clic sobre los elementos les va a levantar el Xml</span><span style="font-size: 9pt; font-family: Arial;">
</span>

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/06/060108-1839-intentodege10.jpg" alt="" /><span style="font-size: 9pt; font-family: Arial;">
</span>

<span style="font-size: 10pt; font-family: Verdana;"> Cerramos la ventana, volvemos a la ventana anterior</span><span style="font-size: 9pt; font-family: Arial;">
</span>

<span style="font-size: 10pt; font-family: Verdana;">Le doy en Generar código a CTC</span><span style="font-size: 9pt; font-family: Arial;">
</span>

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/06/060108-1839-intentodege11.jpg" alt="" /><span style="font-size: 9pt; font-family: Arial;">
</span>

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/06/060108-1839-intentodege12.jpg" alt="" /><span style="font-size: 9pt; font-family: Arial;">
</span>

<span style="font-size: 10pt; font-family: Verdana;">Abre una consola que ejecuta, el AjGenesis para la generación del código con mis entidades, y nant para compilar todo. Si todo salió bien van a ver un Build Succeded.</span><span style="font-size: 9pt; font-family: Arial;">
</span>

<span style="font-size: 10pt; font-family: Verdana;">Presionan una tecla, y les va a abrir la carpeta de generación:</span><span style="font-size: 9pt; font-family: Arial;">
</span>

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/06/060108-1839-intentodege13.jpg" alt="" /><span style="font-size: 9pt; font-family: Arial;">
</span>

<span style="font-size: 10pt; font-family: Verdana;">En la carpeta Assemblys, están todas las dll's generadas.
Default.build, es la task de Nant.
Como verán, tiene spring, genera una capa de dao, y una implementación de sqlserver y otra de oracle, aunque la de oracle no esta implementada… solo es una copia del Sql server.</span><span style="font-size: 9pt; font-family: Arial;">
</span>

<span style="font-size: 10pt; font-family: Verdana;">En la capa de Services, ya mapea los ojos para spring</span><span style="font-size: 9pt; font-family: Arial;">
</span>

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/06/060108-1839-intentodege14.jpg" alt="" /><span style="font-size: 9pt; font-family: Arial;">
</span>

<span style="font-size: 10pt; font-family: Verdana;"> <img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/06/060108-1839-intentodege15.jpg" alt="" /></span><span style="font-size: 9pt; font-family: Arial;">
</span>

<span style="color: #1f497d;"> </span><span style="font-size: 10pt; font-family: Verdana; color: black;">Y también nos genero un proyecto de prueba llamado <strong>WebExample</strong></span><span style="font-size: 9pt; font-family: Arial;">
</span>

<span style="font-size: 10pt; font-family: Verdana; color: black;">Van A ver que me genera aspx ({ENTIDAD}_List.aspx) y llama al Service Locator</span><span style="font-size: 9pt; font-family: Arial;">
</span>

<span style="font-size: 10pt; font-family: Verdana; color: black;"> <img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/06/060108-1839-intentodege16.jpg" alt="" /></span><span style="font-size: 9pt; font-family: Arial;">
</span>

<span style="font-size: 10pt; font-family: Verdana; color: black;"> Es un ejemplo muy simple, pero nos deja ver si anda todo bien, levanto el proyecto y ejecuto alguno de los aspx</span><span style="font-size: 9pt; font-family: Arial;">
</span>

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/06/060108-1839-intentodege17.jpg" alt="" /><span style="font-size: 9pt; font-family: Arial;">
</span>

<span style="font-size: 10pt; font-family: Verdana; color: black;"> Y Listo, esta andando… </span><span style="font-size: 9pt; font-family: Arial;">
</span>

<span style="font-size: 10pt; font-family: Verdana; color: black;">Al menos esto, yo ya le di uso práctico y lo use para un desarrollo, a medida que lo vaya usando, seguro que surgirán numerosos cambios</span><span style="font-size: 9pt; font-family: Arial;">
</span>

<span style="font-size: 10pt; font-family: Verdana; color: black;"> <img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/06/060108-1839-intentodege18.jpg" alt="" /></span><span style="font-size: 9pt; font-family: Arial;">
</span>

<span style="color: #1f497d;"> </span><span style="font-size: 9pt; font-family: Arial;">
</span>]]></description> 
	            </item><item> 
	                <title>Ya soy MCITP Database Developer!</title> 
	                <link>http://blogs.synnax.net/jose.franco/2008/05/19/ya-soy-mcitp-database-developer/</link> 
	                <description><![CDATA[<p>Hace un rato, conseguí mi certificación en MCITP Database Developer, estoy más que feliz, bueno ahora sigo trabajando.
</p><p><img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/05/051908-1714-yasoymcitpd1.png" alt=""/></p>]]></description> 
	            </item><item> 
	                <title>Consumir Web Services con Spring.net</title> 
	                <link>http://blogs.synnax.net/jose.franco/2008/05/17/consumir-web-services-con-springnet/</link> 
	                <description><![CDATA[Bueno, el ejemplo que arme anteriormente, lo publique con el IIS en un directorio virtual llamado <strong>WSUserAuthentication
</strong>

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/05/051808-0014-consumirweb1.png" alt="" />

Ahora, vamos a armar un cliente que consuma este WS, <strong>sin una Web Refence</strong>, sino por spring.net.

Generamos un nuevo proyecto web, tenemos que refenciar a las librerías de Spring, como también a la interfaz de nuestro Web Services y la capa que genere como "TransferObjects", que tiene el objeto que va a recibir el cliente.

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/05/051808-0014-consumirweb2.png" alt="" />

Habría que pensar cómo vamos a hacer, para versiones posteriores,  el control de las versiones de los asemblys, en caso de hacer modificaciones en nuestro WS, una alternativa seria colocarlos en la GAC, para olvidarnos de tener que copiar en todos los desarrollos que llamen al WS, la última versión en caso de necesitarla.

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/05/051808-0014-consumirweb3.png" alt="" />

En mi caso, genero una carpeta de Configuración, con un Xml de los objetos que consumo en spring, en este caso

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;">&lt;?</span><span style="color: maroon;">xml</span><span style="color: blue;">
</span><span style="color: red;">version</span><span style="color: blue;">=</span>"<span style="color: blue;">1.0</span>"<span style="color: blue;">
</span><span style="color: red;">encoding</span><span style="color: blue;">=</span>"<span style="color: blue;">utf-8</span>"<span style="color: blue;"> ?&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;">&lt;</span><span style="color: maroon;">objects</span><span style="color: blue;">
</span><span style="color: red;">xmlns</span><span style="color: blue;">=</span>"<span style="color: blue;">http://www.springframework.net</span>"<span style="color: blue;"> &gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">description</span><span style="color: blue;">&gt;</span>An example that demonstrates simple IoC features.<span style="color: blue;">&lt;/</span><span style="color: maroon;">description</span><span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;!--</span><span style="color: green;"> Web Services </span><span style="color: blue;">--&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">object</span><span style="color: blue;">
</span><span style="color: red;">id</span><span style="color: blue;">=</span>"<span style="color: blue;">UsuarioWS</span>"<span style="color: blue;">
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;">
</span><span style="color: red;">type</span><span style="color: blue;">=</span>"<span style="color: blue;">Spring.Web.Services.WebServiceProxyFactory, Spring.Services</span>"<span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">property</span><span style="color: blue;">
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;">
</span><span style="color: red;">name</span><span style="color: blue;">=</span>"<span style="color: blue;">ServiceUri</span>"<span style="color: blue;">
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;">
</span><span style="color: red;">value</span><span style="color: blue;">=</span>"<span style="color: blue;">http://localhost/WSUserAuthentication/UserServices.asmx</span>"<span style="color: blue;">
</span></span>

<span style="font-size: 10pt; font-family: Courier New; color: blue;"> /&gt;
</span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">property</span><span style="color: blue;">
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;">
</span><span style="color: red;">name</span><span style="color: blue;">=</span>"<span style="color: blue;">ServiceInterface</span>"<span style="color: blue;">
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;">
</span><span style="color: red;">value</span><span style="color: blue;">=</span>"<span style="color: blue;">Synnax.Core.WS.UserAuthentication.Entitys.IUserService, Synnax.Core.WS.UserAuthentication.Entitys</span>"
</span>

<span style="font-size: 10pt; font-family: Courier New; color: blue;"> /&gt;
</span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;/</span><span style="color: maroon;">object</span><span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;">&lt;/</span><span style="color: maroon;">objects</span><span style="color: blue;">&gt;
</span></span>

<span style="color: black;">Genero un objeto, llamado "UsuarioWS", que es del tiplo del WebServiceProxyFactory, que especificamos la ServiceUri que es donde tenemos corriendo nuestro WS, con el servicio que insumimos, y la interfaz que implementa.
</span>

<span style="color: black;">Definimos el contexto del spring, y la configuracion de los objetos.
</span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;">&lt;</span><span style="color: maroon;">configuration</span><span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">configSections</span><span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">sectionGroup</span><span style="color: blue;">
</span><span style="color: red;">name</span><span style="color: blue;">=</span>"<span style="color: blue;">spring</span>"<span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">section</span><span style="color: blue;">
</span><span style="color: red;">name</span><span style="color: blue;">=</span>"<span style="color: blue;">context</span>"<span style="color: blue;">
</span><span style="color: red;">type</span><span style="color: blue;">=</span>"<span style="color: blue;">Spring.Context.Support.ContextHandler, Spring.Core</span>"<span style="color: blue;">/&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;/</span><span style="color: maroon;">sectionGroup</span><span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;/</span><span style="color: maroon;">configSections</span><span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">appSettings</span><span style="color: blue;">/&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">connectionStrings</span><span style="color: blue;">/&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">system.web</span><span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">compilation</span><span style="color: blue;">
</span><span style="color: red;">debug</span><span style="color: blue;">=</span>"<span style="color: blue;">false</span>"<span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">assemblies</span><span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">add</span><span style="color: blue;">
</span><span style="color: red;">assembly</span><span style="color: blue;">=</span>"<span style="color: blue;">Spring.Core, Version=1.1.2.20125, Culture=neutral, PublicKeyToken=65E474D141E25E07</span>"<span style="color: blue;">/&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">add</span><span style="color: blue;">
</span><span style="color: red;">assembly</span><span style="color: blue;">=</span>"<span style="color: blue;">Spring.Services, Version=1.1.2.20125, Culture=neutral, PublicKeyToken=65E474D141E25E07</span>"<span style="color: blue;">/&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">add</span><span style="color: blue;">
</span><span style="color: red;">assembly</span><span style="color: blue;">=</span>"<span style="color: blue;">Spring.Web, Version=1.1.2.20125, Culture=neutral, PublicKeyToken=65E474D141E25E07</span>"<span style="color: blue;">/&gt;&lt;/</span><span style="color: maroon;">assemblies</span><span style="color: blue;">&gt;&lt;/</span><span style="color: maroon;">compilation</span><span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">authentication</span><span style="color: blue;">
</span><span style="color: red;">mode</span><span style="color: blue;">=</span>"<span style="color: blue;">Windows</span>"<span style="color: blue;">/&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;/</span><span style="color: maroon;">system.web</span><span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">spring</span><span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">context</span><span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">resource</span><span style="color: blue;">
</span><span style="color: red;">uri</span><span style="color: blue;">=</span>"<span style="color: blue;">~/Configuration/Objects.xml</span>"<span style="color: blue;">/&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;/</span><span style="color: maroon;">context</span><span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;/</span><span style="color: maroon;">spring</span><span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;">&lt;/</span><span style="color: maroon;">configuration</span><span style="color: blue;">&gt;</span></span><span style="color: black;">
</span>

<span style="color: black;">Y desde la aplicación
</span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: teal;">IUserService</span> _ws = (<span style="color: teal;">IUserService</span>) <span style="color: teal;">ContextRegistry</span>.GetContext().GetObject(<span style="color: maroon;">"UsuarioWS"</span>);
</span>

<span style="font-size: 10pt; font-family: Courier New;">lblMessage.Text = _ws.Test();
</span>

Con nuestro metodo, Test, como devuelve un string, no hay que castearlo, encambio en el otro metodo tendriamos que estar usando, los objetos de Transfer Objects.

<span style="color: black;">Les dejo, el ejemplo para que lo vean:
</span>

<a href="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/05/synnaxcorewswebclientexample.zip">Consumiendo Web Services con Spring</a>

<span style="color: black;">Sepan disculpar, los horrores de ortografía, ya que lo hice rapidito a este post, Saludos!</span>]]></description> 
	            </item><item> 
	                <title>Correcciones al artículo de spring.net</title> 
	                <link>http://blogs.synnax.net/jose.franco/2008/05/17/correcciones-al-articulo-de-springnet/</link> 
	                <description><![CDATA[Gente, seguramente a los que probaron los que postee de spring.net, al testear el Web Method…

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/05/051708-2230-correccione1.png" alt="" />
Les habrá tirado esto
<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/05/051708-2230-correccione2.png" alt="" />

El error, fue muy tonto, ya que hice el ejemplo rápido, y no controle todo, fue un error de parte mía…  primero y principal, no es el mismo método declarado en la interfaz, nos tendría que quedar algo así

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/05/051708-2230-correccione3.png" alt="" />

Y ahora si la salida, es coherente

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/05/051708-2230-correccione4.png" alt="" />

Este ejemplo, no tiene nada de código, ya que fue algo muy rápido, igual lo subí para que lo puedan bajar desde acá

<a href="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/05/synnaxcorews.zip">Ejemplo Spring.Net</a>]]></description> 
	            </item><item> 
	                <title>Ya soy Trainer!</title> 
	                <link>http://blogs.synnax.net/jose.franco/2008/05/17/ya-soy-trainer/</link> 
	                <description><![CDATA[Hoy fue de esos días, que uno no espera encontrar tal sorpresa… como un mail que mi inscripción aplicó para el programa MCT del 2008

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/05/051708-1903-yasoytraine1.png" alt="" />

Hace unos días me había llegado una propuesta para dar un Workshop de Workflow Foundation, pero no estaba seguro por los tiempos, así que pensé que se iba a dilatar un poco el tema del MCT, pero realmente me alegró el día, así que ya me verán en algún instituto brindando parte de mis conocimientos y experiencias,  principalmente en  todo lo que es referente a aplicaciones Web.

No se muchos muestran su transcript, pero acá les dejo para que chusmeen un poco (<a href="http://swap.synnax.net/download.php?synx.373-JOEMS_Learning_Transcript.pdf">Acá</a> ), hace poco que me certifique en Microsoft, a pesar que tenía tiempo de experiencia, pero le tenía un poco de miedo a los exámenes, hasta que por fin me decidí… y creo que fue la decisión correcta, ya que además de tener un aval de conocimiento, fue bueno medir  y poner a prueba los mismos.
Bueno, solo quería compartir mi alegría… esta noche posteo algo de Spring.net,  y también algo de Unit Testing, por ahora les dejo saludos, y disfruten el finde!]]></description> 
	            </item><item> 
	                <title>Data para Arquitectos</title> 
	                <link>http://blogs.synnax.net/jose.franco/2008/05/16/data-para-arquitectos/</link> 
	                <description><![CDATA[<span style="color: black;">Les dejo a aquellas personas, que le interese el Rol de Arquitecto, pueden  subscrirse a <strong>The Architecture Journal</strong>, a mi me está llegando la versión impresa, y gratis!
</span><a href="https://www.msarchitecturejournal.com">https://www.msarchitecturejournal.com</a>

<img src="https://www.msarchitecturejournal.com/images/locker.jpg" alt="" width="171" height="118" />

O pueden bajarlas en pdf desde acá
<a href="http://msdn.microsoft.com/en-us/arcjournal/bb201656.aspx">http://msdn.microsoft.com/en-us/arcjournal/bb201656.aspx</a>

Saludos!]]></description> 
	            </item><item> 
	                <title>AjGenesis, NAnt,  TDD Y el Cooperator Framework</title> 
	                <link>http://blogs.synnax.net/jose.franco/2008/05/14/ajgenesis-nant-tdd-y-el-cooperator-framework/</link> 
	                <description><![CDATA[<p>Gente les dejo una lista de artículos de AjGenesis, NAnt,  TDD Y el Cooperator Framework, esto esta mas relacionado a la arquitectura y generación de códigos para .NET (Van a ver que es todo del mismo blog, así que es un sitio para prestarle atención semanalmente, ya que suele publicar cosas interesantes Carlos) .
</p><p><strong>Introducción a NAnt<br/></strong>NAnt es una herramienta de código abierto para automatizar procesos de construcción de software. Una build tool. Se puede extender mediante clases Tasks, no mediante comandos Shell, como la mayoría de estas herramientas. Esta característica la hace cross-platform. Los archivos de configuración se basan en sintaxis XML, tienen extensión .build y  están compuestos por cuatro tipos [...]<br/><a href="http://carlossantos.wordpress.com/2007/10/15/introduccion-a-nant/" target="_blank">http://carlossantos.wordpress.com/2007/10/15/introduccion-a-nant/</a>
	</p><p><strong>Cómo generar código con AjGenesis sirviéndonos de NAnt - Parte I<br/></strong>Ya les conté someramente qué es NAnt, ahora…¿qué es AjGenesis?…AjGenesis es un generador de artefactos de texto de código abierto.  Para más información dirigirse a <a href="http://www.ajlopez.com/ajgenesis" target="_blank">http://www.ajlopez.com/ajgenesis</a> Puede bajarse el generador, desde AjGenesis-0.5, ejemplos desde AjGenesisExamples.zip, más ejemplos en AjGenesisExamples3.zip, documentación en <a href="http://www.ajlopez.net/ajgenesis/documentation.php" target="_blank">http://www.ajlopez.net/ajgenesis/documentation.php</a> AjGenesis se basa en un modelo soportado en XML y plantillas.Para utilizar este generador sólo [...]<br/><a href="http://carlossantos.wordpress.com/2007/10/30/como-generar-codigo-con-ajgenesis-sirviendonos-de-nant/" target="_blank">http://carlossantos.wordpress.com/2007/10/30/como-generar-codigo-con-ajgenesis-sirviendonos-de-nant/</a>
	</p><p><strong>Cómo generar código con AjGenesis sirviéndonos de NAnt - Parte II<br/></strong>Sigo en la misma linea de la nota anterior. Ahora la idea es generar una aplicación web completa en <a href="http://VB.NET" target="_blank">VB.NET</a> para Visual Studio 2005, trabajando con SQL Server 2005. Esta vez subo un conjunto de archivos somo ejemplo para que quien quiera haga sus pruebas. Los archivos pueden bajarse desde este link SyP.zip  Pero para esto [...]<br/><a href="http://carlossantos.wordpress.com/2007/11/17/como-generar-codigo-con-ajgenesis-sirviendonos-de-nant-parte-ii/" target="_blank">http://carlossantos.wordpress.com/2007/11/17/como-generar-codigo-con-ajgenesis-sirviendonos-de-nant-parte-ii/</a>
	</p><p><strong>Extendiendo el Modelo, AjGenesis y NAnt<br/></strong>Para quien no tenga experiencia en desarrollar software con AjGenesis, recomiendo leer Introducción a NAnt, Cómo generar código con AjGenesis sirviéndonos de NAnt - Parte I y Cómo generar código con AjGenesis sirviéndonos de NAnt - Parte II. El código utilizado en esta nota puede descargarse desde acá. Partiendo de ejemplos similares que usé en las notas [...]<br/><a href="http://carlossantos.wordpress.com/2007/11/23/extendiendo-el-modelo-ajgenesis-y-nant/" target="_blank">http://carlossantos.wordpress.com/2007/11/23/extendiendo-el-modelo-ajgenesis-y-nant/</a>
	</p><p><strong>NAnt, lo que quedó en el camino<br/></strong>Después de las pruebas que fuí haciendo con NAnt, jugando con AjGenesis, encontré la forma de automatizar algunas tareas que me parece bueno compartir acá. Quiero agradecer a Ángel "Java" López y a Claudio Meschini que en más de una ocasión me asistieron con sus generosos aportes, en el marco del Grupo Google CodeGeneration donde nos [...]<br/><a href="http://carlossantos.wordpress.com/2007/11/24/nant-lo-que-qued-en-el-camino/" target="_blank">http://carlossantos.wordpress.com/2007/11/24/nant-lo-que-qued-en-el-camino/</a>
	</p><p><strong>Introducción a Cooperator Framework<br/></strong>Cooperator es otro Generador de Código, con otras características. El proyecto está pensado y desarrollado fundamentalmente por Daniel Calvin y Eugenio Serrano. Si bien Cooperator está en evolución, ya hay mucha gente que está desarrollando software de alta calidad con esta herramienta y entre ellos me cuento. Hay muy buen material de este proyecto, les recomiendo algunos links [...]<br/><a href="http://carlossantos.wordpress.com/2007/11/24/introduccin-a-cooperator-framework/" target="_blank">http://carlossantos.wordpress.com/2007/11/24/introduccin-a-cooperator-framework/</a>
	</p><p><strong>AjGenesis y Preservación de Código<br/></strong>Una práctica fundamental en la Generacón Automática de Código es la Preservación del Código No Generado. En otras palabras que entre un ciclo de generación y el siguiente no perdamos el código que hayamos escrito manualmente. Para esto AjGenesis prevee un mecanismo muy sencillo y seguro. Este se basa en pequeñas modificaciones a los archivos .ajg y [...]<br/><a href="http://carlossantos.wordpress.com/2007/12/31/ajgenesis-y-preservacion-de-codigo/" target="_blank">http://carlossantos.wordpress.com/2007/12/31/ajgenesis-y-preservacion-de-codigo/</a>
	</p><p><strong>Cooperator, un ejemplo sencillo para comenzar<br/></strong>Para quien no conoce nada acerca de Cooperator Framework le recomiendo leer mi post anterior Introducción a Cooperator Framework. Comencemos por descargar la herramienta, aquí encontramos el último release de Cooperator Modeler, al finalizar la descarga, descomprimimos el archivo y podremos ver el ejecutable de nombre CooperatorModeler.exe, con un doble click veremos lo su interfaz gráfica:   La prueba [...]<br/><a href="http://carlossantos.wordpress.com/2008/02/02/cooperator-un-ejemplo-sencillo-para-comenzar/" target="_blank">http://carlossantos.wordpress.com/2008/02/02/cooperator-un-ejemplo-sencillo-para-comenzar/</a>
	</p><p> <strong>Cooperator, modificando el modelo<br/></strong>Otra vez acá. Basado en el ejemplo del post anterior, voy a introducir modificaciones al modelo original con la idea de ver que tan fácil es hacerlo y regenerar código. Partimos entonces de la solución generada que pueden descargar desde acá. Supongamos que ahora nos piden que incluyamos un campo Telefono para la tabla Sucursal. Conviene agregar algunos registros [...]<br/><a href="http://carlossantos.wordpress.com/2008/02/05/cooperator-modificando-el-modelo/" target="_blank">http://carlossantos.wordpress.com/2008/02/05/cooperator-modificando-el-modelo/</a>
	</p><p> <strong>TDD… y las cosas, felizmente, no volvieron a ser las mismas…<br/></strong>TDD, Test Driven Development, es una técnica que establece que primero se escriben las pruebas y luego el código del aplicativo. Estas pruebas se efectúan de acuerdo a lo que se espera que haga el aplicativo, es por eso que algunos popes de esta disciplina dicen que practicándola intensivamente podemos prescindir de la documentación ya que [...]<br/><a href="http://carlossantos.wordpress.com/2008/03/12/tdd-y-las-cosas-felizmente-no-volvieron-a-ser-las-mismas/" target="_blank">http://carlossantos.wordpress.com/2008/03/12/tdd-y-las-cosas-felizmente-no-volvieron-a-ser-las-mismas/</a>  
</p><p><strong>TDD, ¿por dónde empezar?<br/></strong>Este post es continuación de este otro. Supongamos que tenemos una aplicación que necesita recuperar una cadena. El Test que acá vamos a desarrollar es probar la recuperación de esta cadena. Ya tendríamos que tener instalada la última versión de NUnit. Sino, podemos descargarla desde <a href="http://www.nunit.org" target="_blank">http://www.nunit.org</a> e instalarla. En el marco de nuestra solución vamos a agregar un [...]<br/><a href="http://carlossantos.wordpress.com/2008/03/16/tdd-por-dnde-empezar/" target="_blank">http://carlossantos.wordpress.com/2008/03/16/tdd-por-dnde-empezar/</a>
	</p><p> <strong>TDD, ahora Refactoring.<br/></strong>Este post es continuación y cierre de estos dos: TDD… y las cosas, felizmente, no volvieron a ser las mismas… TDD, ¿por dónde empezar? De acuerdo a lo que expresé en los post anteriores, TDD se se lleva a cabo sobre ciclos. Al finalizar cada ciclo TDD, la técnica se completa con la práctica de Refactoring. Refactoring es la [...]<br/><a href="http://carlossantos.wordpress.com/2008/04/13/tdd-ahora-refactoring/" target="_blank">http://carlossantos.wordpress.com/2008/04/13/tdd-ahora-refactoring/</a>
	</p><p> <strong>TDD, otros atributos de NUnit<br/></strong>Esta nota viene a cerrar una serie de tres posts anteriores TDD… y las cosas, felizmente, no volvieron a ser las mismas…, TDD, por dónde empezar y TDD, ahora Refactoring. En este caso, a pedido de Luis Petek en un comentario al tercer post de la serie, explico algunos otros atributos de NUnit que podrían ser de utilidad. Así como [...]<br/><a href="http://carlossantos.wordpress.com/2008/04/15/tdd-otros-atributos-de-nunit/" target="_blank">http://carlossantos.wordpress.com/2008/04/15/tdd-otros-atributos-de-nunit/</a>
	</p><p> Saludos.
</p>]]></description> 
	            </item><item> 
	                <title>Web Services usando spring.net</title> 
	                <link>http://blogs.synnax.net/jose.franco/2008/05/14/web-services-usando-springnet/</link> 
	                <description><![CDATA[Bueno, acá publico un ejemplo simple de un Web Servicess que implementa spring, para levantar servicios virtuales, con una capa de datos también por inyección de código.

Son mis primeras experiencias, así que las quiero compartir con ustedes, las capas que tengo son:

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/05/051408-0422-webservices1.png" alt="" />

Ahora les explico, no tiene gran funcionalidad este ejemplo, ya que solo lo hice para compartir… y no es para ningún desarrollo real.

Tengo el

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/05/051408-0422-webservices2.png" alt="" />

Sería el CommonTypes, el objeto que voy a transferir, para este caso no tiene mucho sentido, pero más adelante voy a mostrar como consumir un WS por spring.Net, y en este caso si es útil para saber que voy a recibir.

Así que es una clase sin nada en particular

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/05/051408-0422-webservices3.png" alt="" />

…..

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/05/051408-0422-webservices4.png" alt="" />

En el DAO, defino las interfaces, así puedo tener un Sql Implementation, Oracle, Xml, lo que quisiera realmente, no hay ningún secreto por ahora.

Ahora veamos las otras dos capas que nos quedan

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/05/051408-0422-webservices5.png" alt="" />

En Entitys, es una interfaz del WebServices… en este caso, es muy simple

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/05/051408-0422-webservices6.png" alt="" />

Y en ServiceImplementation, simplemente hay que implementar y codificarlo.

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/05/051408-0422-webservices7.png" alt="" />

Bueno ahora vamos a ver, mas sobre este UserService…

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/05/051408-0422-webservices8.png" alt="" />

Generamos  estas propiedades, para asignarle por spring, una instancia del DAO, podría ser de sql, oracle, o lo que quisieran, mientras implementaran la interfaz … Eso es lo que ofrece spring.net

En nuestro método, usamos  este DAO que asignamos, para traer "x" dato.

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/05/051408-0422-webservices9.png" alt="" />

Ahora, solo nos falta configurar el WebServices.

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/05/051408-0422-webservices10.png" alt="" />

Generen, una carpeta "X", con un Xml de configuración, en mi caso "Configuration", y "webServices.xml".

En este mismo, tenemos que hacer todo el mapping

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;">&lt;?</span><span style="color: maroon;">xml</span><span style="color: blue;">
</span><span style="color: red;">version</span><span style="color: blue;">=</span>"<span style="color: blue;">1.0</span>"<span style="color: blue;">
</span><span style="color: red;">encoding</span><span style="color: blue;">=</span>"<span style="color: blue;">utf-8</span>"<span style="color: blue;"> ?&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;">&lt;</span><span style="color: maroon;">objects</span><span style="color: blue;">
</span><span style="color: red;">xmlns</span><span style="color: blue;">=</span>"<span style="color: blue;">http://www.springframework.net</span>"<span style="color: blue;"> &gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">description</span><span style="color: blue;">&gt;</span>Servicios Expuestos<span style="color: blue;">&lt;/</span><span style="color: maroon;">description</span><span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">object</span><span style="color: blue;">
</span><span style="color: red;">id</span><span style="color: blue;">=</span>"<span style="color: blue;">UserServiceAsmx</span>"<span style="color: blue;">
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;">
</span><span style="color: red;">type</span><span style="color: blue;">=</span>"<span style="color: blue;">Synnax.Core.WS.UserAuthentication.ServiceImplementation.UserService, Synnax.Core.WS.UserAuthentication.ServiceImplementation</span>"<span style="color: blue;"> &gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">property</span><span style="color: blue;">
</span><span style="color: red;">name</span><span style="color: blue;">=</span>"<span style="color: blue;">IUser</span>"<span style="color: blue;">
</span><span style="color: red;">ref</span><span style="color: blue;">=</span>"<span style="color: blue;">UserDAO</span>"<span style="color: blue;"> /&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;/</span><span style="color: maroon;">object</span><span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">object</span><span style="color: blue;">
</span><span style="color: red;">id</span><span style="color: blue;">=</span>"<span style="color: blue;">UserDAO</span>"<span style="color: blue;">
</span><span style="color: red;">type</span><span style="color: blue;">=</span>"<span style="color: blue;">Synnax.Core.WS.UserAuthentication.DataAccess.SqlImplementation.UserImpl, Synnax.Core.WS.UserAuthentication.DataAccess.SqlImplementation</span>"<span style="color: blue;"> /&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">object</span><span style="color: blue;">
</span><span style="color: red;">id</span><span style="color: blue;">=</span>"<span style="color: blue;">UserServices</span>"<span style="color: blue;">
</span><span style="color: red;">type</span><span style="color: blue;">=</span>"<span style="color: blue;">Spring.Web.Services.WebServiceExporter, Spring.Web</span>"<span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">property</span><span style="color: blue;">
</span><span style="color: red;">name</span><span style="color: blue;">=</span>"<span style="color: blue;">TargetName</span>"<span style="color: blue;">
</span><span style="color: red;">value</span><span style="color: blue;">=</span>"<span style="color: blue;">UserServiceAsmx</span>"<span style="color: blue;">/&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">property</span><span style="color: blue;">
</span><span style="color: red;">name</span><span style="color: blue;">=</span>"<span style="color: blue;">Namespace</span>"<span style="color: blue;">
</span><span style="color: red;">value</span><span style="color: blue;">=</span>"<span style="color: blue;">http://synnax/services/</span>"<span style="color: blue;">/&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">property</span><span style="color: blue;">
</span><span style="color: red;">name</span><span style="color: blue;">=</span>"<span style="color: blue;">Description</span>"<span style="color: blue;">
</span><span style="color: red;">value</span><span style="color: blue;">=</span>"<span style="color: blue;">Web Service de Usuario</span>"<span style="color: blue;">/&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;/</span><span style="color: maroon;">object</span><span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;">&lt;/</span><span style="color: maroon;">objects</span><span style="color: blue;">&gt;
</span></span>

En sí, configuramos un objeto <strong>UserDAO</strong>, que apunta a la implementación del DAO que queremos, en este caso una para SqlServer, generamos un Objeto "<strong>UserServiceAsmx</strong>", que apunta a la implementación del WS, y como verán le asigno la propiedad IUser, que espera una implementación del DAO, en este caso el <strong>UserDAO</strong> que configuramos.

Y por ultimo generamos un "<strong>UserServices</strong>" que como Target tiene nuestro <strong>UserServiceAsmx</strong>, esto va a levantar un .asmx "virtual", en este caso sería un UserServices.asmx.

Bueno, como último paso, hay que configurar el Web.Config.

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;">&lt;</span><span style="color: maroon;">configuration</span><span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;!--</span><span style="color: green;"> Begin - Necesario para Spring.NET </span><span style="color: blue;">--&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">configSections</span><span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">sectionGroup</span><span style="color: blue;">
</span><span style="color: red;">name</span><span style="color: blue;">=</span>"<span style="color: blue;">spring</span>"<span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">section</span><span style="color: blue;">
</span><span style="color: red;">name</span><span style="color: blue;">=</span>"<span style="color: blue;">context</span>"<span style="color: blue;">
</span><span style="color: red;">type</span><span style="color: blue;">=</span>"<span style="color: blue;">Spring.Context.Support.WebContextHandler, Spring.Web</span>"<span style="color: blue;">/&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;/</span><span style="color: maroon;">sectionGroup</span><span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;/</span><span style="color: maroon;">configSections</span><span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New; color: blue;">…
</span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;">&lt;/</span><span style="color: maroon;">configuration</span><span style="color: blue;">&gt;
</span></span>

Esto siempre va, dentro de System.Web

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">system.web</span><span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;!--</span><span style="color: green;"> Begin - Necesario para Spring.NET </span><span style="color: blue;">--&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">httpHandlers</span><span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">add</span><span style="color: blue;">
</span><span style="color: red;">verb</span><span style="color: blue;">=</span>"<span style="color: blue;">*</span>"<span style="color: blue;">
</span><span style="color: red;">path</span><span style="color: blue;">=</span>"<span style="color: blue;">*.asmx</span>"<span style="color: blue;">
</span><span style="color: red;">type</span><span style="color: blue;">=</span>"<span style="color: blue;">Spring.Web.Services.WebServiceHandlerFactory, Spring.Web</span>"<span style="color: blue;">/&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;/</span><span style="color: maroon;">httpHandlers</span><span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">httpModules</span><span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">add</span><span style="color: blue;">
</span><span style="color: red;">name</span><span style="color: blue;">=</span>"<span style="color: blue;">Spring</span>"<span style="color: blue;">
</span><span style="color: red;">type</span><span style="color: blue;">=</span>"<span style="color: blue;">Spring.Context.Support.WebSupportModule, Spring.Web</span>"<span style="color: blue;">/&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;/</span><span style="color: maroon;">httpModules</span><span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;!--</span><span style="color: green;"> End - Necesario para Spring.NET </span><span style="color: blue;">--&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New; color: blue;">…
</span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;">&lt;/</span><span style="color: maroon;">system.web</span><span style="color: blue;">&gt;
</span></span>

Es evidente que hace esto, levanta las peticiones que se hacen para los asmx, y el modulo correspondiente para manejar todo esto.

Y como final, después del nodo de system.web …

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;/</span><span style="color: maroon;">system.web</span><span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;!--</span><span style="color: green;"> Begin - Necesario para Spring.NET </span><span style="color: blue;">--&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">spring</span><span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">context</span><span style="color: blue;">
</span><span style="color: red;">type</span><span style="color: blue;">=</span>"<span style="color: blue;">Spring.Context.Support.WebApplicationContext, Spring.Web</span>"<span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;</span><span style="color: maroon;">resource</span><span style="color: blue;">
</span><span style="color: red;">uri</span><span style="color: blue;">=</span>"<span style="color: blue;">~/Configuration/webServices.xml</span>"<span style="color: blue;">/&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;/</span><span style="color: maroon;">context</span><span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;/</span><span style="color: maroon;">spring</span><span style="color: blue;">&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;"> &lt;!--</span><span style="color: green;"> End - Necesario para Spring.NET </span><span style="color: blue;">--&gt;
</span></span>

<span style="font-size: 10pt; font-family: Courier New;"><span style="color: blue;">&lt;/</span><span style="color: maroon;">configuration</span><span style="color: blue;">&gt;
</span></span>
Le asignamos el archivo de configuración, al contexto que estamos usando.

Levantan, y si tipean el nombre alias que apuntamos la implementación del WS, va a andar todo correctamente:

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/05/051408-0422-webservices11.png" alt="" />

Bueno, eso fue algo rápido, y que no tenía pensando publicarlo hoy, pero alguien me pidió un ejemplo.

Saludos.

PD: No se olviden de meter todas las dependencias de spring.net, sino no va a andar nada! Obvie esos pasos, porque son lógicos.]]></description> 
	            </item><item> 
	                <title>70-441 listo!</title> 
	                <link>http://blogs.synnax.net/jose.franco/2008/05/13/70-441-listo/</link> 
	                <description><![CDATA[<p>No estaba posteando porque estaba preparando el 70-441, ahora solo me falta el 42… y listo, descanso de certificaciones MS por un tiempo, estuve preparando un par de artículos sobre spring.net, este finde los publico, para tener algo de data interesante en el blog. 
</p><p><img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/05/051408-0136-70441listo12.png" alt=""/>
	</p><p>
 </p><p>Saludos.</p>]]></description> 
	            </item><item> 
	                <title>Profesional 5 estrellas,  y ahora se vino  BizTalk…</title> 
	                <link>http://blogs.synnax.net/jose.franco/2008/05/06/profesional-5-estrellas-y-ahora-se-vino-biztalk%e2%80%a6/</link> 
	                <description><![CDATA[<p>Como no tengo tiempo para escribir ningún artículo interesante, solo hago referencia a recursos interesantes.
</p><p>Ya está disponible material del Biztalk…
</p><p><img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/05/050708-0105-profesional1.png" alt=""/>
	</p><p>Link: <a href="http://www.mslatam.com/latam/technet/PCE2/">http://www.mslatam.com/latam/technet/PCE2/</a>
	</p><p>Saludos.</p>]]></description> 
	            </item><item> 
	                <title>Opinión personal sobre las certificaciones...</title> 
	                <link>http://blogs.synnax.net/jose.franco/2008/05/06/opinion-personal-sobre-las-certificaciones/</link> 
	                <description><![CDATA[Les dejo un comentario que hice en la lista de correo de la empresa que trabajo (Thales).

..."<span style="color: #1f497d;">Bueno, por un intento por mantener la lista activa… les dejo unos testking, no sé cuantos de las consultoría ya paso por algún examen, pero sé que muchos dudan y no se atreven, y a veces la justificación es que no dan los tiempos. Los exámenes son simples, siempre y cuando se estudie bien (si se fijan en los libros de MS Press por lo general cada capítulo está hecho para llevar 40min + o -, doy fe que con dos o tres semanas practicando, se aprueba) , a mi me paso que fui la primera vez y fui al muere, me acuerdo que me había sacado 57. Y después ni quería dar otro, pero me arriesgue y después de eso di 7 exámenes sin drama, era como hacer un trámite, mi idea era ser solo MCPD Web, pero termine estudiando para Winforms, y Enterprise.
</span>

<span style="color: #1f497d;">Aparte como esta publicitando Microsoft</span>

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/05/050508-1428-silotuyoest1.png" alt="" width="509" height="391" />

<a href="http://www.microsoft.com/andino/sabemosdeti/">http://www.microsoft.com/andino/sabemosdeti/</a><span style="color: #1f497d;"> "...
</span>

<span style="color: #1f497d;">Los links, los borre porque era un server interno, jaja! Me parece algo lógico, conseguir algo que acredite tus conocimientos, es una inversión en tu carrera profesional. No lo digo de la postura "PRO" Microsoft, lo digo como profesional IT, como logre mis credenciales Microsoft, también estoy haciendo el camino para las Oracle.
</span>

<span style="color: #1f497d;">Es simplemente un comentario! Saludos.</span>]]></description> 
	            </item><item> 
	                <title>Si lo tuyo es TI, una certificación Microsoft habla bien de TI</title> 
	                <link>http://blogs.synnax.net/jose.franco/2008/05/05/si-lo-tuyo-es-ti-una-certificacion-microsoft-habla-bien-de-ti/</link> 
	                <description><![CDATA[<p><img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/05/050508-1428-silotuyoest1.png" alt=""/>
	</p><p><a href="http://www.microsoft.com/andino/sabemosdeti/">http://www.microsoft.com/andino/sabemosdeti/</a>
	</p>]]></description> 
	            </item><item> 
	                <title>La situación del mercado BI</title> 
	                <link>http://blogs.synnax.net/jose.franco/2008/05/03/la-situacion-del-mercado-bi/</link> 
	                <description><![CDATA[Les dejo este excelente artículo, complementando mi post anterior.

<a href="http://informationmanagement.wordpress.com/2008/01/14/la-situacion-del-mercado-bi/">http://informationmanagement.wordpress.com/2008/01/14/la-situacion-del-mercado-bi/</a>

Ahora si los dejo, ya que estoy muy atrasado con los ejercicios de un curso de PMI que estoy haciendo.

Suerte y buen fin de semana.]]></description> 
	            </item><item> 
	                <title>¿Qué es Business Intelligence?</title> 
	                <link>http://blogs.synnax.net/jose.franco/2008/05/03/%c2%bfque-es-business-intelligence/</link> 
	                <description><![CDATA[Bueno, hace una semanas para la empresa que trabajo, me envió a un Workshop de BI sobre Sql Server 2005, ya que piensan que sería interesante complementar mi perfil dentro de lo que es Microsoft, y como me gusta aprender, no tuve ningún tipo de objeción. Así que voy a compartir los conocimientos adquiridos, complementando un poco con la información que encuentro de otras fuentes, como también los de las academias BI de Microsoft.

Pero la primera pregunta es, ¿Qué es BI?
Hay miles de explicaciones, la academia MS de BI comenta lo siguiente:

<p style="text-align: justify"><span style="color: black;">"Los rápidos cambios que se viven en el mercado actual junto a las competencias que se generan cada día, hacen que las empresas no puedan postergar las decisiones relacionadas directamente con el negocio;  una demora en este sentido puede llevar la gestión de la empresa al fracaso.
</span></p>

<p style="text-align: justify"><span style="color: black;">Es necesario entonces contar con un sistema que juegue el papel de soporte para  la toma de decisiones, de respuesta ágil y rápida, con información precisa para poder aprovechar las oportunidades: "estar en el lugar indicado, en el momento oportuno, con la información correcta".
</span></p>

<p style="text-align: justify"><span style="color: black;">Los sistemas orientados para la toma de decisiones son los englobados por el término Business Intelligence. Administrar una empresa sin contar con un sistema de Business Intelligence adecuado se parece mucho a caminar con los ojos vendados: se puede avanzar, ejecutar los procesos operacionales correctamente, progresar aparentemente según los objetivos y hasta crecer, pero en cuanto algo falla, los procesos se descontrolan, la coordinación desaparece y, en el mediano plazo, la empresa se desploma sobre sí misma. Esta puede parecer una visión apocalíptica, pero, ¿quién se arriesgaría a llevar adelante una gestión basándose en la buena suerte?"
</span></p>

<p style="text-align: justify"><span style="color: black;">Haciéndolo simple
</span></p>

<ul>
	<li>
<div style="text-align: justify"><span style="color: black;">Hacer uso de la información existente en la compañía, par ayudar a tomar decisiones a tomar mejores decisiones y más rápido.
</span></div></li>
	<li>
<div style="text-align: justify"><span style="color: black;">Hacer que la información esté siempre disponible para ayudar a tomar decisiones correctas en el momento correcto.
</span></div></li>
</ul>
<p style="text-align: justify"><span style="color: black;">Bueno, creo que ya formamos una idea que es y para que está BI.
</span></p>

<p style="text-align: justify"><span style="color: black;">Después la sigo, Saludos.
</span></p>]]></description> 
	            </item><item> 
	                <title>Generics (C#)</title> 
	                <link>http://blogs.synnax.net/javier.centurion/2008/05/01/generics-c/</link> 
	                <description><![CDATA[Este post intenta mostrar alguna de las características que nos ofrece Generics en C# 2.0.

<strong>Métodos Genéricos
</strong>

    Supongamos que queremos transformar un DataSet a una colección de objetos de una clase determinada, que obviamente tenga los mismos campos y tipos de datos que el DataSet. Esta tarea la podemos realizar por medio de la utilización de generics, de la siguiente manera.

<img src="http://blogs.synnax.net/javier.centurion/wp-content/uploads/2008/05/043008-1625-genericsc1.png" alt="" />

    Este método nos sirve para transformar un DataSet a una colección de objetos de de tipo T que tenga los mismos campos y tipos de datos que el DataSet. También es necesario que el tipo que se le mande como parámetro tenga definido los setters para los campos.

Por ejemplo:

    Si tenemos un DataSet que vendrá cargado con las columnas (Id, Nombre, Apellido), necesitamos una clase como la siguiente:

<img src="http://blogs.synnax.net/javier.centurion/wp-content/uploads/2008/05/043008-1625-genericsc2.png" alt="" /><span style="font-size: 10pt; font-family: Courier New;">
</span>

<span style="font-size: 10pt; font-family: Courier New;">    </span>Esta es solo una utilización que se me ocurrió para mostrar la utilización de Generics en métodos.

<strong>Restricciones para tipos Genéricos
</strong>

    Supongamos que tenemos una clase llamada Services&lt;T&gt;.

<img src="http://blogs.synnax.net/javier.centurion/wp-content/uploads/2008/05/043008-1625-genericsc3.png" alt="" />

    En este caso estamos dejando que T tome cualquier valor, con lo cual dentro del método ExecuteService, para llamar a un método definido en la interfaz IService nos vemos obligados a castear el tipo T a IService. Para no tener que realizar este casting podemos agregar restricciones al tipo T mediante la utilización de la sentencia <strong>where</strong>. Con lo cual el código nos queda.

 

<img src="http://blogs.synnax.net/javier.centurion/wp-content/uploads/2008/05/043008-1625-genericsc4.png" alt="" />

 

    Con la restricción logramos no tener que realizar el casting y tener el soporte de intellisense sobre el tipo T como sabiendo que si o si va a ser una implementación de IService.

    La sentencia <strong>where</strong> es aplicable en el mismo ámbito en donde es aplicable generics.

Para más información de la sentencia <strong>where</strong>:
<p style="margin-left: 36pt"><a href="http://msdn.microsoft.com/es-es/library/6b0scde8(VS.80).aspx">http://msdn.microsoft.com/es-es/library/6b0scde8(VS.80).aspx</a></p>
<strong>Más información sobre Generics
</strong>

(MSDN)    <a href="http://msdn.microsoft.com/es-es/library/512aeb7t(VS.80).aspx">http://msdn.microsoft.com/es-es/library/512aeb7t(VS.80).aspx</a>

(Blog Amigo) <a href="http://blogs.synnax.net/jose.franco/2008/02/06/ejemplo-de-generics/">http://blogs.synnax.net/jose.franco/2008/02/06/ejemplo-de-generics/</a>

 

 

 ]]></description> 
	            </item><item> 
	                <title>Study Guides .Net 3.5</title> 
	                <link>http://blogs.synnax.net/jose.franco/2008/05/02/study-guides-net-35/</link> 
	                <description><![CDATA[<p><span style="font-size:10pt">Gente ya esta disponible las guías para los nuevos exámenes, si necesitan algo de data del 3.5 me avisan ya que estoy empezando a preparar estos exámenes. Creo que todavía hay una oferta de un 40% de descuento para el examen, para aquellos que lo rinden por su cuenta, vi la publicidad hace unos días desde la página principal del MCP. 
</span></p><p><span style="font-size:10pt"><strong>Preparation Guide for Exam 70-558<br/></strong>Upgrade: MCAD Skills to MCTS Windows Applications by Using the Microsoft .NET Framework<br/><a href="http://www.microsoft.com/learning/exams/70-558.mspx">http://www.microsoft.com/learning/exams/70-558.mspx</a>
		</span></p><p><span style="font-size:10pt"><strong>Preparation Guide for Exam 70-559<br/></strong>Upgrade: MCAD Skills to MCTS Web Applications by Using the Microsoft .NET Framework<br/><a href="http://www.microsoft.com/learning/exams/70-559.mspx">http://www.microsoft.com/learning/exams/70-559.mspx</a>
		</span></p><p><span style="font-size:10pt"><strong>Preparation Guide for Exam 70-505<br/></strong>TS: Microsoft .NET Framework 3.5, Windows Forms Application Development<br/><a href="http://www.microsoft.com/learning/exams/70-505.mspx">http://www.microsoft.com/learning/exams/70-505.mspx</a>
		</span></p><p><span style="font-size:10pt"><strong>Preparation Guide for Exam 70-563<br/></strong>Pro: Designing and Developing Windows Applications Using the Microsoft .NET Framework 3.5<br/><a href="http://www.microsoft.com/learning/exams/70-563.mspx">http://www.microsoft.com/learning/exams/70-563.mspx</a>
		</span></p><p><span style="font-size:10pt"><strong>Preparation Guide for Exam 70-564 </strong><br/>Pro: Designing and Developing ASP.NET Applications Using the Microsoft .NET Framework 3.5<br/><a href="http://www.microsoft.com/learning/exams/70-564.mspx">http://www.microsoft.com/learning/exams/70-564.mspx</a>
		</span></p><p><span style="font-size:10pt">Saludos!</span></p>]]></description> 
	            </item><item> 
	                <title>Visual Studio 2005 Shortcuts</title> 
	                <link>http://blogs.synnax.net/javier.centurion/2008/04/30/visual-studio-2005-shortcuts/</link> 
	                <description><![CDATA[A continuación muestro algunos de los shortcuts que mas utilizo.

<strong>Crear una Property
</strong>

    Estando sobre el atributo de nuestra clase presionamos <strong>ctrl + r, ctrl + e</strong>.
<p style="margin-left: 36pt"><img src="http://blogs.synnax.net/javier.centurion/wp-content/uploads/2008/04/043008-1501-visualstudi1.png" alt="" /></p>
Una vez presionadas estas teclas nos aparecerá el siguiente cuadro:
<p style="margin-left: 36pt"><img src="http://blogs.synnax.net/javier.centurion/wp-content/uploads/2008/04/043008-1501-visualstudi2.png" alt="" /></p>
En donde entre otras cosas podremos cambiar el nombre de la propiedad. Aceptamos y nos genera la propiedad.
<p style="margin-left: 36pt"><img src="http://blogs.synnax.net/javier.centurion/wp-content/uploads/2008/04/043008-1501-visualstudi3.png" alt="" /></p>
<strong>Comentar y des comentar código
</strong>

    Para comentar y des comentar código lo que tenemos que hacer es seleccionar el código a comentar y presionar <strong>ctrl + k, ctrl + c, </strong>para des comentar <strong>ctrl + k, ctrl + u</strong>.

<strong>Abrir y cerrar regiones
</strong>

    Para abrir y cerrar regiones tenemos las siguientes combinaciones (<strong>ctrl + m, ctrl + l</strong>), (<strong>ctrl + m, ctrl + m</strong>) y (<strong>ctrl + m, ctrl + o</strong>).

    A partir del siguiente ejemplo paso a explicar cada uno de los shortcuts.

        <img src="http://blogs.synnax.net/javier.centurion/wp-content/uploads/2008/04/043008-1501-visualstudi4.png" alt="" />    

    El shortcut <strong>ctrl + m, ctrl + o </strong>contrae o expande a todas las regiones contenidas en una definición de clase o interfaz, con lo cual obtenemos:
<p style="margin-left: 36pt"><img src="http://blogs.synnax.net/javier.centurion/wp-content/uploads/2008/04/043008-1501-visualstudi5.png" alt="" /></p>
El shortcut <strong>ctrl + m, ctrl + m</strong> contrae o expande a la región, método o propiedad que esté más cerca del cursor, con lo cual obtenemos.
<p style="margin-left: 36pt"><img src="http://blogs.synnax.net/javier.centurion/wp-content/uploads/2008/04/043008-1501-visualstudi6.png" alt="" /></p>
El shortcut <strong>ctrl + m, ctrl + l</strong> contrae a nivel de namespace y expande dependiendo de donde se encuentre el cursor.
<p style="margin-left: 36pt"><img src="http://blogs.synnax.net/javier.centurion/wp-content/uploads/2008/04/043008-1501-visualstudi7.png" alt="" /></p>
<strong>Indentación de código
</strong>

    Para realizar esta tarea tenemos el siguiente shortcut <strong>ctrl + k, ctrl + d</strong>.
<p style="margin-left: 36pt"><img src="http://blogs.synnax.net/javier.centurion/wp-content/uploads/2008/04/043008-1501-visualstudi8.png" alt="" /></p>
<strong>Renombrar una clase, atributo, propiedad o método
</strong>

Para renombrar una clase, atributo, propiedad o método y que se actualicen las referencias a los mismos, lo que tenemos que hacer es posicionar el mouse sobre el elemento a renombrar y presionar F2.

Cuando presionamos F2 nos aparece un cuadro de dialogo bajo el nombre Rename, dentro de este cuadro cambiamos el nombre y terminamos presionando el botón Ok.
<p style="margin-left: 36pt"><img src="http://blogs.synnax.net/javier.centurion/wp-content/uploads/2008/04/043008-1501-visualstudi9.png" alt="" /></p>
<strong>Encapsular Código
</strong>

    Para encapsular código tenemos lo que en Visual Studio se llama Sorround With, el método abreviado para utilizarlo es <strong>ctrl + K, ctrl + s</strong>.

Primero seleccionamos el código que deseamos encapsular.
<p style="margin-left: 36pt"><img src="http://blogs.synnax.net/javier.centurion/wp-content/uploads/2008/04/043008-1501-visualstudi10.png" alt="" /></p>
Luego presionamos las teclas correspondientes al shortcut, con lo cual nos aparecerá el siguiente menú:
<p style="margin-left: 36pt"><img src="http://blogs.synnax.net/javier.centurion/wp-content/uploads/2008/04/043008-1501-visualstudi11.png" alt="" /></p>
    Ahí seleccionamos la opción que deseamos y presionamos la tecla Enter o hacemos clic directamente sobre la opción.
<p style="margin-left: 36pt"><img src="http://blogs.synnax.net/javier.centurion/wp-content/uploads/2008/04/043008-1501-visualstudi12.png" alt="" /></p>
    En este caso particular seleccionamos Region.

<strong>Para más información
</strong>

    <a href="http://www.codinghorror.com/blog/files/Visual%20Studio%20.NET%202005%20Keyboard%20Shortcuts.htm">http://www.codinghorror.com/blog/files/Visual%20Studio%20.NET%202005%20Keyboard%20Shortcuts.htm</a>]]></description> 
	            </item><item> 
	                <title>Tip para Mozilla</title> 
	                <link>http://blogs.synnax.net/jose.franco/2008/04/29/tip-para-mozilla/</link> 
	                <description><![CDATA[No están cansados de cuando instalen una extensión en Mozilla, tengan que esperar?

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/04/042908-2051-tipparamozi1.png" alt="" /><span style="font-size: 24pt; font-family: Times New Roman;"><strong>
</strong></span>

Es muy simple, esto lo descubrí atreves del sitio de Genbeta.

En la barra de navegación ir a <strong>about:config
</strong>

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/04/042908-2051-tipparamozi2.png" alt="" />

Buscar <strong>security.dialog_enable_delay</strong> y setearle <strong>0</strong>.

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/04/042908-2051-tipparamozi3.png" alt="" />

Espero que les sea útil, saludos!]]></description> 
	            </item><item> 
	                <title>Launch Tour 2k8 - Session 1 - Visual Studio 2008 - Novedades en Visual Basic y C#</title> 
	                <link>http://blogs.synnax.net/jose.franco/2008/04/30/launch-tour-2k8-session-1-visual-studio-2008-novedades-en-visual-basic-y-c/</link> 
	                <description><![CDATA[<p>Les dejo data de este evento, que me entere de casualidad...
</p><p>Conferencia Tecnica Grupo Desarrollador@s en lanzamiento Heroes {Comunidad} presenta: 99% CODIGO - Launch Tour 2k8 - Session 1 - Visual Studio 2008 - Novedades en Visual Basic y C# (Id.:1032378152)
</p><p><a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032378152&amp;Culture=es-AR">http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032378152&amp;Culture=es-AR</a>
	</p><p>Miércoles, 14 de mayo de 2008 07:30 p.m. - miércoles, 14 de mayo de 2008 09:30 p.m. Buenos Aires <br/>Hora de recepción: 07:00 p.m. <br/>Microsoft de Argentina <br/>Bouchard 710, 4º piso, Buenos Aires<br/>Buenos Aires Capital Federal Argentina <br/>Idiomas:  Español.  <br/>Productos:  Microsoft .NET.  <br/>Audiencia(s):  Developer.  
</p><p>Saludos.</p>]]></description> 
	            </item><item> 
	                <title>Oracle PL/SQL Developer Certified Professional</title> 
	                <link>http://blogs.synnax.net/jose.franco/2008/04/29/oracle-plsql-developer-certified-professional/</link> 
	                <description><![CDATA[<p>Lamentablemente, no sé si me acostumbre a como Microsoft maneja los contenidos, como la información referente a las certificaciones, que entrar al sitio de Oracle, fue una aventura nueva, y desconocida, que por momentos me había resignado en continuar.. jajaja
</p><p>Mi primera pregunta, existe el concepto de transcript para oracle? Postee en varios foros pero todavía no tuve respuestas, lo más cercano que encontré fue
</p><p>Oracle Certification Program website <br/><a href="http://oracle.prometric.com/users/index.asp">http://oracle.prometric.com/users/index.asp</a>
	</p><p>Que te das de alta con tu id de prometric, y en teoría aparecen los examines que rendís, veremos en unos días si actualizan el mío.
</p><p>Después, como el "Certification Planner", del sitio MCP, no encontré nada… es más me resulto bastante complicado, al menos para mí fue así.
</p><p>Yo hace casi 3 años que laburo con PL, así que pensé… como certifique MSSQL… Que tengo menos tiempo de experiencia, sería bueno… intentar acumular alguna certificación ya que es un aval de los conocimientos, aparte uno, como que toma cierto compromiso a estudiar a fondo, sino estaría tirando el dinero a pagar el examen.
</p><p>Así que me decidí por tirarme por el inicial que fue el 1Z0-001 (SQL and PL/SQL), mi idea es dentro de unas semanas llegar a ser OCA, y obviamente OCP. Pero es la única rama que realmente me interesa actualmente de los productos de Oracle.
</p><p><img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/04/042908-1934-oracleplsql1.png" alt=""/>
	</p><p>Les dejo el Path… para la preparación del 1Z0-001, use este libro
</p><p><img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/04/042908-1934-oracleplsql2.png" alt=""/>
	</p><p><a href="http://www.isbnonline.com/Ocp-Oracle8I-Dba-SQL-and-Pl-SQL-Study-Guide-Exam-1Z0-001/book/9780782126822/">http://www.isbnonline.com/Ocp-Oracle8I-Dba-SQL-and-Pl-SQL-Study-Guide-Exam-1Z0-001/book/9780782126822/</a>
	</p><p>Me levante una virtual PC, ya que tengo el vista, y con muchas cosas no se lleva, así que una virtual con XP, Oracle, y fue cuestión de repasar algunas cosas, no es un examen complejo.
</p><p>Así que espero que les sirva a alguno, saludos!</p>]]></description> 
	            </item><item> 
	                <title>Aprobé mi primer examen de Oracle!</title> 
	                <link>http://blogs.synnax.net/jose.franco/2008/04/29/aprobe-mi-primer-examen-de-oracle/</link> 
	                <description><![CDATA[<p>Ayer al mediodía, pude rendir el 1Z0-001 (Introduction to Oracle: SQL® and PL/SQL)… así que estoy más que feliz,  después de otros exámenes que tengo que dar de Sql Server, voy a tirarme por uno más de Oracle, así soy programador PL certificado. 
</p><p><img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/04/042908-1446-aprobmiprim1.png" alt=""/>
	</p><p>Así que deséenme suerte, Saludos!</p>]]></description> 
	            </item><item> 
	                <title>“Self-paced Course” de Office Groover 2007 </title> 
	                <link>http://blogs.synnax.net/jose.franco/2008/04/26/%e2%80%9cself-paced-course%e2%80%9d-de-office-groover-2007/</link> 
	                <description><![CDATA[<p>Bueno gente, les dejo acá una introducción de Microsoft Office Groove 2007. Por lo que vi, es una herramienta bastante interesante de la plataforma de Office.
</p><p>
		<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/04/042708-0101-selfpacedco1.jpg" alt=""/>
	</p><p>Es una plataforma de colaboración, para trabajar una aplica gamas de actividades del proyecto, incluyendo procesos de negocios. 
</p><ul><li>"Customizar" las herramientas e  información para cada equipo.
</li><li>Colabore con los colegas, socios, y cliente para el desarrollo de un producto.
</li><li>Productividad donde quiera, en línea o fuera de línea.
</li><li>Gestión completa de las tareas involucradas del proyecto, con las asignaciones correspondientes a cada miembro del equipo, y el estado de progreso del mismo.
</li><li>Integración con SharePoint  2007.
</li><li>Integración completa con la Suite de Microsoft Office.
</li></ul><p>Esto es en aspectos generales, no es mi área… así que los dejo investigar a ustedes
</p><p><a href="https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=91412">https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=91412</a>
	</p><p>Saludos y buen fin de semana.
</p><p>
 </p>]]></description> 
	            </item><item> 
	                <title>.Net 3.5 Extensions Training Kit</title> 
	                <link>http://blogs.synnax.net/jose.franco/?p=360</link> 
	                <description><![CDATA[Para los Developers, recuenden que ya salio el ".Net 3.5 Extensions Training Kit", que brinda una introduccion a

ADO.NET Data Services
ADO.NET Entity Framework
ASP.NET AJAX History
ASP.NET Dynamic Data
ASP.NET MVC
ASP.NET Silverlight Controls

Pueden bajarlo desde aca
<a href="http://go.microsoft.com/?linkid=8719735">http://go.microsoft.com/?linkid=8719735</a>


También les dejo un link mas que interesante
<a href="http://heroes.labmanuals.virtualwide.com/">http://heroes.labmanuals.virtualwide.com/</a>

Tienen "Hands On Lab Manuals" para Windows 2008 , VS 2008 y Sql Server 2008.


Windows Server 2008
*  Windows Server 2008: Assessment and Planning
* Creating Windows PowerShell v2 Script Cmdlets
* Scripting with Windows PowerShell v1
* What's New in Windows PowerShell v2
* Windows Server 2008: Server Manager
* Introduction to MS Deployment Tools
* Lite Touch Installation with MS Deployment
* Zero Touch Installation with MS Deployment
* Deploying SSTP Remote Access
* Failover Clustering with Windows Server 2008
* MS Identity Lifecycle Manager 2 Beta 2
* Lifecycle Manager 2007 Meta Directory Sync

Visual Studio 2008
* Visual Studio Tools for Office with MOSS 2007
* .NET Compact Framework 3.5 Development
* Visual Studio 2008: Developing Outlook Add-ins
* Windows Communication Foundation and REST
* Integrating WCF and WF
* Developing a WPF Application
* Lighting up MFC Applications on Windows Vista
* Building Web Applications
* Client Application Services using WPF
* C# 3.0 Language Enhancements
* Visual Basic 9.0 Language Enhancements

Sql Server 2008
*  SQL Server 2008 Change Data Capture
* What is new in SQL Server 2008 for DBA's
* Using SQL Server 2008 Resource Governor
* Partition Processing for DW
* SQL Server 2008: Reporting Infrastructure
* Managing SQL Server 2008 Analysis Services
* Analysis Services through MS Office
* Data Mining with SQL Server 2008
* SQL Server 2008 Policy-Based Management
* Performance Studio in SQL Server 2008
* SQL Server 2008 Database Mirroring
* SQL Server 2008 Online Operations
* SQL Server 2008 Peer-to-Peer Replication
* SQL Server 2008 Database Architecture
* SQL Server 2008 Table Index and Partitioning
* SQL Server 2008 Data Snapshots
* SQL Server 2008 Data Recovery
* SQL Server 2008 Instant Initialization
* Table Valued Parameters in SQL Server 2008
* SQL Server 2008 DATE/TIME Data Type
* Occasionally Connected Applications
* SQL Server 2008 Spatial Capabilities: GEOGRAPHY
* Plan Freezing with SQL Server 2008
* Transparent Data Encryption in SQL Server 2008]]></description> 
	            </item><item> 
	                <title>Me llego mi credencial MCPD</title> 
	                <link>http://blogs.synnax.net/jose.franco/?p=355</link> 
	                <description><![CDATA[Contento, ya tengo las dos credenciales...

<a href="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/04/dsc002023.jpg"><img class="alignnone size-full wp-image-359" title="dsc002023" src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/04/dsc002023.jpg" alt="" width="500" height="375" /></a>

Jajaja, no tenia nada mas que escribir, solo queria expresar mi alegria.

Saludos.]]></description> 
	            </item><item> 
	                <title>Aviso...</title> 
	                <link>http://blogs.synnax.net/jose.franco/?p=354</link> 
	                <description><![CDATA[Bueno disculpen si algunos de los links no andan, y demas... cambie de hosting, pase de hostear el blog a uno prestado, asi que me va a llevar unos dias en volver a poner en condiciones el blog...

Tambien acostumbrandone al cambio de trabajo, ya que no soy mas consultor en Techint, ahora estoy en Telmex, pero les voy a comentar mas en detalle proximamente...

Les dejo un abrazo a todos.]]></description> 
	            </item><item> 
	                <title>Siempre, hay cosas para ver…</title> 
	                <link>http://blogs.synnax.net/jose.franco/2008/04/20/siempre-hay-cosas-para-ver%e2%80%a6/</link> 
	                <description><![CDATA[Les dejo un Resumen de lo que está disponible

Clinic 3402: ASP.NET for PHP Developers: Introduction to ASP.NET

<a href="https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=77681">https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=77681</a>

Clinic 6258: New Features Of Microsoft SQL Server 2008 Reporting Services

<a href="https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=89922">https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=89922</a>

Collection 5934: Introducing Windows Server® 2008

<a href="https://www.microsoftelearning.com/eLearning/offerDetail.aspx?offerPriceId=216481">https://www.microsoftelearning.com/eLearning/offerDetail.aspx?offerPriceId=216481</a>

Collection 6187: What's New in Microsoft SQL Server 2008

<a href="https://www.microsoftelearning.com/eLearning/offerDetail.aspx?offerPriceId=139087">https://www.microsoftelearning.com/eLearning/offerDetail.aspx?offerPriceId=139087</a>

Collection 6261: Developing Rich Experiences using Microsoft .NET Framework 3.5 &amp; Visual Studio 2008

<a href="https://www.microsoftelearning.com/eLearning/offerDetail.aspx?offerPriceId=213184">https://www.microsoftelearning.com/eLearning/offerDetail.aspx?offerPriceId=213184</a>

Clinic 5936: Introducing Security and Policy Management in Windows Server® 2008

<a href="https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=89388">https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=89388</a>

Clinic 5937: Introducing Branch Office Management in Windows Server®2008

<a href="https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=89389">https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=89389</a>

Clinic 5938: Introducing Terminal Services Presentation Virtualization in Windows Server®2008

<a href="https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=89390">https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=89390</a>

Clinic 5939: Introducing Server Management in Windows Server®2008

<a href="https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=89391">https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=89391</a>

Clinic 6258: New Features Of Microsoft SQL Server 2008 Reporting Services

<a href="https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=89922">https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=89922</a>

Clinic 6262: Introducing Windows Workflow Foundation using .Net Framework 3.5 &amp; Visual Studio 2008

<a href="https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=89466">https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=89466</a>

Clinic 6263: Introducing Windows Presentation Foundation using .Net Framework 3.5 &amp; Visual Studio 2008

<a href="https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=89626">https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=89626</a>

Clinic 6264: Introducing Windows Communication Foundation using .Net Framework 3.5 &amp; Visual Studio 2008

<a href="https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=89499">https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=89499</a>

Collection 6261: Developing Rich Experiences using Microsoft .NET Framework 3.5 &amp; Visual Studio 2008

<a href="https://www.microsoftelearning.com/eLearning/offerDetail.aspx?offerPriceId=213184">https://www.microsoftelearning.com/eLearning/offerDetail.aspx?offerPriceId=213184</a>

Collection 5134: Developing Rich Experiences with Microsoft .NET Framework 3.0 and Visual Studio 2005

<a href="https://www.microsoftelearning.com/eLearning/offerDetail.aspx?offerPriceId=138162">https://www.microsoftelearning.com/eLearning/offerDetail.aspx?offerPriceId=138162</a>

Clinic 5135: Introduction to Developing with Windows® Presentation Foundation and Visual Studio® 2005

<a href="https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=85488">https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=85488</a>

Clinic 5136: Introduction to Developing with Windows® Workflow Foundation and Visual Studio® 2005

<a href="https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=85489">https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=85489</a>

Clinic 5137: Introduction to Developing with Windows® Communication Foundation and Visual Studio® 2005

<a href="https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=85490">https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=85490</a>

Clinic 5935: Introducing Server Virtualization in Microsoft Windows Server 2008 (RC0)

<a href="https://www.microsoftelearning.com/eLearning/offerDetail.aspx?offerPriceId=127517">https://www.microsoftelearning.com/eLearning/offerDetail.aspx?offerPriceId=127517</a>

Clinic 6188: What's New in Microsoft SQL Server 2008 for Enterprise Data Platform

<a href="https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=83564">https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=83564</a>

Clinic 6189: What's New in Microsoft SQL Server 2008 for Business Intelligence

<a href="https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=83565">https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=83565</a>

Clinic 6190: What's New in Microsoft SQL Server 2008 for Database Development

<a href="https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=83566">https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=83566</a>

Collection 6187: What's New in Microsoft SQL Server 2008

<a href="https://www.microsoftelearning.com/eLearning/offerDetail.aspx?offerPriceId=139087">https://www.microsoftelearning.com/eLearning/offerDetail.aspx?offerPriceId=139087</a>]]></description> 
	            </item><item> 
	                <title>PM – Dirección de Proyectos</title> 
	                <link>http://blogs.synnax.net/jose.franco/2008/04/20/pm-%e2%80%93-direccion-de-proyectos/</link> 
	                <description><![CDATA[<span style="font-size: 12pt; font-family: Times New Roman;">La dirección de proyectos es más que nada la aplicación de conocimientos, habilidades, herramientas, y técnicas a las actividades de un proyecto, para cumplir con el alcance del mismo.
</span>

<span style="font-size: 12pt; font-family: Times New Roman;">Esto se logra mediante la aplicación e integración de diversos procesos (Inicio, Planificación, Ejecución, Seguimiento, Control y Cierre)
</span>

<span style="font-size: 12pt; font-family: Times New Roman;">También cabe destacar, que la dirección de un proyecto incluye
</span>
<ul>
	<li><span style="font-size: 12pt; font-family: Times New Roman;">Identificar requisitos
</span></li>
	<li><span style="font-size: 12pt; font-family: Times New Roman;">Establecer objetivos
</span></li>
	<li><span style="font-size: 12pt; font-family: Times New Roman;">Adaptar las especificaciones, planes y enfoque a los distintos interesados-
</span></li>
	<li><span style="font-size: 12pt; font-family: Times New Roman;">Equilibrar la triple restricción.
</span></li>
</ul>
<span style="font-size: 12pt; font-family: Times New Roman;">Mencionamos muchas veces la triple restricción, pero ¿qué es? Es simplemente una ecuación con 3 variables, estas son Alcance, Costo y Tiempo.
</span>

<span style="font-size: 12pt; font-family: Times New Roman;">Es evidente, que la variación de alguna, impacta en al menos una de las otras dos restante.
</span>

<img src="http://blogs.synnax.net/jose.franco/wp-content/uploads/2008/04/042008-1806-pmdireccin1.png" alt="" /><span style="font-size: 12pt; font-family: Times New Roman;">
</span>

<span style="font-size: 12pt; font-family: Times New Roman;">Recuerden que nuestro "Alcance", es el objetivo del proyecto, ósea todo lo que se debe obtener una vez finalizado el proyecto.
</span>

<span style="font-size: 12pt; font-family: Times New Roman;">El Costo, es otra de las restricciones, que está dado en el presupuesto estimado, dado que se informa en el primer documento del proyecto (Acta del Proyecto, vamos a ver esto con mayor profundidad más adelante).
</span>

<span style="font-size: 12pt; font-family: Times New Roman;">El Tiempo, debe ser una consecuencia del cronograma estimado para todas las actividades, y el tiempo de las mismas.
</span>

<span style="font-size: 12pt; font-family: Times New Roman;">Es importante saber:
</span>
<ul>
	<li><span style="font-size: 12pt; font-family: Times New Roman;">Alcance: es deseable que se cumpla.
</span></li>
	<li><span style="font-size: 12pt; font-family: Times New Roman;">El Costo : debe lograrse
</span></li>
	<li><span style="font-size: 12pt; font-family: Times New Roman;">Tiempo: Se acepta el resultado.
</span></li>
</ul>
<span style="font-size: 12pt; font-family: Times New Roman;">Dependiendo el rubro, esto puede variar, por ejemplo… en una empresa de organización de evento, debe lograrse el "tiempo", cuando en una Consultora, es el "Costo", y así mismo, en una empresa Química, el "Alcance".
</span>

<span style="font-size: 12pt; font-family: Times New Roman;">La calidad del proyecto se ve afectada por el balanceo que el gerente del proyecto hace de esta triple restricción. Un proyecto de alta calidad, es aquel que se entrega el producto/servicio esperado, con el alcance solicitado, puntualmente y dentro del presupuesto (En la práctica, se complica demasiado esto).
</span>

<span style="font-size: 12pt; font-family: Times New Roman;">El gerente de proyecto, además deberá contar con la siguiente formación:
</span>
<ul>
	<li><span style="font-size:12pt"><span style="font-family: Times New Roman;">Conocimientos, normas y regulaciones del área de aplicación: si bien el gerente de proyecto no debe dominar el área de aplicación del proyecto, si debe comprender cuales son los estándares y regulaciones.</span><span style="font-family: MS Gothic;">
</span><span style="font-family: Times New Roman;">
</span></span></li>
	<li><span style="font-size:12pt"><span style="font-family: Times New Roman;">Comprensión del entorno del proyecto: todos los proyectos se plani?can en un contexto social, económico y ambiental, el equipo de proyecto debe considerar el entorno</span><span style="font-family: MS Gothic;">
</span><span style="font-family: Times New Roman;">, así </span><span style="font-family: MS Gothic;">
</span><span style="font-family: Times New Roman;">como los impactos positivos y negativos.
</span></span></li>
	<li><span style="font-size:12pt"><span style="font-family: Times New Roman;">Conocimientos y habilidades de dirección general: el director de proyecto debe tener conocimientos sobre plani?cación, organización, selección de personal,</span><span style="font-family: MS Gothic;">
</span><span style="font-family: Times New Roman;">ejecución y control.
</span></span></li>
	<li><span style="font-size:12pt"><span style="font-family: Times New Roman;">Habilidades Interpersonales: Comunicación efectiva, Liderazgo, Motivación, Negociación y gestión de con?ictos, resolución de problemas,</span><span style="font-family: MS Gothic;">
</span><span style="font-family: Times New Roman;">etc.
</span></span></li>
</ul>
<span style="font-size: 12pt; font-family: Times New Roman;">Sobre todo, saber gestionar las personas asignadas al proyecto pasen de ser un "grupo de personas" a ser un "equipo".
</span>

<span style="font-size: 12pt; font-family: Times New Roman;">Es el principal desafío, es gran parte de su responsabilidad, para ello debe saber delegar, y permitir que el equipo de trabajo haga lo suyo, mientras el se dedica a gerencia.
</span>

<span style="font-size: 12pt; font-family: Times New Roman;">Es como el ejemplo que me dieron en el curso de PM, sobre el capital del barco, cuando hay un problema en la sala de máquina, se arremanga, y va a trabajar sobre el motor. La pregunta es: ¿Quien está dirigiendo el barco en ese momento?
</span>

<span style="font-size: 12pt; font-family: Times New Roman;">Con Liderar, incluye trazar la estrategia y poseer una visión a largo plazo. Con Dirigir, en cambio está orientado al "team", a motivarlo, a hacerse valer, ser claro, y defender los principios.
</span>

<span style="font-size: 12pt; font-family: Times New Roman;">La eficacia del liderazgo depende de muchas variables, pero las mas importante se podrían definir como:
</span>
<ul>
	<li><span style="font-size: 12pt; font-family: Times New Roman;">la relación, el vinculo que se