<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://geeks.ms/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>Francesc Jaumot</title><link>http://geeks.ms/blogs/fjaumot/default.aspx</link><description>Blog dedicado al desarrollo en tecnologías Microsoft por un MSP</description><dc:language /><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><item><title>La importancia de una buena arquitectura</title><link>http://geeks.ms/blogs/fjaumot/archive/2012/10/02/La-importancia-de-una-buena-arquitectura.aspx</link><pubDate>Mon, 01 Oct 2012 22:28:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:206971</guid><dc:creator>Francesc Jaumot</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/fjaumot/rsscomments.aspx?PostID=206971</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/fjaumot/commentapi.aspx?PostID=206971</wfw:comment><comments>http://geeks.ms/blogs/fjaumot/archive/2012/10/02/La-importancia-de-una-buena-arquitectura.aspx#comments</comments><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;iquest;Qu&amp;eacute; es una arquitectura de software y que nos puede ofrecer?&lt;br /&gt;&lt;/strong&gt;En el &amp;aacute;rea de software, una arquitectura nos identifica los elementos m&amp;aacute;s importantes del mismo, es decir, nos da visibilidad global a todos los pasos a seguir para desarrollar.&lt;/p&gt;
&lt;p&gt;&amp;iquest;Por qu&amp;eacute; es importante? Porque necesitamos una arquitectura para entender el sistema, organizar su desarrollo, plantear la realizaci&amp;oacute;n del software y hacerlo evolucionar.&lt;/p&gt;
&lt;p&gt;En un desarrollo de software se nos plantear&amp;aacute;n muchas dudas y casu&amp;iacute;sticas que deberemos saber c&amp;oacute;mo abordar desde un primer momento. En este planteamiento es muy importante responder a preguntas sencillas&amp;hellip; &amp;iquest;Qui&amp;eacute;n? &amp;iquest;Cu&amp;aacute;ndo? &amp;iquest;C&amp;oacute;mo? &amp;iquest;D&amp;oacute;nde?&amp;hellip; relacionadas con la soluci&amp;oacute;n para los requisitos t&amp;eacute;cnicos y operacionales de nuestro sistema. Las respuestas a estas preguntas nos definir&amp;aacute;n qu&amp;eacute; componentes forman el sistema, c&amp;oacute;mo se relacionan y c&amp;oacute;mo llevan a cabo la funcionalidad.&lt;/p&gt;
&lt;p&gt;Es muy importante tener en cuenta que las arquitecturas de software no responden &amp;uacute;nicamente a requisitos estructurales, sino que est&amp;aacute;n relacionadas con aspectos de rendimiento, usabilidad, reutilizaci&amp;oacute;n, restricciones tecnol&amp;oacute;gicas e incluso cuestiones est&amp;eacute;ticas.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Arquitecturas y metodolog&amp;iacute;as&lt;br /&gt;&lt;/strong&gt;Existen muchas metodolog&amp;iacute;as de desarrollo de software; desde m&amp;eacute;todos muy pesados a muy ligeros que aparecen c&amp;oacute;mo respuesta al excesivo formalismo de otros m&amp;eacute;todos.&lt;/p&gt;
&lt;p&gt;En un sistema con casos de uso que definen una secuencia de acciones entre el usuario y el sistema, visto desde un punto de vista arquitect&amp;oacute;nico, no todos los casos de uso tienen la misma importancia d&amp;oacute;nde es aconsejable destacar aquellos que nos ayudan a evitar los riesgos m&amp;aacute;s importantes y sobre todo los que representan la funcionalidad b&amp;aacute;sica del sistema que se debe realizar.&lt;/p&gt;
&lt;p&gt;C&amp;oacute;mo primera fase se debe dise&amp;ntilde;ar una arquitectura base que defina nuestro sistema, lo haga robusto y sobretodo, cumpla la funcionalidad especificada.&lt;/p&gt;
&lt;address&gt;&lt;em&gt;&lt;span&gt;&lt;strong&gt;!&lt;/strong&gt;&lt;/span&gt;Una arquitectura se debe adaptar siempre a nuestra necesidad, y en ocasiones, una arquitectura puede suponer una penalizaci&amp;oacute;n a nuestro sistema.&lt;/em&gt;&lt;/address&gt;
&lt;p&gt;&lt;strong&gt;Tipos de arquitecturas&lt;br /&gt;&lt;/strong&gt;Hoy en d&amp;iacute;a existen muchos tipos de arquitectura y todos ellos aportan su granito de arena. Lo m&amp;aacute;s com&amp;uacute;n en una arquitectura es que se base en un conjunto de tipos para obtener las principales ventajas de cada uno de ellos.&lt;/p&gt;
&lt;p&gt;Debemos tener en cuenta que los diferentes tipos de arquitecturas son definiciones abstractas de c&amp;oacute;mo dividir en partes m&amp;aacute;s peque&amp;ntilde;as el sistema y de c&amp;oacute;mo estas partes deben interactuar entre si.&lt;/p&gt;
&lt;p&gt;C&amp;oacute;mo citaci&amp;oacute;n y menci&amp;oacute;n a las m&amp;aacute;s importantes tenemos: Cliente &amp;ndash; Servidor, N-Layer, N-Tier, Orientado a Objetos, Presentaci&amp;oacute;n desacoplada, DDD (Domain Driven Design), Orientaci&amp;oacute;n a servicios&amp;hellip; entre otras.&lt;/p&gt;
&lt;p&gt;Hasta aqu&amp;iacute; todo muy bonito y perfecto&amp;hellip; pero&amp;hellip; &amp;iquest;C&amp;oacute;mo dise&amp;ntilde;amos una arquitectura para nuestro sistema de software?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Layers vs. Tiers&lt;br /&gt;&lt;/strong&gt;Antes de nada se debe distinguir los conceptos de Layers (Capas) y Tiers (Niveles).&lt;/p&gt;
&lt;p&gt;El primero de ellos se refiere a desacoplar elementos de forma jer&amp;aacute;rquica de roles y responsabilidades, proporcionado una separaci&amp;oacute;n de las preocupaciones que tenemos en el software sin tener en cuenta la localizaci&amp;oacute;n f&amp;iacute;sica de estos componentes en servidores o diferentes lugares.&lt;/p&gt;
&lt;p&gt;El segundo desacopla de forma f&amp;iacute;sica los segmentos de estos elementos que se encuentran en diferentes servidores dando c&amp;oacute;mo resultado un despliegue distribuido proveyendo mejoras de escalabilidad, disponibilidad y utilizaci&amp;oacute;n de recursos.&lt;/p&gt;
&lt;p&gt;Ambos son importantes y se deben tener presentes, pero separar la l&amp;oacute;gica de nuestro software en N-Layers es importante para nosotros, para el cliente y para nuestro equipo. Nuestras necesidades de IT, nos indicar&amp;aacute;n si debemos usar N-Tier o no.&lt;/p&gt;
&lt;p&gt;Ambas hacen referencia a la que es para m&amp;iacute; una gran frase: &amp;iexcl;Divide y vencer&amp;aacute;s!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pr&amp;oacute;ximos pasos&amp;hellip;&lt;/strong&gt;&lt;br /&gt;En este conjunto de art&amp;iacute;culos me voy a basar, principalmente, en una arquitectura de&amp;nbsp;&lt;strong&gt;N-Layer con orientaci&amp;oacute;n al dominio&amp;nbsp;&lt;/strong&gt;para&amp;nbsp;&lt;strong&gt;ASP.NET MVC&lt;/strong&gt;&amp;nbsp;&lt;strong&gt;4&lt;/strong&gt;&amp;nbsp;con sintaxis&lt;strong&gt;Razor&lt;/strong&gt;&amp;nbsp;y&amp;nbsp;&lt;strong&gt;C#&lt;/strong&gt;. Esta arquitectura lleva conmigo un par de a&amp;ntilde;os y sin duda, me ha proporcionado enormes ventajas en proyectos peque&amp;ntilde;os, medianos y grandes en su justa medida.&lt;/p&gt;
&lt;p&gt;En los pr&amp;oacute;ximos art&amp;iacute;culos iremos definiendo estos peque&amp;ntilde;os subsistemas de nuestro sistema de software.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=206971" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/fjaumot/archive/tags/DDD/default.aspx">DDD</category><category domain="http://geeks.ms/blogs/fjaumot/archive/tags/Tier/default.aspx">Tier</category><category domain="http://geeks.ms/blogs/fjaumot/archive/tags/Layer/default.aspx">Layer</category><category domain="http://geeks.ms/blogs/fjaumot/archive/tags/Arquitectura/default.aspx">Arquitectura</category></item><item><title>[ie9] Jump Lists en la web</title><link>http://geeks.ms/blogs/fjaumot/archive/2010/09/18/ie9-jump-lists-en-la-web.aspx</link><pubDate>Sat, 18 Sep 2010 17:45:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:182115</guid><dc:creator>Francesc Jaumot</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/fjaumot/rsscomments.aspx?PostID=182115</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/fjaumot/commentapi.aspx?PostID=182115</wfw:comment><comments>http://geeks.ms/blogs/fjaumot/archive/2010/09/18/ie9-jump-lists-en-la-web.aspx#comments</comments><description>&lt;p&gt;Hola a todos/as!! Internet Explorer 9 ya es beta y trae un monton de novedades. Una de las caracter&amp;iacute;sticas que m&amp;aacute;s me esta llamando la atenci&amp;oacute;n es el &amp;quot;&lt;b&gt;Site Pinning&lt;/b&gt;&amp;quot;. Esto nos permite a&amp;ntilde;adir un acceso directo a la p&amp;aacute;gina en la barra de tareas de la fam&amp;iacute;lia de versiones de Windows 7 y adem&amp;aacute;s &amp;quot;&lt;b&gt;Jump Lists&lt;/b&gt;&amp;quot;. Estas listas proporcionan navegaci&amp;oacute;n directamente de la p&amp;aacute;gina que estamos visitando. Sus usos no tienen l&amp;iacute;mites, lo podemos usar para que nuestro usuario acceda a los sitios m&amp;aacute;s importantes de nuestra web o tambi&amp;eacute;n lo podemos usar de forma din&amp;aacute;mica (esto en el pr&amp;oacute;ximo post) dentro de nuestras aplicaciones web realizadas en cualquier lenguaje.&lt;/p&gt;
&lt;p&gt;&amp;iquest;El c&amp;oacute;digo? Muy sencillo y entendible. Es a base de etiquetas &lt;b&gt;meta&lt;/b&gt;, Microsoft ha a&amp;ntilde;adido una nueva llamada &amp;quot;msapplication-task&amp;quot; que es la que permite realizar esto. He realizado un ejemplo simple, en una p&amp;aacute;gina HTML sin nada de especial a&amp;ntilde;adiendo esto:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;lt;meta name=&amp;quot;application-name&amp;quot; content=&amp;quot;Francesc Jaumot - MSP&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;meta name=&amp;quot;msapplication-tooltip&amp;quot; content=&amp;quot;Francesc Jaumot - Tooltip de ejemplo&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;meta name=&amp;quot;msapplication-task&amp;quot; content=&amp;quot;name=Blog;action-uri=geeks.ms;icon-uri=/imagenes/blogger.ico&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;meta name=&amp;quot;msapplication-task&amp;quot; content=&amp;quot;name=Trabajo;action-uri=indracompany.com;icon-uri=/imagenes/work.ico&amp;quot; /&amp;gt;&lt;br /&gt; &amp;lt;meta name=&amp;quot;msapplication-task&amp;quot; content=&amp;quot;name=Contacto;action-uri=facebook.com;icon-uri=/imagenes/facebook.ico&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;link rel=&amp;quot;shortcut icon&amp;quot; href=&amp;quot;/imagenes/csharp.ico&amp;quot; /&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Y luego arrastrando la pesta&amp;ntilde;a de nuestra p&amp;aacute;gina hac&amp;iacute;a la barra de tareas de Windows 7 obtenemos el siguiente resultado,&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fjaumot/JumpList.png"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/fjaumot/JumpList.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;El atributo de &amp;quot;&lt;b&gt;application-name&lt;/b&gt;&amp;quot; es el nombre que queremos que aparezca en la Jump List, si no lo especificamos, nos aparecer&amp;aacute; el t&amp;iacute;tulo de la p&amp;aacute;gina. El &amp;quot;&lt;b&gt;msapplication-tooltip&lt;/b&gt;&amp;quot;, ocpional, es el texto que aprecer&amp;aacute; c&amp;uacute;ando nos situemos con el rat&amp;oacute;n encima y la p&amp;aacute;gina no este abierta. Por &amp;uacute;ltimo, &amp;quot;&lt;b&gt;msapplication-task&lt;/b&gt;&amp;quot; que a&amp;ntilde;ade los &amp;iacute;tem de men&amp;uacute; para la navegaci&amp;oacute;n.&lt;/p&gt;
&lt;p&gt;&amp;iquest;F&amp;aacute;cil verdad? Y, creo, que de gran utilidad.&lt;br /&gt;Un saludo!!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=182115" width="1" height="1"&gt;</description></item><item><title>[sql] Procedimientos almacenados vía CLR</title><link>http://geeks.ms/blogs/fjaumot/archive/2010/09/15/Procedimientos-Almacenados-CLR.aspx</link><pubDate>Wed, 15 Sep 2010 16:22:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:178294</guid><dc:creator>Francesc Jaumot</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/fjaumot/rsscomments.aspx?PostID=178294</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/fjaumot/commentapi.aspx?PostID=178294</wfw:comment><comments>http://geeks.ms/blogs/fjaumot/archive/2010/09/15/Procedimientos-Almacenados-CLR.aspx#comments</comments><description>&lt;p class="MsoNormal" style="line-height:normal;"&gt;&lt;span style="font-size:9pt;"&gt;Hola a todos/as!!!! Hoy, voy a explicar una de las tantas cosas que nos
permite hacer SQL Server.Desde la versi&amp;oacute;n de SQL Server 2005 podemos crear
procedimientos almacenados codificados en alg&amp;uacute;n lenguaje .NET. Al poder
codificar el procedimiento almacenado por medio c&amp;oacute;digo. Net nos permite tener
acceso a ficheros de una forma eficaz, realizar validaciones con expresiones
regulares, acceso a servicios web, etc &amp;hellip;.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;"&gt;&lt;span style="font-size:9pt;"&gt;Voy a realizar un ejemplo de un procedimiento almacenado en SQL Server 2008
que recibe como par&amp;aacute;metro una ruta f&amp;iacute;sica de un fichero, y este es almacenado
en una tabla. La estructura de la tabla es sencilla, tiene un identificador, el
nombre del fichero, el contenido del fichero y el tama&amp;ntilde;o del fichero.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="line-height:normal;"&gt;&lt;span style="font-size:9pt;"&gt;En cualquiera de los IDE de Visual Studio, deberemos elegir c&amp;oacute;mo nuevo
proyecto el tipo &amp;quot;Base de datos&amp;quot; y estableceremos en el la conexi&amp;oacute;n a
la BD con la que queremos albergar el procedimiento almacenado. Para ello,
agregamos un nuevo elemento del tipo Procedimiento almacenado y le indicamos el
nombre del mismo. El c&amp;oacute;digo ser&amp;iacute;a este,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;




