<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://thinkingtogether.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Blog Thinking Together</title><link>http://thinkingtogether.net/blogs/default.aspx</link><description>Microsoft. Biztalk Server 2006, .NET, WCF, WWF, WPF, Linq,...</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.2)</generator><item><title>MVP de Microsoft por segundo año consecutivo</title><link>http://thinkingtogether.net/blogs/sample_weblog/archive/2008/07/01/mvp-de-microsoft-por-segundo-a-o-consecutivo.aspx</link><pubDate>Tue, 01 Jul 2008 17:31:44 GMT</pubDate><guid isPermaLink="false">ded273ab-9e87-4979-8222-e4e2e46f1b46:45</guid><dc:creator>Roberto</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Acabo de recibir un mail comunic&amp;#225;ndome la renovaci&amp;#243;n del MVP de Biztalk por segundo a&amp;#241;o consecutivo.&lt;/p&gt;  &lt;p&gt;Es una inyecci&amp;#243;n de moral para seguir colaborando con la comunidad y aprendiendo de todos vosotros.&lt;/p&gt;  &lt;p&gt;Saludos.&lt;/p&gt;&lt;img src="http://thinkingtogether.net/aggbug.aspx?PostID=45" width="1" height="1"&gt;</description></item><item><title>Poster Interactivo con las capacidades de Biztalk</title><link>http://thinkingtogether.net/blogs/sample_weblog/archive/2008/06/26/poster-interactivo-con-las-capacidades-de-biztalk.aspx</link><pubDate>Thu, 26 Jun 2008 07:41:37 GMT</pubDate><guid isPermaLink="false">ded273ab-9e87-4979-8222-e4e2e46f1b46:44</guid><dc:creator>Roberto</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Microsoft ha publicado hace tiempo la siguiente p&amp;#225;gina &lt;a title="http://www.microsoft.com/biztalk/capabilities/reader/" href="http://www.microsoft.com/biztalk/capabilities/reader/"&gt;http://www.microsoft.com/biztalk/capabilities/reader/&lt;/a&gt; construida con Silverlight, que permite ir navegando de forma interactiva por un poster con las capacidades de Biztalk Server 2006 R2.&lt;/p&gt;  &lt;p&gt;Si hacemos click en cada funcionalidad del poster se abrir&amp;#225; una ventana explicando dicha capacidad con enlaces al msdn de microsoft por si queremos completar la explicaci&amp;#243;n.&lt;/p&gt;  &lt;p&gt;Saludos.&lt;/p&gt;&lt;img src="http://thinkingtogether.net/aggbug.aspx?PostID=44" width="1" height="1"&gt;</description></item><item><title>Como crear un adaptador con WCF LOB Adapter SDK</title><link>http://thinkingtogether.net/blogs/sample_weblog/archive/2008/06/16/como-crear-un-adaptador-con-wcf-lob-adapter-sdk-22222.aspx</link><pubDate>Mon, 16 Jun 2008 07:10:00 GMT</pubDate><guid isPermaLink="false">ded273ab-9e87-4979-8222-e4e2e46f1b46:42</guid><dc:creator>Roberto</dc:creator><slash:comments>0</slash:comments><description>