&lt;/p&gt;
&lt;p&gt;


&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst" style="margin:0cm 0cm 0.0001pt;text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;color:blue;" lang="EN-US"&gt;public&lt;/span&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt; &lt;span style="color:blue;"&gt;partial&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;StoredProcedures&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin:0cm 0cm 0.0001pt;text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin:0cm 0cm 0.0001pt;text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[Microsoft.SqlServer.Server.&lt;span style="color:#2b91af;"&gt;SqlProcedure&lt;/span&gt;]&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin:0cm 0cm 0.0001pt;text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:9pt;color:blue;"&gt;public&lt;/span&gt;&lt;span style="font-size:9pt;"&gt; &lt;span style="color:blue;"&gt;static&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt;
InsertarFicheros()&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin:0cm 0cm 0.0001pt;text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin:0cm 0cm 0.0001pt;text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin:0cm 0cm 0.0001pt;text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast" style="margin-left:0cm;text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;"&gt;};&lt;/span&gt;&lt;span style="font-size:9pt;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Una vez realizato esto, deberemos a&amp;ntilde;adir un par&amp;aacute;metro al procedimiento que va a ser la ruta del fichero. Realizamos una referencia al espacio de nombres &lt;b&gt;System.IO &lt;/b&gt;para acceder al fichero. Dentro del procedimiento, escribimos el c&amp;oacute;digo necesario para obtener el nombre del fichero, su contenido y el tama&amp;ntilde;o, y creamos un objeto SqlCommand para insertar en la tabla de la base de datos. Nos tenemos que fijar que el prcedimiento es est&amp;aacute;tico y publico, para que pueda ser llamado desde cualquier parte. Adem&amp;aacute;s al procedimiento tenemos que indicar el atributo &lt;span style="font-size:9pt;"&gt;&lt;span&gt;&amp;nbsp;
&lt;/span&gt;[Microsoft.SqlServer.Server.&lt;span style="color:#2b91af;"&gt;SqlProcedure&lt;/span&gt;].&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;"&gt;El c&amp;oacute;digo ser&amp;iacute;a este,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;


&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size:9pt;" lang="EN-US"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Microsoft.SqlServer.Server.&lt;span style="color:#2b91af;"&gt;SqlProcedure&lt;/span&gt;]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&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;static&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; InsertarFicheros(&lt;span style="color:blue;"&gt;string&lt;/span&gt;
ruta)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:9pt;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;//Obtenemos
el nombre del fichero&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;string&lt;/span&gt;
NombreFichero = &lt;span style="color:#2b91af;"&gt;Path&lt;/span&gt;.GetFileName(ruta);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;//Obtenemos
el contenido del fichero&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;byte&lt;/span&gt;[]
Contenido = &lt;span style="color:#2b91af;"&gt;File&lt;/span&gt;.ReadAllBytes(ruta);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;"&gt;&lt;span&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:9pt;color:blue;" lang="EN-US"&gt;using&lt;/span&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt; (&lt;span style="color:#2b91af;"&gt;SqlConnection&lt;/span&gt; cn = &lt;span style="color:blue;"&gt;new&lt;/span&gt;
&lt;span style="color:#2b91af;"&gt;SqlConnection&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;&amp;quot;context
connection=true&amp;quot;&lt;/span&gt;)) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&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 style="color:blue;"&gt;string&lt;/span&gt; sql = &lt;span style="color:#a31515;"&gt;&amp;quot;insert
into Ficheros (Nombre, Fichero, Tama&amp;ntilde;o) VALUES (@Nombre, @Fichero,
@Tama&amp;ntilde;o)&amp;quot;&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&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 style="color:#2b91af;"&gt;SqlCommand&lt;/span&gt; cmd = &lt;span style="color:blue;"&gt;new&lt;/span&gt;
&lt;span style="color:#2b91af;"&gt;SqlCommand&lt;/span&gt;();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&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;cmd.Connection = cn;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&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;cmd.CommandType = &lt;span style="color:#2b91af;"&gt;CommandType&lt;/span&gt;.Text;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&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;cmd.CommandText = sql;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&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 style="color:#2b91af;"&gt;SqlParameter&lt;/span&gt; p;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&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;p = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;SqlParameter&lt;/span&gt;();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&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;p.ParameterName = &lt;span style="color:#a31515;"&gt;&amp;quot;@Nombre&amp;quot;&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&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;p.Direction = &lt;span style="color:#2b91af;"&gt;ParameterDirection&lt;/span&gt;.Input;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&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;p.SqlDbType = &lt;span style="color:#2b91af;"&gt;SqlDbType&lt;/span&gt;.VarChar;&lt;/span&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&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;p.Value = NombreFichero;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;cmd.Parameters.Add(p);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&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;p = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;SqlParameter&lt;/span&gt;();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&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;p.ParameterName = &lt;span style="color:#a31515;"&gt;&amp;quot;@Fichero&amp;quot;&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&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;p.Direction = &lt;span style="color:#2b91af;"&gt;ParameterDirection&lt;/span&gt;.Input;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&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;p.SqlDbType = &lt;span style="color:#2b91af;"&gt;SqlDbType&lt;/span&gt;.VarBinary;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&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;p.Value = Contenido;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&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;cmd.Parameters.Add(p);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&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;p = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;SqlParameter&lt;/span&gt;();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&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;p.ParameterName = &lt;span style="color:#a31515;"&gt;&amp;quot;@Tama&amp;ntilde;o&amp;quot;&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&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;p.Direction = &lt;span style="color:#2b91af;"&gt;ParameterDirection&lt;/span&gt;.Input;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&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;p.SqlDbType = &lt;span style="color:#2b91af;"&gt;SqlDbType&lt;/span&gt;.Int;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&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;p.Value = Contenido.Length;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&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;cmd.Parameters.Add(p);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&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;cn.Open();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&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:9pt;"&gt;cmd.ExecuteNonQuery();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;"&gt;&lt;span&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;cn.Close();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:9pt;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;"&gt;Visto el anterior c&amp;oacute;digo, es
importante destacar varias cosas. Indicamos &lt;b&gt;&amp;ldquo;context
connection=true&amp;rdquo;&lt;/b&gt; como cadena de conexi&amp;oacute;n indicando que la base de datos a
la que queremos conectarnos es la misma en la que nos encontramos. &lt;/span&gt;&lt;span style="font-size:9pt;font-family:Symbol;"&gt;&lt;span&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:9pt;"&gt;Debemos de crear un objeto command y configurarlo con la sentencia a
ejecutar&lt;/span&gt;&lt;span style="font-size:9pt;"&gt;,y crear los par&amp;aacute;metros necesarios para la sentencia. El
par&amp;aacute;metro fichero es del tipo &lt;b&gt;Varbinary&lt;/b&gt;
para almacenar los bytes del fichero.&lt;/span&gt;&lt;span style="font-size:9pt;font-family:Symbol;"&gt;&lt;span&gt; &lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:9pt;"&gt;Abrimos, ejecutamos el procedimiento y cerramos la conexi&amp;oacute;n.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;"&gt;&lt;span&gt;&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:9pt;"&gt;Ahora solamente falta, generar el proyecto e implementarlo en la base de
datos. Vamos al men&amp;uacute; Generar, y primero generamos el proyecto y a continuaci&amp;oacute;n
lo implementamos. Si vamos a la base de datos, podemos ver que se ha creado el ensamblado y el procedimiento almacendo.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fjaumot/Instalado_5F00_SP_5F00_CLR.jpg"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/fjaumot/Instalado_5F00_SP_5F00_CLR.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-size:9pt;"&gt;Si ejecutamos ahora, nos dar&amp;aacute; el siguiente error:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;color:red;"&gt;Mens. 6263, Nivel 16, Estado 1, L&amp;iacute;nea 1&lt;/span&gt;&lt;span style="font-size:9pt;color:red;"&gt; &lt;br /&gt;La
ejecuci&amp;oacute;n de c&amp;oacute;digo de usuario en .NET Framework est&amp;aacute; deshabilitada. Habilite
la opci&amp;oacute;n de configuraci&amp;oacute;n &amp;quot;clr enabled&amp;quot;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;"&gt;Este problema es porque no tenemos hablitiada la ejecucci&amp;oacute;n de c&amp;oacute;digo .NET (CLR). Para habilitarlo lo podemos realizar de dos formas, una en modo dise&amp;ntilde;o y otra por SQL. Lo que os guste m&amp;aacute;s, yo os explico las dos. Si lo hacemos mediante una instrucci&amp;oacute;n SQL, tan solo debemos utilizar el procedimiento almacenado &lt;b&gt;sp_configure&lt;/b&gt; de la forma siguiente:&lt;/span&gt;&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;color:blue;" lang="EN-US"&gt;ALTER&lt;/span&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt; &lt;span style="color:blue;"&gt;DATABASE&lt;/span&gt; &lt;span style="color:teal;"&gt;Prueba&lt;/span&gt; &lt;span style="color:blue;"&gt;SET&lt;/span&gt; &lt;span style="color:blue;"&gt;TRUSTWORTHY&lt;/span&gt; &lt;span style="color:blue;"&gt;ON&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;"&gt;Esto tambi&amp;eacute;n se puede hacer mediante vista dise&amp;ntilde;o en el mismo men&amp;uacute; que he citado anteriormente.&lt;span style="text-decoration:line-through;"&gt; Lo s&amp;eacute;, es largo&lt;/span&gt; Todav&amp;iacute;a no hemos terminado. Falta dar permisos al ensambla que hemos creado para poder tener acceso externo. Esto tambi&amp;eacute;n lo podemos hacer de dos formas; si lo hacemos por c&amp;oacute;digo, debemos ejecutar las siguientes l&amp;iacute;neas de c&amp;oacute;digo:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;


&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;color:blue;"&gt;CREATE&lt;/span&gt;&lt;span style="font-size:9pt;"&gt; &lt;span style="color:blue;"&gt;ASSEMBLY&lt;/span&gt; &lt;span style="color:teal;"&gt;SqlProcedimientos&lt;/span&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style="font-size:9pt;color:blue;"&gt;FROM&lt;/span&gt;&lt;span style="font-size:9pt;"&gt; &lt;span style="color:red;"&gt;&amp;#39;D:\VuestraRutaDeEnsamblado\SqlProcedimientos.dll&amp;#39;&lt;/span&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style="font-size:9pt;color:blue;" lang="EN-US"&gt;WITH&lt;/span&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt; &lt;span style="color:blue;"&gt;PERMISSION_SET&lt;/span&gt; &lt;span style="color:gray;"&gt;=&lt;/span&gt; &lt;span style="color:blue;"&gt;EXTERNAL_ACCESS&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;"&gt;Y si lo hacemos por dise&amp;ntilde;o, debemos hacer click con el bot&amp;oacute;n derecho encima del ensamblado, propiedades y en el conjunto de permisos indicamos Acceso Externo o External Access (dependiendo del idioma de la base de datos).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fjaumot/Ensamblado_5F00_CONFIG.jpg"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/fjaumot/Ensamblado_5F00_CONFIG.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Y ahora s&amp;iacute;!! Si ejecutamos el procedimiento, nos insertar&amp;aacute; los datos del fichero en nuestra tabla!&lt;/p&gt;
&lt;p&gt;