&lt;P&gt;He encontrado muy poca información en español sobre el desarrollo de adaptadores con WCF LOB Adapter SDK. Con este post intento poner mi granito de arena para intentar arrojar algo de luz sobre este tema.&lt;/P&gt;
&lt;H4&gt;¿Porqué la necesidad de WCF LOB Adapter SDK?&lt;/H4&gt;
&lt;P&gt;Los adaptadores desarrollados hasta ahora eran dependientes tanto del consumidor como de la aplicación destinataria, es decir un adaptador desarrollado para comunicar Microsoft Biztalk Server con SAP no nos vale para comunicar Sharepoint con SAP.&lt;/P&gt;
&lt;P&gt;WCF LOB Adapter SDK soluciona esta limitación, permitiendo que el adaptador que desarrollemos para obtener información de una aplicación de línea de negocio pueda ser consumido desde Biztalk, desde SQL Server, desde Microsoft Office Sharepoint Server o por ejemplo desde una aplicación .NET personalizada.&lt;/P&gt;
&lt;H4&gt;¿Qué es WCF LOB Adapter SDK?&lt;/H4&gt;
&lt;P&gt;Es un conjunto de herramientas y componentes que nos van a facilitar el desarrollo de adaptadores para aplicaciones de línea de negocio.&lt;/P&gt;
&lt;P&gt;Las principales características de WCF LOB Adapter SDK son las siguientes:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Proporciona un &lt;STRONG&gt;Wizard&lt;/STRONG&gt; que facilita la creación de nuevos adaptadores guiando al desarrollador paso a paso. &lt;/LI&gt;
&lt;LI&gt;Expone el adaptador como si fuera un &lt;STRONG&gt;binding&lt;/STRONG&gt; de WCF. &lt;/LI&gt;
&lt;LI&gt;Proporciona un &lt;STRONG&gt;Add-in&lt;/STRONG&gt; que permite añadir referencias a adaptadores desde aplicaciones .net desarrolladas con Visual Studio 2005. &lt;/LI&gt;
&lt;LI&gt;Crea un contrato dinámicamente en tiempo de diseño. &lt;/LI&gt;&lt;/OL&gt;
&lt;H4&gt;&lt;STRONG&gt;WCF LOB Adapter SDK está basado en el modelo de Canal de WCF.&lt;/STRONG&gt; &lt;/H4&gt;
&lt;P&gt;&lt;IMG src="http://blogs.msdn.com/photos/asdk/images/3587482/original.aspx"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;El modelo de canal de WCF consiste en una pila con uno o varios canales que se encargan de procesar los mensajes que fluyen entre ellos. Es muy parecida a la pila de TCP. &lt;/P&gt;
&lt;P&gt;WCF LOB Adapter SDK utiliza el modelo de extensibilidad de canales exponiendo los adaptadores mediante binding personalizados.&lt;/P&gt;
&lt;H4&gt;Pasos para la creación de un adaptador&lt;/H4&gt;
&lt;P&gt;En la &lt;A href="http://thinkingtogether.net/controlpanel/blogs/url%20http://www.microsoft.com/downloads/details.aspx?FamilyId=0F8007D7-F0C9-4169-8B9C-BA55F8F4C153&amp;amp;displaylang=en" target=_blank&gt;siguiente url&lt;/A&gt; podemos descargarnos el SDK con el Service Pack 1.&lt;/P&gt;
&lt;P&gt;A continuación vamos a empezar a desarrollar un adaptador de que nos permitirá obtener correos mediante el protocolo POP3. Este adaptador lo podremos usar independientemente en aplicación .net o por ejemplo en Microsoft Biztalk sin modificar una sola línea de código.&lt;/P&gt;
&lt;H5&gt;Asistente de creación del adaptador&lt;/H5&gt;
&lt;P&gt;Lo primero que debemos hacer es crear un nuevo proyecto en con &lt;STRONG&gt;Visual Studio 2005&lt;/STRONG&gt; y seleccionar la plantilla &lt;STRONG&gt;WCF LOB Adapter&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://thinkingtogether.net/imagenes/WCFAdapter/ComocrearunadaptadorconWCFLOBAdapterSDK_E5B/image.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;" height=199 alt=image src="http://thinkingtogether.net/imagenes/WCFAdapter/ComocrearunadaptadorconWCFLOBAdapterSDK_E5B/image_thumb.png" width=542 border=0&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Una vez creado el proyecto se lanzará un asistente que nos irá guiando paso paso en la creación del adaptador. &lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;En el primer paso debemos definir los siguientes campos: &lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Scheme:&lt;/STRONG&gt; esquema usado para el protocolo de transporte del binding del adaptador. Por ejemplo el binding WSHttpBinding usa HTTP como esquema. Nosotros deberemos rellenar esta caja de texto con el valor &lt;STRONG&gt;mail&lt;/STRONG&gt;. &lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;&lt;STRONG&gt;Project namespace&lt;/STRONG&gt;: todas las clases creadas por el asistente pertenecerá al namespace que pongamos aquí. Nosotros usaremos el namespace &lt;STRONG&gt;ejemplo.adaptadorwcf&lt;/STRONG&gt;. &lt;/P&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Service namespace&lt;/STRONG&gt;: La concatenación del esquema más el namespace del proyecto dará lugar al namespace del WSDL generado por el adaptador. En nuestro caso el namespace del servicio será &lt;STRONG&gt;mail://ejemplo.adaptadorwcf&lt;/STRONG&gt;. Si quisiéremos modificar el namespace propuesto por el wizard solamente tenemos que marcar la opción &lt;STRONG&gt;Overwrite default service namespace&lt;/STRONG&gt; y modificar el valor por el que deseemos. &lt;/LI&gt;&lt;/UL&gt;&lt;/OL&gt;
&lt;P&gt;&lt;A href="http://thinkingtogether.net/imagenes/WCFAdapter/ComocrearunadaptadorconWCFLOBAdapterSDK_E5B/image_3.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;" height=408 alt=image src="http://thinkingtogether.net/imagenes/WCFAdapter/ComocrearunadaptadorconWCFLOBAdapterSDK_E5B/image_thumb_3.png" width=412 border=0&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; 2.&amp;nbsp; En el siguiente paso debemos definir la dirección del flujo de datos soportado por el adaptador:&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Synchronous outbound&lt;/STRONG&gt;: el adaptador soporta el envío de mensajes al sistema destino. &lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Asynchronous outbound&lt;/STRONG&gt;: el adaptador soporta el envío de mensajes de forma asíncrona al sistema destino. &lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Synchronous inbound&lt;/STRONG&gt;: el cliente recibe información del sistema destino vía adaptador. &lt;/LI&gt;
&lt;LI&gt;&lt;B&gt;Asynchronous inbound&lt;/B&gt;: el adaptador soporta la recepción de mensajes del sistema destino de forma asíncrona. &lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Además debemos definir las opciones de metadatos soportada por el adatador:&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Retrieval&lt;/STRONG&gt;: Genera la definición de las operaciones y tipos complejos del sistema destino. Esta información será utilizada por el adaptador para la generación del contrato del servicio. &lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Browse&lt;/STRONG&gt;: Permite que el usuario navegue de forma jerárquica por los metadatos del sistema destino para seleccionar las operaciones que desea invocar. &lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Search&lt;/STRONG&gt;:Permite que el usuario realice una búsqueda en los metadatos del sistema destino para seleccionar las operaciones que desea invocar. &lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;P&gt;&lt;A href="http://thinkingtogether.net/imagenes/WCFAdapter/ComocrearunadaptadorconWCFLOBAdapterSDK_E5B/image_4.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;" height=414 alt=image src="http://thinkingtogether.net/imagenes/WCFAdapter/ComocrearunadaptadorconWCFLOBAdapterSDK_E5B/image_thumb_4.png" width=416 border=0&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.&amp;nbsp; En el siguiente paso debemos definir las propiedades del adaptador:&lt;/P&gt;
&lt;P&gt;&amp;nbsp; En nuestro caso no definiremos nada aquí.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.&amp;nbsp; En el siguiente paso debemos definir las propiedades de conexión con el sistema destino:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://thinkingtogether.net/imagenes/WCFAdapter/ComocrearunadaptadorconWCFLOBAdapterSDK_E5B/image_5.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;" height=413 alt=image src="http://thinkingtogether.net/imagenes/WCFAdapter/ComocrearunadaptadorconWCFLOBAdapterSDK_E5B/image_thumb_5.png" width=416 border=0&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Las propiedades necesarias para la conexión son el servidor, el usuario y el password. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;La gestión de credenciales utilizada en este ejemplo no es ni mucho menos la ideal, ya que se muestra el usuario y el password en texto plano en la URI. Os invito a que modifiquéis el adaptador para dar una solución mas eficiente y segura a la gestión de credenciales.&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Finalmente se mostrará un resumen de la configuración del adaptador que hemos ido estableciendo en los pasos precedentes. Si estamos conformes pulsaremos en el botón Finish para que el Wizard cree las clases necesarias para implementar el adaptador.&lt;/P&gt;
&lt;H5&gt;Gestión de la conexión con el sistema destino&lt;/H5&gt;
&lt;P&gt;El adaptador crea por nosotros el esqueleto de las clases necesarias para poder gestionar la conexión con el sistema destino.&lt;/P&gt;
&lt;P&gt;La clase &lt;STRONG&gt;Pop3AdapterConnectionUri.cs&lt;/STRONG&gt; es la encargada de parsear y construir la cadena de conexión de la aplicación de línea de negocio destino.&lt;/P&gt;
&lt;P&gt;El desarrollador del adaptador usará esta clase para parsear la URI de conexión proporcionada por el cliente y extraer de ella todos los parámetros de conexión necesarios.&lt;/P&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;public&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;override&lt;/SPAN&gt; Uri Uri
{
   get
   {
      	&lt;SPAN class=rem&gt;//Validación de las propiedades de conexión&lt;/SPAN&gt;
      	&lt;SPAN class=kwrd&gt;if&lt;/SPAN&gt; (Servidor == &lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt;.Empty)
      	{
           &lt;SPAN class=kwrd&gt;throw&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; InvalidUriException(&lt;SPAN class=str&gt;"Parámetro Servidor no válido"&lt;/SPAN&gt;);
      	}
      	&lt;SPAN class=kwrd&gt;if&lt;/SPAN&gt; (Usuario == &lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt;.Empty)
      	{
           &lt;SPAN class=kwrd&gt;throw&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; InvalidUriException(&lt;SPAN class=str&gt;"Parámetro Usuario no válido"&lt;/SPAN&gt;);
	}
       &lt;SPAN class=kwrd&gt;if&lt;/SPAN&gt; (Password== &lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt;.Empty)
       {
       	    &lt;SPAN class=kwrd&gt;throw&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; InvalidUriException(&lt;SPAN class=str&gt;"Parámetro Password no válido"&lt;/SPAN&gt;);
       }

       &lt;SPAN class=kwrd&gt;return&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; Uri(Pop3Adapter.SCHEME + &lt;SPAN class=str&gt;"://"&lt;/SPAN&gt; +
                      Servidor + &lt;SPAN class=str&gt;"/"&lt;/SPAN&gt; + Usuario + &lt;SPAN class=str&gt;"/"&lt;/SPAN&gt; + Password);
                                        &lt;/PRE&gt;&lt;PRE class=csharpcode&gt;   }
   set
   {
      &lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt;[] datosUri = &lt;SPAN class=kwrd&gt;value&lt;/SPAN&gt;.AbsoluteUri.Split(&lt;SPAN class=str&gt;'/'&lt;/SPAN&gt;);
                Servidor = datosUri[2];
                Usuario = datosUri[3];
                Password = datosUri[4];
               
   }
}&lt;/PRE&gt;
&lt;P&gt;La clase &lt;STRONG&gt;Pop3AdapterConnectionFactory.cs&lt;/STRONG&gt; es la responsable de definir y crear la conexión con el sistema destino. &lt;/P&gt;
&lt;P&gt;Para ello debemos modificar el método &lt;STRONG&gt;CreateConnection&lt;/STRONG&gt; para que devuelva un objeto de conexión con el servidor de correo.&lt;/P&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;public&lt;/SPAN&gt; IConnection CreateConnection()
{
  &lt;SPAN class=kwrd&gt;return&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; Pop3AdapterConnection(conexionUri.Usuario,conexionUri.Password,&lt;/PRE&gt;&lt;PRE class=csharpcode&gt;					conexionUri.Servidor, &lt;SPAN class=kwrd&gt;this&lt;/SPAN&gt;);
}&lt;/PRE&gt;
&lt;P&gt;El constructor de la clase Pop3AdapterConnectionFactory pasa en uno de los parámetros un objeto de tipo &lt;STRONG&gt;ConnectionUri&lt;/STRONG&gt; con la información de conexión con el sistema destino. El problema es que el &lt;STRONG&gt;wizard&lt;/STRONG&gt; no asigna ese objeto a ninguna propiedad de la clase con lo cual se pierde la información. Para solucionar este problema debemos declarar una variable privada llamada &lt;STRONG&gt;conexionUri&lt;/STRONG&gt; y modificar el constructor de la clase para asignar a esta propiedad la información de conexión.&lt;/P&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;public&lt;/SPAN&gt; Pop3AdapterConnectionFactory(ConnectionUri connectionUri
            , ClientCredentials clientCredentials
            , Pop3Adapter adapter)
{
    &lt;SPAN class=kwrd&gt;this&lt;/SPAN&gt;.clientCredentials = clientCredentials;
    &lt;SPAN class=kwrd&gt;this&lt;/SPAN&gt;.adapter = adapter;
    &lt;SPAN class=kwrd&gt;this&lt;/SPAN&gt;.conexionUri = (Pop3AdapterConnectionUri)connectionUri;
}&lt;/PRE&gt;
&lt;P&gt;Por último la clase &lt;STRONG&gt;Pop3AdapterConnection.cs&lt;/STRONG&gt; es la encargada de realizar las llamadas a bajo nivel para gestionar la conexión con el sistema destino.&lt;/P&gt;
&lt;P&gt;Debemos modificar el constructor de la clase para inicializar el objeto de conexión con el servidor de correo. La clase Pop3 es una clase gratuita obtenida de la web Codeproject en la url &lt;A title=http://www.codeproject.com/KB/IP/despop3client.aspx href="http://www.codeproject.com/KB/IP/despop3client.aspx" target=_blank&gt;http://www.codeproject.com/KB/IP/despop3client.aspx&lt;/A&gt; que emplearemos para obtener los mail del servidor de correo.&lt;/P&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;public&lt;/SPAN&gt; Pop3AdapterConnection(&lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt; Usuario,&lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt; Password, &lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt; Servidor, &lt;/PRE&gt;&lt;PRE class=csharpcode&gt;				Pop3AdapterConnectionFactory connectionFactory)
{
    &lt;SPAN class=kwrd&gt;this&lt;/SPAN&gt;.connectionFactory = connectionFactory;
    &lt;SPAN class=kwrd&gt;this&lt;/SPAN&gt;.connectionId = Guid.NewGuid().ToString();
    objConexionPop3 = &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; Pop3.Pop3Client(Usuario,Password,Servidor);
}&lt;/PRE&gt;
&lt;P&gt;Debemos modificar los métodos que se encargan de abrir y cerrar la conexión:&lt;/P&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;public&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;void&lt;/SPAN&gt; Close(TimeSpan timeout)
{
    objConexionPop3.CloseConnection();
}

 &lt;SPAN class=kwrd&gt;public&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;bool&lt;/SPAN&gt; IsValid(TimeSpan timeout)
{
    &lt;SPAN class=kwrd&gt;return&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;true&lt;/SPAN&gt;;
}
 &lt;SPAN class=kwrd&gt;public&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;void&lt;/SPAN&gt; Open(TimeSpan timeout)
{
    objConexionPop3.OpenInbox();
}&lt;/PRE&gt;
&lt;H5&gt;Gestión de metadatos&lt;/H5&gt;
&lt;P&gt;La clase &lt;STRONG&gt;Pop3AdapterMetadataBrowseHandler.cs&lt;/STRONG&gt; se encargará de mostrar de forma jerárquica las categorías y operaciones de la aplicación de línea de negocio al consumidor para que este seleccione las operaciones que desea invocar.&lt;/P&gt;
&lt;P&gt;Debemos implementar el método &lt;STRONG&gt;Browse&lt;/STRONG&gt; de esta clase para mostrar la operación de Monitorización de correo al consumidor.&lt;/P&gt;
&lt;P&gt;Como podemos ver en el siguiente código, este método devuelve cada una de las operaciones y categorías del sistema destino como una lista de objetos de tipo &lt;STRONG&gt;MetadataRetrievalNode.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;public&lt;/SPAN&gt; MetadataRetrievalNode[] Browse(&lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt; nodeId
            , &lt;SPAN class=kwrd&gt;int&lt;/SPAN&gt; childStartIndex
            , &lt;SPAN class=kwrd&gt;int&lt;/SPAN&gt; maxChildNodes, TimeSpan timeout)
{
	List&amp;lt;MetadataRetrievalNode&amp;gt; lista = &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; List&amp;lt;MetadataRetrievalNode&amp;gt;();
       &lt;SPAN class=rem&gt;//Nodo raiz&lt;/SPAN&gt;
       &lt;SPAN class=kwrd&gt;if&lt;/SPAN&gt; (MetadataRetrievalNode.Root.NodeId.Equals(nodeId))
       {

          MetadataRetrievalNode nodo = &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; MetadataRetrievalNode(&lt;SPAN class=str&gt;"Operaciones"&lt;/SPAN&gt;);
          nodo.Direction = MetadataRetrievalNodeDirections.Inbound;
          nodo.DisplayName = &lt;SPAN class=str&gt;"Operaciones"&lt;/SPAN&gt;;
          nodo.IsOperation = &lt;SPAN class=kwrd&gt;false&lt;/SPAN&gt;;
          &lt;SPAN class=kwrd&gt;return&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; MetadataRetrievalNode[] { nodo };
       }
       &lt;SPAN class=kwrd&gt;else&lt;/SPAN&gt;
       {
          MetadataRetrievalNode nodoInbound = &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; MetadataRetrievalNode(&lt;SPAN class=str&gt;"MonitorizacionCorreo"&lt;/SPAN&gt;);
          nodoInbound.DisplayName = &lt;SPAN class=str&gt;"MonitorizacionCorreo"&lt;/SPAN&gt;;
          nodoInbound.IsOperation = &lt;SPAN class=kwrd&gt;true&lt;/SPAN&gt;;
          nodoInbound.Direction = MetadataRetrievalNodeDirections.Inbound;
          lista.Add(nodoInbound);

          &lt;SPAN class=kwrd&gt;return&lt;/SPAN&gt; lista.ToArray();
       }
}&lt;/PRE&gt;
&lt;P&gt;La clase &lt;STRONG&gt;Pop3AdapterMetadataSearchHandler.cs&lt;/STRONG&gt; nos permite buscar operaciones en la aplicación de línea de negocio para su posterior invocación. &lt;/P&gt;
&lt;P&gt;El usuario introducirá un criterio de búsqueda en el asistente del adaptador y el método &lt;STRONG&gt;Search&lt;/STRONG&gt; de la clase &lt;STRONG&gt;Pop3AdapterMetadataSearchHandler.cs&lt;/STRONG&gt; se encargará de realizar la búsqueda de metadatos en el sistema destino utilizando dicho criterio.&lt;/P&gt;
&lt;P&gt;La implementación del método &lt;STRONG&gt;Search&lt;/STRONG&gt; es muy similar al del método &lt;STRONG&gt;Browse&lt;/STRONG&gt;. El método debe devolver como resultado una lista de objetos de tipo &lt;STRONG&gt;MetadataRetrievalNode&lt;/STRONG&gt; que el adaptador usará para mostrar las operaciones encontradas al usuario para su posterior consumo. &lt;/P&gt;
&lt;P&gt;En este caso concreto comparamos el criterio de búsqueda introducido por el usuario con la palabra &lt;STRONG&gt;"monitorizacioncorreo"&lt;/STRONG&gt; devolviendo, si hay coincidencia, una lista con un nodo que contendrá la operación &lt;STRONG&gt;MonitorizacionCorreo&lt;/STRONG&gt;. &lt;/P&gt;
&lt;P&gt;Este es el caso mas simple que nos podemos encontrar, lo ideal es permitir al usuario que introduzca caracteres comodín para que la búsqueda sea mas sencilla para el.&lt;/P&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;public&lt;/SPAN&gt; MetadataRetrievalNode[] Search(&lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt; nodeId
		, &lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt; searchCriteria
            	, &lt;SPAN class=kwrd&gt;int&lt;/SPAN&gt; maxChildNodes, TimeSpan timeout)
{
	List&amp;lt;MetadataRetrievalNode&amp;gt; lista = &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; List&amp;lt;MetadataRetrievalNode&amp;gt;();
       
       &lt;SPAN class=kwrd&gt;if&lt;/SPAN&gt; (searchCriteria.ToLower() == &lt;SPAN class=str&gt;"monitorizacioncorreo"&lt;/SPAN&gt;)
       {
          MetadataRetrievalNode nodoInbound = &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; MetadataRetrievalNode(&lt;SPAN class=str&gt;"MonitorizacionCorreo"&lt;/SPAN&gt;);
          nodoInbound.DisplayName = &lt;SPAN class=str&gt;"MonitorizacionCorreo"&lt;/SPAN&gt;;
          nodoInbound.IsOperation = &lt;SPAN class=kwrd&gt;true&lt;/SPAN&gt;;
          nodoInbound.Direction = MetadataRetrievalNodeDirections.Inbound;
          lista.Add(nodoInbound);
       }
       &lt;SPAN class=kwrd&gt;return&lt;/SPAN&gt; lista.ToArray();&lt;/PRE&gt;&lt;PRE class=csharpcode&gt;}&lt;/PRE&gt;
&lt;P&gt;La clase &lt;STRONG&gt;Pop3AdapterMetadataResolverHandler.cs&lt;/STRONG&gt; es la encargada de obtener la definición de las operaciones y tipos complejos de estas operaciones, para que el adaptador pueda generar en base a esta información el contrato del servicio.&lt;/P&gt;
&lt;P&gt;Esta clase tiene dos métodos que debemos desarrollar:&lt;/P&gt;
&lt;UL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;ResolveOperationMetadata&lt;/STRONG&gt;: este método es el responsable de obtener los metadatos que representan las operaciones ofrecidas por el sistema destino. &lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;ResolveTypeMetadata&lt;/STRONG&gt;: este método es el responsable de obtener los metadatos de los tipos complejos usados por el sistema destino. &lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;P&gt;En el método &lt;STRONG&gt;ResolveOperationMetadata&lt;/STRONG&gt; vamos a crear un objeto de tipo &lt;STRONG&gt;ParameterizedOperationMetadata&lt;/STRONG&gt; que va a contener la definición de la operación.&lt;/P&gt;
&lt;P&gt;Una vez creado el objeto que contiene la operación, vamos a ir añadiendo a la colección &lt;STRONG&gt;Parameters&lt;/STRONG&gt; de este cada uno de los parámetros del la operación.&lt;/P&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;public&lt;/SPAN&gt; OperationMetadata ResolveOperationMetadata(&lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt; operationId, TimeSpan timeout, &lt;/PRE&gt;&lt;PRE class=csharpcode&gt;					&lt;SPAN class=kwrd&gt;out&lt;/SPAN&gt; TypeMetadataCollection extraTypeMetadataResolved)
{
  extraTypeMetadataResolved = &lt;SPAN class=kwrd&gt;null&lt;/SPAN&gt;;

  &lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt; nombreOperacion = &lt;SPAN class=str&gt;"MonitorizacionCorreo"&lt;/SPAN&gt;;
  ParameterizedOperationMetadata operationMetadata = &lt;/PRE&gt;&lt;PRE class=csharpcode&gt;		&lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; ParameterizedOperationMetadata(operationId, nombreOperacion);&lt;/PRE&gt;&lt;PRE class=csharpcode&gt;  operationMetadata.DisplayName = &lt;SPAN class=str&gt;"RecibirNuevoCorreo"&lt;/SPAN&gt;;
  operationMetadata.OriginalName = &lt;SPAN class=str&gt;"Evento_RecibirNuevoCorreo"&lt;/SPAN&gt;;

  OperationParameter asuntoCorreo = &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; OperationParameter(&lt;SPAN class=str&gt;"asuntoCorreo"&lt;/SPAN&gt;, &lt;/PRE&gt;&lt;PRE class=csharpcode&gt;			OperationParameterDirection.In, &lt;/PRE&gt;&lt;PRE class=csharpcode&gt;			QualifiedType.StringType, &lt;SPAN class=kwrd&gt;false&lt;/SPAN&gt;);
  asuntoCorreo.Description = &lt;SPAN class=str&gt;"Asunto del correo"&lt;/SPAN&gt;;
  operationMetadata.Parameters.Add(asuntoCorreo);

  OperationParameter cuerpoCorreo = &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; OperationParameter(&lt;SPAN class=str&gt;"cuerpoCorreo"&lt;/SPAN&gt;, &lt;/PRE&gt;&lt;PRE class=csharpcode&gt;					OperationParameterDirection.In, &lt;/PRE&gt;&lt;PRE class=csharpcode&gt;					QualifiedType.StringType, &lt;SPAN class=kwrd&gt;false&lt;/SPAN&gt;);
  asuntoCorreo.Description = &lt;SPAN class=str&gt;"Contenido del correo"&lt;/SPAN&gt;;
  operationMetadata.Parameters.Add(cuerpoCorreo);

  OperationParameter remitente = &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; OperationParameter(&lt;SPAN class=str&gt;"remitente"&lt;/SPAN&gt;, &lt;/PRE&gt;&lt;PRE class=csharpcode&gt;					OperationParameterDirection.In, &lt;/PRE&gt;&lt;PRE class=csharpcode&gt;					QualifiedType.StringType, &lt;SPAN class=kwrd&gt;false&lt;/SPAN&gt;);
  asuntoCorreo.Description = &lt;SPAN class=str&gt;"Remitente del correo"&lt;/SPAN&gt;;
  operationMetadata.Parameters.Add(remitente);

  OperationParameter destinatario = &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; OperationParameter(&lt;SPAN class=str&gt;"destinatario"&lt;/SPAN&gt;, &lt;/PRE&gt;&lt;PRE class=csharpcode&gt;					 OperationParameterDirection.In, &lt;/PRE&gt;&lt;PRE class=csharpcode&gt;					 QualifiedType.StringType, &lt;SPAN class=kwrd&gt;false&lt;/SPAN&gt;);
  asuntoCorreo.Description = &lt;SPAN class=str&gt;"Destinatario del correo"&lt;/SPAN&gt;;
  operationMetadata.Parameters.Add(destinatario);


  operationMetadata.OperationResult = &lt;SPAN class=kwrd&gt;null&lt;/SPAN&gt;;
  &lt;SPAN class=kwrd&gt;return&lt;/SPAN&gt; operationMetadata;
}&lt;/PRE&gt;
&lt;P&gt;En nuestro caso no tenemos ningún tipo complejo por lo tanto no implementaremos el método &lt;STRONG&gt;ResolveTypeMetadata&lt;/STRONG&gt;.&lt;/P&gt;
&lt;H5&gt;Ejecución de las operaciones&lt;/H5&gt;
&lt;P&gt;Ya por último solo nos queda añadir la lógica que monitorizará el correo y enviará los mensajes obtenidos al consumidor del adaptador.&lt;/P&gt;
&lt;P&gt;Para ello vamos a implementar los siguientes métodos:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;B&gt;StartListener&lt;/B&gt;: lógica de escucha de mensajes asociados a una operación en concreto (&lt;B&gt;action&lt;/B&gt;). &lt;/LI&gt;
&lt;LI&gt;&lt;B&gt;StopListener&lt;/B&gt;: fin de la escucha de mensajes. &lt;/LI&gt;
&lt;LI&gt;&lt;B&gt;TryReceive&lt;/B&gt;: intenta recibir un mensaje de entrada de la aplicación de negocio destino. Este método devuelve un valor booleano indicando si se ha podido obtener el mensaje del sistema destino o no. &lt;/LI&gt;
&lt;LI&gt;&lt;B&gt;WaitForMessage&lt;/B&gt;: espera un mensaje de entrada de la aplicación de negocio destino. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;En el método &lt;STRONG&gt;StartListener&lt;/STRONG&gt; crearemos una cola de mensajes que contendrán todos los mails del servidor de correo pendientes de notificar al consumidor.&lt;/P&gt;
&lt;P&gt;Para monitorizar el servidor de correo vamos a crear un timer que cada 10 segundos compruebe los mails que hay.&lt;/P&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;public&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;void&lt;/SPAN&gt; StartListener(&lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt;[] actions, TimeSpan timeout)
{
       colaMensajesEntrada = &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; Queue&amp;lt;Message&amp;gt;();
       &lt;SPAN class=kwrd&gt;foreach&lt;/SPAN&gt; (&lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt; action &lt;SPAN class=kwrd&gt;in&lt;/SPAN&gt; actions)
       {
          &lt;SPAN class=kwrd&gt;if&lt;/SPAN&gt; (&lt;SPAN class=str&gt;"MonitorizacionCorreo"&lt;/SPAN&gt;.Equals(action))
          {
             delegado = &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; TimerCallback(Monitoriza);
             objThread = &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; Timer(delegado, &lt;SPAN class=kwrd&gt;null&lt;/SPAN&gt;, 1000, 10000);
          }
       }
}&lt;/PRE&gt;
&lt;P&gt;En el método &lt;STRONG&gt;StopListener&lt;/STRONG&gt; pararemos la monitorización del servidor de correo.&lt;/P&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;public&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;void&lt;/SPAN&gt; StopListener(TimeSpan timeout)
{
	objThread.Dispose();
}&lt;/PRE&gt;
&lt;P&gt;En el método &lt;STRONG&gt;TryReceive&lt;/STRONG&gt; comprobaremos si la cola de mensajes tiene algún correo pendiente de notificar al consumidor del adaptador. La notificación la realizaremos mediante el parámetro de salida &lt;STRONG&gt;message&lt;/STRONG&gt; que tiene el propio método. Además debemos de devolver como resultado de la función &lt;STRONG&gt;true&lt;/STRONG&gt; en el caso que estemos devolviendo un mensaje o &lt;STRONG&gt;false&lt;/STRONG&gt; si no tenemos nada pendiente que notificar del sistema destino.&lt;/P&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;public&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;bool&lt;/SPAN&gt; TryReceive(TimeSpan timeout, &lt;SPAN class=kwrd&gt;out&lt;/SPAN&gt; System.ServiceModel.Channels.Message message, &lt;/PRE&gt;&lt;PRE class=csharpcode&gt;			&lt;SPAN class=kwrd&gt;out&lt;/SPAN&gt; IInboundReply reply)&lt;/PRE&gt;&lt;PRE class=csharpcode&gt;{
       reply = &lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; Pop3AdapterInboundReply();
       message = &lt;SPAN class=kwrd&gt;null&lt;/SPAN&gt;;

       &lt;SPAN class=kwrd&gt;if&lt;/SPAN&gt; (colaMensajesEntrada.Count != 0)
       {
          message = colaMensajesEntrada.Dequeue();
          &lt;SPAN class=kwrd&gt;if&lt;/SPAN&gt; (message != &lt;SPAN class=kwrd&gt;null&lt;/SPAN&gt;)
          {
              &lt;SPAN class=kwrd&gt;return&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;true&lt;/SPAN&gt;;
          }
        }
        &lt;SPAN class=kwrd&gt;return&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;false&lt;/SPAN&gt;;
}&lt;/PRE&gt;
&lt;P&gt;El método encargado de monitorizar la entrada de nuevos correos obtendrá la conexión del servidor de correo de las propiedades del adaptador e irá encolando cada uno de los mensajes que reciba.&lt;/P&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;private&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;void&lt;/SPAN&gt; Monitoriza(Object stateInfo)
{
&lt;SPAN class=kwrd&gt;  int&lt;/SPAN&gt; contadorMail=0;
  Pop3Client email = &lt;SPAN class=kwrd&gt;this&lt;/SPAN&gt;.Connection.Conexion;
  &lt;SPAN class=kwrd&gt;while&lt;/SPAN&gt; (email.NextEmail(contadorMail))
  {
     &lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt; asuntoCorreo = email.Subject;
     &lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt; cuerpoCorreo = email.Body;
     &lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt; remitente = email.From;
     &lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt; destinatario = email.To;

     Message msg = CrearMensajeRecepcionPedido(asuntoCorreo,cuerpoCorreo,remitente,destinatario);
     colaMensajesEntrada.Enqueue(msg);
     contadorMail++;
  }
            
}&lt;/PRE&gt;
&lt;P&gt;El mensaje que debemos enviar al consumidor del adaptador para notificarle de la llegada de nuevos correos debe cumplir un formato concreto.&lt;/P&gt;
&lt;P&gt;En el siguiente método podemos ver como transformar la información obtenida del servidor de correo en un formato que podamos enviar al consumidor a través del adaptador.&lt;/P&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;private&lt;/SPAN&gt; Message CrearMensajeRecepcionPedido(&lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt; asuntoCorreo, &lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt; cuerpoCorreo, &lt;/PRE&gt;&lt;PRE class=csharpcode&gt;					&lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt; remitente, &lt;SPAN class=kwrd&gt;string&lt;/SPAN&gt; destinatario)
{&lt;/PRE&gt;&lt;PRE class=csharpcode&gt;  Pop3Adapter adapter = &lt;SPAN class=kwrd&gt;this&lt;/SPAN&gt;.Connection.ConnectionFactory.Adapter;

  String xmlData = String.Format(&lt;SPAN class=str&gt;@"&amp;lt;RecibirNuevoCorreo xmlns="&lt;/SPAN&gt;&lt;SPAN class=str&gt;"{0}"&lt;/SPAN&gt;&lt;SPAN class=str&gt;"&amp;gt;&amp;lt;asuntoCorreo&amp;gt;"&lt;/SPAN&gt; + asuntoCorreo &lt;/PRE&gt;&lt;PRE class=csharpcode&gt;  + &lt;SPAN class=str&gt;"&amp;lt;/asuntoCorreo&amp;gt;&amp;lt;cuerpoCorreo&amp;gt;"&lt;/SPAN&gt; + cuerpoCorreo + &lt;SPAN class=str&gt;"&amp;lt;/cuerpoCorreo&amp;gt;&amp;lt;remitente&amp;gt;"&lt;/SPAN&gt; + remitente &lt;/PRE&gt;&lt;PRE class=csharpcode&gt;  + &lt;SPAN class=str&gt;"&amp;lt;/remitente&amp;gt;&amp;lt;destinatario&amp;gt;"&lt;/SPAN&gt; + destinatario &lt;/PRE&gt;&lt;PRE class=csharpcode&gt;  + &lt;SPAN class=str&gt;"&amp;lt;/destinatario&amp;gt;&amp;lt;/RecibirNuevoCorreo&amp;gt;"&lt;/SPAN&gt;, adapter.ServiceNamespace);&lt;/PRE&gt;&lt;PRE class=csharpcode&gt;  XmlReader reader = XmlReader.Create(&lt;SPAN class=kwrd&gt;new&lt;/SPAN&gt; StringReader(xmlData));

  Message msgResultado = Message.CreateMessage(MessageVersion.Default, &lt;/PRE&gt;&lt;PRE class=csharpcode&gt;                          &lt;SPAN class=str&gt;"MonitorizacionCorreo"&lt;/SPAN&gt;, reader);
  &lt;SPAN class=kwrd&gt;return&lt;/SPAN&gt; msgResultado;
}&lt;/PRE&gt;
&lt;H5&gt;Despliegue del adaptador&lt;/H5&gt;
&lt;P&gt;Una vez desarrollado el adaptador, debemos firmarlo con un strong name y subirlo al Global Assembly Cache. Debemos copiar la clave pública del assembly una vez que lo hayamos subido al GAC ya que lo necesitaremos luego para registrar el adaptador en el fichero de configuración.&lt;/P&gt;
&lt;P&gt;El adaptador lo podremos registrar tanto en el &lt;STRONG&gt;machine.config&lt;/STRONG&gt; en el caso que queramos que el adaptador esté disponible para todos los proyectos de la máquina, o lo podemos registrar en el fichero de configuración del proyecto donde vayamos a consumir el adaptador.&lt;/P&gt;
&lt;P&gt;Nosotros en este ejemplo vamos a registrarlo en el &lt;STRONG&gt;machine.config&lt;/STRONG&gt; para que esté accesible desde todos los proyectos.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Vamos a registrar el adaptador como un elemento de binding. Para ello en la sección&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;&amp;lt;system.serviceModel&amp;gt;&amp;lt;extensions&amp;gt;&lt;B&gt;&amp;lt;bindingElementExtensions&amp;gt;&lt;/B&gt;&lt;/STRONG&gt; añadiremos el &lt;/LI&gt;&lt;/UL&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;siguiente xml:&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;add&lt;/SPAN&gt; &lt;SPAN class=attr&gt;name&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="AdapterPOP3"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;type&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="ejemplo.adaptadorwcf.Pop3AdapterBindingElementExtensionElement,&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;Pop3Adapter, Version=1.0.0.0, &lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;Culture=neutral, PublicKeyToken=447f918ac099d73e"&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;También podemos registrar el adaptador como un binding. Para ello añadiremos el siguiente XML en la sección&amp;nbsp; &lt;STRONG&gt;&amp;lt;system.serviceModel&amp;gt;&amp;lt;extensions&amp;gt;&lt;/STRONG&gt;&lt;B&gt;&amp;lt;bindingExtensions&amp;gt;.&lt;/B&gt;: &lt;/LI&gt;&lt;/UL&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;add&lt;/SPAN&gt; &lt;SPAN class=attr&gt;name&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="AdapterPOP3Binding"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;type&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="ejemplo.adaptadorwcf.Pop3AdapterBindingCollectionElement,&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;Pop3Adapter, Version=1.0.0.0, &lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;Culture=neutral, PublicKeyToken=447f918ac099d73e"&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;Una vez registrado el adaptador ya podemos utilizarlo en un endpoint de cliente. Para ello en la sección &lt;STRONG&gt;&amp;lt;system.serviceModel&amp;gt;&amp;lt;client&amp;gt;&lt;/STRONG&gt; vamos a añadir el siguiente XML:&lt;/P&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;endpoint&lt;/SPAN&gt; &lt;SPAN class=attr&gt;binding&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="AdapterPOP3Binding"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;contract&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="IMetadataExchange"&lt;/SPAN&gt;
        &lt;SPAN class=attr&gt;name&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="AdaptadorPOP3"&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;Debemos asegurarnos que el nombre del binding que pongamos en el endpoint sea el mismo que hayamos utilizado al registrar el binding.&lt;/P&gt;