&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:9pt;color:blue;"&gt;exec&lt;/span&gt;&lt;span style="font-size:9pt;"&gt; &lt;span style="color:teal;"&gt;InsertarFicheros&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;C:\GraciasPorLeerMe.jpg&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:9pt;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast" style="margin-left:72pt;text-align:center;" align="center"&gt;&lt;span style="font-size:9pt;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=178294" width="1" height="1"&gt;</description></item><item><title>[sql] Envío de mail desde SQL Server 2008</title><link>http://geeks.ms/blogs/fjaumot/archive/2009/10/26/sql-env-237-o-de-mail-desde-sql-server-2008.aspx</link><pubDate>Sun, 25 Oct 2009 23:55:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:158884</guid><dc:creator>Francesc Jaumot</dc:creator><slash:comments>16</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/fjaumot/rsscomments.aspx?PostID=158884</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/fjaumot/commentapi.aspx?PostID=158884</wfw:comment><comments>http://geeks.ms/blogs/fjaumot/archive/2009/10/26/sql-env-237-o-de-mail-desde-sql-server-2008.aspx#comments</comments><description>&lt;p&gt;Hola de nuevo a todos/as!!&lt;/p&gt;
&lt;p&gt;Esta vez toca SQL Server 2008. Hace unos d&amp;iacute;as un exprofesor m&amp;iacute;o y amigo mio &lt;strong&gt;Jose Cousi&amp;ntilde;o &lt;/strong&gt;,que&amp;nbsp;podriamos decir que ha sido mi mentor en .net y al c&amp;uacute;al le debo mucho :) , me explico&amp;nbsp;c&amp;oacute;mo enviar correos des de SQL Server. El caso es que m&lt;span style="font-size:9pt;mso-bidi-font-family:Arial;"&gt;uchas veces necesitamos mandar correos cuando se realiza una operaci&amp;oacute;n en nuestra base de datos, y el env&amp;iacute;o de correo&amp;nbsp;lo realizamos desde la aplicaci&amp;oacute;n, pero debemos de saber que se puede hacer desde el mismo servidor de bases de datos. &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:9pt;mso-bidi-font-family:Arial;"&gt;Para enviar los correos desde el servidor debemos de hacer varias cosas:&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst"&gt;&lt;span style="font-size:9pt;mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;"&gt;&lt;span style="mso-list:Ignore;"&gt;1.&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:9pt;mso-bidi-font-family:Arial;"&gt;Crear un &lt;b style="mso-bidi-font-weight:normal;"&gt;Profile&lt;/b&gt; para mandar los correos (Un Profile es un perfil de base de datos)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:9pt;mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;"&gt;&lt;span style="mso-list:Ignore;"&gt;2.&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:9pt;mso-bidi-font-family:Arial;"&gt;Env&amp;iacute;o del correo con el procedimiento almacenado &lt;b style="mso-bidi-font-weight:normal;"&gt;msdb.dbo.sp_send_dbmail&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Para crear el Profile hay dos formas, por dise&amp;ntilde;o o por c&amp;oacute;digo.&amp;nbsp;Nosotros&amp;nbsp;&amp;uacute;nicamente vermos c&amp;oacute;mo se hace por dise&amp;ntilde;o si a algui&amp;eacute;n le interesa por c&amp;oacute;digo que lo pida y lo env&amp;iacute;o.. A ello! los pasos a seguir ser&amp;aacute;n los siguientes:&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;"&gt;&lt;span style="mso-list:Ignore;"&gt;1.&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:9pt;mso-bidi-font-family:Arial;"&gt;En Sql Server Managment Studio, vamos al nodo &lt;b style="mso-bidi-font-weight:normal;"&gt;Administraci&amp;oacute;n&lt;/b&gt; / &lt;b style="mso-bidi-font-weight:normal;"&gt;Correo electr&amp;oacute;nico de base de datos&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;mso-bidi-font-family:Arial;"&gt;&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fjaumot/profile.jpg"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/fjaumot/profile.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:9pt;mso-bidi-font-family:Arial;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&amp;nbsp;2. Bot&amp;oacute;n derecho envima del nodo &amp;quot;Correo electr&amp;oacute;nico de base de datos&amp;quot;, y seleccionamos &lt;strong&gt;&amp;quot;Configurar Correo Electr&amp;oacute;nico de base de datos&amp;quot;. &lt;/strong&gt;Aparece un asistente que vamos a explicar detalladamente.&amp;nbsp;En el primer forumlario pulsamos siguiente,&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fjaumot/asistentea.jpg"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/fjaumot/asistentea.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;3. En el siguiente formulario, tenemos las siguientes opciones&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-SIZE:9pt;mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;"&gt;&lt;span style="mso-list:Ignore;"&gt;a.&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;mso-bidi-font-family:Arial;"&gt;Instalar Correo electr&amp;oacute;nico de base de datos&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;"&gt;&lt;span style="mso-list:Ignore;"&gt;b.&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;mso-bidi-font-family:Arial;"&gt;Administrar cuentas y perfiles de Correo electr&amp;oacute;nico&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;"&gt;&lt;span style="mso-list:Ignore;"&gt;c.&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;mso-bidi-font-family:Arial;"&gt;Administrar seguridad de Perfil&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;"&gt;&lt;span style="mso-list:Ignore;"&gt;d.&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;mso-bidi-font-family:Arial;"&gt;Ver o cambiar par&amp;aacute;metros del sistema&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Seleccionamos la primera opci&amp;oacute;n para crear el &lt;strong&gt;Profile&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;4. En el siguiente formulario vamos a crear ya el &lt;strong&gt;Profile&lt;/strong&gt; y luego le a&amp;ntilde;adiremos la cuenta de correo&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fjaumot/profileb.jpg"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/fjaumot/profileb.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;span style="font-size:9pt;mso-bidi-font-family:Arial;"&gt;&lt;br /&gt;&lt;br /&gt;Rellenamos el nombre de Perfil y pulsamos el bot&amp;oacute;n agregar, en el cual vamos a configurar una cuenta de correo. Esta cuenta de correo puede ser cualquiera, pero generalmente cuando lo utilicemos en una empresa, utilizaremos una cuenta del servidor Exchange corporativo. &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:9pt;mso-fareast-font-family:Calibri;mso-fareast-language:EN-US;mso-ansi-language:ES;mso-bidi-language:AR-SA;"&gt;Para indicar la cuenta de correo, tendremos que rellenar el siguiente formulario&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:9pt;mso-fareast-font-family:Calibri;mso-fareast-language:EN-US;mso-ansi-language:ES;mso-bidi-language:AR-SA;"&gt;&lt;a href="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/fjaumot/asistentec.jpg"&gt;&lt;img src="http://geeks.ms/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/fjaumot/asistentec.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:9pt;mso-fareast-font-family:Calibri;mso-fareast-language:EN-US;mso-ansi-language:ES;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:9pt;mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;br /&gt;&lt;br /&gt;-&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&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:9pt;mso-bidi-font-family:Arial;"&gt;Nombre de cuenta: Nombre de la cuenta de correo&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:9pt;mso-fareast-font-family:Calibri;mso-fareast-language:EN-US;mso-ansi-language:ES;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:9pt;mso-bidi-font-family:Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;"&gt;&lt;span style="mso-list:Ignore;"&gt;-&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&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:9pt;mso-bidi-font-family:Arial;"&gt;Descripci&amp;oacute;n: Breve descripci&amp;oacute;n del nombre de cuenta.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:9pt;mso-fareast-font-family:Calibri;mso-fareast-language:EN-US;mso-ansi-language:ES;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:9pt;mso-bidi-font-family:Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;"&gt;&lt;span style="mso-list:Ignore;"&gt;-&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&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:9pt;mso-bidi-font-family:Arial;"&gt;Servidor smtp saliente&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:9pt;mso-fareast-font-family:Calibri;mso-fareast-language:EN-US;mso-ansi-language:ES;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:9pt;mso-bidi-font-family:Arial;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:9pt;mso-fareast-font-family:Calibri;mso-fareast-language:EN-US;mso-ansi-language:ES;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:9pt;mso-bidi-font-family:Arial;"&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;mso-bidi-font-family:Arial;"&gt;Direcci&amp;oacute;n de correo electr&amp;oacute;nico: direcci&amp;oacute;n de la cuenta de correo que enviar&amp;aacute; los correos, ejemplo &lt;span style="color:#0000ff;"&gt;sql@servidor.com&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:9pt;mso-fareast-font-family:Calibri;mso-fareast-language:EN-US;mso-ansi-language:ES;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:9pt;mso-bidi-font-family:Arial;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:9pt;mso-fareast-font-family:Calibri;mso-fareast-language:EN-US;mso-ansi-language:ES;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:9pt;mso-bidi-font-family:Arial;"&gt;Nombre para mostrar: ponemos el nombre que se quiere mostrar, por ejemplo &amp;ldquo;Correo Sql&amp;rdquo;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:9pt;mso-fareast-font-family:Calibri;mso-fareast-language:EN-US;mso-ansi-language:ES;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:9pt;mso-bidi-font-family:Arial;"&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:9pt;mso-fareast-font-family:Calibri;mso-fareast-language:EN-US;mso-ansi-language:ES;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:9pt;mso-bidi-font-family:Arial;"&gt;Nombre del servidor: Indicamos el servidor smtp que utilizaremos para enviar al correo.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:9pt;mso-fareast-font-family:Calibri;mso-fareast-language:EN-US;mso-ansi-language:ES;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:9pt;mso-bidi-font-family:Arial;"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:9pt;mso-fareast-font-family:Calibri;mso-fareast-language:EN-US;mso-ansi-language:ES;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:9pt;mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;"&gt;&lt;span style="mso-list:Ignore;"&gt;-&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&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:9pt;mso-bidi-font-family:Arial;"&gt;Autenticaci&amp;oacute;n: Muchas veces nuestro servidor smtp necesita autenticaci&amp;oacute;n para poder enviar los correos. Las posibilidades son&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:9pt;mso-fareast-font-family:Calibri;mso-fareast-language:EN-US;mso-ansi-language:ES;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:9pt;mso-bidi-font-family:Arial;"&gt;Autenticaci&amp;oacute;n de Windows.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:9pt;mso-fareast-font-family:Calibri;mso-fareast-language:EN-US;mso-ansi-language:ES;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:9pt;mso-bidi-font-family:Arial;"&gt;Autenticaci&amp;oacute;n b&amp;aacute;sica: Tenemos que indicar usuario y password&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:9pt;mso-fareast-font-family:Calibri;mso-fareast-language:EN-US;mso-ansi-language:ES;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:9pt;mso-bidi-font-family:Arial;"&gt;Autenticaci&amp;oacute;n an&amp;oacute;nima: La cuenta de correo no necesita auteticaci&amp;oacute;n&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:9pt;mso-fareast-font-family:Calibri;mso-fareast-language:EN-US;mso-ansi-language:ES;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:9pt;mso-bidi-font-family:Arial;"&gt;Una vez configurado todos los valores necesarios, aceptamos y pulsamos siguiente para que se cree el &lt;b style="mso-bidi-font-weight:normal;"&gt;Profile&lt;/b&gt;. &lt;/span&gt;&lt;/span&gt;Bien, ya tenemos configurado todo para que nos funcione, ahora veremos c&amp;oacute;mo se env&amp;iacute;a el correo y ya estar&amp;aacute; listo para usar. &lt;span style="font-size:9pt;mso-bidi-font-family:Arial;"&gt;Para enviar el correo debemos ejecutar el procedimiento alamacenado de la base de datos &lt;b style="mso-bidi-font-weight:normal;"&gt;msdb&lt;/b&gt; &amp;ldquo;&lt;b style="mso-bidi-font-weight:normal;"&gt;sp_send_dbmail&lt;/b&gt;&amp;rdquo;. Este procedimiento almacenado tiene algunos par&amp;aacute;metros importantes:&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst"&gt;&lt;span style="font-size:9pt;mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;"&gt;&lt;span style="mso-list:Ignore;"&gt;-&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:blue;font-size:9pt;mso-bidi-font-family:Arial;"&gt;@profile_name:&lt;/span&gt;&lt;span style="font-size:9pt;mso-bidi-font-family:Arial;"&gt; nombre del Profile con el que se va a enviar el correo.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:9pt;mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;"&gt;&lt;span style="mso-list:Ignore;"&gt;-&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:blue;font-size:9pt;mso-bidi-font-family:Arial;"&gt;@recipients:&lt;/span&gt;&lt;span style="font-size:9pt;mso-bidi-font-family:Arial;"&gt; lista de direcciones de correo electr&amp;oacute;nico, separadas por punto y coma, a las que se va enviar el correo.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:9pt;mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;"&gt;&lt;span style="mso-list:Ignore;"&gt;-&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:blue;font-size:9pt;mso-bidi-font-family:Arial;"&gt;@copy_recipients:&lt;/span&gt;&lt;span style="font-size:9pt;mso-bidi-font-family:Arial;"&gt; lista de direcciones de correo electr&amp;oacute;nico, separadas por punto y coma a las que se va a mandar el correo en &amp;ldquo;con copia&amp;rdquo;.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:9pt;mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;"&gt;&lt;span style="mso-list:Ignore;"&gt;-&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:blue;font-size:9pt;mso-bidi-font-family:Arial;"&gt;@subject: &lt;/span&gt;&lt;span style="font-size:9pt;mso-bidi-font-family:Arial;"&gt;asunto del correo.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:9pt;mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;"&gt;&lt;span style="mso-list:Ignore;"&gt;-&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:blue;font-size:9pt;mso-bidi-font-family:Arial;"&gt;@body:&lt;/span&gt;&lt;span style="font-size:9pt;mso-bidi-font-family:Arial;"&gt; cuerpo del correo.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:9pt;mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;"&gt;&lt;span style="mso-list:Ignore;"&gt;-&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:blue;font-size:9pt;mso-bidi-font-family:Arial;"&gt;@body_format:&lt;/span&gt;&lt;span style="font-size:9pt;mso-bidi-font-family:Arial;"&gt; Indica el formato del correo. Solamente puede tener alguno de estos dos valores: TEXT O HTML.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:9pt;mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;"&gt;&lt;span style="mso-list:Ignore;"&gt;-&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:blue;font-size:9pt;mso-bidi-font-family:Arial;"&gt;@importance:&lt;/span&gt;&lt;span style="font-size:9pt;mso-bidi-font-family:Arial;"&gt; indica la importancia del correo. Solamente puede contener alguno de estos valores: low, normal o high.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:9pt;mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;"&gt;&lt;span style="mso-list:Ignore;"&gt;-&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:blue;font-size:9pt;mso-bidi-font-family:Arial;"&gt;@sesitivity:&lt;/span&gt;&lt;span style="font-size:9pt;mso-bidi-font-family:Arial;"&gt; indica la confidencialidad del correo. Solamente puede contener alguno de estos valores: normal, personal, pr&amp;iacute;vate o confidential.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:9pt;mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;"&gt;&lt;span style="mso-list:Ignore;"&gt;-&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:blue;font-size:9pt;mso-bidi-font-family:Arial;"&gt;@file_attachments:&lt;/span&gt;&lt;span style="font-size:9pt;mso-bidi-font-family:Arial;"&gt; Lista de nombre, separados por punto y coma de los archivos que se adjuntan al correo. Se debe de indicar las rutas absolutas.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:9pt;mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;"&gt;&lt;span style="mso-list:Ignore;"&gt;-&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:blue;font-size:9pt;mso-bidi-font-family:Arial;"&gt;@query:&lt;/span&gt;&lt;span style="font-size:9pt;mso-bidi-font-family:Arial;"&gt; consulta que se ejecuta para rellenar el correo.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:9pt;mso-fareast-font-family:Arial;mso-bidi-font-family:Arial;"&gt;&lt;span style="mso-list:Ignore;"&gt;-&lt;span style="font:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:blue;font-size:9pt;mso-bidi-font-family:Arial;"&gt;@mailitem_id:&lt;/span&gt;&lt;span style="font-size:9pt;mso-bidi-font-family:Arial;"&gt; identificador del correo que se ha enviado.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:9pt;mso-bidi-font-family:Arial;"&gt;Veamos un ejemplo que env&amp;iacute;a un correo en formato html.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast"&gt;&lt;span style="font-size:9pt;mso-bidi-font-family:Arial;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="left"&gt;&lt;span lang="EN-US" style="color:blue;font-size:9pt;mso-bidi-font-family:Arial;mso-fareast-language:ES;mso-no-proof:yes;mso-ansi-language:EN-US;"&gt;EXEC&lt;/span&gt;&lt;span lang="EN-US" style="font-size:9pt;mso-bidi-font-family:Arial;mso-fareast-language:ES;mso-no-proof:yes;mso-ansi-language:EN-US;"&gt; &lt;span style="color:teal;"&gt;msdb&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;dbo&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:maroon;"&gt;sp_send_dbmail&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="color:teal;font-size:9pt;mso-bidi-font-family:Arial;mso-fareast-language:ES;mso-no-proof:yes;mso-ansi-language:EN-US;"&gt;@profile_name&lt;/span&gt;&lt;span lang="EN-US" style="font-size:9pt;mso-bidi-font-family:Arial;mso-fareast-language:ES;mso-no-proof:yes;mso-ansi-language:EN-US;"&gt; &lt;span style="color:gray;"&gt;=&lt;/span&gt; &lt;span style="color:red;"&gt;&amp;#39;NombreProfile&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:9pt;mso-bidi-font-family:Arial;mso-fareast-language:ES;mso-no-proof:yes;mso-ansi-language:EN-US;"&gt;&lt;span style="color:teal;"&gt;@recipients&lt;/span&gt; &lt;span style="color:gray;"&gt;=&lt;/span&gt; &lt;span style="color:red;"&gt;&amp;#39;contoso@contoso.com&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:teal;font-size:9pt;mso-bidi-font-family:Arial;mso-fareast-language:ES;mso-no-proof:yes;"&gt;@body&lt;/span&gt;&lt;span style="font-size:9pt;mso-bidi-font-family:Arial;mso-fareast-language:ES;mso-no-proof:yes;"&gt; &lt;span style="color:gray;"&gt;=&lt;/span&gt; &lt;span style="color:red;"&gt;&amp;#39;&amp;lt;p style=&amp;quot;color:blue&amp;quot;&amp;gt;Esto es una prueba de html&amp;lt;/p&amp;gt;&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:9pt;mso-bidi-font-family:Arial;mso-fareast-language:ES;mso-no-proof:yes;"&gt;&lt;span style="color:teal;"&gt;@body_format&lt;/span&gt; &lt;span style="color:gray;"&gt;=&lt;/span&gt; &lt;span style="color:red;"&gt;&amp;#39;HTML&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:9pt;mso-bidi-font-family:Arial;mso-fareast-language:ES;mso-no-proof:yes;"&gt;&lt;span style="color:teal;"&gt;@subject&lt;/span&gt; &lt;span style="color:gray;"&gt;=&lt;/span&gt; &lt;span style="color:red;"&gt;&amp;#39;Correo de prueba desde Sql Server&amp;#39;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="color:teal;font-size:9pt;mso-bidi-font-family:Arial;mso-fareast-language:ES;mso-no-proof:yes;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-size:9pt;mso-bidi-font-family:Arial;"&gt;&lt;span style="font-size:9pt;mso-bidi-font-family:Arial;"&gt;Para poder&amp;nbsp;ejecutar el procedimiento almacenado,&amp;nbsp;el usuario debe tener permisos en la base de datos msdb para &lt;b style="mso-bidi-font-weight:normal;"&gt;execute&lt;/b&gt;. S&lt;/span&gt;i el usuario con el que estamos ejecutando el procedimiento almacenado no tiene&lt;/span&gt;&lt;span style="font-size:9pt;mso-bidi-font-family:Arial;"&gt;&amp;nbsp;permisos sobre el procedimiento almacenado &lt;b style="mso-bidi-font-weight:normal;"&gt;sp_send_dbmail&lt;/b&gt;&amp;nbsp;dar&amp;aacute; un error. Para solucionarlo tenemos que ir a la base de datos &lt;b style="mso-bidi-font-weight:normal;"&gt;msdb&lt;/b&gt;, a su nodo &lt;b style="mso-bidi-font-weight:normal;"&gt;seguridad&lt;/b&gt;, y damos bot&amp;oacute;n derecho encima del usuario y seleccionamos propiedades. En la pantalla que aparece seleccionamos la funci&amp;oacute;n &lt;b style="mso-bidi-font-weight:normal;"&gt;DatabaseMailUserRole&lt;/b&gt;, y con eso ya podemos ejecutar el procedimiento almacenado.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-size:9pt;mso-bidi-font-family:Arial;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="font-size:9pt;mso-bidi-font-family:Arial;"&gt;&amp;iexcl;Espero que os guste y poda&amp;iacute;s utilizarlo en vuestros code&amp;#39;s! :)&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=158884" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/fjaumot/archive/tags/sql+server/default.aspx">sql server</category></item><item><title>[.net] MTOM cómo codificación de ficheros en WCF</title><link>http://geeks.ms/blogs/fjaumot/archive/2009/09/15/MTOM-en-WCF.aspx</link><pubDate>Tue, 15 Sep 2009 19:31:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:155578</guid><dc:creator>Francesc Jaumot</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/fjaumot/rsscomments.aspx?PostID=155578</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/fjaumot/commentapi.aspx?PostID=155578</wfw:comment><comments>http://geeks.ms/blogs/fjaumot/archive/2009/09/15/MTOM-en-WCF.aspx#comments</comments><description>&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;MTOM (Mecanismo de optimizaci&amp;oacute;n de transmisi&amp;oacute;n del mensaje), como su nombre indica, es un mecanismo para transmitir datos binarios grandes con basicHttpBinding. De forma predeterminada, basicHttpBinding env&amp;iacute;a y recibe los mensajes en XML y este tipo de encoding del mensaje debe ser habilitado en la configuraci&amp;oacute;n de nuestro proyecto c&amp;oacute;mo veremos m&amp;aacute;s adelante.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;El objetivo de usar MTOM en vez de otro encoding de mensajes, no es otro que optimizar la transmisi&amp;oacute;n de grandes cargas binarias. Al contrario, esta codificaci&amp;oacute;n cu&amp;aacute;ndo se usa para peque&amp;ntilde;as cargas a&amp;ntilde;ade una sobrecarga innecesaria en nuestro mensaje por lo que debemos saber cu&amp;aacute;ndo debemos usarlo, aunque teniendo en cuenta los documentos que se usan hoy en d&amp;iacute;a y la calidad de las fotograf&amp;iacute;as seguramente lo us&amp;eacute;is la gran mayor&amp;iacute;a de las veces.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;Antes de empezar os recomiendo que os baj&amp;eacute;is el c&amp;oacute;digo de ejemplo y lo vais siguiendo con lo que explicar&amp;eacute;. Como ver&amp;eacute;is dentro de la soluci&amp;oacute;n que he creado, hay dos carpetas: Cliente y Servidor. La primera de ellas tendr&amp;aacute; un proyecto WinForms que nos servir&amp;aacute; para subir/bajar archivos y la segunda el servicio WCF. Lo primero que vamos a ver es un sencillo servicio en WCF que nos permitir&amp;aacute; subir y bajar archivos de cualquier tipo. Es facil, la interface &lt;b&gt;IService.cs &lt;/b&gt;tendr&amp;aacute; dos m&amp;eacute;todos; uno para subir ficheros con el atributo&lt;b&gt; IsOneWay = true &lt;/b&gt;para indicar que este m&amp;eacute;todo no va a devolver mensaje de respuesta y otro para obtener el fichero. Adem&amp;aacute;s dos clases, &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#2b91af;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;PeticionDescarga &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;y &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#2b91af;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;Fichero&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;. Esta &amp;uacute;ltima implementara la interfaz &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#2b91af;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;IDisposable &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;para asegurarnos que al terminar la transmisi&amp;oacute;n podremos vaciar el flujo de datos.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;C&amp;oacute;mo MTOM transmite el mensaje por SOAP debemos formatear las clases c&amp;oacute;mo tal, as&amp;iacute; que la clase &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#2b91af;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;Fichero &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;contendr&amp;aacute; las propiedades NombreFichero y Peso con el atributo&amp;nbsp;[&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#2b91af;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;MessageHeader&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;(MustUnderstand = &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:blue;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;true&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;)] que nos indica que ambas propiedades pertenecer&amp;aacute;n a la cabecera SOAP (Header)&amp;nbsp;del mensaje y nos&amp;nbsp;permite especificar si el Header&amp;nbsp;deber&amp;aacute; ser analizado y comprendido por el destinatario o no. S&amp;iacute; esta a true, al enviar los datos se espera que el receptor comprenda la cabecera y los tenga en el DataContract. La propiedad FicheroBytes tiene el atributo&amp;nbsp;[&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#2b91af;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;MessageBodyMember&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;()]&amp;nbsp;que nos indica que ser&amp;aacute; el cuerpo del mensaje.&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10.5pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;Ahora viene lo complicado, &amp;iquest;C&amp;oacute;mo hacemos que nuestro servicio transfiera sus datos a trav&amp;eacute;s de la codificaci&amp;oacute;n MTOM? Configurando el binding de nuestro servicio. Para ello nos situamos en el archivo Web.config y nos deber&amp;aacute; quedar, adem&amp;aacute;s de las otras etiquetas, la configuraci&amp;oacute;n del servicio as&amp;iacute;:&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10.5pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;system.serviceModel&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;bindings&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;basicHttpBinding&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;binding&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:red;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;name&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;=&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;MTOMBinding&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:red;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;maxReceivedMessageSize&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;=&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;1048576&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:red;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;messageEncoding&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;=&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;Mtom&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;quot; &lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:red;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;transferMode&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;=&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;Streamed&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;binding&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;basicHttpBinding&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;bindings&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;services&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;service&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:red;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;name&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;=&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;Service&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:red;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;behaviorConfiguration&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;=&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;ServiceBehavior&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;endpoint&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:red;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;address&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;=&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:red;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;binding&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;=&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;basicHttpBinding&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:red;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;bindingConfiguration&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;=&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;MTOMBinding&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:red;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;contract&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;=&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;IService&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;service&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;services&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;behaviors&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;serviceBehaviors&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;behavior&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:red;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;name&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;=&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;ServiceBehavior&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;serviceMetadata&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:red;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;httpGetEnabled&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;=&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;true&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;serviceDebug&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:red;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;includeExceptionDetailInFaults&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;=&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;true&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;behavior&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;serviceBehaviors&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;behaviors&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;gt;&lt;br /&gt;&amp;lt;/&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:#a31515;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;system.serviceModel&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Courier New&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;color:black;font-size:12pt;mso-ansi-language:EN-US;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;Como ve&amp;iacute;s, le indicamos que la codificaci&amp;oacute;n del mensaje ser&amp;aacute; con MTOM y a trav&amp;eacute;s del transporte http. Las propiedades a&amp;nbsp;destacar&amp;nbsp;y de importacia s&amp;oacute;n &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:red;font-size:10pt;mso-no-proof:yes;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;maxReceivedMessageSize &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;que nos indica el &lt;/span&gt;&lt;b&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;mso-bidi-font-size:11.0pt;"&gt;tama&amp;ntilde;o m&amp;aacute;ximo del mensaje total&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt; expresado en bytes&amp;nbsp;y&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:red;font-size:10pt;mso-no-proof:yes;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;transferMode &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;que lo estableceremos a &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:blue;font-size:10pt;mso-no-proof:yes;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;Streamed &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;indicando as&amp;iacute; que no ser&amp;aacute; un transporte almacenado en un b&amp;uacute;fer si no que ser&amp;aacute; transmitido, es decir, solo deber&amp;aacute;n ser almacenadas las cabeceras SOAP y el cuerpo del mensaje ser&amp;aacute; transmitido c&amp;uacute;ando se haga la petici&amp;oacute;n. C&amp;oacute;mo le hemos indicado que ser&amp;aacute; transmitido ahora &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:red;font-size:10pt;mso-no-proof:yes;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;maxBufferSize &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;deber&amp;aacute; ser menor o igual que &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:red;font-size:10pt;mso-no-proof:yes;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;maxReceivedMessageSize&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;ya que a diferencia de este, &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:red;font-size:10pt;mso-no-proof:yes;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;maxBufferSize&lt;/span&gt;&lt;b&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:red;font-size:10pt;mso-no-proof:yes;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;mso-bidi-font-size:11.0pt;"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;unicamente limita el&lt;/span&gt;&lt;b&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;mso-bidi-font-size:11.0pt;"&gt; tama&amp;ntilde;o m&amp;aacute;ximo de la cabecera&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt; SOAP. Para que lo poda&amp;iacute;s entender mejor, &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:red;font-size:10pt;mso-no-proof:yes;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;maxBufferSize &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;configura el b&amp;uacute;fer de WCF&amp;nbsp;que almacena la cabecera del mensaje mientras se procesa el mensaje&amp;nbsp;en el extremo del cliente y no la totalidad del mismo mensaje. As&amp;iacute; pues, nuestra cabecera SOAP contendr&amp;aacute; el nombre del fichero y el peso tal y c&amp;oacute;mo hemos configurado la interficie &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#2b91af;font-size:10pt;mso-no-proof:yes;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;IService&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-no-proof:yes;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;.&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10.5pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;El servicio no tiene m&amp;aacute;s, lo que haremos ahora es la implementaci&amp;oacute;n de la interface y el c&amp;oacute;digo de los m&amp;eacute;todos que no explicar&amp;eacute; ya que son muy b&amp;aacute;sicos, aunque pod&amp;eacute;is preguntar si ten&amp;eacute;is cualquier duda por supuesto y adem&amp;aacute;s lo m&amp;aacute;s complejo lo he comentado. Algo simple, dentro de &lt;/span&gt;&lt;b&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;mso-bidi-font-size:11.0pt;"&gt;Service.cs &lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;tendremos implementados los m&amp;eacute;todos SubirFichero y DescargarFichero.&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:red;font-size:10pt;mso-no-proof:yes;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt; &lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;El m&amp;eacute;todo SubirFichero, recibir&amp;aacute; una instancia de la clase &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#2b91af;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;Fichero &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;con la informaci&amp;oacute;n del archivo a subir: su nombre, tama&amp;ntilde;o y el contenido en un stream de bytes. Este m&amp;eacute;todo tendr&amp;aacute; un &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#2b91af;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;FileStream &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;que va a escribir a disco en una ruta concreta&amp;nbsp;el stream de bytes recibido, o sea, el archivo. Y el m&amp;eacute;todo DescargarFichero har&amp;aacute; todo lo contrario, recibir&amp;aacute; una instancia de la clase &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#2b91af;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;PeticionDescarga&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;con el nombre del archivo a obtener y va a crear una instancia de la clase &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:#2b91af;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;Fichero&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;,es decir, el nombre, su longitud y el contenido en un stream devolviendo esta instancia c&amp;oacute;mo resultado de la llamada al m&amp;eacute;todo.&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10.5pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;Hasta aqu&amp;iacute; todo lo que se refiere al servicio, ya lo tenemos terminado y ahora nos toca hacer la parte de cliente. WCF siempre debe de tener&amp;nbsp;almenos un&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;mso-bidi-font-size:11.0pt;"&gt;EndPoint &lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;as&amp;iacute; que a esta aplicaci&amp;oacute;n cliente le a&amp;ntilde;adiremos una referencia a un servicio, el que hemos hecho, del que deberemos obtener la URL para saber d&amp;oacute;nde est&amp;aacute; hospedado. La podremos ver en la barra de&amp;nbsp;direcciones ejecutando el servicio independientemente. Aunque el servicio este configurado, el cliente tiene total libertad para decidir c&amp;oacute;mo actuar con el servicio c&amp;oacute;mo por ejemplo en nuestro caso le estamos indicando que &amp;uacute;nicamente (como servicio) podremos recibir 1Mb y mediante Streamed. El cliente debe responder con acuerdo a nuestras configuraciones pero por ejemplo puede hacer que el tama&amp;ntilde;o m&amp;aacute;ximo que se envi&amp;eacute; al servicio sea de 0,5Mb.&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10.5pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;Bien, los parametros a configurar del lado cliente van a ser el &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:red;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;maxBufferSize&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;, &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:red;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;maxReceivedMessageSize &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;y &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:red;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;transferMode&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;.&amp;nbsp;Se debe indicar que el tama&amp;ntilde;o maximo sea igual o menor que el tama&amp;ntilde;o que permite el servico (&amp;gt;= 1mb), en caso contrario el servicio lanzar&amp;aacute; una excepci&amp;oacute;n indicando que no soporta un tama&amp;ntilde;o superior. Con el &amp;uacute;ltimo par&amp;aacute;metro debemos tener cuidado, debe ser &lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:red;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;transferMode&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:blue;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;=&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:blue;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;StreamedResponse&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&amp;quot; porqu&amp;eacute; nuestro servicio espera recibir las cabeceras SOAP en un buffer y recibir la transmisi&amp;oacute;n del mensaje al momento del env&amp;iacute;o. De esta forma evitamos tener un buffer con miles de bytes debido al gran peso del fichero. &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;Comentar que las carpetas de subida y descarga se crearan dentro de los proyectos correspondientes. La de subida dentro del App_Code del servicio y la de descarga dentro del bin del cliente.&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;Para obtener el c&amp;oacute;digo, que esta adjunto, debe&amp;iacute;s abrir el archivo &lt;strong&gt;MTOM.rar&lt;/strong&gt; y copiar cada una de las subcarpetas que contiene&amp;nbsp;Projects y WebSites&amp;nbsp;dentro de las carpetas de proyecto de Visual Studio 2008 y abrir la soluci&amp;oacute;n &lt;strong&gt;Ficheros.sln&lt;/strong&gt;. Est&amp;aacute; echo con el Framework 3.5 y c#, como no :)&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:black;font-size:10pt;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-fareast-language:ES;"&gt;Espero que no dud&amp;eacute;is en preguntar y que os guste el post! Happy code!&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=155578" width="1" height="1"&gt;</description><enclosure url="http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.15.55.78/MTOM.rar" length="60820" type="application/octet-stream" /></item><item><title>[.net] Concurrencia y procesos asíncronos</title><link>http://geeks.ms/blogs/fjaumot/archive/2009/05/26/net-concurrencia-y-procesos-as-237-ncronos.aspx</link><pubDate>Tue, 26 May 2009 18:48:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:149382</guid><dc:creator>Francesc Jaumot</dc:creator><slash:comments>10</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/fjaumot/rsscomments.aspx?PostID=149382</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/fjaumot/commentapi.aspx?PostID=149382</wfw:comment><comments>http://geeks.ms/blogs/fjaumot/archive/2009/05/26/net-concurrencia-y-procesos-as-237-ncronos.aspx#comments</comments><description>&lt;div class="snap_preview"&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;Una de las cosas que m&amp;aacute;s quebraderos de cabeza nos pueden ocasionar a todos nosotros es la concurrencia de usuarios en las aplicaciones que dise&amp;ntilde;emos. Por suerte, adem&amp;aacute;s de conocer los algoritmos m&amp;aacute;s t&amp;iacute;picos (Panader&amp;iacute;a, Dekker, Patterson, Productor-Consumidor&amp;hellip;), .NET nos facilita bastante la implementaci&amp;oacute;n de esta tarea. &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;Hace pocos d&amp;iacute;as en un dise&amp;ntilde;o t&amp;eacute;cnico de una aplicaci&amp;oacute;n Web, el cliente nos plantaba un proceso cr&amp;iacute;tico que tendr&amp;iacute;a la aplicaci&amp;oacute;n y que deber&amp;iacute;a ser estable pasase lo que pasase. Adem&amp;aacute;s, con una dificultad a&amp;ntilde;adida, el proceso pod&amp;iacute;a durar horas y al finalizar deber&amp;iacute;a mostrar un mensaje al usuario.&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;Dado esto, encontr&amp;eacute; la soluci&amp;oacute;n m&amp;aacute;s viable para el proceso: trabajar en segundo plano sincr&amp;oacute;nicamente.&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;Para ello, deberemos hacer uso de los delegados y de las librer&amp;iacute;as &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;"&gt;System.Threading, System.Runtime.Remoting.Messaging &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;y de&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;"&gt;System.Runtime.CompilerServices.&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;"&gt;&amp;nbsp;&lt;span id="more-35"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;Como primer paso, adem&amp;aacute;s de crear una nueva aplicaci&amp;oacute;n de consola en C#, deberemos crear una clase con un delegado:&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;color:blue;font-family:&amp;#39;;"&gt;public&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;"&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ClassAsyncCallback&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;"&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;delegate&lt;/span&gt; &lt;span style="color:blue;"&gt;bool&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;deleg&lt;/span&gt;();&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;"&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;El segundo paso, es crear los m&amp;eacute;todos que se van a usar en el proceso s&amp;iacute;ncrono dentro de la clase; uno que llamar&amp;aacute; a la funci&amp;oacute;n que va a realizar el trabajo y otro que ser&amp;aacute; llamado al terminar el primer proceso:&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;" lang="EN-GB"&gt;[&lt;span style="color:#2b91af;"&gt;MethodImpl&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;MethodImplOptions&lt;/span&gt;.Synchronized)]&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;color:blue;font-family:&amp;#39;;"&gt;public&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;"&gt; &lt;span style="color:blue;"&gt;bool&lt;/span&gt; ProcessCritial()&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;"&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-indent:35.4pt;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;color:green;font-family:&amp;#39;;"&gt;//Ejecutamos el proceso&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;"&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&lt;br /&gt;Acordaros de que un delegado es tipo que hace referencia a un m&amp;eacute;todo, es decir, el comportamiento del delegado y el m&amp;eacute;todo es exactamente el mismo y adem&amp;aacute;s, este debe tener la misma firma, valor devuelto, par&amp;aacute;metros&amp;hellip;que el m&amp;eacute;todo.&lt;/span&gt; &lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;En este m&amp;eacute;todo, aparece algo nuevo, es el atributo declarativo en la declaraci&amp;oacute;n del m&amp;eacute;todo &lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;"&gt;[&lt;span style="color:#2b91af;"&gt;MethodImpl&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;MethodImplOptions&lt;/span&gt;.Synchronized)]&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;. Este atributo sirve para indicar que ese m&amp;eacute;todo estar&amp;aacute; sincronizado y que todo lo implementado en &amp;eacute;l es un proceso cr&amp;iacute;tico. Funciona del mismo modo que la clase &lt;/span&gt;&lt;span style="font-size:10pt;color:#2b91af;font-family:&amp;#39;;"&gt;Monitor&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;, internamente, declara un sem&amp;aacute;foro que gestiona la entrada &amp;uacute;nica de un subproceso en &amp;eacute;l m&amp;eacute;todo y pone en espera al resto. Al finalizar, libera el m&amp;eacute;todo y deja entrar al siguiente proceso. As&amp;iacute; sucesivamente. &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;El motivo de utilizar este atributo en vez la clase &lt;/span&gt;&lt;span style="font-size:10pt;color:#2b91af;font-family:&amp;#39;;"&gt;Monitor &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;es muy simple, este atributo bloquea el m&amp;eacute;todo hasta que devuelve un valor, que en mi caso es lo que necesitaba,&lt;span&gt;&amp;nbsp; &lt;/span&gt;adem&amp;aacute;s que &lt;/span&gt;&lt;span style="font-size:10pt;color:#2b91af;font-family:&amp;#39;;"&gt;Monitor &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;nos condiciona a usar adem&amp;aacute;s &lt;/span&gt;&lt;span style="font-size:10pt;color:blue;font-family:&amp;#39;;"&gt;lock &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;para el bloqueo de una variable para saber si el m&amp;eacute;todo esta libre o no y como bien pod&amp;eacute;is deducir, no es una buena practica.&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;Bien, ahora solo nos queda crear el m&amp;eacute;todo que mostrara el mensaje al usuario:&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;color:blue;font-family:&amp;#39;;" lang="EN-GB"&gt;public&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;" lang="EN-GB"&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; ProcessFinish(&lt;span style="color:#2b91af;"&gt;IAsyncResult&lt;/span&gt; ar)&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;"&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-indent:35.4pt;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;color:green;font-family:&amp;#39;;"&gt;//Mostramos alerta al usuario&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;"&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;Como veis, este proceso recibe como par&amp;aacute;metro &lt;span style="color:#2b91af;"&gt;IA&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#2b91af;font-family:&amp;#39;;"&gt;syncResult &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;que nos indica el estado de la operaci&amp;oacute;n as&amp;iacute;ncrona. &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;Por ahora, nos centraremos en como llamar de forma as&amp;iacute;ncrona estos m&amp;eacute;todos des del Main de la aplicaci&amp;oacute;n:&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;color:blue;font-family:&amp;#39;;" lang="EN-GB"&gt;static&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;" lang="EN-GB"&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; Main(&lt;span style="color:blue;"&gt;string&lt;/span&gt;[] args)&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;"&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#2b91af;font-family:&amp;#39;;" lang="EN-GB"&gt;ClassAsyncCallback&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;" lang="EN-GB"&gt; Mvar = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ClassAsyncCallback&lt;/span&gt;();&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;" lang="EN-GB"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;deleg&lt;/span&gt; call = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;deleg&lt;/span&gt;(Mvar.ProcessCritial);&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-indent:35.4pt;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;color:#2b91af;font-family:&amp;#39;;" lang="EN-GB"&gt;AsyncCallback&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;" lang="EN-GB"&gt; cb = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;AsyncCallback&lt;/span&gt;(Mvar.ProcessFinish);&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;" lang="EN-GB"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;IAsyncResult&lt;/span&gt; ar = call.BeginInvoke(cb, &lt;span style="color:blue;"&gt;null&lt;/span&gt;);&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;"&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;Bien, llegados hasta aqu&amp;iacute; ya tenemos la forma de ejecutar el proceso as&amp;iacute;ncrono preparado para la concurrencia de usuarios. Como veis, deberemos crear una nueva instancia del delegado declarado anteriormente y pasarle el nombre del m&amp;eacute;todo. Con la clase &lt;/span&gt;&lt;span style="font-size:10pt;color:#2b91af;font-family:&amp;#39;;"&gt;AsyncCallback &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;y pas&amp;aacute;ndole el nombre del m&amp;eacute;todo,&lt;span&gt;&amp;nbsp; &lt;/span&gt;ya tendremos el objeto que realizara la llamada.&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;Mediante &lt;span style="color:#2b91af;"&gt;IA&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#2b91af;font-family:&amp;#39;;"&gt;syncResult &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;y con BeginInvoke, ejecutaremos el proceso as&amp;iacute;ncrono. Como primer par&amp;aacute;metro le pasaremos el m&amp;eacute;todo que se debe llamar al finalizar y con el objeto delegado llamaremos el m&amp;eacute;todo que debe ser llamado asincr&amp;oacute;nicamente.&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;Tal y como hemos dicho, ProcessFinsih es el encargado de mostrar la alerta al usuario seg&amp;uacute;n el resultado del m&amp;eacute;todo ProcessCrtical. Para recoger el valor devuelto por este dentro de ProcessFinsih, debemos modificar el m&amp;eacute;todo de la siguiente forma:&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;color:blue;font-family:&amp;#39;;" lang="EN-GB"&gt;public&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;" lang="EN-GB"&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; ProcessFinish(&lt;span style="color:#2b91af;"&gt;IAsyncResult&lt;/span&gt; ar)&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;"&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-indent:35.4pt;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;color:#2b91af;font-family:&amp;#39;;" lang="EN-GB"&gt;deleg&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;" lang="EN-GB"&gt; resultado = (&lt;span style="color:#2b91af;"&gt;deleg&lt;/span&gt;)((&lt;span style="color:#2b91af;"&gt;AsyncResult&lt;/span&gt;)ar).AsyncDelegate;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-indent:35.4pt;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;color:blue;font-family:&amp;#39;;"&gt;if&lt;/span&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;"&gt; (resultado.EndInvoke(ar))&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-indent:35.4pt;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:green;"&gt;//Mostramos alerta al usuario&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:&amp;#39;;"&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;Con AsyncDelegate lo que hacemos es recoger el objeto delegado que se ha invocado en la llamada as&amp;iacute;ncrona y se debe convertir al tipo de delegado declarado por nosotros para poder obtener el resultado de ProcessCrtical; si es true le mostraremos la alerta al usuario.&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;No es muy complicado ni nada dificultoso, hay que decir que este tipo de problemas es muy t&amp;iacute;pico en bastantes aplicaciones, sobretodo si hay procesos que requieran una gran cantidad de tiempo. Adem&amp;aacute;s de solventar un posible problema de concurrencia de usuarios, evitamos que nuestro cliente tenga que esperar &lt;strong&gt;&lt;em&gt;x&lt;/em&gt;&lt;/strong&gt; tiempo a que termine este proceso para seguir trabajando con la aplicaci&amp;oacute;n por lo que mejoramos el rendimiento de la misma.&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;Pues nada, a disfrutarlo y ya sab&amp;eacute;is&amp;hellip; si hay dudas, preguntar.&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;text-align:justify;" class="MsoNormal"&gt;&lt;span style="font-size:10pt;font-family:Arial;"&gt;&amp;iexcl;&amp;iexcl;Enjoy!!&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=149382" width="1" height="1"&gt;</description></item></channel></rss>