&lt;P&gt;En los próximos días publicaré un post indicando como consumir este adaptador desde una aplicación .NET.&lt;/P&gt;
&lt;P&gt;Adjunto un archivo con el código fuente para que os quede un poco mas claro la implementación del adaptador. Solamente decir que este código ha sido implementado para servir de apoyo al post y en ningún momento está optimizado ni ha sido pensado para poder utilizarse en un entorno real.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://thinkingtogether.net/aggbug.aspx?PostID=42" width="1" height="1"&gt;</description><enclosure url="http://thinkingtogether.net/blogs/sample_weblog/attachment/42.ashx" length="61059" type="application/octet-stream" /><category domain="http://thinkingtogether.net/blogs/sample_weblog/archive/tags/WCF/default.aspx">WCF</category><category domain="http://thinkingtogether.net/blogs/sample_weblog/archive/tags/WCF+LOB+Adapter+SDK/default.aspx">WCF LOB Adapter SDK</category></item><item><title>Proyecto Fjord: Biztalk Mapper + Surface</title><link>http://thinkingtogether.net/blogs/sample_weblog/archive/2008/04/28/proyecto-fjord-biztalk-mapper-surface.aspx</link><pubDate>Mon, 28 Apr 2008 19:21:00 GMT</pubDate><guid isPermaLink="false">ded273ab-9e87-4979-8222-e4e2e46f1b46:36</guid><dc:creator>Roberto</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;En el &lt;A class="" title=blog href="http://timrayburn.net/2007/11/29/ProjectFjordBizTalkMapperToRequireSurfaceInOslo.aspx" target=_blank&gt;blog&lt;/A&gt; de Tim Rayburn aparece una noticia cuanto menos interesante.&lt;/P&gt;
&lt;P&gt;Nos cuenta la integración de Biztalk Mapper y Surface. No dejéis de leer el post de Tim porque no tiene desperdicio.&lt;/P&gt;
&lt;P&gt;Esperaremos noticias nuevas.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://thinkingtogether.net/aggbug.aspx?PostID=36" width="1" height="1"&gt;</description><category domain="http://thinkingtogether.net/blogs/sample_weblog/archive/tags/Oslo/default.aspx">Oslo</category></item><item><title>Biztalk Server 2006 R3</title><link>http://thinkingtogether.net/blogs/sample_weblog/archive/2008/04/23/biztalk-server-2006-r3.aspx</link><pubDate>Wed, 23 Apr 2008 09:15:00 GMT</pubDate><guid isPermaLink="false">ded273ab-9e87-4979-8222-e4e2e46f1b46:35</guid><dc:creator>Roberto</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;Como siempre Biztalk se adapta a la nueva oleada de cambios tecnológicos y nuevos productos que han ido saliendo estos último meses. &lt;/P&gt;
&lt;P&gt;Como en su día se adaptó a Visual Studio 2005 y a SQL Server 2005, Microsoft adaptará Biztalk Server a Windows Server 2008, Sql Server 2008 y .NET Framework 3.5.&lt;/P&gt;
&lt;P&gt;El nombre de la release será Biztalk Server 2006 R3. Se espera una CTP para verano de este año y una versión RTM para el principios del año 2009.&lt;/P&gt;
&lt;P&gt;Algunas de las novedades que traerá el produto son las siguientes:&lt;/P&gt;
&lt;UL style="MARGIN-TOP:0cm;"&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:'Calibri','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;Nuevas capacidades de registro de web service con soporte para UDDI (Universal Description Discovery and Integration) version 3.0 &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:'Calibri','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;Nuevos adaptadores mejorados para aplicaciones LOB, bases de datos, ...&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:'Calibri','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;Soporte de conectividad e interoperabilidad mejorada&amp;nbsp;para protocolos de la industria (SWIFT, EDI, etc)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-list:l0 level1 lfo1;"&gt;&lt;SPAN style="FONT-SIZE:11pt;FONT-FAMILY:'Calibri','sans-serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;"&gt;Patrones SOA y guía de best practices para asistir a implementaciones de clientes&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://thinkingtogether.net/aggbug.aspx?PostID=35" width="1" height="1"&gt;</description><category domain="http://thinkingtogether.net/blogs/sample_weblog/archive/tags/Biztalk+Server+2006+R3/default.aspx">Biztalk Server 2006 R3</category></item><item><title>Desde Redmon</title><link>http://thinkingtogether.net/blogs/sample_weblog/archive/2008/04/15/desde-redmon.aspx</link><pubDate>Tue, 15 Apr 2008 20:21:00 GMT</pubDate><guid isPermaLink="false">ded273ab-9e87-4979-8222-e4e2e46f1b46:34</guid><dc:creator>Roberto</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;Desde el sábado 12 estámos algunos MVPs en Seattle para asistir al MVP submit. Reunión donde los MVPs damos feedback al grupo de producto y estos a su vez nos presentan las novedades que incorporarán las&amp;nbsp;siguientes versiones de los productos sobre los que somos MVPs.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;En mi caso estoy asistiendo a las charlas que da el grupo de Connected System sobre Biztalk Server, OSLO y demás cosas que no puedo contar :). Es un espectáculo ver a DON BOX dar una charla.&lt;/P&gt;
&lt;P&gt;En esta ocasión nos ha dadio tiempo a hacer algo de turismo por Seattle así como a hacer algunas compras :) (hay que aprovechar el cambio al dolar).&lt;/P&gt;
&lt;P&gt;Recomiendo a todo el que se acerque por aquí que no deje de ver la fábrica de Boeing, es una auténtica pasada ver como construyen los aviones en situ.&lt;/P&gt;
&lt;P&gt;Otro espectáculo que la gente no se puede perder es un partido de la NBA. Es&amp;nbsp;puro espectáculo desde que empieza hasta que termina. &lt;/P&gt;
&lt;P&gt;PD: Para mi gusto salen demasiado poco las Cheerleaders&amp;nbsp; :).&lt;/P&gt;
&lt;P&gt;Seguiremos contando.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://thinkingtogether.net/aggbug.aspx?PostID=34" width="1" height="1"&gt;</description></item><item><title>Microsoft TechDays</title><link>http://thinkingtogether.net/blogs/sample_weblog/archive/2008/02/25/microsoft-techdays.aspx</link><pubDate>Mon, 25 Feb 2008 11:32:00 GMT</pubDate><guid isPermaLink="false">ded273ab-9e87-4979-8222-e4e2e46f1b46:33</guid><dc:creator>Roberto</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;Buenas, llevo unos meses en el puesto de responsable de preventa de mi empresa y no me ha dejado mucho tiempo para escribir en el blog.&lt;/P&gt;
&lt;P&gt;Tengo algún artículo pendiente de escribir que espero poderlos tener finalizado en breve ( WCF Adapter SDK, WF Services,..).&lt;/P&gt;
&lt;P&gt;El martes 26 y miércoles 27 de Febrero es la presentación de Windows Server 2008, SQL Server 2008 y Visual Studio 2008. Habrá Tracks de lo mas variados desde presentaciones de introducción a productos y tecnologías hasta presentaciones en profundidad.&lt;/P&gt;
&lt;P&gt;Os recomiendo mi charla &lt;STRONG&gt;Workflow Services&lt;/STRONG&gt; &lt;STRONG&gt;en produndidad&lt;/STRONG&gt; la cual tendrá lugar el día 26 a las 18:00 en la Sala Madrid.&lt;/P&gt;
&lt;P&gt;En esta charla veremos que novedades tenemos en .net 3.5 con respecto a la integración de WCF y WF.&lt;/P&gt;
&lt;P&gt;Nos vemos.&lt;/P&gt;&lt;img src="http://thinkingtogether.net/aggbug.aspx?PostID=33" width="1" height="1"&gt;</description><category domain="http://thinkingtogether.net/blogs/sample_weblog/archive/tags/Eventos/default.aspx">Eventos</category></item><item><title>SOA Conference 2007</title><link>http://thinkingtogether.net/blogs/sample_weblog/archive/2007/11/23/soa-conference-2007.aspx</link><pubDate>Fri, 23 Nov 2007 19:46:00 GMT</pubDate><guid isPermaLink="false">ded273ab-9e87-4979-8222-e4e2e46f1b46:31</guid><dc:creator>Roberto</dc:creator><slash:comments>0</slash:comments><description>&lt;SPAN&gt;&lt;FONT face=Arial size=2&gt;
&lt;P class=MsoPlainText style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face=Consolas size=3&gt;Hay una conferencia sobre SOA el día 4 de diciembre en madrid.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN:0cm 0cm 0pt;" align=left&gt;&lt;FONT face=Consolas size=3&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN:0cm 0cm 0pt;" align=left&gt;&lt;FONT face=Consolas size=3&gt;Se contarán las novedades de Biztalk Server 2006 R2,&amp;nbsp;roadmap de futuro "OSLO",&amp;nbsp;charlas sobre Adaptadores de Biztalk para WCF, Conectando aplicaciones de negocio con Biztalk Adapter Pack, etc.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN:0cm 0cm 0pt;" align=left&gt;&lt;FONT face=Consolas size=3&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN:0cm 0cm 0pt;" align=left&gt;&lt;FONT face=Consolas size=3&gt;Espero veros por alli.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face=Consolas size=3&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Consolas&gt;http://www.microsoft.com/spain/sunegocioconectado/&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face=Consolas size=3&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face=Consolas size=3&gt;Un saludo.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;img src="http://thinkingtogether.net/aggbug.aspx?PostID=31" width="1" height="1"&gt;</description><category domain="http://thinkingtogether.net/blogs/sample_weblog/archive/tags/Eventos/default.aspx">Eventos</category></item><item><title>Biztalk Server 2006 R2 disponible</title><link>http://thinkingtogether.net/blogs/sample_weblog/archive/2007/09/28/biztalk-server-2006-r2-disponible.aspx</link><pubDate>Fri, 28 Sep 2007 11:52:34 GMT</pubDate><guid isPermaLink="false">ded273ab-9e87-4979-8222-e4e2e46f1b46:29</guid><dc:creator>Roberto</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Ya est&amp;#xE1; disponible la descarga via MSDN de Biztalk Server 2006 R2.&lt;/p&gt;  &lt;p&gt;Para todos aquellos que quieran saber las novedades que trae esta release: &lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.microsoft.com/biztalk/evaluation/default.mspx" href="http://www.microsoft.com/biztalk/evaluation/default.mspx"&gt;http://www.microsoft.com/biztalk/evaluation/default.mspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Un saludo.&lt;/p&gt;&lt;img src="http://thinkingtogether.net/aggbug.aspx?PostID=29" width="1" height="1"&gt;</description><category domain="http://thinkingtogether.net/blogs/sample_weblog/archive/tags/Biztalk+Server+2006+R2/default.aspx">Biztalk Server 2006 R2</category></item><item><title>Compatibilidad de BizTalk Server 2006 y BizTalk Server 2004 en un equipo virtual</title><link>http://thinkingtogether.net/blogs/sample_weblog/archive/2007/07/03/compatibilidad-de-biztalk-server-2006-y-biztalk-server-2004-en-un-equipo-virtual.aspx</link><pubDate>Tue, 03 Jul 2007 21:29:00 GMT</pubDate><guid isPermaLink="false">ded273ab-9e87-4979-8222-e4e2e46f1b46:24</guid><dc:creator>Roberto</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;Buscando información sobre soporte de instalación de Biztalk en máquinas virtuales me he encontrado el siguiente artículo de microsoft &lt;A class="" href="http://support.microsoft.com/kb/842301/es" target=_blank&gt;http://support.microsoft.com/kb/842301/es&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Leyendo el artículo vemos que Biztalk Server 2004 y 2006 están soportados completamente cuando son instalados en un sistema operativo soportado corriendo sobre Microsoft Virtual Server 2005.&lt;/P&gt;
&lt;P&gt;Un saludo.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://thinkingtogether.net/aggbug.aspx?PostID=24" width="1" height="1"&gt;</description><category domain="http://thinkingtogether.net/blogs/sample_weblog/archive/tags/Biztalk+Server+2006/default.aspx">Biztalk Server 2006</category></item><item><title>Ya soy MVP</title><link>http://thinkingtogether.net/blogs/sample_weblog/archive/2007/07/03/ya-soy-mvp.aspx</link><pubDate>Tue, 03 Jul 2007 08:05:00 GMT</pubDate><guid isPermaLink="false">ded273ab-9e87-4979-8222-e4e2e46f1b46:21</guid><dc:creator>Roberto</dc:creator><slash:comments>4</slash:comments><description>&lt;P&gt;El lunes por la mañana cuando&amp;nbsp;voy a leer el correo me encuentro con la grata noticia que me han nombrado MVP de Biztalk.&lt;/P&gt;
&lt;P&gt;Simplemente agredecer&amp;nbsp;tanto a&amp;nbsp;&lt;A class="" href="http://blogs.msdn.com/cesardelatorre/" target=_blank&gt;Cesar de la Torre&lt;/A&gt;&amp;nbsp; como a Cristina &amp;nbsp;la MVP Lead de España por su apoyo.&lt;/P&gt;
&lt;P&gt;Esto la verdad es que es una inyección de moral para seguir colaborando en foros, eventos, etc.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://thinkingtogether.net/aggbug.aspx?PostID=21" width="1" height="1"&gt;</description><category domain="http://thinkingtogether.net/blogs/sample_weblog/archive/tags/MVP/default.aspx">MVP</category></item><item><title>BizTalk Server 2006 R2 Beta 2</title><link>http://thinkingtogether.net/blogs/sample_weblog/archive/2007/06/19/biztalk-server-2006-r2-beta-2.aspx</link><pubDate>Tue, 19 Jun 2007 09:48:00 GMT</pubDate><guid isPermaLink="false">ded273ab-9e87-4979-8222-e4e2e46f1b46:20</guid><dc:creator>Roberto</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;En la siguiente url podremos descargar la beta 2 de la versión R2 de Biztalk.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://support.microsoft.com/?kbid=936046"&gt;http://support.microsoft.com/?kbid=936046&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Además también están dispononibles nuevos ejemplos de código para esta versión.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;A href="http://go.microsoft.com/fwlink/?LinkId=86689"&gt;http://go.microsoft.com/fwlink/?LinkId=86689&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Un saludo.&lt;/P&gt;&lt;img src="http://thinkingtogether.net/aggbug.aspx?PostID=20" width="1" height="1"&gt;</description><category domain="http://thinkingtogether.net/blogs/sample_weblog/archive/tags/Biztalk+Server+2006/default.aspx">Biztalk Server 2006</category></item><item><title>8 consejos y trucos para mejorar la programación de BizTalk</title><link>http://thinkingtogether.net/blogs/sample_weblog/archive/2007/05/29/8-consejos-y-trucos-para-mejorar-la-programaci-n-de-biztalk.aspx</link><pubDate>Tue, 29 May 2007 10:41:00 GMT</pubDate><guid isPermaLink="false">ded273ab-9e87-4979-8222-e4e2e46f1b46:19</guid><dc:creator>Roberto</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;En el &lt;A class="" href="http://msdn.microsoft.com/msdnmag/issues/07/05/biztalk/default.aspx?loc=es" target=_blank&gt;msdn&lt;/A&gt; aparece publicado un artículo de &lt;A title="More articles by this author" href="http://msdn.microsoft.com/msdnmag/find/?type=Au&amp;amp;phrase=Marty%20Wasznicky%20and%20Scott%20Zimmerman&amp;amp;words=exact"&gt;Marty Wasznicky&amp;nbsp;&lt;/A&gt;&amp;nbsp;y&amp;nbsp;&lt;A title="More articles by this author" href="http://msdn.microsoft.com/msdnmag/find/?type=Au&amp;amp;phrase=Marty%20Wasznicky%20and%20Scott%20Zimmerman&amp;amp;words=exact"&gt;Scott Zimmerman&lt;/A&gt;&amp;nbsp;donde se analizan los siguientes temas:&lt;/P&gt;
&lt;P class=clsInfoBox&gt;&lt;A href="http://msdn.microsoft.com/msdnmag/issues/07/05/biztalk/default.aspx?loc=es#S1" target=_self&gt;1. Utilice siempre tipos de mensajes con varias partes&lt;/A&gt;&lt;BR&gt;&lt;A href="http://msdn.microsoft.com/msdnmag/issues/07/05/biztalk/default.aspx?loc=es#S2" target=_self&gt;2. Intente diseñar siempre orquestaciones con puertos de enlace directo&lt;/A&gt;&lt;BR&gt;&lt;A href="http://msdn.microsoft.com/msdnmag/issues/07/05/biztalk/default.aspx?loc=es#S3" target=_self&gt;3. Utilice siempre esquemas internos y externos diferentes&lt;/A&gt;&lt;BR&gt;&lt;A href="http://msdn.microsoft.com/msdnmag/issues/07/05/biztalk/default.aspx?loc=es#S4" target=_self&gt;4. Nunca exponga directamente sus esquemas internos en WSDL&lt;/A&gt;&lt;BR&gt;&lt;A href="http://msdn.microsoft.com/msdnmag/issues/07/05/biztalk/default.aspx?loc=es#S5" target=_self&gt;5. Optimice siempre el registro de BizTalk para servicios web&lt;/A&gt;&lt;BR&gt;&lt;A href="http://msdn.microsoft.com/msdnmag/issues/07/05/biztalk/default.aspx?loc=es#S6" target=_self&gt;6. Configure siempre el archivo de claves de ensamblado con una ruta relativa&lt;/A&gt;&lt;BR&gt;&lt;A href="http://msdn.microsoft.com/msdnmag/issues/07/05/biztalk/default.aspx?loc=es#S7" target=_self&gt;7. Nunca pase por alto el código de ejemplo gratuito&lt;/A&gt;&lt;BR&gt;&lt;A href="http://msdn.microsoft.com/msdnmag/issues/07/05/biztalk/default.aspx?loc=es#S8" target=_self&gt;8. Depuración XSLT en Visual Studio&lt;/A&gt;&lt;/P&gt;
&lt;P class=clsInfoBox&gt;Y lo mejor de todo es que está publicado en español :).&lt;/P&gt;
&lt;P class=clsInfoBox&gt;&amp;nbsp;Saludos.&lt;/P&gt;&lt;img src="http://thinkingtogether.net/aggbug.aspx?PostID=19" width="1" height="1"&gt;</description><category domain="http://thinkingtogether.net/blogs/sample_weblog/archive/tags/Biztalk+Server+2006/default.aspx">Biztalk Server 2006</category></item><item><title>Troubleshooting Enterprise Single Sign-On</title><link>http://thinkingtogether.net/blogs/sample_weblog/archive/2007/04/11/troubleshooting-enterprise-single-sign-on.aspx</link><pubDate>Wed, 11 Apr 2007 15:15:00 GMT</pubDate><guid isPermaLink="false">ded273ab-9e87-4979-8222-e4e2e46f1b46:18</guid><dc:creator>Roberto</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;En la siguiente URL tenemos información sobre los errores mas comunes que suelen surgir cuando usamos SSO.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/aa953861.aspx" target=_blank&gt;http://msdn2.microsoft.com/en-us/library/aa953861.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Espero que os sea de utilidad&lt;/P&gt;&lt;img src="http://thinkingtogether.net/aggbug.aspx?PostID=18" width="1" height="1"&gt;</description><category domain="http://thinkingtogether.net/blogs/sample_weblog/archive/tags/Biztalk+Server+2006/default.aspx">Biztalk Server 2006</category></item><item><title>Perdida de Templates en VS. 2005</title><link>http://thinkingtogether.net/blogs/sample_weblog/archive/2007/04/09/perdida-de-templates-en-vs-2005.aspx</link><pubDate>Mon, 09 Apr 2007 09:38:00 GMT</pubDate><guid isPermaLink="false">ded273ab-9e87-4979-8222-e4e2e46f1b46:17</guid><dc:creator>Roberto</dc:creator><slash:comments>2</slash:comments><description>&lt;P&gt;&amp;nbsp;Después de instalar las extensiones de WCF, WWF y WPF he perdido las plantillas estandar de Visual Studio 2005.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;La forma de solucionarlo ha sido la siguiente:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;- Copiar el contenido de &lt;STRONG&gt;C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\&lt;/STRONG&gt;&lt;STRONG&gt;ProjectTemplates&lt;/STRONG&gt; en la ruta &lt;STRONG&gt;My Documents\Visual Studio 2005\Templates\ProjectTemplates&lt;/STRONG&gt;. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;- Copiar el contenido de &lt;STRONG&gt;C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\&lt;/STRONG&gt;&lt;STRONG&gt;ItemTemplates&lt;/STRONG&gt; en la ruta &lt;STRONG&gt;My Documents\Visual Studio 2005\Templates\ItemTemplates&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;Con esto y sin tener que reinstalar Visual Studio se debería solucionar.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://thinkingtogether.net/aggbug.aspx?PostID=17" width="1" height="1"&gt;</description><category domain="http://thinkingtogether.net/blogs/sample_weblog/archive/tags/Visual+Studio+2005/default.aspx">Visual Studio 2005</category></item><item><title>Policy Injection Application Block </title><link>http://thinkingtogether.net/blogs/sample_weblog/archive/2007/03/12/policy-injection-application-block.aspx</link><pubDate>Mon, 12 Mar 2007 20:07:00 GMT</pubDate><guid isPermaLink="false">ded273ab-9e87-4979-8222-e4e2e46f1b46:16</guid><dc:creator>admin</dc:creator><slash:comments>0</slash:comments><description>&lt;P style="TEXT-ALIGN:justify;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt;En&amp;nbsp;el Enterprise Library 3.0 (CTP de Febrero 2007) han incluido a última hora un nuevo Application Block llamado &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY:Arial;"&gt;Policy Injection Application Block&lt;/SPAN&gt;&lt;/STRONG&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-ALIGN:justify;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt;Este application block permite definir políticas a métodos y objetos de forma declarativa.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-ALIGN:justify;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt;Cada política contiene una serie de &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY:Arial;"&gt;handlers&lt;/SPAN&gt;&lt;/STRONG&gt; que son ejecutados antes y después del método que tenga las políticas habilitadas. Las acciones a realizar por estas políticas serán Validaciones, Logging, manejo de excepciones, etc.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-ALIGN:justify;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:black;FONT-FAMILY:Arial;"&gt;En la creación del objeto usaremos una clase &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY:Arial;"&gt;Factory&lt;/SPAN&gt;&lt;/STRONG&gt; que será la encargada de inspeccionar el fichero de configuración de la aplicación y aplicar las políticas que hayamos definido en este.&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:windowtext 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:windowtext 1pt solid;PADDING-LEFT:4pt;PADDING-BOTTOM:1pt;BORDER-LEFT:windowtext 1pt solid;PADDING-TOP:1pt;BORDER-BOTTOM:windowtext 1pt solid;mso-element:para-border-div;mso-border-alt:solid windowtext .5pt;"&gt;
&lt;P style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;TEXT-ALIGN:justify;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt;Ejemplo de creación de un objeto:&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;TEXT-ALIGN:justify;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:teal;FONT-FAMILY:Arial;"&gt;Transferencias&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt; objTrans = &lt;SPAN style="COLOR:teal;"&gt;PolicyInjection&lt;/SPAN&gt;.Create&amp;lt;&lt;SPAN style="COLOR:teal;"&gt;Transferencias&lt;/SPAN&gt;&amp;gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;TEXT-ALIGN:justify;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;TEXT-ALIGN:justify;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt;Aquí radica la principal potencia de este Application Block, que no tenemos que modificar nuestro código para poder modificar las políticas, ya que estas son definidas de forma declarativa en un fichero de configuración y se aplican en tiempo de ejecución.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;TEXT-ALIGN:justify;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;TEXT-ALIGN:justify;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt;Dentro del fichero de configuración vamos a tener un formato parecido al siguiente:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:windowtext 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:windowtext 1pt solid;PADDING-LEFT:4pt;PADDING-BOTTOM:1pt;BORDER-LEFT:windowtext 1pt solid;PADDING-TOP:1pt;BORDER-BOTTOM:windowtext 1pt solid;mso-element:para-border-div;mso-border-alt:solid windowtext .5pt;"&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:Arial;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;policies&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY:Arial;mso-ansi-language:EN-US;"&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:Arial;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;add&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:Arial;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;name&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;"&lt;SPAN style="COLOR:blue;"&gt;PolicyName&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY:Arial;mso-ansi-language:EN;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:Arial;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;matchingRules&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;"&gt;&lt;B style="mso-bidi-font-weight:normal;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Aquí&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt; &lt;/SPAN&gt;&lt;B style="mso-bidi-font-weight:normal;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;vamos a tener la lista de reglas que se deben validar antes de aplicar la política&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;matchingRules&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY:Arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:Arial;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;handlers&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY:Arial;mso-ansi-language:EN;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;"&gt;&lt;B style="mso-bidi-font-weight:normal;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Aquí vamos a tener la lista de handlers que ejecutará esta política&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-FAMILY:Arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;handlers&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY:Arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;add&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:#a31515;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;policies&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&amp;gt;&lt;SPAN style="mso-tab-count:7;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;La siguiente pregunta es, ¿Qué tiene que cumplir mi clase para poder se “interceptada” por este aplication block?:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt 18pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;Tenemos dos opciones:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt 53.4pt;TEXT-INDENT:-18pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;mso-list:l1 level1 lfo1;tab-stops:list 53.4pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-no-proof:yes;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;Declarar un interface del cual herede nuestra clase.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt 53.4pt;TEXT-INDENT:-18pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;mso-list:l1 level1 lfo1;tab-stops:list 53.4pt;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Symbol;mso-no-proof:yes;mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol;"&gt;&lt;SPAN style="mso-list:Ignore;"&gt;·&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;Crear una clase que herede de &lt;B style="mso-bidi-font-weight:normal;"&gt;MarshalByRefObject&lt;/B&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;Ejemplo:&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:'Courier New';mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:windowtext 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:windowtext 1pt solid;PADDING-LEFT:4pt;PADDING-BOTTOM:1pt;BORDER-LEFT:windowtext 1pt solid;PADDING-TOP:1pt;BORDER-BOTTOM:windowtext 1pt solid;mso-element:para-border-div;mso-border-alt:solid windowtext .5pt;"&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;namespace&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt; DemoPolicyInjection&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;class&lt;/SPAN&gt; &lt;SPAN style="COLOR:teal;"&gt;Transferencias&lt;/SPAN&gt;: &lt;SPAN style="COLOR:teal;"&gt;MarshalByRefObject&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;void&lt;/SPAN&gt; Transferencia(&lt;SPAN style="COLOR:blue;"&gt;string&lt;/SPAN&gt; numCuenta1, &lt;SPAN style="COLOR:blue;"&gt;string&lt;/SPAN&gt; numCuenta2)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-tab-count:1;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;//Código a implementar en el método&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR:blue;"&gt;void&lt;/SPAN&gt; TransferenciaError(&lt;SPAN style="COLOR:blue;"&gt;string&lt;/SPAN&gt; numCuenta1, &lt;SPAN style="COLOR:blue;"&gt;string&lt;/SPAN&gt; numCuenta2)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;//Código a implementar en el método&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;Imaginémonos que queremos grabar en un log todas las llamadas que reciba cualquier método de esta clase. Para ello debemos usar el siguiente xml:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT:windowtext 1pt solid;PADDING-RIGHT:4pt;BORDER-TOP:windowtext 1pt solid;PADDING-LEFT:4pt;PADDING-BOTTOM:1pt;BORDER-LEFT:windowtext 1pt solid;PADDING-TOP:1pt;BORDER-BOTTOM:windowtext 1pt solid;mso-element:para-border-div;mso-border-alt:solid windowtext .5pt;"&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:maroon;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;policyInjection&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:maroon;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;policies&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:maroon;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;add&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;name&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;"&lt;SPAN style="COLOR:blue;"&gt;SaveToLog&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:maroon;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;matchingRules&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:maroon;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;add&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;name&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;"&lt;SPAN style="COLOR:blue;"&gt;Tipo Transaferencias&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR:red;"&gt;type&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Microsoft.Practices.EnterpriseLibrary.PolicyInjection.MatchingRules.TypeMatchingRule, Microsoft.Practices.EnterpriseLibrary.PolicyInjection, Version=2.9.9.2&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR:red;"&gt;ignoreCase&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;false&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR:red;"&gt;match&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Transferencias&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt; /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:maroon;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;matchingRules&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:maroon;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;handlers&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:maroon;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;add&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;name&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;"&lt;SPAN style="COLOR:blue;"&gt;Politica Grabar Log operaciones&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR:red;"&gt;type&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Microsoft.Practices.EnterpriseLibrary.PolicyInjection.CallHandlers.LogCallHandler, Microsoft.Practices.EnterpriseLibrary.PolicyInjection.CallHandlers, Version=2.9.9.2&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR:red;"&gt;logBehavior&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Before&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR:red;"&gt;beforeMessage&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;This is the before message&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR:red;"&gt;afterMessage&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;This is the after message&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR:red;"&gt;includeParameterValues&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;true&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR:red;"&gt;includeCallStack&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;true&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR:red;"&gt;includeCallTime&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;false&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR:red;"&gt;priority&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;42&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR:red;"&gt;severity&lt;/SPAN&gt;&lt;SPAN style="COLOR:blue;"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;Information&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:maroon;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;categories&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:maroon;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;add&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:red;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;name&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;"&lt;SPAN style="COLOR:blue;"&gt;LogOperaciones&lt;/SPAN&gt;"&lt;SPAN style="COLOR:blue;"&gt; /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:maroon;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;categories&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:maroon;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;add&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:maroon;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;handlers&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:maroon;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;add&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-ansi-language:EN-GB;mso-no-proof:yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:maroon;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;policies&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="BORDER-RIGHT:medium none;PADDING-RIGHT:0cm;BORDER-TOP:medium none;PADDING-LEFT:0cm;PADDING-BOTTOM:0cm;MARGIN:0cm 0cm 0pt;BORDER-LEFT:medium none;PADDING-TOP:0cm;BORDER-BOTTOM:medium none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:maroon;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;policyInjection&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:blue;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;Si analizamos el xml, vemos que para que se ejecute la política, el tipo del objeto debe ser Transferencias.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;Cumplida esta condición se ejecuta el &lt;B style="mso-bidi-font-weight:normal;"&gt;handler&lt;/B&gt; que en este caso graba en un fichero de log cada una de las llamadas que se hagan a cualquiera de los métodos de la clase Transferencia.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;Los posibles valores que vamos a poder especificar en &lt;B style="mso-bidi-font-weight:normal;"&gt;matchingRules&lt;/B&gt; son los siguientes:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-list:l0 level1 lfo2;tab-stops:list 36.0pt;mso-margin-bottom-alt:auto;"&gt;&lt;B style="mso-bidi-font-weight:normal;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt;AssemblyMathingRule&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt;&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;(todos los métodos de un assembly)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-list:l0 level1 lfo2;tab-stops:list 36.0pt;mso-margin-bottom-alt:auto;"&gt;&lt;B style="mso-bidi-font-weight:normal;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt;CustomAttributeMatchingRule&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt; (todos los métodos que tengan un atributo el cual especificaremos)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-list:l0 level1 lfo2;tab-stops:list 36.0pt;mso-margin-bottom-alt:auto;"&gt;&lt;B style="mso-bidi-font-weight:normal;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt;MemberNameMatchingRule&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt; (un método en concreto)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-list:l0 level1 lfo2;tab-stops:list 36.0pt;mso-margin-bottom-alt:auto;"&gt;&lt;B style="mso-bidi-font-weight:normal;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt;MethodSignatureMatchingRule&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt; (una sobre carga en concreto de un método)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-list:l0 level1 lfo2;tab-stops:list 36.0pt;mso-margin-bottom-alt:auto;"&gt;&lt;B style="mso-bidi-font-weight:normal;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt;NamespaceMatchingRule&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt; (todos los métodos de un namespace específico)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-list:l0 level1 lfo2;tab-stops:list 36.0pt;mso-margin-bottom-alt:auto;"&gt;&lt;B style="mso-bidi-font-weight:normal;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt;ReturnTypeMatchingRule&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt; (todos los métodos con un valor de retorno específico)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-list:l0 level1 lfo2;tab-stops:list 36.0pt;mso-margin-bottom-alt:auto;"&gt;&lt;B style="mso-bidi-font-weight:normal;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt;TagAttributeMatchingRule&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt; (todos los métodos con el atributo Tag)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-list:l0 level1 lfo2;tab-stops:list 36.0pt;mso-margin-bottom-alt:auto;"&gt;&lt;B style="mso-bidi-font-weight:normal;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt;TypeMatchingRule&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;"&gt; (todos los métodos de un tipo específico)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;Lista de &lt;B style="mso-bidi-font-weight:normal;"&gt;Handlers&lt;/B&gt; en esta CTP:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-list:l2 level1 lfo3;tab-stops:list 36.0pt;mso-margin-bottom-alt:auto;"&gt;&lt;B style="mso-bidi-font-weight:normal;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-ansi-language:EN-US;"&gt;LogCallHandler&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-ansi-language:EN;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-list:l2 level1 lfo3;tab-stops:list 36.0pt;mso-margin-bottom-alt:auto;"&gt;&lt;B style="mso-bidi-font-weight:normal;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-ansi-language:EN-US;"&gt;ValidationCallHandler&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-ansi-language:EN;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-list:l2 level1 lfo3;tab-stops:list 36.0pt;mso-margin-bottom-alt:auto;"&gt;&lt;B style="mso-bidi-font-weight:normal;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-ansi-language:EN-US;"&gt;ExceptionHandlingCallhandler &lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-ansi-language:EN;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;o:p&gt;Este post simplemente es una breve&amp;nbsp;introducción de la potencia de este Application Blog.&amp;nbsp;En el caso de&amp;nbsp;que queráis profundizar mas, os recomiendo los siguientes post:&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;o:p&gt;&lt;A href="http://bloggingabout.net/blogs/olaf/default.aspx"&gt;http://bloggingabout.net/blogs/olaf/default.aspx&lt;/A&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;o:p&gt;&lt;A href="http://blogs.msdn.com/tomholl/"&gt;http://blogs.msdn.com/tomholl/&lt;/A&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;o:p&gt;&lt;A href="http://blogs.msdn.com/edjez/archive/2007/02/23/policy-injection-app-block-behind-the-scenes.aspx"&gt;http://blogs.msdn.com/edjez/archive/2007/02/23/policy-injection-app-block-behind-the-scenes.aspx&lt;/A&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;o:p&gt;&amp;nbsp;Adjunto un archivo con el código de ejemplo utilizado para este post: &lt;A class="" href="http://thinkingtogether.net/archivos_ejemplo/policyinjection.rar" target=_blank&gt;policyinjection.rar&lt;/A&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;o:p&gt;En este ejemplo se usaran el Application Blog para grabar en un fichero de texto todas las llamadas a los métodos de la clase Transferencias. Además en el caso de que se produzcan un error en alguno de los métodos también se registrará en un log dicha excepción.&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;o:p&gt;Los archivos de log se guadan en la misma ruta que el ejecutable y se llaman &lt;STRONG&gt;Trace.log&lt;/STRONG&gt; y &lt;STRONG&gt;exception.log&lt;/STRONG&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;mso-margin-top-alt:auto;mso-layout-grid-align:none;"&gt;&lt;SPAN style="FONT-SIZE:10pt;FONT-FAMILY:Arial;mso-no-proof:yes;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://thinkingtogether.net/aggbug.aspx?PostID=16" width="1" height="1"&gt;</description><category domain="http://thinkingtogether.net/blogs/sample_weblog/archive/tags/Enterprise+Library/default.aspx">Enterprise Library</category></item><item><title>Cambio de host</title><link>http://thinkingtogether.net/blogs/sample_weblog/archive/2007/03/07/cambio-de-host.aspx</link><pubDate>Wed, 07 Mar 2007 23:40:00 GMT</pubDate><guid isPermaLink="false">ded273ab-9e87-4979-8222-e4e2e46f1b46:15</guid><dc:creator>Roberto</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;Después de una temporada gorroneando el espacio a mi amigo &lt;A class="" href="http://www.eblanco.com/" target=_blank&gt;Enrique Blanco&lt;/A&gt;, ha llegado el momento de migrar el blog a un nuevo host.&lt;/P&gt;
&lt;P&gt;He aprovechado para migrar todos los post (los pocos que hay :)) a Community Server y así probar que tal va comparado con dotnetnuke.&lt;/P&gt;
&lt;P&gt;Lo dicho, mi enterno agradecimiento a Enrique&amp;nbsp;por su cooperación desinteresada a la causa.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://thinkingtogether.net/aggbug.aspx?PostID=15" width="1" height="1"&gt;</description><category domain="http://thinkingtogether.net/blogs/sample_weblog/archive/tags/General/default.aspx">General</category></item><item><title>Ejecutar Stored Procedures mediante SQL Adapter</title><link>http://thinkingtogether.net/blogs/sample_weblog/archive/2007/03/04/ejecutar-stored-procedures-mediante-sql-adapter.aspx</link><pubDate>Sun, 04 Mar 2007 20:32:00 GMT</pubDate><guid isPermaLink="false">ded273ab-9e87-4979-8222-e4e2e46f1b46:13</guid><dc:creator>admin</dc:creator><slash:comments>2</slash:comments><description>&lt;SPAN class=Normal id=dnn_ctr505_MainView_ViewEntry_lblEntry&gt;&amp;nbsp; 
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Debido a que creo que hay bastantes dudas y poca información sobre el SQL Adapter, me he decidido a&amp;nbsp;escribir este post para intentar al menos sentar las bases del uso del adaptador.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Este ejemplo no pretende ser&amp;nbsp; código optimizado listo por ponerse en producción, sino más bien una prueba de concepto que facilite la tarea de aprendizaje de todas las personas que se empiecen a "pegar" con el SQL Adapter y solo encuentren documentación en inglés.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;En el ejemplo usaremos el SQL Adapter para ejecutar un procedimiento almacenado el cual&amp;nbsp; insertará un registro en una tabla y obtendrá como resultado los datos del registro insertado anteriormente.&lt;BR&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;STRONG&gt;Crear&amp;nbsp; tabla y procedimiento almacenado&lt;/STRONG&gt;&lt;BR&gt;&lt;/P&gt;&lt;/FONT&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Arial size=2&gt;Crear la tabla de ejemplo&lt;BR&gt;&lt;FONT color=#0000ff&gt;CREATE TABLE&lt;/FONT&gt; [dbo].[tablaejemplo]&lt;BR&gt;(&lt;BR&gt;&amp;nbsp;[ID] [int] NULL,&lt;BR&gt;&amp;nbsp;[Descripcion] [varchar](50) &lt;FONT color=#0000ff&gt;COLLATE&lt;/FONT&gt; Modern_Spanish_CI_AS NULL&lt;BR&gt;) &lt;FONT color=#0000ff&gt;ON&lt;/FONT&gt; [PRIMARY]&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Arial size=2&gt;&lt;BR&gt;&lt;FONT color=#0000ff&gt;CREATE PROCEDURE&lt;/FONT&gt; [dbo].[insert_tablaejemplo]&lt;BR&gt;&amp;nbsp;@id&amp;nbsp; &lt;FONT color=#0000ff&gt;int&lt;/FONT&gt;, &lt;BR&gt;&amp;nbsp;@desc &lt;FONT color=#0000ff&gt;varchar&lt;/FONT&gt;(50)&lt;BR&gt;&lt;FONT color=#0000ff&gt;AS&lt;BR&gt;BEGIN&lt;BR&gt;SET NOCOUNT ON;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;insert into&lt;/FONT&gt; tablaejemplo(id,descripcion) &lt;FONT color=#0000ff&gt;values&lt;/FONT&gt;(@id,@desc)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#0000ff&gt;select&lt;/FONT&gt; id,descripcion &lt;FONT color=#0000ff&gt;from&lt;/FONT&gt; tablaejemplo &lt;FONT color=#0000ff&gt;where &lt;/FONT&gt;&lt;/FONT&gt;&lt;A href="mailto:id=@id"&gt;&lt;FONT face=Arial size=2&gt;id=@id&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Arial size=2&gt; &lt;FONT color=#0000ff&gt;for xml auto,xmldata&lt;/FONT&gt;&lt;BR&gt;&lt;FONT color=#0000ff&gt;END&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;FONT face=Arial size=2&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT:0px;"&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;La clausula&amp;nbsp; &lt;STRONG&gt;xmldata&lt;/STRONG&gt; causa que SQL Server devuelva como resultado de la consulta el esquema además de los datos. &lt;BR&gt;Esta clausula la eliminaremos después de configurar los metadatos del adaptador.&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;&lt;FONT face=Arial size=2&gt;&lt;STRONG&gt;Crear&amp;nbsp; un proyecto de Biztalk&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT face=Arial size=2&gt;&lt;STRONG&gt;&lt;/STRONG&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV&gt;Creamos un proyecto de Biztalk de tipo &lt;STRONG&gt;Empty Biztalk Server Project&lt;/STRONG&gt;. Le llamaremos DemoSQLAdapter.&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT face=Arial size=2&gt;Añadir metadatos al proyecto&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Pulsamos con el botón derecho sobre el proyecto que hemos creado previamente y seleccionamos &lt;STRONG&gt;Add --&amp;gt; Add Generated Items…&lt;BR&gt;&lt;/STRONG&gt;En la siguiente pantalla seleccionamos la opción de &lt;STRONG&gt;Add Adapter Metadata&lt;/STRONG&gt; y pulsamos el botón &lt;STRONG&gt;Add&lt;/STRONG&gt;:&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT:0px;"&gt;
&lt;OL&gt;&lt;/OL&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;IMG title=img1.JPG style="WIDTH:569px;HEIGHT:383px;" height=383 alt=img1.JPG src="http://thinkingtogether.net/imagenes/SQLAdapter/img1.JPG" width=569 border=0&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Arial size=2&gt;Deberemos seleccionar &lt;STRONG&gt;SQL&lt;/STRONG&gt; &lt;STRONG&gt;&lt;/STRONG&gt;en la lista de adaptadores registrados.&lt;BR&gt;En la misma pantalla indicamos el servidor y la base de datos donde se encuentra el procedimiento almacenado que vamos a invocar.&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT:0px;"&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Por ahora no seleccionaremos nada en la lista de puertos.&lt;BR&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;IMG title=img2.JPG style="WIDTH:569px;HEIGHT:383px;" height=383 alt=img2.JPG src="http://thinkingtogether.net/Imagenes/SQLAdapter/img2.JPG" width=569 border=0&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Arial size=2&gt;En la pantalla &lt;STRONG&gt;Database Information&lt;/STRONG&gt; definimos la cadena de conexión de la base de datos&amp;nbsp; que usaremos posteriormente.&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Arial size=2&gt;En la pantalla &lt;STRONG&gt;Schema Information&lt;/STRONG&gt; debemos definir la siguiente información:&lt;/FONT&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Arial size=2&gt;Target namespace:&amp;nbsp; &lt;/FONT&gt;&lt;A href="http://ejemplosqladapter/"&gt;&lt;FONT face=Arial size=2&gt;http://EjemploSQLAdapter&lt;/FONT&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;FONT face=Arial size=2&gt;Seleccionar &lt;STRONG&gt;Send Port&lt;/STRONG&gt; ya que vamos a enviar una petición&amp;nbsp; a SQL Server.&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Arial size=2&gt;Debemos asignar un nombre al elemento raíz del documento de petición:&amp;nbsp; &lt;STRONG&gt;root_request&lt;/STRONG&gt;&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Arial size=2&gt;Debemos asignar un nombre al elemento raíz del documento de respuesta:&amp;nbsp; &lt;STRONG&gt;root_response&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;IMG title=img3.JPG style="WIDTH:569px;HEIGHT:388px;" height=388 alt=img3.JPG src="http://thinkingtogether.net/Imagenes/SQLAdapter/img3.JPG" width=569 border=0&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Arial size=2&gt;En la pantalla &lt;STRONG&gt;Statement type information&lt;/STRONG&gt; seleccionar &lt;STRONG&gt;Stored Procedure&lt;/STRONG&gt; como tipo de sentencia.&lt;BR&gt;Por último en la pantalla &lt;STRONG&gt;Statement Information&lt;/STRONG&gt; debemos seleccionar el procedimiento almacenado que vamos a ejecutar.&lt;BR&gt;Una vez seleccionado, pulsaremos el botón de &lt;STRONG&gt;Generate&lt;/STRONG&gt; para generar el script de ejecución del procedimiento almacenado.&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT:0px;"&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;STRONG&gt;Los valores de los parámetros son almacenados solamente para la generación del esquema.&amp;nbsp; En ejecución se usaran los parámetros pasados en el mensaje de petición.&lt;/STRONG&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;•&amp;nbsp;El checkbox asigna el parámetro a NULL&lt;BR&gt;•&amp;nbsp;Haciendo doble click sobre el parámetro podremos introducir los valores deseados.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;BR&gt;&amp;nbsp;&lt;IMG title=img4.JPG style="WIDTH:569px;HEIGHT:388px;" height=388 alt=img4.JPG src="http://thinkingtogether.net/Imagenes/SQLAdapter/img4.JPG" width=569 border=0&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Arial size=2&gt;Pulsar Finish.&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;FONT face=Arial size=2&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT:0px;"&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;BR&gt;&lt;FONT face=Arial size=2&gt;Una vez finalizado este proceso podemos comprobar que se han creado dos archivos: &lt;STRONG&gt;BizTalk Orchestration.odx&lt;/STRONG&gt; y &lt;STRONG&gt;SQLService.xsd&lt;/STRONG&gt;. El primero es una orquestación vacía con algunos tipos de puertos pre-configurados. El segundo archivo es el esquema que va a contener la estructura del mensaje de petición y de respuesta del adaptador.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;En este punto debemos modificar el procedimiento almacenado y eliminar la cláusula xmldata:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Arial size=2&gt;&lt;FONT color=#0000ff&gt;select&lt;/FONT&gt; id,descripcion &lt;FONT color=#0000ff&gt;from&lt;/FONT&gt; tablaejemplo &lt;FONT color=#0000ff&gt;where &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;A href="mailto:id=@id"&gt;&lt;FONT face=Arial size=2&gt;id=@id&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Arial size=2&gt; &lt;FONT color=#0000ff&gt;for xml auto &lt;STRIKE&gt;,xmldata&lt;/STRIKE&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;STRONG&gt;Crear los esquemas necesarios para el proyecto&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT face=Arial size=2&gt;&lt;STRONG&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;/STRONG&gt;Pulsamos con el botón derecho sobre el proyecto que hemos creado previamente y seleccionamos &lt;STRONG&gt;Add --&amp;gt; New Item&amp;nbsp;--&amp;gt; Schema. &lt;BR&gt;&lt;/STRONG&gt;Llamar &lt;STRONG&gt;EsquemaRequest.xsd&lt;/STRONG&gt; al nuevo esquema. 
&lt;LI&gt;Pulsar con el botón derecho en el nodo raíz (&lt;STRONG&gt;root&lt;/STRONG&gt;) del nuevo esquema y seleccionar &lt;STRONG&gt;Insert Schema Node&amp;nbsp;--&amp;gt; Child Field Element&lt;/STRONG&gt;.&lt;BR&gt;Llamar a este elemento &lt;STRONG&gt;ID&lt;/STRONG&gt;.&lt;BR&gt;Seleccionar este nodo y en la ventana de propiedades modificar el campo &lt;STRONG&gt;Data Type&lt;/STRONG&gt; a xs:int. 
&lt;LI&gt;Pulsar con el botón derecho en el nodo raíz (&lt;STRONG&gt;root&lt;/STRONG&gt;) del nuevo esquema y seleccionar &lt;STRONG&gt;Insert Schema Node --&amp;gt; Child Field Element.&lt;BR&gt;&lt;/STRONG&gt;Llamar a este elemento &lt;STRONG&gt;Descripcion&lt;/STRONG&gt;.&lt;BR&gt;Una vez hayamos finalizado debemos tener un esquema igual al de la siguiente pantalla:&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;IMG title=img5.JPG style="WIDTH:570px;HEIGHT:195px;" height=195 alt=img5.JPG src="http://thinkingtogether.net/Imagenes/SQLAdapter/img5.JPG" width=570 border=0&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;STRONG&gt;Crear mapa&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT face=Arial size=2&gt;&lt;STRONG&gt;&lt;/STRONG&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;Debemos crear un mapa que convierta el mensaje recibido por la orquestación al mensaje de petición del SQL Adapter.&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&amp;nbsp;Pulsamos con el botón derecho sobre el proyecto que hemos creado previamente y seleccionamos &lt;STRONG&gt;Add --&amp;gt; New Item&amp;nbsp;--&amp;gt; Map.&lt;BR&gt;&lt;/STRONG&gt;Llama &lt;STRONG&gt;Mapa.btm&lt;/STRONG&gt; al nuevo mapa. 
&lt;LI&gt;Hacer click en el enlace &lt;STRONG&gt;Open Source Schema&lt;/STRONG&gt; y seleccionar &lt;STRONG&gt;DemoSqlAdapter.EsquemaRequest&lt;/STRONG&gt;. 
&lt;LI&gt;Hacer click en el enlace &lt;STRONG&gt;Open Destination Schema&lt;/STRONG&gt; y seleccionar &lt;STRONG&gt;DemoSqlAdapter.SQLService&lt;/STRONG&gt;. 
&lt;LI&gt;Seleccionar &lt;STRONG&gt;root_request&lt;/STRONG&gt;. 
&lt;LI&gt;Asociar los nodos &lt;STRONG&gt;ID&lt;/STRONG&gt; de ambos esquemas. 
&lt;LI&gt;Asociar el nodo &lt;STRONG&gt;Descripcion&lt;/STRONG&gt; del esquema origen y el nodo &lt;STRONG&gt;desc&lt;/STRONG&gt; del esquema destino.&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;STRONG&gt;Añadir mensajes a la orquestación&lt;BR&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT face=Arial size=2&gt;Crear un mensaje llamado &lt;STRONG&gt;msgCallSQL&lt;/STRONG&gt; y seleccionar como tipo de mensaje &lt;STRONG&gt;DemoSqlAdapter.SQLService.root_request&lt;/STRONG&gt;.&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Arial size=2&gt;Crear un mensaje llamado &lt;STRONG&gt;msgPeticion&lt;/STRONG&gt; y seleccionar como tipo de mensaje &lt;STRONG&gt;DemoSqlAdapter.EsquemaRequest&lt;/STRONG&gt;.&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT face=Arial size=2&gt;Crear un mensaje llamado &lt;STRONG&gt;msgResponse&lt;/STRONG&gt; y seleccionar como tipo de mensaje &lt;STRONG&gt;DemoSqlAdapter.SQLService.root_response&lt;/STRONG&gt;.&lt;/FONT&gt;&lt;FONT face=Arial size=2&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT face=Arial size=2&gt;Añadir componentes a la orquestación&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Crear un shape de tipo &lt;STRONG&gt;Receive&lt;/STRONG&gt; al que llamaremos &lt;STRONG&gt;ObtenerPeticion&lt;/STRONG&gt;.&lt;BR&gt;Modificar la propiedad &lt;STRONG&gt;Activate&lt;/STRONG&gt; de este shape a tr