<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-855032494846532188</id><updated>2025-04-05T03:21:34.905+02:00</updated><category term="Visual Studio"/><category term="c#"/><category term="AX2012"/><category term="Sql Server"/><category term="asp.net"/><category term="Errores"/><category term="Entity Framework"/><category term="Internet Explorer"/><category term="Blogger"/><category term="CVS"/><category term="LINQ"/><category term="SEO"/><category term="async"/><category term="nuget"/><category term="Crystal Reports"/><category term="Diseño"/><category term="Enlaces"/><category term="Excel"/><category term="IIS"/><category term="Redes sociales"/><category term="Reporting Services"/><category term="VSTO"/><category term="Windows"/><category term="Word"/><category term="orm"/><category term="regEx"/><title type='text'>Overflow Exception</title><subtitle type='html'>Blog con tutoriales y comentarios acerca de las tecnologías .Net en particular y de la informática en general.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.overflowexception.es/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://www.overflowexception.es/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Juan Manuel Fenoll</name><uri>http://www.blogger.com/profile/14376120768475916211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Zj12pCzcjsFNTvQfGGXLhjiurNjl4SWTr--uvnUt2X9m8WccIERoz_QP2N3B7STx2YvcAI9QfeprQxFTTsCDtzDIO4f1y-RrNesiEpgArwqqSLPa5ejNwupLa7H6Tp4/s220/Imagen+007.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>50</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-855032494846532188.post-3646850338276283761</id><published>2016-10-22T02:11:00.004+02:00</published><updated>2016-10-22T02:19:57.953+02:00</updated><title type='text'>XPath y su aplicación para extracción de datos </title><content type='html'>&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 8pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;;&quot;&gt;XPath es una sintaxis que se usa para recorrer los elementos
de un documento XML &lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 8pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;;&quot;&gt;Mediante estos comandos podemos obtener cualquier nodo del
árbol de elementos.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 8pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;o:p&gt;&lt;strong&gt;SINTAXIS&lt;/strong&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot; , sans-serif; font-size: 11pt; line-height: 107%;&quot;&gt;Para
trastear con&amp;nbsp;ejemplos, usaremos esta página &lt;br /&gt;
&lt;/span&gt;

&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot; , sans-serif; font-size: 11pt; line-height: 107%;&quot;&gt;
&lt;a href=&quot;http://www.freeformatter.com/xpath-tester.html&quot;&gt;&lt;span style=&quot;color: #0563c1;&quot;&gt;http://www.freeformatter.com/xpath-tester.html&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot; , sans-serif; font-size: 11pt; line-height: 107%;&quot;&gt;e introduciremos el siguiente XML:&lt;/span&gt;&lt;br /&gt;
&lt;pre class=&quot;brush: csharp&quot;&gt;&amp;lt;libro&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;titulo&amp;gt;Libro 1&amp;lt;/titulo&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;autor&amp;gt;Autor 1&amp;lt;/autor&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;capitulo num=&quot;1&quot;&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Capitulo1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;parrafo&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Texto 1.1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/parrafo&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;parrafo destacar=&quot;si&quot;&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Texto 1.2
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;enlace href=&quot;enlace&quot;&amp;gt;Enlace 1&amp;lt;/enlace&amp;gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Texto 1.3
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/parrafo&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/capitulo&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;capitulo num=&quot;2&quot; public=&quot;si&quot; &amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Capitulo 2
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;parrafo&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Texto 2.1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/parrafo&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;parrafo&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Texto 2.2
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;enlace href=&quot;enlace&quot;&amp;gt;Enlace 2&amp;lt;/enlace&amp;gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Texto 2.3
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/parrafo&amp;gt;
&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/capitulo&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;apendice num=&quot;a&quot; public=&quot;si&quot;&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Apéndice 1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;parrafo&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Texto 3.1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/parrafo&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;parrafo&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Texto 3.2
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;enlace href=&quot;enlace&quot;&amp;gt;Enlace 3&amp;lt;/enlace&amp;gt; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Texto 3.3
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/parrafo&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/apendice&amp;gt;
&amp;nbsp; &amp;lt;/libro&amp;gt;&lt;/pre&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot; , sans-serif; font-size: 11pt; line-height: 107%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;

 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
  &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
 &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;

&lt;/span&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;border-collapse: collapse; width: 684px;&quot;&gt;&lt;colgroup&gt;&lt;col style=&quot;mso-width-alt: 6752; mso-width-source: userset; width: 158pt;&quot; width=&quot;211&quot;&gt;&lt;/col&gt;&lt;colgroup&gt;&lt;col style=&quot;mso-width-alt: 6592; mso-width-source: userset; width: 155pt;&quot; width=&quot;206&quot;&gt;&lt;/col&gt;&lt;colgroup&gt;&lt;col style=&quot;mso-width-alt: 8544; mso-width-source: userset; width: 200pt;&quot; width=&quot;267&quot;&gt;&lt;/col&gt;&lt;tbody&gt;
&lt;tr height=&quot;20&quot; style=&quot;height: 15pt;&quot;&gt;&lt;td class=&quot;xl68&quot; height=&quot;20&quot; style=&quot;background-color: transparent; border: 0.5pt solid windowtext; height: 15pt; width: 158pt;&quot; width=&quot;211&quot;&gt;&lt;strong&gt;Sintaxis&lt;/strong&gt;&lt;/td&gt;&lt;td class=&quot;xl68&quot; style=&quot;background-color: transparent; border-color: windowtext windowtext windowtext black; border-style: solid solid solid none; border-width: 0.5pt 0.5pt 0.5pt 0px; width: 155pt;&quot; width=&quot;206&quot;&gt;&lt;strong&gt;Significado&lt;/strong&gt;&lt;/td&gt;&lt;td class=&quot;xl69&quot; style=&quot;background-color: transparent; border-color: windowtext windowtext windowtext black; border-style: solid solid solid none; border-width: 0.5pt 0.5pt 0.5pt 0px; width: 200pt;&quot; width=&quot;267&quot;&gt;&lt;strong&gt;Resultado&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr height=&quot;144&quot; style=&quot;height: 108pt;&quot;&gt;&lt;td class=&quot;xl65&quot; height=&quot;144&quot; style=&quot;background-color: white; border-color: rgb(0, 0, 10) windowtext windowtext; border-style: none solid solid; border-width: 0px 0.5pt 0.5pt; height: 108pt; width: 158pt;&quot; width=&quot;211&quot;&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;
  &lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 0.35cm;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;
  &lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;margin-right: 0cm;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;
  &lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;margin-right: 46.5pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;/libro&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;xl66&quot; style=&quot;background-color: white; border-color: rgb(0, 0, 10); border-style: none solid solid none; border-width: 0px 0.5pt 0.5pt 0px; width: 155pt;&quot; width=&quot;206&quot;&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;Seleccionaremos
  el elemento raíz de la estructura de elementos o nodos, y todos los nodos que
  cuelgan de ella&lt;/span&gt;&lt;/td&gt;&lt;td class=&quot;xl70&quot; style=&quot;background-color: white; border-color: rgb(64, 64, 64); border-style: none solid solid none; border-width: 0px 0.5pt 0.5pt 0px; width: 200pt;&quot; width=&quot;267&quot;&gt;&lt;span style=&quot;color: #404040; font-family: &amp;quot;courier new&amp;quot;; font-size: x-small;&quot;&gt;&amp;lt;libro&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;titulo&amp;gt;Libro
  1&amp;lt;/titulo&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;autor&amp;gt;Autor
  1&amp;lt;/autor&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;capitulo num=&quot;1&quot;&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Capitulo1&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;parrafo&amp;gt;Texto
  1.1&amp;lt;/parrafo&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;parrafo
  destacar=&quot;si&quot;&amp;gt; &lt;br /&gt;
    …&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr height=&quot;162&quot; style=&quot;height: 121.5pt;&quot;&gt;&lt;td class=&quot;xl73&quot; height=&quot;162&quot; style=&quot;background-color: white; border-color: black windowtext windowtext; border-style: none solid solid; border-width: 0px 0.5pt 0.5pt; height: 121.5pt; width: 158pt;&quot; width=&quot;211&quot;&gt;/libro/capitulo&lt;/td&gt;&lt;td class=&quot;xl73&quot; style=&quot;background-color: white; border-color: black; border-style: none solid solid none; border-width: 0px 0.5pt 0.5pt 0px; width: 155pt;&quot; width=&quot;206&quot;&gt;Devuelve
  todos los capítulos que cuelgan de Libro&lt;/td&gt;&lt;td class=&quot;xl70&quot; style=&quot;background-color: white; border-color: rgb(64, 64, 64); border-style: none solid solid none; border-width: 0px 0.5pt 0.5pt 0px; width: 200pt;&quot; width=&quot;267&quot;&gt;&lt;span style=&quot;color: #404040; font-family: &amp;quot;courier new&amp;quot;; font-size: x-small;&quot;&gt;&amp;lt;capitulo
  num=&quot;1&quot;&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;Capitulo1&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;parrafo&amp;gt;Texto
  1.1&amp;lt;/parrafo&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;parrafo destacar=&quot;si&quot;&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;...&lt;br /&gt;
    &amp;lt;capitulo num=&quot;2&quot; public=&quot;si&quot;&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;Capitulo 2&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;parrafo&amp;gt;Texto
  2.1&amp;lt;/parrafo&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;…&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr height=&quot;180&quot; style=&quot;height: 135pt;&quot;&gt;&lt;td class=&quot;xl73&quot; height=&quot;180&quot; style=&quot;background-color: white; border-color: black windowtext windowtext; border-style: none solid solid; border-width: 0px 0.5pt 0.5pt; height: 135pt; width: 158pt;&quot; width=&quot;211&quot;&gt;/libro/capitulo[2]&lt;/td&gt;&lt;td class=&quot;xl73&quot; style=&quot;background-color: white; border-color: black; border-style: none solid solid none; border-width: 0px 0.5pt 0.5pt 0px; width: 155pt;&quot; width=&quot;206&quot;&gt;Devuelve
  el 2º capítulo de Libro&lt;/td&gt;&lt;td class=&quot;xl70&quot; style=&quot;background-color: white; border-color: rgb(64, 64, 64); border-style: none solid solid none; border-width: 0px 0.5pt 0.5pt 0px; width: 200pt;&quot; width=&quot;267&quot;&gt;&lt;span style=&quot;color: #404040; font-family: &amp;quot;courier new&amp;quot;; font-size: x-small;&quot;&gt;&amp;lt;capitulo
  num=&quot;2&quot; public=&quot;si&quot;&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;Capitulo 2&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;parrafo&amp;gt;Texto
  2.1&amp;lt;/parrafo&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;parrafo&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Texto 2.2&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;enlace
  href=&quot;enlace&quot;&amp;gt;Enlace 2&amp;lt;/enlace&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Texto 2.3&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;/parrafo&amp;gt;&lt;br /&gt;
    &amp;lt;/capitulo&amp;gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr height=&quot;378&quot; style=&quot;height: 283.5pt;&quot;&gt;&lt;td class=&quot;xl73&quot; height=&quot;378&quot; style=&quot;background-color: white; border-color: black windowtext windowtext; border-style: none solid solid; border-width: 0px 0.5pt 0.5pt; height: 283.5pt; width: 158pt;&quot; width=&quot;211&quot;&gt;//parrafo&lt;/td&gt;&lt;td class=&quot;xl73&quot; style=&quot;background-color: white; border-color: black; border-style: none solid solid none; border-width: 0px 0.5pt 0.5pt 0px; width: 155pt;&quot; width=&quot;206&quot;&gt;Devuelve
  todos los párrafos, estén donde estén en el documento.&lt;/td&gt;&lt;td class=&quot;xl70&quot; style=&quot;background-color: white; border-color: rgb(64, 64, 64); border-style: none solid solid none; border-width: 0px 0.5pt 0.5pt 0px; width: 200pt;&quot; width=&quot;267&quot;&gt;&lt;span style=&quot;color: #404040; font-family: &amp;quot;courier new&amp;quot;; font-size: x-small;&quot;&gt;&amp;lt;parrafo&amp;gt;Texto
  1.1&amp;lt;/parrafo&amp;gt;&lt;br /&gt;
    &amp;lt;parrafo destacar=&quot;si&quot;&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;Texto 1.2&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;enlace
  href=&quot;enlace&quot;&amp;gt;Enlace 1&amp;lt;/enlace&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;Texto 1.3&lt;br /&gt;
    &amp;lt;/parrafo&amp;gt;&lt;br /&gt;
    &amp;lt;parrafo&amp;gt;Texto 2.1&amp;lt;/parrafo&amp;gt;&lt;br /&gt;
    &amp;lt;parrafo&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;Texto 2.2&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;enlace
  href=&quot;enlace&quot;&amp;gt;Enlace 2&amp;lt;/enlace&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;Texto 2.3&lt;br /&gt;
    &amp;lt;/parrafo&amp;gt;&lt;br /&gt;
    &amp;lt;parrafo&amp;gt;Texto 3.1&amp;lt;/parrafo&amp;gt;&lt;br /&gt;
    &amp;lt;parrafo&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;Texto 3.2&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;enlace
  href=&quot;enlace&quot;&amp;gt;Enlace 3&amp;lt;/enlace&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;Texto 3.3&lt;br /&gt;
    &amp;lt;/parrafo&amp;gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr height=&quot;80&quot; style=&quot;height: 60pt;&quot;&gt;&lt;td class=&quot;xl73&quot; height=&quot;80&quot; style=&quot;background-color: white; border-color: black windowtext windowtext; border-style: none solid solid; border-width: 0px 0.5pt 0.5pt; height: 60pt; width: 158pt;&quot; width=&quot;211&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot;&gt;&lt;span style=&quot;color: black; text-decoration: none;&quot;&gt;//parrafo/@destacar&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class=&quot;xl73&quot; style=&quot;background-color: white; border-color: black; border-style: none solid solid none; border-width: 0px 0.5pt 0.5pt 0px; width: 155pt;&quot; width=&quot;206&quot;&gt;Para
  un elemento párrafo que contenga el atributo “destacar”, devuelve el valor de
  el atributro “Destacar&lt;span class=&quot;font5&quot; style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt; “&lt;/span&gt;&lt;/td&gt;&lt;td class=&quot;xl70&quot; style=&quot;background-color: white; border-color: rgb(64, 64, 64); border-style: none solid solid none; border-width: 0px 0.5pt 0.5pt 0px; width: 200pt;&quot; width=&quot;267&quot;&gt;&lt;span style=&quot;color: #404040; font-family: &amp;quot;courier new&amp;quot;; font-size: x-small;&quot;&gt;destacar=&quot;si&quot;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr height=&quot;108&quot; style=&quot;height: 81pt;&quot;&gt;&lt;td class=&quot;xl73&quot; height=&quot;108&quot; style=&quot;background-color: white; border-color: black windowtext windowtext; border-style: none solid solid; border-width: 0px 0.5pt 0.5pt; height: 81pt; width: 158pt;&quot; width=&quot;211&quot;&gt;//parrafo[@destacar]&lt;/td&gt;&lt;td class=&quot;xl73&quot; style=&quot;background-color: white; border-color: black; border-style: none solid solid none; border-width: 0px 0.5pt 0.5pt 0px; width: 155pt;&quot; width=&quot;206&quot;&gt;Devuelve
  el párrafo que contenga un atributo “destacar”, da igual su valor&lt;/td&gt;&lt;td class=&quot;xl70&quot; style=&quot;background-color: white; border-color: rgb(64, 64, 64); border-style: none solid solid none; border-width: 0px 0.5pt 0.5pt 0px; width: 200pt;&quot; width=&quot;267&quot;&gt;&lt;span style=&quot;color: #404040; font-family: &amp;quot;courier new&amp;quot;; font-size: x-small;&quot;&gt;&amp;lt;parrafo
  destacar=&quot;si&quot;&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;Texto 1.2&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;enlace
  href=&quot;enlace&quot;&amp;gt;Enlace 1&amp;lt;/enlace&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;Texto 1.3&lt;br /&gt;
    &amp;lt;/parrafo&amp;gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr height=&quot;108&quot; style=&quot;height: 81pt;&quot;&gt;&lt;td class=&quot;xl73&quot; height=&quot;108&quot; style=&quot;background-color: white; border-color: black windowtext windowtext; border-style: none solid solid; border-width: 0px 0.5pt 0.5pt; height: 81pt; width: 158pt;&quot; width=&quot;211&quot;&gt;//parrafo[@destacar=”si”]&lt;/td&gt;&lt;td class=&quot;xl73&quot; style=&quot;background-color: white; border-color: black; border-style: none solid solid none; border-width: 0px 0.5pt 0.5pt 0px; width: 155pt;&quot; width=&quot;206&quot;&gt;Devuelve
  el párrafo que contenga un atributo “destacar” con valor “si”&lt;/td&gt;&lt;td class=&quot;xl70&quot; style=&quot;background-color: white; border-color: rgb(64, 64, 64); border-style: none solid solid none; border-width: 0px 0.5pt 0.5pt 0px; width: 200pt;&quot; width=&quot;267&quot;&gt;&lt;span style=&quot;color: #404040; font-family: &amp;quot;courier new&amp;quot;; font-size: x-small;&quot;&gt;&amp;lt;parrafo
  destacar=&quot;si&quot;&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;Texto 1.2&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;enlace
  href=&quot;enlace&quot;&amp;gt;Enlace 1&amp;lt;/enlace&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;Texto 1.3&lt;br /&gt;
    &amp;lt;/parrafo&amp;gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr height=&quot;180&quot; style=&quot;height: 135pt;&quot;&gt;&lt;td class=&quot;xl73&quot; height=&quot;180&quot; style=&quot;background-color: white; border-color: black windowtext windowtext; border-style: none solid solid; border-width: 0px 0.5pt 0.5pt; height: 135pt; width: 158pt;&quot; width=&quot;211&quot;&gt;//capitulo[@num&amp;gt;=2]&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td class=&quot;xl73&quot; style=&quot;background-color: white; border-color: black; border-style: none solid solid none; border-width: 0px 0.5pt 0.5pt 0px; width: 155pt;&quot; width=&quot;206&quot;&gt;Devuelve
  el capítulo cuyo numero sea mayor o igual que 2&lt;/td&gt;&lt;td class=&quot;xl70&quot; style=&quot;background-color: white; border-color: rgb(64, 64, 64); border-style: none solid solid none; border-width: 0px 0.5pt 0.5pt 0px; width: 200pt;&quot; width=&quot;267&quot;&gt;&lt;span style=&quot;color: #404040; font-family: &amp;quot;courier new&amp;quot;; font-size: x-small;&quot;&gt;&amp;lt;capitulo
  num=&quot;2&quot; public=&quot;si&quot;&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;Capitulo 2&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;parrafo&amp;gt;Texto
  2.1&amp;lt;/parrafo&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;parrafo&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Texto 2.2&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;enlace
  href=&quot;enlace&quot;&amp;gt;Enlace 2&amp;lt;/enlace&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Texto 2.3&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;/parrafo&amp;gt;&lt;br /&gt;
    &amp;lt;/capitulo&amp;gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr height=&quot;72&quot; style=&quot;height: 54pt;&quot;&gt;&lt;td class=&quot;xl73&quot; height=&quot;72&quot; style=&quot;background-color: white; border-color: black windowtext windowtext; border-style: none solid solid; border-width: 0px 0.5pt 0.5pt; height: 54pt; width: 158pt;&quot; width=&quot;211&quot;&gt;//capitulo//enlace&lt;/td&gt;&lt;td class=&quot;xl73&quot; style=&quot;background-color: white; border-color: black; border-style: none solid solid none; border-width: 0px 0.5pt 0.5pt 0px; width: 155pt;&quot; width=&quot;206&quot;&gt;Devuelve
  todos los enlaces que cuelguen de capítulos&lt;/td&gt;&lt;td class=&quot;xl70&quot; style=&quot;background-color: white; border-color: rgb(64, 64, 64); border-style: none solid solid none; border-width: 0px 0.5pt 0.5pt 0px; width: 200pt;&quot; width=&quot;267&quot;&gt;&lt;span style=&quot;color: #404040; font-family: &amp;quot;courier new&amp;quot;; font-size: x-small;&quot;&gt;&amp;lt;enlace
  href=&quot;enlace&quot;&amp;gt;Enlace 1&amp;lt;/enlace&amp;gt;&lt;br /&gt;
    &amp;lt;enlace href=&quot;enlace&quot;&amp;gt;Enlace 2&amp;lt;/enlace&amp;gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr height=&quot;180&quot; style=&quot;height: 135pt;&quot;&gt;&lt;td class=&quot;xl73&quot; height=&quot;180&quot; style=&quot;background-color: white; border-color: black windowtext windowtext; border-style: none solid solid; border-width: 0px 0.5pt 0.5pt; height: 135pt; width: 158pt;&quot; width=&quot;211&quot;&gt;//capitulo[last()]&lt;/td&gt;&lt;td class=&quot;xl73&quot; style=&quot;background-color: white; border-color: black; border-style: none solid solid none; border-width: 0px 0.5pt 0.5pt 0px; width: 155pt;&quot; width=&quot;206&quot;&gt;Devuelve
  el útlimo capítulo&lt;/td&gt;&lt;td class=&quot;xl70&quot; style=&quot;background-color: white; border-color: rgb(64, 64, 64); border-style: none solid solid none; border-width: 0px 0.5pt 0.5pt 0px; width: 200pt;&quot; width=&quot;267&quot;&gt;&lt;span style=&quot;color: #404040; font-family: &amp;quot;courier new&amp;quot;; font-size: x-small;&quot;&gt;&amp;lt;capitulo
  num=&quot;2&quot; public=&quot;si&quot;&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;Capitulo 2&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;parrafo&amp;gt;Texto
  2.1&amp;lt;/parrafo&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;parrafo&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Texto 2.2&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;enlace
  href=&quot;enlace&quot;&amp;gt;Enlace 2&amp;lt;/enlace&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Texto 2.3&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;/parrafo&amp;gt;&lt;br /&gt;
    &amp;lt;/capitulo&amp;gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr height=&quot;40&quot; style=&quot;height: 30pt;&quot;&gt;&lt;td class=&quot;xl73&quot; height=&quot;40&quot; style=&quot;background-color: white; border-color: black windowtext windowtext; border-style: none solid solid; border-width: 0px 0.5pt 0.5pt; height: 30pt; width: 158pt;&quot; width=&quot;211&quot;&gt;//capitulo[2]/text()&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td class=&quot;xl73&quot; style=&quot;background-color: white; border-color: black; border-style: none solid solid none; border-width: 0px 0.5pt 0.5pt 0px; width: 155pt;&quot; width=&quot;206&quot;&gt;Devuelve
  el texto que hay en el capítulo 2&lt;/td&gt;&lt;td class=&quot;xl70&quot; style=&quot;background-color: white; border-color: rgb(64, 64, 64); border-style: none solid solid none; border-width: 0px 0.5pt 0.5pt 0px; width: 200pt;&quot; width=&quot;267&quot;&gt;&lt;span style=&quot;color: #404040; font-family: &amp;quot;courier new&amp;quot;; font-size: x-small;&quot;&gt;Capitulo
  2&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr height=&quot;180&quot; style=&quot;height: 135pt;&quot;&gt;&lt;td class=&quot;xl73&quot; height=&quot;180&quot; style=&quot;background-color: white; border-color: black windowtext windowtext; border-style: none solid solid; border-width: 0px 0.5pt 0.5pt; height: 135pt; width: 158pt;&quot; width=&quot;211&quot;&gt;//capitulo[position()&amp;gt;1]&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td class=&quot;xl73&quot; style=&quot;background-color: white; border-color: black; border-style: none solid solid none; border-width: 0px 0.5pt 0.5pt 0px; width: 155pt;&quot; width=&quot;206&quot;&gt;Devuelve
  los capítulos a partir de la posición 2&lt;/td&gt;&lt;td class=&quot;xl70&quot; style=&quot;background-color: white; border-color: rgb(64, 64, 64); border-style: none solid solid none; border-width: 0px 0.5pt 0.5pt 0px; width: 200pt;&quot; width=&quot;267&quot;&gt;&lt;span style=&quot;color: #404040; font-family: &amp;quot;courier new&amp;quot;; font-size: x-small;&quot;&gt;&amp;lt;capitulo
  num=&quot;2&quot; public=&quot;si&quot;&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;Capitulo 2&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;parrafo&amp;gt;Texto
  2.1&amp;lt;/parrafo&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;parrafo&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Texto 2.2&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;enlace
  href=&quot;enlace&quot;&amp;gt;Enlace 2&amp;lt;/enlace&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Texto 2.3&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;/parrafo&amp;gt;&lt;br /&gt;
    &amp;lt;/capitulo&amp;gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr height=&quot;180&quot; style=&quot;height: 135pt;&quot;&gt;&lt;td class=&quot;xl73&quot; height=&quot;180&quot; style=&quot;background-color: white; border-color: black windowtext windowtext; border-style: none solid solid; border-width: 0px 0.5pt 0.5pt; height: 135pt; width: 158pt;&quot; width=&quot;211&quot;&gt;//enlace[contains(text(),&#39;Enlace 2&#39;)]&lt;br /&gt;
/ancestor::capitulo&lt;/td&gt;&lt;td class=&quot;xl73&quot; style=&quot;background-color: white; border-color: black; border-style: none solid solid none; border-width: 0px 0.5pt 0.5pt 0px; width: 155pt;&quot; width=&quot;206&quot;&gt;Devuelve
  el capítulo donde haya un enlace con valor &quot;Enlace 3&quot;&lt;/td&gt;&lt;td class=&quot;xl71&quot; style=&quot;background-color: white; border-color: black; border-style: none solid solid none; border-width: 0px 0.5pt 0.5pt 0px; width: 200pt;&quot; width=&quot;267&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: x-small;&quot;&gt;&amp;lt;capitulo
  num=&quot;2&quot; public=&quot;si&quot;&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;Capitulo 2&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;parrafo&amp;gt;Texto
  2.1&amp;lt;/parrafo&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;parrafo&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Texto 2.2&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;enlace
  href=&quot;enlace&quot;&amp;gt;Enlace 2&amp;lt;/enlace&amp;gt;&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Texto 2.3&lt;br /&gt;
    &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;/parrafo&amp;gt;&lt;br /&gt;
    &amp;lt;/capitulo&amp;gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr height=&quot;260&quot; style=&quot;height: 195pt;&quot;&gt;&lt;td class=&quot;xl73&quot; height=&quot;260&quot; style=&quot;background-color: white; border-color: black windowtext windowtext; border-style: none solid solid; border-width: 0px 0.5pt 0.5pt; height: 195pt; width: 158pt;&quot; width=&quot;211&quot;&gt;//parrafo[contains(text(),&quot;Texto 1.1&quot;)]&lt;br /&gt;
/ancestor::capitulo&lt;br /&gt;
/following-sibling::capitulo&lt;br /&gt;
//enlace/text()&lt;/td&gt;&lt;td class=&quot;xl73&quot; style=&quot;background-color: white; border-color: black; border-style: none solid solid none; border-width: 0px 0.5pt 0.5pt 0px; width: 155pt;&quot; width=&quot;206&quot;&gt;(leyendo
  de derecha a izquierda)&lt;br /&gt;
Devuelveme el texto del enlace del capítulo siguiente al capítulo donde
  haya un parrafo que contenga &quot;Texto 1.1&quot;&lt;br /&gt;
(leyendo de izquierda a derecha)&lt;br /&gt;
Localízame a un parrafo cuyo texto contiene &quot;Texto 1.1&quot;, navega
  cualquier antepasado (padre, abuelo, etc) que sea de tipo capítulo, vete al
  siguiente capítulo y me devuelves el texto de todos los enlaces&lt;/td&gt;&lt;td class=&quot;xl72&quot; style=&quot;background-color: white; border-color: black; border-style: none solid solid none; border-width: 0px 0.5pt 0.5pt 0px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: x-small;&quot;&gt;Enlace 2&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/colgroup&gt;&lt;/colgroup&gt;&lt;/colgroup&gt;&lt;/table&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;strong&gt;ENLACES&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Podéis ampliar más información en:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;- &lt;/span&gt;&lt;a href=&quot;http://www.w3.org/TR/xpath&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;http://www.w3.org/TR/xpath&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&amp;nbsp;&amp;nbsp; Especificación del XPath&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;- &lt;/span&gt;&lt;a href=&quot;http://www.w3schools.com/xml/xpath_intro.asp&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 12pt;&quot;&gt;&lt;span style=&quot;color: #0563c1; font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;http://www.w3schools.com/xml/xpath_intro.asp&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 12pt;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 12pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;- &lt;/span&gt;&lt;a href=&quot;https://msdn.microsoft.com/en-us/library/ms256471(v=vs.110).aspx&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;https://msdn.microsoft.com/en-us/library/ms256471(v=vs.110).aspx&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 12pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;- &lt;/span&gt;&lt;a href=&quot;http://saxon.sourceforge.net/saxon6.5.3/expressions.html&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;http://saxon.sourceforge.net/saxon6.5.3/expressions.html&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 12pt;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;

&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Tipos de descarga de html&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 12pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;El HTML, al estar basado en XML, también se le puede aplicar XPath.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 12pt;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;

Antes de&amp;nbsp;meternos en materia, voy a explicar un poco cómo nos llegan los datos de las páginas web.&lt;/span&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif; font-size: large;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif; font-size: large;&quot;&gt;Por HTML:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif; font-size: small;&quot;&gt;El navegador envía una petición al servidor, y en la respuesta, se devuelve HTML&amp;nbsp;con&amp;nbsp;los datos que queremos sacar. Este método no representa problema alguno y lo podemos atacar con&amp;nbsp;XPath.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif; font-size: large;&quot;&gt;Por JavaScript:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif; font-size: x-small;&quot;&gt;El navegador envía una petición al servidor, y el servidor devuelve una plantilla HTML con JavaScript, y el navegador al interpretarlo, llama&amp;nbsp;a unas apis que devuelven los datos, y rellenan la plantilla con los datos traídos en la segunda parte. (p.e, morningstar, finance.yahoo.com).&lt;br /&gt;Este método se está poniendo de moda ya que hace algo más complicado extraer los datos, y por otra parte usa tecnologías más recientes (Ajax, Angular) que hace que la página se cargue sin postbacks.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Si estamos intentando traernos HTML por métodos que no tengan navegador (tipo funciones GSheets ImportXML, ImportHTML, HttpWebRequest en .Net ) nos traerá la plantilla HTML y los scripts JavaScript, pero estas funciones no procesan el JavaScript, por lo que no podemos obtener datos mediante este método.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Para extraer datos de este tipo de página, hay que&amp;nbsp;analizar cómo se descarga los datos (con Fiddler se puede ver las llamadas que hace la web), interpretando su API, etc.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;En el caso de Morningstar.com, podríamos sacar la información mediante el botón de exportar CSV&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpTqJDPXKn1CrtWW87N1_UDUv_HyNngiZXamCg1b6CQi27S-_6YE1oUS8gd7rx-huXQpEn5g2QtIyWDLKKN25Raq_OQ27p_b3P8qc6DIKPil4vowujaH_DiohEWwsuYWog4tBVluHKKBlB/s1600/Imagen+1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;220&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpTqJDPXKn1CrtWW87N1_UDUv_HyNngiZXamCg1b6CQi27S-_6YE1oUS8gd7rx-huXQpEn5g2QtIyWDLKKN25Raq_OQ27p_b3P8qc6DIKPil4vowujaH_DiohEWwsuYWog4tBVluHKKBlB/s640/Imagen+1.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;También en &lt;/span&gt;&lt;a href=&quot;https://gist.github.com/hahnicity/45323026693cdde6a116&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;esta dirección&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif; font-size: x-small;&quot;&gt;&amp;nbsp;hay más información de algunas llamadas a la API de Morningstar&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;
&lt;/span&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif; font-size: large;&quot;&gt;Ejemplo de construcción y uso de XPath &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;;&quot;&gt;Vamos a extraer información financiera de las páginas de&amp;nbsp;&lt;a href=&quot;http://www.invertirenbolsa.info/historicodividendos&quot; target=&quot;_blank&quot;&gt;InvertirEnBolsa.info&lt;/a&gt;&amp;nbsp;para rellenar un Google Spreadsheet.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;; font-size: small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;; font-size: small;&quot;&gt;Recordamos que GSheets posee&lt;a href=&quot;https://support.google.com/docs/answer/3093281?hl=es&quot; target=&quot;_blank&quot;&gt; funciones financieras&lt;/a&gt; propias para sacar cotizaciones, volúmenes, PER, BPA, etc)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;; font-size: small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;; font-size: small;&quot;&gt;Para crear la ruta XPath de un elemento, por ejemplo el EBITDA del 2015 de Coca-Cola:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;; font-size: small;&quot;&gt;Abrimos con chrome la página de CocaCola en IeB&lt;/span&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.invertirenbolsa.info/historicodividendos/empresa/coca-cola&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;http://www.invertirenbolsa.info/historicodividendos/empresa/coca-cola&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;; font-size: small;&quot;&gt;Pulsamos F12 en chrome para que se nos abran las tools developer.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;; font-size: small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;; font-size: small;&quot;&gt;Con la pestaña &quot;elements&quot; seleccionada&lt;span style=&quot;color: red;&quot;&gt;(1)&lt;/span&gt;, pulsamos &quot;seleccionar elemento&quot;&lt;span style=&quot;color: red;&quot;&gt;(2)&lt;/span&gt; y seleccionamos el elemento que queremos obtener&lt;span style=&quot;color: red;&quot;&gt;(3)&lt;/span&gt;, y así puedes ver el elemento HTML que queremos seleccionar&lt;span style=&quot;color: red;&quot;&gt;(4)&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;; font-size: small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwf0drILYWjC6XjwRGWk8x6WttCn8TiVKil0knM63Q2KVCh_6w3-FEwaUJ0PQGeFr8mxrAqSNQFp_pALfVLYNtHoxo3mI71t-SeWklnvlh7bL2p5KKjFbVD9lLJt6MV1vXKxnErjzzRbmf/s1600/Imagen+2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;364&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwf0drILYWjC6XjwRGWk8x6WttCn8TiVKil0knM63Q2KVCh_6w3-FEwaUJ0PQGeFr8mxrAqSNQFp_pALfVLYNtHoxo3mI71t-SeWklnvlh7bL2p5KKjFbVD9lLJt6MV1vXKxnErjzzRbmf/s640/Imagen+2.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;; font-size: small;&quot;&gt;En este caso, vemos que con buscar el siguiente elemento TD al TD que su texto sea &quot;EBITDA&quot;. Fácil, no?&amp;nbsp; &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;; font-size: small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;; font-size: small;&quot;&gt;El Xpath sería:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;; font-size: small;&quot;&gt;&lt;style type=&quot;text/css&quot;&gt;&lt;!--td {border: 1px solid #ccc;}br {mso-data-placement:same-cell;}--&gt;&lt;/style&gt;Localízame un elemento TD cuyo texto sea &#39;EBITDA&#39;, te vas al 1er siguiente hermano.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;; font-size: small;&quot;&gt;&lt;span data-sheets-userformat=&quot;{&amp;quot;2&amp;quot;:513,&amp;quot;3&amp;quot;:{&amp;quot;1&amp;quot;:0},&amp;quot;12&amp;quot;:0}&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;//td[text()=&#39;EBITDA&#39;]/following-sibling::td[1]&amp;quot;}&quot; style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif; font-size: 13px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;; font-size: small;&quot;&gt;&lt;span data-sheets-userformat=&quot;{&amp;quot;2&amp;quot;:513,&amp;quot;3&amp;quot;:{&amp;quot;1&amp;quot;:0},&amp;quot;12&amp;quot;:0}&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;//td[text()=&#39;EBITDA&#39;]/following-sibling::td[1]&amp;quot;}&quot; style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif; font-size: 13px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;//td[text()=&#39;EBITDA&#39;]/following-sibling::td[1]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;;&quot;&gt;&lt;span data-sheets-userformat=&quot;{&amp;quot;2&amp;quot;:513,&amp;quot;3&amp;quot;:{&amp;quot;1&amp;quot;:0},&amp;quot;12&amp;quot;:0}&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;//td[text()=&#39;EBITDA&#39;]/following-sibling::td[1]&amp;quot;}&quot; style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;;&quot;&gt;&lt;span data-sheets-userformat=&quot;{&amp;quot;2&amp;quot;:513,&amp;quot;3&amp;quot;:{&amp;quot;1&amp;quot;:0},&amp;quot;12&amp;quot;:0}&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;//td[text()=&#39;EBITDA&#39;]/following-sibling::td[1]&amp;quot;}&quot; style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;La fórmula en el GSheets a usar sería:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span data-sheets-userformat=&quot;{&amp;quot;2&amp;quot;:513,&amp;quot;3&amp;quot;:{&amp;quot;1&amp;quot;:0},&amp;quot;12&amp;quot;:0}&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;//td[text()=&#39;EBITDA&#39;]/following-sibling::td[1]&amp;quot;}&quot; style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: small;&quot;&gt;&lt;span class=&quot; default-formula-text-color&quot; dir=&quot;auto&quot; style=&quot;background-color: white; color: black; font-family: &amp;quot;inconsolata&amp;quot; , monospace , &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif; font-size: 14px; font-style: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: pre-wrap; word-spacing: 0px;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot; default-formula-text-color&quot; dir=&quot;auto&quot; style=&quot;background-color: white; color: black; font-family: &amp;quot;inconsolata&amp;quot; , monospace , &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif; font-size: 14px; font-style: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: pre-wrap; word-spacing: 0px;&quot;&gt;IMPORTXML&lt;/span&gt;&lt;span class=&quot; default-formula-text-color&quot; dir=&quot;auto&quot; style=&quot;background-color: white; color: black; font-family: &amp;quot;inconsolata&amp;quot; , monospace , &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif; font-size: 14px; font-style: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: pre-wrap; word-spacing: 0px;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot; string &quot; dir=&quot;auto&quot; style=&quot;background-color: white; color: green; font-family: &amp;quot;inconsolata&amp;quot; , monospace , &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif; font-size: 14px; font-style: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: pre-wrap; word-spacing: 0px;&quot;&gt;&quot;http://www.invertirenbolsa.info/historicodividendos/empresa/coca-cola&quot;&lt;/span&gt;&lt;span class=&quot; default-formula-text-color&quot; dir=&quot;auto&quot; style=&quot;background-color: white; color: black; font-family: &amp;quot;inconsolata&amp;quot; , monospace , &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif; font-size: 14px; font-style: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: pre-wrap; word-spacing: 0px;&quot;&gt;;&lt;/span&gt;&lt;span class=&quot; default-formula-text-color&quot; dir=&quot;auto&quot; style=&quot;background-color: white; color: black; font-family: &amp;quot;inconsolata&amp;quot; , monospace , &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif; font-size: 14px; font-style: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: pre-wrap; word-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span class=&quot; string &quot; dir=&quot;auto&quot; style=&quot;background-color: white; color: green; font-family: &amp;quot;inconsolata&amp;quot; , monospace , &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif; font-size: 14px; font-style: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: pre-wrap; word-spacing: 0px;&quot;&gt;&quot;//td[text()=&#39;EBITDA&#39;]/following-sibling::td[1]&quot;&lt;/span&gt;&lt;span class=&quot; default-formula-text-color&quot; dir=&quot;auto&quot; style=&quot;background-color: white; color: black; font-family: &amp;quot;inconsolata&amp;quot; , monospace , &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif; font-size: 14px; font-style: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: pre-wrap; word-spacing: 0px;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span data-sheets-userformat=&quot;{&amp;quot;2&amp;quot;:513,&amp;quot;3&amp;quot;:{&amp;quot;1&amp;quot;:0},&amp;quot;12&amp;quot;:0}&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;//td[text()=&#39;EBITDA&#39;]/following-sibling::td[1]&amp;quot;}&quot; style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: small;&quot;&gt;&lt;span class=&quot; default-formula-text-color&quot; dir=&quot;auto&quot; style=&quot;background-color: white; color: black; font-family: &amp;quot;inconsolata&amp;quot; , monospace , &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif; font-size: 14px; font-style: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: pre-wrap; word-spacing: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;;&quot;&gt;&lt;span data-sheets-userformat=&quot;{&amp;quot;2&amp;quot;:513,&amp;quot;3&amp;quot;:{&amp;quot;1&amp;quot;:0},&amp;quot;12&amp;quot;:0}&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;//td[text()=&#39;EBITDA&#39;]/following-sibling::td[1]&amp;quot;}&quot; style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;El resultado es&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;; font-size: small;&quot;&gt;&lt;span data-sheets-userformat=&quot;{&amp;quot;2&amp;quot;:513,&amp;quot;3&amp;quot;:{&amp;quot;1&amp;quot;:0},&amp;quot;12&amp;quot;:0}&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;//td[text()=&#39;EBITDA&#39;]/following-sibling::td[1]&amp;quot;}&quot; style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif; font-size: 13px;&quot;&gt;&lt;br /&gt;
1,58%&lt;br /&gt;
10.698,00&lt;br /&gt;
&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: small;&quot;&gt;Este resultado devuelve 2 datos ya&amp;nbsp;que&amp;nbsp;nos está cogiendo el % ebitda que hay en otra tabla.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;; font-size: small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: small;&quot;&gt;Para centrar bien el resultado, tenemos que afinar más la búsqueda, añadiendo la tabla a la que pertenece el elemento.&lt;br /&gt;&lt;br /&gt;Para ello, subimos hacia arriba para ver la tabla de la que cuelga el TD, y vemos que es descendiente de un table cuya class contiene &quot;cuarta tabla&quot;.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;El XPath correcto sería:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;; font-size: small;&quot;&gt;Localízame una tabla cuyo atributo class contiene&amp;nbsp;&#39;cuarta-tabla&#39;, y dentro de sus elemento, busca un&amp;nbsp;elemento TD cuyo texto sea &#39;EBITDA&#39;, y me devuelves el 1er siguiente hermano.&lt;/span&gt;&lt;br /&gt;
&lt;style type=&quot;text/css&quot;&gt;&lt;!--td {border: 1px solid #ccc;}br {mso-data-placement:same-cell;}--&gt;&lt;/style&gt;&lt;span data-sheets-userformat=&quot;{&amp;quot;2&amp;quot;:513,&amp;quot;3&amp;quot;:{&amp;quot;1&amp;quot;:0},&amp;quot;12&amp;quot;:0}&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;//table[contains(@class,&#39;cuarta-tabla&#39;)]//td[text()=&#39;EBITDA&#39;]/following-sibling::td[1]&amp;quot;}&quot; style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif; font-size: 13px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span data-sheets-userformat=&quot;{&amp;quot;2&amp;quot;:513,&amp;quot;3&amp;quot;:{&amp;quot;1&amp;quot;:0},&amp;quot;12&amp;quot;:0}&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;//table[contains(@class,&#39;cuarta-tabla&#39;)]//td[text()=&#39;EBITDA&#39;]/following-sibling::td[1]&amp;quot;}&quot; style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif; font-size: 13px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;//table[contains(@class,&#39;cuarta-tabla&#39;)]//td[text()=&#39;EBITDA&#39;]/following-sibling::td[1]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span data-sheets-userformat=&quot;{&amp;quot;2&amp;quot;:513,&amp;quot;3&amp;quot;:{&amp;quot;1&amp;quot;:0},&amp;quot;12&amp;quot;:0}&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;//table[contains(@class,&#39;cuarta-tabla&#39;)]//td[text()=&#39;EBITDA&#39;]/following-sibling::td[1]&amp;quot;}&quot; style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif; font-size: 13px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span data-sheets-userformat=&quot;{&amp;quot;2&amp;quot;:513,&amp;quot;3&amp;quot;:{&amp;quot;1&amp;quot;:0},&amp;quot;12&amp;quot;:0}&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;//table[contains(@class,&#39;cuarta-tabla&#39;)]//td[text()=&#39;EBITDA&#39;]/following-sibling::td[1]&amp;quot;}&quot; style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif; font-size: 13px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot;;&quot;&gt;&lt;span data-sheets-userformat=&quot;{&amp;quot;2&amp;quot;:513,&amp;quot;3&amp;quot;:{&amp;quot;1&amp;quot;:0},&amp;quot;12&amp;quot;:0}&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;//td[text()=&#39;EBITDA&#39;]/following-sibling::td[1]&amp;quot;}&quot; style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;La fórmula en el GSheets a usar sería:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span data-sheets-userformat=&quot;{&amp;quot;2&amp;quot;:513,&amp;quot;3&amp;quot;:{&amp;quot;1&amp;quot;:0},&amp;quot;12&amp;quot;:0}&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;//td[text()=&#39;EBITDA&#39;]/following-sibling::td[1]&amp;quot;}&quot; style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: small;&quot;&gt;&lt;span class=&quot; default-formula-text-color&quot; dir=&quot;auto&quot; style=&quot;background-color: white; color: black; font-family: &amp;quot;inconsolata&amp;quot; , monospace , &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif; font-size: 14px; font-style: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: pre-wrap; word-spacing: 0px;&quot;&gt;&lt;span class=&quot; default-formula-text-color&quot; dir=&quot;auto&quot; style=&quot;background-color: white; color: black; font-family: &amp;quot;inconsolata&amp;quot; , monospace , &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif; font-size: 14px; font-style: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: pre-wrap; word-spacing: 0px;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot; default-formula-text-color&quot; dir=&quot;auto&quot; style=&quot;background-color: white; color: black; font-family: &amp;quot;inconsolata&amp;quot; , monospace , &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif; font-size: 14px; font-style: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: pre-wrap; word-spacing: 0px;&quot;&gt;IMPORTXML&lt;/span&gt;&lt;span class=&quot; default-formula-text-color&quot; dir=&quot;auto&quot; style=&quot;background-color: white; color: black; font-family: &amp;quot;inconsolata&amp;quot; , monospace , &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif; font-size: 14px; font-style: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: pre-wrap; word-spacing: 0px;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot; string &quot; dir=&quot;auto&quot; style=&quot;background-color: white; color: green; font-family: &amp;quot;inconsolata&amp;quot; , monospace , &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif; font-size: 14px; font-style: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: pre-wrap; word-spacing: 0px;&quot;&gt;&quot;http://www.invertirenbolsa.info/historicodividendos/empresa/coca-cola&quot;&lt;/span&gt;&lt;span class=&quot; default-formula-text-color&quot; dir=&quot;auto&quot; style=&quot;background-color: white; color: black; font-family: &amp;quot;inconsolata&amp;quot; , monospace , &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif; font-size: 14px; font-style: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: pre-wrap; word-spacing: 0px;&quot;&gt;;&lt;/span&gt;&lt;span class=&quot; default-formula-text-color&quot; dir=&quot;auto&quot; style=&quot;background-color: white; color: black; font-family: &amp;quot;inconsolata&amp;quot; , monospace , &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif; font-size: 14px; font-style: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: pre-wrap; word-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span class=&quot; string &quot; dir=&quot;auto&quot; style=&quot;background-color: white; color: green; font-family: &amp;quot;inconsolata&amp;quot; , monospace , &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif; font-size: 14px; font-style: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: pre-wrap; word-spacing: 0px;&quot;&gt;&quot;//table[contains(@class,&#39;cuarta-tabla&#39;)]//td[text()=&#39;EBITDA&#39;]/following-sibling::td[1]&quot;&lt;/span&gt;&lt;span class=&quot; default-formula-text-color&quot; dir=&quot;auto&quot; style=&quot;background-color: white; color: black; font-family: &amp;quot;inconsolata&amp;quot; , monospace , &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif; font-size: 14px; font-style: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: pre-wrap; word-spacing: 0px;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span data-sheets-userformat=&quot;{&amp;quot;2&amp;quot;:513,&amp;quot;3&amp;quot;:{&amp;quot;1&amp;quot;:0},&amp;quot;12&amp;quot;:0}&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:2,&amp;quot;2&amp;quot;:&amp;quot;//table[contains(@class,&#39;cuarta-tabla&#39;)]//td[text()=&#39;EBITDA&#39;]/following-sibling::td[1]&amp;quot;}&quot; style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;El resultado es&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&lt;style type=&quot;text/css&quot;&gt;&lt;!--td {border: 1px solid #ccc;}br {mso-data-placement:same-cell;}--&gt;&lt;/style&gt;&lt;span data-sheets-formula=&quot;=IMPORTXML(R[-2]C[0];R[-1]C[0])&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:3,&amp;quot;3&amp;quot;:10698}&quot; style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif; font-size: 13px; text-align: right;&quot;&gt;10.698,00&lt;/span&gt;&lt;br /&gt;
&lt;span data-sheets-formula=&quot;=IMPORTXML(R[-2]C[0];R[-1]C[0])&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:3,&amp;quot;3&amp;quot;:10698}&quot; style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif; text-align: right;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span data-sheets-formula=&quot;=IMPORTXML(R[-2]C[0];R[-1]C[0])&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:3,&amp;quot;3&amp;quot;:10698}&quot; style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif; text-align: right;&quot;&gt;Esta es una forma de componer una expresión XPath mirando directamente el HTML. Tienes más control al comprender de dónde estás cogiendo el dato, incluso modificar el xpath dinámicamente de teniendo en cuenta el año, el ticker, etc.&lt;/span&gt;&lt;span data-sheets-formula=&quot;=IMPORTXML(R[-2]C[0];R[-1]C[0])&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:3,&amp;quot;3&amp;quot;:10698}&quot; style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif; text-align: right;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span data-sheets-formula=&quot;=IMPORTXML(R[-2]C[0];R[-1]C[0])&quot; data-sheets-value=&quot;{&amp;quot;1&amp;quot;:3,&amp;quot;3&amp;quot;:10698}&quot; style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;sans&amp;quot; , sans-serif; text-align: right;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif; font-size: small;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif; font-size: small;&quot;&gt;Otra alternativa es, al seleccionar el elemento a rescatar, con botón derecho, copiar Xpath.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOxco39OpewQpP12s1KT9cvDNz3RPH7-KBMsrWEj6Exe6tg6Tq8-2ThQcXg9x_Dvy6OdiWqzDrR5ccSOEXJ_CTdUL219-Qn63XYCG1NW2y1P5E3VDKvjetDfJle_n1TOJUD5RI1AnP7W7G/s1600/Imagen+3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;404&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOxco39OpewQpP12s1KT9cvDNz3RPH7-KBMsrWEj6Exe6tg6Tq8-2ThQcXg9x_Dvy6OdiWqzDrR5ccSOEXJ_CTdUL219-Qn63XYCG1NW2y1P5E3VDKvjetDfJle_n1TOJUD5RI1AnP7W7G/s640/Imagen+3.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif; font-size: small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif; font-size: small;&quot;&gt;Esta forma no me acaba de convencer, ya que en el momento que cambien el orden o metan algún campo más, es mayor el riesgo de que no muestre el resultado correcto. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;; font-size: small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;; font-size: small;&quot;&gt;El resultado mediante este método es &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: small;&quot;&gt;//*[@id=&quot;gkMainbody&quot;]/div/div[3]/div/div[2]/div[3]/table/tbody/tr[7]/td[2]&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;; font-size: small;&quot;&gt;También hay plugins de chrome para generar automáticamente la ruta XPath,&amp;nbsp;como &lt;a href=&quot;https://chrome.google.com/webstore/detail/xpath-helper/hgimnogjllphhhkhlmebbmlgjoejdpjl&quot; target=&quot;_blank&quot;&gt;XPath Helper&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif; font-size: small;&quot;&gt;Espero que os sea de utilidad. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif; font-size: small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif; font-size: small;&quot;&gt;Saludos.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;; font-size: small;&quot;&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;/span&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.overflowexception.es/feeds/3646850338276283761/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/855032494846532188/3646850338276283761?isPopup=true' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/3646850338276283761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/3646850338276283761'/><link rel='alternate' type='text/html' href='http://www.overflowexception.es/2016/10/xpath-y-su-aplicacion-para-extraccion.html' title='XPath y su aplicación para extracción de datos '/><author><name>Juan Manuel Fenoll</name><uri>http://www.blogger.com/profile/14376120768475916211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Zj12pCzcjsFNTvQfGGXLhjiurNjl4SWTr--uvnUt2X9m8WccIERoz_QP2N3B7STx2YvcAI9QfeprQxFTTsCDtzDIO4f1y-RrNesiEpgArwqqSLPa5ejNwupLa7H6Tp4/s220/Imagen+007.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpTqJDPXKn1CrtWW87N1_UDUv_HyNngiZXamCg1b6CQi27S-_6YE1oUS8gd7rx-huXQpEn5g2QtIyWDLKKN25Raq_OQ27p_b3P8qc6DIKPil4vowujaH_DiohEWwsuYWog4tBVluHKKBlB/s72-c/Imagen+1.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-855032494846532188.post-370933024798197621</id><published>2015-02-07T01:10:00.000+01:00</published><updated>2015-02-07T01:16:42.970+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="c#"/><category scheme="http://www.blogger.com/atom/ns#" term="regEx"/><title type='text'>Expresiones regulares</title><content type='html'>&lt;div class=&quot;western&quot; style=&quot;margin-bottom: 0.35cm;&quot;&gt;
&lt;br /&gt;
&lt;div class=&quot;WordSection1&quot;&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Las expresiones regulares son el típico ejemplo de las cosas
que si no las usan con frecuencia se olvidan y tienes que ir tirando de Google
para recordarlas.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Por si no las conocéis todavía, son una gran ayuda a la hora
de buscar y reemplazar textos, aunque tienen una pequeña curva de aprendizaje.
Una vez superada, no puedes vivir sin ellas.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Tiene soporte en los lenguajes, entornos de desarrollo y en
los editores de textos más conocidos.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a; font-family: Calibri;&quot;&gt;Podemos practicar las búsquedas&amp;nbsp;con Notepad++, &lt;/span&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;span class=&quot;EnlacedeInternet&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;un editor free source code muy completo.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a; font-family: Calibri;&quot;&gt;Una guía de referencia rápida de expresiones regulares que
suelo consultar es &lt;/span&gt;&lt;a href=&quot;http://msdn.microsoft.com/es-es/library/az24scfc.aspx&quot;&gt;&lt;span class=&quot;EnlacedeInternetyavisitado&quot;&gt;&lt;span style=&quot;color: maroon; font-family: Calibri;&quot;&gt;http://msdn.microsoft.com/es-es/library/az24scfc.aspx&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;EnlacedeInternetyavisitado&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span class=&quot;EnlacedeInternetyavisitado&quot;&gt;&lt;span style=&quot;color: maroon;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;Tienes más info en&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;a href=&quot;http://www.regular-expressions.info/reference.html&quot;&gt;&lt;span class=&quot;EnlacedeInternetyavisitado&quot;&gt;&lt;span style=&quot;color: maroon; font-family: Calibri;&quot;&gt;http://www.regular-expressions.info/reference.html&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;EnlacedeInternetyavisitado&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;a href=&quot;http://es.wikipedia.org/wiki/Expresión_regular&quot;&gt;&lt;span class=&quot;EnlacedeInternetyavisitado&quot;&gt;&lt;span style=&quot;color: maroon; font-family: Calibri;&quot;&gt;http://es.wikipedia.org/wiki/Expresi%C3%B3n_regular&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;EnlacedeInternetyavisitado&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Repasemos con ejemplos más útiles.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoTitle&quot; style=&quot;margin: 12pt 0cm 6pt;&quot;&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Arial;&quot;&gt;Caracteres&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoNormalTable&quot; style=&quot;border-collapse: collapse; border: currentColor; margin: auto auto auto -3.55pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-insideh: .25pt solid #000001; mso-border-insidev: cell-none; mso-border-left-alt: solid #000001 .25pt; mso-border-top-alt: solid #000001 .25pt; mso-padding-alt: 2.75pt 2.75pt 2.75pt 2.6pt; mso-yfti-tbllook: 1184;&quot;&gt;
 &lt;tbody&gt;
&lt;tr style=&quot;height: 17.25pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0;&quot;&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: windowtext rgb(0, 0, 0) rgb(0, 0, 1) windowtext; border-style: solid none solid solid; border-width: 1pt 0px 1pt 1pt; height: 17.25pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 87.75pt;&quot; valign=&quot;top&quot; width=&quot;117&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 46.5pt 10pt 9pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: windowtext windowtext rgb(0, 0, 1) rgb(0, 0, 1); border-style: solid; border-width: 1pt; height: 17.25pt; mso-border-bottom-alt: #000001 .25pt; mso-border-left-alt: #000001 .25pt; mso-border-right-alt: windowtext .5pt; mso-border-style-alt: solid; mso-border-top-alt: windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 343.5pt;&quot; valign=&quot;top&quot; width=&quot;458&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 2.25pt 10pt 3pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Cualquier carácter que no sea el
  salto de linea \n&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 1;&quot;&gt;
  &lt;td style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 1) windowtext; border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 87.75pt;&quot; valign=&quot;top&quot; width=&quot;117&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;m.sa&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: white; border-color: rgb(0, 0, 0) windowtext rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-alt: solid #000001 .25pt; mso-border-right-alt: solid windowtext .5pt; mso-border-top-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 343.5pt;&quot; valign=&quot;top&quot; width=&quot;458&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;La &lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;masa&lt;/span&gt;
  está en la &lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;mesa&lt;/span&gt;
  de la &lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;musa&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 2;&quot;&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 1) windowtext; border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 87.75pt;&quot; valign=&quot;top&quot; width=&quot;117&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 45.35pt 10pt 0cm; tab-stops: 70.5pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;[chars]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) windowtext rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-alt: solid #000001 .25pt; mso-border-right-alt: solid windowtext .5pt; mso-border-top-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 343.5pt;&quot; valign=&quot;top&quot; width=&quot;458&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 2.25pt 10pt 3pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Coincide con cualquier carácter de
  los especificados&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 16.35pt; mso-yfti-irow: 3;&quot;&gt;
  &lt;td style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 1) windowtext; border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 16.35pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 87.75pt;&quot; valign=&quot;top&quot; width=&quot;117&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;m[ae]sa&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: white; border-color: rgb(0, 0, 0) windowtext rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 16.35pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-right-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 343.5pt;&quot; valign=&quot;top&quot; width=&quot;458&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;La &lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;masa&lt;/span&gt; está en la &lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;mesa&lt;/span&gt; de la musa&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 4;&quot;&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 1) windowtext; border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 87.75pt;&quot; valign=&quot;top&quot; width=&quot;117&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;[^chars]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) windowtext rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-alt: solid #000001 .25pt; mso-border-right-alt: solid windowtext .5pt; mso-border-top-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 343.5pt;&quot; valign=&quot;top&quot; width=&quot;458&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Cualquier carácter de los que NO estén
  encerrados por corchete&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 5;&quot;&gt;
  &lt;td style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 0) windowtext windowtext; border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 87.75pt;&quot; valign=&quot;top&quot; width=&quot;117&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;[^aem] &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: white; border-color: rgb(0, 0, 0) windowtext windowtext rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid windowtext .5pt; mso-border-left-alt: solid #000001 .25pt; mso-border-right-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 343.5pt;&quot; valign=&quot;top&quot; width=&quot;458&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;me&lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;s&lt;/span&gt;a
  &lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;18&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 6;&quot;&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 87.75pt;&quot; valign=&quot;top&quot; width=&quot;117&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;\t&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-alt: solid #000001 .25pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 343.5pt;&quot; valign=&quot;top&quot; width=&quot;458&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Caracter de tabulación&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 7;&quot;&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-top-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 87.75pt;&quot; valign=&quot;top&quot; width=&quot;117&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 46.5pt 10pt 0cm;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;\r&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-alt: solid #000001 .25pt; mso-border-top-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 343.5pt;&quot; valign=&quot;top&quot; width=&quot;458&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 2.25pt 10pt 3pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Caracter de Retorno de carro
  (ASCII 13)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 8;&quot;&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-top-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 87.75pt;&quot; valign=&quot;top&quot; width=&quot;117&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;\n&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-alt: solid #000001 .25pt; mso-border-top-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 343.5pt;&quot; valign=&quot;top&quot; width=&quot;458&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Caracter de Nueva Linea (ASCII 10)&lt;br /&gt;
  Recordad que el salto de línea de Windows es \n\r &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;(chr 10 + chr 13)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 9;&quot;&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-top-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 87.75pt;&quot; valign=&quot;top&quot; width=&quot;117&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 46.5pt 10pt 0cm;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;\&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-alt: solid #000001 .25pt; mso-border-top-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 343.5pt;&quot; valign=&quot;top&quot; width=&quot;458&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 2.25pt 10pt 3pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Seguido de un carácter, es la
  forma de representar ese carácter si coincide con símbolos reservados. P.Ej, &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;\.&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;
  &lt;/span&gt;\*&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;\(&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;\)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 10; mso-yfti-lastrow: yes;&quot;&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-top-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 87.75pt;&quot; valign=&quot;top&quot; width=&quot;117&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 46.5pt 10pt 0cm;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;\x00&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-alt: solid #000001 .25pt; mso-border-top-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 343.5pt;&quot; valign=&quot;top&quot; width=&quot;458&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 2.25pt 10pt 3pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Caracter ascii especificado en
  hexadecimal.&lt;br /&gt;
  Por ejemplo, “\x23” seleccionará “#”&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;
  &lt;/span&gt;(ascii 35)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;o:p&gt;&lt;span style=&quot;color: #00000a; font-family: Calibri;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 115%; mso-bidi-font-family: Mangal; mso-fareast-font-family: &amp;quot;Microsoft YaHei&amp;quot;;&quot;&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;Clases de carácter&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoNormalTable&quot; style=&quot;border-collapse: collapse; border: currentColor; margin: auto auto auto -3.55pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-insideh: .25pt solid #000001; mso-border-insidev: cell-none; mso-border-left-alt: solid #000001 .25pt; mso-border-top-alt: solid #000001 .25pt; mso-padding-alt: 2.75pt 2.75pt 2.75pt 2.6pt; mso-yfti-tbllook: 1184;&quot;&gt;
 &lt;tbody&gt;
&lt;tr style=&quot;height: 34.2pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0;&quot;&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: windowtext rgb(0, 0, 0) windowtext windowtext; border-style: solid none solid solid; border-width: 1pt 0px 1pt 1pt; height: 34.2pt; mso-border-bottom-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 87.75pt;&quot; valign=&quot;top&quot; width=&quot;117&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;\w&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; style=&quot;background: rgb(207, 231, 245); border-color: windowtext windowtext windowtext rgb(0, 0, 1); border-style: solid; border-width: 1pt; height: 34.2pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 343.5pt;&quot; valign=&quot;top&quot; width=&quot;458&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Cualquier carácter numérico o letra&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 1;&quot;&gt;
  &lt;td style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 87.75pt;&quot; valign=&quot;top&quot; width=&quot;117&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;\w&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-alt: solid #000001 .25pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 343.5pt;&quot; valign=&quot;top&quot; width=&quot;458&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;P&lt;/span&gt;#&lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;5&lt;/span&gt;.&lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;8&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 2;&quot;&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 87.75pt;&quot; valign=&quot;top&quot; width=&quot;117&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;\W&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 343.5pt;&quot; valign=&quot;top&quot; width=&quot;458&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Cualquier carácter que no sea numérico o letra&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 3;&quot;&gt;
  &lt;td style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 87.75pt;&quot; valign=&quot;top&quot; width=&quot;117&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;\W&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 343.5pt;&quot; valign=&quot;top&quot; width=&quot;458&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;P&lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;#&lt;/span&gt;5&lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;.&lt;/span&gt;8&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 4;&quot;&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 87.75pt;&quot; valign=&quot;top&quot; width=&quot;117&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;\s&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 343.5pt;&quot; valign=&quot;top&quot; width=&quot;458&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;El carácter de espacio en blanco&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 5;&quot;&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 87.75pt;&quot; valign=&quot;top&quot; width=&quot;117&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;\S&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 343.5pt;&quot; valign=&quot;top&quot; width=&quot;458&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Cualquier caracter que no sea un espacio en
  blanco&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 6;&quot;&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 87.75pt;&quot; valign=&quot;top&quot; width=&quot;117&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;\d&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 159pt;&quot; valign=&quot;top&quot; width=&quot;212&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Cualquier dígito decimal&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 184.5pt;&quot; valign=&quot;top&quot; width=&quot;246&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;o:p&gt;&lt;span style=&quot;color: #00000a; font-family: Calibri;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 7;&quot;&gt;
  &lt;td style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 87.75pt;&quot; valign=&quot;top&quot; width=&quot;117&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;o:p&gt;&lt;span style=&quot;color: #00000a; font-family: Calibri;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 343.5pt;&quot; valign=&quot;top&quot; width=&quot;458&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;a&lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;18&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 8;&quot;&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 87.75pt;&quot; valign=&quot;top&quot; width=&quot;117&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;\D&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 343.5pt;&quot; valign=&quot;top&quot; width=&quot;458&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Cualquier carácter que no sea un dígito
  decimal&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 9; mso-yfti-lastrow: yes;&quot;&gt;
  &lt;td style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 87.75pt;&quot; valign=&quot;top&quot; width=&quot;117&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;o:p&gt;&lt;span style=&quot;color: #00000a; font-family: Calibri;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 343.5pt;&quot; valign=&quot;top&quot; width=&quot;458&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;a&lt;/span&gt;18&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 115%; mso-bidi-font-family: Mangal; mso-fareast-font-family: &amp;quot;Microsoft YaHei&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;o:p&gt;&lt;span style=&quot;color: #00000a; font-family: Calibri;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 115%; mso-bidi-font-family: Mangal; mso-fareast-font-family: &amp;quot;Microsoft YaHei&amp;quot;;&quot;&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;Cuantificadores&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Los cuantificadores añaden cantidad de repeticiones a los
caracteres&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoNormalTable&quot; style=&quot;border-collapse: collapse; border: currentColor; margin: auto auto auto -3.55pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-insideh: .25pt solid #000001; mso-border-insidev: cell-none; mso-border-left-alt: solid #000001 .25pt; mso-border-top-alt: solid #000001 .25pt; mso-padding-alt: 2.75pt 2.75pt 2.75pt 2.6pt; mso-yfti-tbllook: 1184;&quot;&gt;
 &lt;tbody&gt;
&lt;tr style=&quot;height: 34.2pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0;&quot;&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: windowtext rgb(0, 0, 0) windowtext windowtext; border-style: solid none solid solid; border-width: 1pt 0px 1pt 1pt; height: 34.2pt; mso-border-bottom-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 98.05pt;&quot; valign=&quot;top&quot; width=&quot;131&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;*&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: windowtext windowtext windowtext rgb(0, 0, 1); border-style: solid; border-width: 1pt; height: 34.2pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 336.05pt;&quot; valign=&quot;top&quot; width=&quot;448&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Repetición ninguna o más veces&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 1;&quot;&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 98.05pt;&quot; valign=&quot;top&quot; width=&quot;131&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;+&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 336.05pt;&quot; valign=&quot;top&quot; width=&quot;448&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Repetición una o más veces&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 2;&quot;&gt;
  &lt;td colspan=&quot;2&quot; style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 434.1pt;&quot; valign=&quot;top&quot; width=&quot;579&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Ej: Cualquier número que se repita una o más
  veces&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 3;&quot;&gt;
  &lt;td style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 98.05pt;&quot; valign=&quot;top&quot; width=&quot;131&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;\d+&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 336.05pt;&quot; valign=&quot;top&quot; width=&quot;448&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;d&lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;189&lt;/span&gt;b&lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;40&lt;/span&gt;h&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 4;&quot;&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 98.05pt;&quot; valign=&quot;top&quot; width=&quot;131&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 336.05pt;&quot; valign=&quot;top&quot; width=&quot;448&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Cero o una vez&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 5;&quot;&gt;
  &lt;td colspan=&quot;2&quot; style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 434.1pt;&quot; valign=&quot;top&quot; width=&quot;579&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Ej: Cualquier cifra, seguida opcionalmente de una
  letra, y otra cifra&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 6;&quot;&gt;
  &lt;td style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 98.05pt;&quot; valign=&quot;top&quot; width=&quot;131&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;\d\w?\d&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 336.05pt;&quot; valign=&quot;top&quot; width=&quot;448&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;1A9&lt;/span&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;19&lt;/span&gt; 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 7;&quot;&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 98.05pt;&quot; valign=&quot;top&quot; width=&quot;131&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;{n}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 336.05pt;&quot; valign=&quot;top&quot; width=&quot;448&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Exactamente N veces&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 8;&quot;&gt;
  &lt;td colspan=&quot;2&quot; style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 434.1pt;&quot; valign=&quot;top&quot; width=&quot;579&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Ej de extracción de una fecha: 2 digitos, la
  barra /, 2 digitos, la barra /, 4 digitos&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;
  &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 12.35pt; mso-yfti-irow: 9;&quot;&gt;
  &lt;td style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 12.35pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 98.05pt;&quot; valign=&quot;top&quot; width=&quot;131&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;\d{2}/\d{2}/\d{4}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 12.35pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 336.05pt;&quot; valign=&quot;top&quot; width=&quot;448&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;El &lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;15/08/2014&lt;/span&gt; llegaré a 2/300&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 10;&quot;&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 98.05pt;&quot; valign=&quot;top&quot; width=&quot;131&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;{n,}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 336.05pt;&quot; valign=&quot;top&quot; width=&quot;448&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Al menos N veces&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 11;&quot;&gt;
  &lt;td colspan=&quot;2&quot; style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 434.1pt;&quot; valign=&quot;top&quot; width=&quot;579&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Elíge las palabras de al menos 3 letras&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 12;&quot;&gt;
  &lt;td style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 98.05pt;&quot; valign=&quot;top&quot; width=&quot;131&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;\w{3,}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 336.05pt;&quot; valign=&quot;top&quot; width=&quot;448&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;arbol&lt;/span&gt;, &lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;ale&lt;/span&gt;,
  so&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 13;&quot;&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 98.05pt;&quot; valign=&quot;top&quot; width=&quot;131&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;{n,m}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 336.05pt;&quot; valign=&quot;top&quot; width=&quot;448&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;De N a M veces&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 14;&quot;&gt;
  &lt;td colspan=&quot;2&quot; style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 434.1pt;&quot; valign=&quot;top&quot; width=&quot;579&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Ej de extracción de una fecha que puede contener
  1 o 2 digitos en días y meses, y 4 digitos en año&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 15; mso-yfti-lastrow: yes;&quot;&gt;
  &lt;td style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 98.05pt;&quot; valign=&quot;top&quot; width=&quot;131&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;\d{1,2}/\d{1,2}/\d{4}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 336.05pt;&quot; valign=&quot;top&quot; width=&quot;448&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;El 15/8/2014&lt;/span&gt; llegaré a 2/300&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;o:p&gt;&lt;span style=&quot;color: #00000a; font-family: Calibri;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 115%; mso-bidi-font-family: Mangal; mso-fareast-font-family: &amp;quot;Microsoft YaHei&amp;quot;;&quot;&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;Anclajes&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoNormalTable&quot; style=&quot;border-collapse: collapse; border: currentColor; margin: auto auto auto -3.55pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-insideh: .25pt solid #000001; mso-border-insidev: cell-none; mso-border-left-alt: solid #000001 .25pt; mso-border-top-alt: solid #000001 .25pt; mso-padding-alt: 2.75pt 2.75pt 2.75pt 2.6pt; mso-yfti-tbllook: 1184;&quot;&gt;
 &lt;tbody&gt;
&lt;tr style=&quot;height: 34.2pt; mso-row-margin-right: 2.85pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0;&quot;&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: windowtext rgb(0, 0, 0) windowtext windowtext; border-style: solid none solid solid; border-width: 1pt 0px 1pt 1pt; height: 34.2pt; mso-border-bottom-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 98.05pt;&quot; valign=&quot;top&quot; width=&quot;131&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;^&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: windowtext windowtext windowtext rgb(0, 0, 1); border-style: solid; border-width: 1pt; height: 34.2pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 333.2pt;&quot; valign=&quot;top&quot; width=&quot;444&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Inicio de línea&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background-color: transparent; border: 0px rgb(0, 0, 0); mso-cell-special: placeholder; padding: 0cm;&quot; width=&quot;4&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a; font-family: Calibri;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 1;&quot;&gt;
  &lt;td colspan=&quot;3&quot; style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 434.1pt;&quot; valign=&quot;top&quot; width=&quot;579&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Selecciona la línea entera que empieza por número&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 2;&quot;&gt;
  &lt;td style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 98.05pt;&quot; valign=&quot;top&quot; width=&quot;131&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;^\d.*$&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 336.05pt;&quot; valign=&quot;top&quot; width=&quot;448&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;frase 1.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;2
  frase&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Frase 3.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 34.2pt; mso-row-margin-right: 2.85pt; mso-yfti-irow: 3;&quot;&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 0) windowtext windowtext; border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 34.2pt; mso-border-bottom-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 98.05pt;&quot; valign=&quot;top&quot; width=&quot;131&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;$&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) windowtext windowtext rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 34.2pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid #000001 .25pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 333.2pt;&quot; valign=&quot;top&quot; width=&quot;444&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Fin de línea&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background-color: transparent; border: 0px rgb(0, 0, 0); mso-cell-special: placeholder; padding: 0cm;&quot; width=&quot;4&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a; font-family: Calibri;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 4;&quot;&gt;
  &lt;td colspan=&quot;3&quot; style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 434.1pt;&quot; valign=&quot;top&quot; width=&quot;579&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Selecciona la última palabra que no acabe en
  punto&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 5;&quot;&gt;
  &lt;td style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 98.05pt;&quot; valign=&quot;top&quot; width=&quot;131&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;\w+[^.]$&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;ó &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;\w+$&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 336.05pt;&quot; valign=&quot;top&quot; width=&quot;448&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;La frase 1.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;La 2ª &lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;frase&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Frase numero 3.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 34.2pt; mso-row-margin-right: 2.85pt; mso-yfti-irow: 6;&quot;&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) rgb(0, 0, 0) windowtext windowtext; border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 34.2pt; mso-border-bottom-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 98.05pt;&quot; valign=&quot;top&quot; width=&quot;131&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;\b&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: rgb(207, 231, 245); border-color: rgb(0, 0, 0) windowtext windowtext rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 34.2pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid #000001 .25pt; mso-border-top-alt: solid windowtext .5pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 333.2pt;&quot; valign=&quot;top&quot; width=&quot;444&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #252525; font-family: &amp;quot;sans-serif&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 10.5pt; line-height: 115%; mso-bidi-font-size: 11.0pt;&quot;&gt;Marca la posición de una
  palabra limitada por espacios en blanco, puntuación o el inicio/final de una
  cadena.&lt;/span&gt;&lt;span style=&quot;mso-bidi-font-weight: bold;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background-color: transparent; border: 0px rgb(0, 0, 0); mso-cell-special: placeholder; padding: 0cm;&quot; width=&quot;4&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a; font-family: Calibri;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 7;&quot;&gt;
  &lt;td colspan=&quot;3&quot; style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 434.1pt;&quot; valign=&quot;top&quot; width=&quot;579&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Ej: Selecciona las palabras que comiencen por
  vocal&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-irow: 8; mso-yfti-lastrow: yes;&quot;&gt;
  &lt;td style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 98.05pt;&quot; valign=&quot;top&quot; width=&quot;131&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;\b[aeiou]\w*\b&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; style=&quot;background: white; border-color: rgb(0, 0, 0) rgb(0, 0, 1) rgb(0, 0, 1); border-style: none solid solid; border-width: 0px 1pt 1pt; height: 27.8pt; mso-border-bottom-alt: solid #000001 .25pt; mso-border-left-alt: solid #000001 .25pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 336.05pt;&quot; valign=&quot;top&quot; width=&quot;448&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;encina&lt;/span&gt;,pino,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;romero,&lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;olmo&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;,&lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;almendro&lt;/span&gt;,cerezo.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 115%; mso-bidi-font-family: Mangal; mso-fareast-font-family: &amp;quot;Microsoft YaHei&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 115%; mso-bidi-font-family: Mangal; mso-fareast-font-family: &amp;quot;Microsoft YaHei&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;border: currentColor; margin: 0cm 0cm 0pt; mso-border-shadow: yes; mso-padding-alt: 31.0pt 31.0pt 31.0pt 31.0pt; tab-stops: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 115%; mso-bidi-font-family: Mangal; mso-fareast-font-family: &amp;quot;Microsoft YaHei&amp;quot;;&quot;&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;Greedy
and Lazy&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;(búsquedas tardías y tempranas)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;border: currentColor; margin: 0cm 0cm 0pt; mso-border-shadow: yes; mso-padding-alt: 31.0pt 31.0pt 31.0pt 31.0pt; tab-stops: 0cm;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Por defecto, todas estas búsquedas que hemos visto son búsquedas tardías.
Es decir, tienden a englobar el mayor número de elementos. &lt;br /&gt;
Si hacemos una búsqueda de los tags &amp;lt;span&amp;gt; de un html devolverá del
primero al último.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;border: currentColor; margin: 0cm 0cm 0pt; mso-border-shadow: yes; mso-padding-alt: 31.0pt 31.0pt 31.0pt 31.0pt; tab-stops: 0cm;&quot;&gt;
&lt;o:p&gt;&lt;span style=&quot;color: #00000a; font-family: Calibri;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoNormalTable&quot; style=&quot;border-collapse: collapse; border: currentColor; margin: auto auto auto -3.55pt; mso-border-alt: solid windowtext .5pt; mso-border-insideh: .25pt solid #000001; mso-border-insidev: .25pt solid #000001; mso-padding-alt: 2.75pt 2.75pt 2.75pt 2.6pt; mso-yfti-tbllook: 1184;&quot;&gt;
 &lt;tbody&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0; mso-yfti-lastrow: yes;&quot;&gt;
  &lt;td style=&quot;background: white; border-color: windowtext rgb(0, 0, 1) windowtext windowtext; border-style: solid; border-width: 1pt; height: 27.8pt; mso-border-alt: solid windowtext .5pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 98.05pt;&quot; valign=&quot;top&quot; width=&quot;131&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;&amp;lt;span&amp;gt;.*&amp;lt;/span&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: white; border-color: windowtext windowtext windowtext rgb(0, 0, 0); border-style: solid solid solid none; border-width: 1pt 1pt 1pt 0px; height: 27.8pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 336.05pt;&quot; valign=&quot;top&quot; width=&quot;448&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Esta es la &lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;&amp;lt;span&amp;gt;casa&amp;lt;/span&amp;gt; con las mejores &amp;lt;span&amp;gt;vistas&amp;lt;/span&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;o:p&gt;&lt;span style=&quot;color: #00000a; font-family: Calibri;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Como veis, el modo tardío ha seleccionado desde el primer
span al último span, incluyendo el texto del medio.&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;Si queremos cambiar el comportamiento de tardío
(greedy) a tempranp (lazy), usaremos el símbolo ?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoNormalTable&quot; style=&quot;border-collapse: collapse; border: currentColor; margin: auto auto auto -3.55pt; mso-border-alt: solid windowtext .5pt; mso-border-insideh: .25pt solid #000001; mso-border-insidev: .25pt solid #000001; mso-padding-alt: 2.75pt 2.75pt 2.75pt 2.6pt; mso-yfti-tbllook: 1184;&quot;&gt;
 &lt;tbody&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0; mso-yfti-lastrow: yes;&quot;&gt;
  &lt;td style=&quot;background: white; border-color: windowtext rgb(0, 0, 1) windowtext windowtext; border-style: solid; border-width: 1pt; height: 27.8pt; mso-border-alt: solid windowtext .5pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 98.05pt;&quot; valign=&quot;top&quot; width=&quot;131&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;&amp;lt;span&amp;gt;.*?&amp;lt;/span&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: white; border-color: windowtext windowtext windowtext rgb(0, 0, 0); border-style: solid solid solid none; border-width: 1pt 1pt 1pt 0px; height: 27.8pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 336.05pt;&quot; valign=&quot;top&quot; width=&quot;448&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Esta es la &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;&amp;lt;span&amp;gt;casa&amp;lt;/span&amp;gt;&lt;/span&gt;
  con las mejores &lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;&amp;lt;span&amp;gt;vistas&amp;lt;/span&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;o:p&gt;&lt;span style=&quot;color: #00000a; font-family: Calibri;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;border: currentColor; margin: 0cm 0cm 0pt; mso-border-shadow: yes; mso-padding-alt: 31.0pt 31.0pt 31.0pt 31.0pt; tab-stops: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 115%; mso-bidi-font-family: Mangal; mso-fareast-font-family: &amp;quot;Microsoft YaHei&amp;quot;;&quot;&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;Grupos&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Los grupos se pueden usar para posicionarnos en un punto de
la búsqueda sin llegar a seleccionarlo. Es algo duro de entender, pero con un
ejemplo se ve mejor.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;En el ejemplo anterior, vimos que con la expresión regular &amp;lt;span&amp;gt;.*?&amp;lt;/span&amp;gt;
seleccionábamos los span, incluyendo los tags. Si lo que queremos es seleccionar
el CONTENIDO del span haciendo referencia al propio tag SPAN sin seleccionarlo,
&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;los introduciremos dentro de grupos de
búsqueda anterior y posterior.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;(?&amp;lt;=expr) posiciona el resultado de la búsqueda tras el resultado
de expr, sin llegar a seleccionar la expresión&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;(?=expr) posiciona el resultado de la búsqueda justo donde
comienza la expresión, sin llegar a seleccionarla&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Con lo que podemos conseguir seleccionar el contenido de 2
tags html&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoNormalTable&quot; style=&quot;border-collapse: collapse; border: currentColor; margin: auto auto auto -3.55pt; mso-border-alt: solid windowtext .5pt; mso-border-insideh: .25pt solid #000001; mso-border-insidev: .25pt solid #000001; mso-padding-alt: 2.75pt 2.75pt 2.75pt 2.6pt; mso-yfti-tbllook: 1184;&quot;&gt;
 &lt;tbody&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0; mso-yfti-lastrow: yes;&quot;&gt;
  &lt;td style=&quot;background: white; border-color: windowtext rgb(0, 0, 1) windowtext windowtext; border-style: solid; border-width: 1pt; height: 27.8pt; mso-border-alt: solid windowtext .5pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 127.1pt;&quot; valign=&quot;top&quot; width=&quot;169&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;(?&amp;lt;=&amp;lt;span&amp;gt;).*?(?=&amp;lt;/span&amp;gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: white; border-color: windowtext windowtext windowtext rgb(0, 0, 0); border-style: solid solid solid none; border-width: 1pt 1pt 1pt 0px; height: 27.8pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 307pt;&quot; valign=&quot;top&quot; width=&quot;409&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Esta es la &amp;lt;span&amp;gt;&lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;casa&lt;/span&gt;&amp;lt;/span&amp;gt; con las mejores &amp;lt;span&amp;gt;&lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;vistas&lt;/span&gt;&amp;lt;/span&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 115%; mso-bidi-font-family: Mangal; mso-fareast-font-family: &amp;quot;Microsoft YaHei&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Con los grupos también podemos usar condicionales, es decir,
si se cumple una condición u otra&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;En este caso, elegiremos entre las marcas de inicio de
palabra, &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;las fechas que sean 1 o 2
cifras, barra, 1 o 2 cifras , barra, y o 2 o 4 cifras&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoNormalTable&quot; style=&quot;border-collapse: collapse; border: currentColor; margin: auto auto auto -3.55pt; mso-border-alt: solid windowtext .5pt; mso-border-insideh: .25pt solid #000001; mso-border-insidev: .25pt solid #000001; mso-padding-alt: 2.75pt 2.75pt 2.75pt 2.6pt; mso-yfti-tbllook: 1184;&quot;&gt;
 &lt;tbody&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0; mso-yfti-lastrow: yes;&quot;&gt;
  &lt;td style=&quot;background: white; border-color: windowtext rgb(0, 0, 1) windowtext windowtext; border-style: solid; border-width: 1pt; height: 27.8pt; mso-border-alt: solid windowtext .5pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 152.4pt;&quot; valign=&quot;top&quot; width=&quot;203&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;\b\d{1,2}/\d{1,2}/(\d{4}|\d{2})\b&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt;&quot;&gt;
&lt;o:p&gt;&lt;span style=&quot;color: #00000a; font-family: Calibri;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: white; border-color: windowtext windowtext windowtext rgb(0, 0, 0); border-style: solid solid solid none; border-width: 1pt 1pt 1pt 0px; height: 27.8pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 281.7pt;&quot; valign=&quot;top&quot; width=&quot;376&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;El &lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;15/8/2035&lt;/span&gt;
  llegaré a 2/300&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;El &lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;3/12/15&lt;/span&gt;
  llegaré a 2/300&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;El 3/12/340 llegaré a 2/300&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;o:p&gt;&lt;span style=&quot;color: #00000a; font-family: Calibri;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Otra característica de los grupos es que los resultados los
podemos introducir en variables para tratarlos desde c#.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Un grupo puede definirse con nombre o con índice.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;(expr) &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;Grupo con
índice&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;(?&amp;lt;nombre&amp;gt;expr) &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;Grupo con nombre de variable&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoNormalTable&quot; style=&quot;border-collapse: collapse; border: currentColor; margin: auto auto auto -3.55pt; mso-border-alt: solid windowtext .5pt; mso-border-insideh: .25pt solid #000001; mso-border-insidev: .25pt solid #000001; mso-padding-alt: 2.75pt 2.75pt 2.75pt 2.6pt; mso-yfti-tbllook: 1184;&quot;&gt;
 &lt;tbody&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0; mso-yfti-lastrow: yes;&quot;&gt;
  &lt;td style=&quot;background: white; border-color: windowtext rgb(0, 0, 1) windowtext windowtext; border-style: solid; border-width: 1pt; height: 27.8pt; mso-border-alt: solid windowtext .5pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 152.4pt;&quot; valign=&quot;top&quot; width=&quot;203&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;^\w+,\sa\s(?&amp;lt;DIA&amp;gt;\d{1,2})\sde\s&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;(?&amp;lt;MES&amp;gt;\w+\b)\sde\s(?&amp;lt;AÑO&amp;gt;\d{4})$&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: white; border-color: windowtext windowtext windowtext rgb(0, 0, 0); border-style: solid solid solid none; border-width: 1pt 1pt 1pt 0px; height: 27.8pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 281.7pt;&quot; valign=&quot;top&quot; width=&quot;376&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;Valencia,
  a &lt;/span&gt;&lt;span style=&quot;background: aqua; mso-highlight: aqua;&quot;&gt;4&lt;/span&gt;&lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt; de &lt;/span&gt;&lt;span style=&quot;background: aqua; mso-highlight: aqua;&quot;&gt;febrero &lt;/span&gt;&lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;de &lt;/span&gt;&lt;span style=&quot;background: aqua; mso-highlight: aqua;&quot;&gt;2018&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;Madrid,
  a &lt;/span&gt;&lt;span style=&quot;background: aqua; mso-highlight: aqua;&quot;&gt;15&lt;/span&gt;&lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt; de &lt;/span&gt;&lt;span style=&quot;background: aqua; mso-highlight: aqua;&quot;&gt;abril &lt;/span&gt;&lt;span style=&quot;background: silver; mso-highlight: silver;&quot;&gt;de &lt;/span&gt;&lt;span style=&quot;background: aqua; mso-highlight: aqua;&quot;&gt;2019&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Traducido “al castellano”, quedaría de la siguiente forma:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;“Desde el inicio de la línea, selecciona letras hasta llegar
a una coma, un espacio, una “a”, un espacio, 1 o 2 dígitos que los introduces
en la variable “DIA”, un espacio, “de”, un espacio, texto que lo introduces en
la variable “MES”, un espacio, “de”, un espacio, 4 dígitos que los introduces
en la variable “AÑO”&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Otro ejemplo de grupos: Extraer &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;fechas que están en un formato algo mezclado&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoNormalTable&quot; style=&quot;border-collapse: collapse; border: currentColor; margin: auto auto auto -3.55pt; mso-border-alt: solid windowtext .5pt; mso-border-insideh: .25pt solid #000001; mso-border-insidev: .25pt solid #000001; mso-padding-alt: 2.75pt 2.75pt 2.75pt 2.6pt; mso-yfti-tbllook: 1184;&quot;&gt;
 &lt;tbody&gt;
&lt;tr style=&quot;height: 27.8pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0; mso-yfti-lastrow: yes;&quot;&gt;
  &lt;td style=&quot;background: white; border-color: windowtext rgb(0, 0, 1) windowtext windowtext; border-style: solid; border-width: 1pt; height: 27.8pt; mso-border-alt: solid windowtext .5pt; mso-border-right-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 152.4pt;&quot; valign=&quot;top&quot; width=&quot;203&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;^\w{2}(?&amp;lt;AÑO&amp;gt;\d{4})(?&amp;lt;MES&amp;gt;\d{2})(?&amp;lt;DIA&amp;gt;\d{2})_&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;(?&amp;lt;H&amp;gt;\d{2}):(?&amp;lt;M&amp;gt;\d{2}):(?&amp;lt;S&amp;gt;\d{2})\.txt$&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: white; border-color: windowtext windowtext windowtext rgb(0, 0, 0); border-style: solid solid solid none; border-width: 1pt 1pt 1pt 0px; height: 27.8pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid #000001 .25pt; padding: 2.75pt 2.75pt 2.75pt 2.6pt; width: 281.7pt;&quot; valign=&quot;top&quot; width=&quot;376&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;DW20141128_08:59:48.txt&lt;br /&gt;
  UP20141115_09:39:46.txt&lt;br /&gt;
  DW20141106_11:45:20.txt&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;mso-ansi-language: EN-US;&quot;&gt;&lt;o:p&gt;&lt;span style=&quot;color: #00000a; font-family: Calibri;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Pasado a c#, este ejemplo se quedaría de la siguiente
manera.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgVVqDuVh1uUBBheoENsefzBPK-d6FtHmzYHnY7XDxqVQxVzwU0qYIw_EnwMCuisuOSe_0gOAf4INlBdDRwQ8oGNRZ8Ezk2B93UhuB7iqmfeYcqdAz9WvutHKOdPIWyzE-I5DNMHOK7Jjx/s1600/ex.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgVVqDuVh1uUBBheoENsefzBPK-d6FtHmzYHnY7XDxqVQxVzwU0qYIw_EnwMCuisuOSe_0gOAf4INlBdDRwQ8oGNRZ8Ezk2B93UhuB7iqmfeYcqdAz9WvutHKOdPIWyzE-I5DNMHOK7Jjx/s1600/ex.png&quot; height=&quot;384&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;WordSection1&quot;&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 115%; mso-bidi-font-family: Mangal; mso-fareast-font-family: &amp;quot;Microsoft YaHei&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;border: currentColor; margin: 0cm 0cm 0pt; mso-border-shadow: yes; mso-padding-alt: 31.0pt 31.0pt 31.0pt 31.0pt; tab-stops: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 115%; mso-bidi-font-family: Mangal; mso-fareast-font-family: &amp;quot;Microsoft YaHei&amp;quot;;&quot;&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;Ejemplos
para validaciones&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;border: currentColor; margin: 0cm 0cm 0pt; mso-border-shadow: yes; mso-padding-alt: 31.0pt 31.0pt 31.0pt 31.0pt; tab-stops: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 115%; mso-bidi-font-family: Mangal; mso-fareast-font-family: &amp;quot;Microsoft YaHei&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;span style=&quot;color: #00000a; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 115%; mso-ansi-language: ES; mso-bidi-font-family: Mangal; mso-bidi-language: AR-SA; mso-fareast-font-family: &amp;quot;Microsoft YaHei&amp;quot;; mso-fareast-language: EN-US;&quot;&gt;&lt;br clear=&quot;all&quot; style=&quot;mso-break-type: section-break; page-break-before: auto;&quot; /&gt;
&lt;/span&gt;

&lt;br /&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoNormalTable&quot; style=&quot;border-collapse: collapse; border: currentColor; margin: auto auto auto 1.4pt; mso-border-bottom-alt: solid gray .75pt; mso-border-insideh: .75pt solid gray; mso-border-insidev: cell-none; mso-border-left-alt: solid gray .75pt; mso-border-top-alt: solid gray .75pt; mso-padding-alt: 1.4pt 1.4pt 1.4pt 1.0pt; mso-yfti-tbllook: 1184;&quot;&gt;
 &lt;tbody&gt;
&lt;tr style=&quot;mso-yfti-firstrow: yes; mso-yfti-irow: 0;&quot;&gt;
  &lt;td style=&quot;background-color: transparent; border-color: gray rgb(0, 0, 0) gray gray; border-style: solid none solid solid; border-width: 1pt 0px 1pt 1pt; mso-border-bottom-alt: solid gray .75pt; mso-border-left-alt: solid gray .75pt; mso-border-top-alt: solid gray .75pt; padding: 1.4pt 1.4pt 1.4pt 1pt; width: 105.95pt;&quot; valign=&quot;top&quot; width=&quot;141&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;IBAN (España)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background-color: transparent; border: 1pt solid gray; mso-border-alt: solid gray .75pt; mso-border-left-alt: solid gray .25pt; padding: 1.4pt 1.4pt 1.4pt 1.35pt; width: 290.55pt;&quot; valign=&quot;top&quot; width=&quot;387&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;ES\d{2}[ ]\d{4}[ ]\d{4}[ ]\d{4}[ ]\d{4}[
  ]\d{4}|ES\d{22}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 1;&quot;&gt;
  &lt;td style=&quot;background-color: transparent; border-color: rgb(0, 0, 0) rgb(0, 0, 0) gray gray; border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; mso-border-bottom-alt: solid gray .75pt; mso-border-left-alt: solid gray .75pt; mso-border-top-alt: solid gray .75pt; padding: 1.4pt 1.4pt 1.4pt 1pt; width: 105.95pt;&quot; valign=&quot;top&quot; width=&quot;141&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Codigo postal&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background-color: transparent; border-color: rgb(0, 0, 0) gray gray; border-style: none solid solid; border-width: 0px 1pt 1pt; mso-border-alt: solid gray .75pt; mso-border-left-alt: solid gray .25pt; mso-border-top-alt: solid gray .75pt; padding: 1.4pt 1.4pt 1.4pt 1.35pt; width: 290.55pt;&quot; valign=&quot;top&quot; width=&quot;387&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;^([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{3}$&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 2;&quot;&gt;
  &lt;td style=&quot;background-color: transparent; border-color: rgb(0, 0, 0) rgb(0, 0, 0) gray gray; border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; mso-border-bottom-alt: solid gray .75pt; mso-border-left-alt: solid gray .75pt; mso-border-top-alt: solid gray .75pt; padding: 1.4pt 1.4pt 1.4pt 1pt; width: 105.95pt;&quot; valign=&quot;top&quot; width=&quot;141&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Número&lt;br /&gt;
  telefono (España)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background-color: transparent; border-color: rgb(0, 0, 0) gray gray; border-style: none solid solid; border-width: 0px 1pt 1pt; mso-border-alt: solid gray .75pt; mso-border-left-alt: solid gray .25pt; mso-border-top-alt: solid gray .75pt; padding: 1.4pt 1.4pt 1.4pt 1.35pt; width: 290.55pt;&quot; valign=&quot;top&quot; width=&quot;387&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;^[0-9]{2,3}-? ?[0-9]{6,7}$&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 3;&quot;&gt;
  &lt;td style=&quot;background-color: transparent; border-color: rgb(0, 0, 0) rgb(0, 0, 0) gray gray; border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; mso-border-bottom-alt: solid gray .75pt; mso-border-left-alt: solid gray .75pt; mso-border-top-alt: solid gray .75pt; padding: 1.4pt 1.4pt 1.4pt 1pt; width: 105.95pt;&quot; valign=&quot;top&quot; width=&quot;141&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Visa&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;o:p&gt;&lt;span style=&quot;color: #00000a; font-family: Calibri;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background-color: transparent; border-color: rgb(0, 0, 0) gray gray; border-style: none solid solid; border-width: 0px 1pt 1pt; mso-border-alt: solid gray .75pt; mso-border-left-alt: solid gray .25pt; mso-border-top-alt: solid gray .75pt; padding: 1.4pt 1.4pt 1.4pt 1.35pt; width: 290.55pt;&quot; valign=&quot;top&quot; width=&quot;387&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;^((67\d{2})|(4\d{3})|(5[1-5]\d{2})|(6011))(-?\s?\d{4}){3}|(3[4,7])\
  d{2}-?\s?\d{6}-?\s?\d{5}$&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 4;&quot;&gt;
  &lt;td style=&quot;background-color: transparent; border-color: rgb(0, 0, 0) rgb(0, 0, 0) gray gray; border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; mso-border-bottom-alt: solid gray .75pt; mso-border-left-alt: solid gray .75pt; mso-border-top-alt: solid gray .75pt; padding: 1.4pt 1.4pt 1.4pt 1pt; width: 105.95pt;&quot; valign=&quot;top&quot; width=&quot;141&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Contraseña segura&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background-color: transparent; border-color: rgb(0, 0, 0) gray gray; border-style: none solid solid; border-width: 0px 1pt 1pt; mso-border-alt: solid gray .75pt; mso-border-left-alt: solid gray .25pt; mso-border-top-alt: solid gray .75pt; padding: 1.4pt 1.4pt 1.4pt 1.35pt; width: 290.55pt;&quot; valign=&quot;top&quot; width=&quot;387&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{8,10})$&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 5;&quot;&gt;
  &lt;td style=&quot;background-color: transparent; border-color: rgb(0, 0, 0) rgb(0, 0, 0) gray gray; border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; mso-border-bottom-alt: solid gray .75pt; mso-border-left-alt: solid gray .75pt; mso-border-top-alt: solid gray .75pt; padding: 1.4pt 1.4pt 1.4pt 1pt; width: 105.95pt;&quot; valign=&quot;top&quot; width=&quot;141&quot;&gt;&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;URL&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background-color: transparent; border-color: rgb(0, 0, 0) gray gray; border-style: none solid solid; border-width: 0px 1pt 1pt; mso-border-alt: solid gray .75pt; mso-border-left-alt: solid gray .25pt; mso-border-top-alt: solid gray .75pt; padding: 1.4pt 1.4pt 1.4pt 1.35pt; width: 290.55pt;&quot; valign=&quot;top&quot; width=&quot;387&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)(
  [a-zA-Z0-9\-\.\?\,\&#39;\/\\\+&amp;amp;amp;%\$#_]*)?$&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 6; mso-yfti-lastrow: yes;&quot;&gt;
  &lt;td style=&quot;background-color: transparent; border-color: rgb(0, 0, 0) rgb(0, 0, 0) gray gray; border-style: none none solid solid; border-width: 0px 0px 1pt 1pt; mso-border-bottom-alt: solid gray .75pt; mso-border-left-alt: solid gray .75pt; mso-border-top-alt: solid gray .75pt; padding: 1.4pt 1.4pt 1.4pt 1pt; width: 105.95pt;&quot; valign=&quot;top&quot; width=&quot;141&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Correo electrónico&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Contenidodelatabla&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;o:p&gt;&lt;span style=&quot;color: #00000a; font-family: Calibri;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background-color: transparent; border-color: rgb(0, 0, 0) gray gray; border-style: none solid solid; border-width: 0px 1pt 1pt; mso-border-alt: solid gray .75pt; mso-border-left-alt: solid gray .25pt; mso-border-top-alt: solid gray .75pt; padding: 1.4pt 1.4pt 1.4pt 1.35pt; width: 290.55pt;&quot; valign=&quot;top&quot; width=&quot;387&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|((
  [a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;o:p&gt;&lt;span style=&quot;color: #00000a; font-family: Calibri;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;border: currentColor; margin: 0cm 0cm 0pt; mso-border-shadow: yes; mso-padding-alt: 31.0pt 31.0pt 31.0pt 31.0pt; tab-stops: 0cm;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 14pt; line-height: 115%; mso-bidi-font-family: Mangal; mso-fareast-font-family: &amp;quot;Microsoft YaHei&amp;quot;;&quot;&gt;&lt;span style=&quot;color: #00000a;&quot;&gt;Conclusión&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;border: currentColor; margin: 0cm 0cm 0pt; mso-border-shadow: yes; mso-padding-alt: 31.0pt 31.0pt 31.0pt 31.0pt; tab-stops: 0cm;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Las expresiones regulares, como habéis podido comprobar, es una
herramienta muy potente que nos puede sacar de muchos apuros y ahorrarnos
docenas de bucles infernales para trastear con textos.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;border: currentColor; margin: 0cm 0cm 0pt; mso-border-shadow: yes; mso-padding-alt: 31.0pt 31.0pt 31.0pt 31.0pt; tab-stops: 0cm;&quot;&gt;
&lt;o:p&gt;&lt;span style=&quot;color: #00000a; font-family: Calibri;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;border: currentColor; margin: 0cm 0cm 0pt; mso-border-shadow: yes; mso-padding-alt: 31.0pt 31.0pt 31.0pt 31.0pt; tab-stops: 0cm;&quot;&gt;
&lt;span style=&quot;color: #00000a;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Espero que os sea de provecho.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;border: currentColor; margin: 0cm 0cm 0pt; mso-border-shadow: yes; mso-padding-alt: 31.0pt 31.0pt 31.0pt 31.0pt; tab-stops: 0cm;&quot;&gt;
&lt;o:p&gt;&lt;span style=&quot;color: #00000a; font-family: Calibri;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;o:p&gt;&lt;span style=&quot;color: #00000a; font-family: Calibri;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;o:p&gt;&lt;span style=&quot;color: #00000a; font-family: Calibri;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.overflowexception.es/feeds/370933024798197621/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/855032494846532188/370933024798197621?isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/370933024798197621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/370933024798197621'/><link rel='alternate' type='text/html' href='http://www.overflowexception.es/2015/02/expresiones-regulares.html' title='Expresiones regulares'/><author><name>Juan Manuel Fenoll</name><uri>http://www.blogger.com/profile/14376120768475916211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Zj12pCzcjsFNTvQfGGXLhjiurNjl4SWTr--uvnUt2X9m8WccIERoz_QP2N3B7STx2YvcAI9QfeprQxFTTsCDtzDIO4f1y-RrNesiEpgArwqqSLPa5ejNwupLa7H6Tp4/s220/Imagen+007.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgVVqDuVh1uUBBheoENsefzBPK-d6FtHmzYHnY7XDxqVQxVzwU0qYIw_EnwMCuisuOSe_0gOAf4INlBdDRwQ8oGNRZ8Ezk2B93UhuB7iqmfeYcqdAz9WvutHKOdPIWyzE-I5DNMHOK7Jjx/s72-c/ex.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-855032494846532188.post-7846159636664622989</id><published>2014-11-12T20:27:00.000+01:00</published><updated>2014-11-13T00:32:04.288+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio"/><title type='text'>Visual Studio 2013 Community Edition</title><content type='html'>&lt;span style=&quot;font-size: large;&quot;&gt;Visual Studio Community Edition&lt;/span&gt;&lt;br /&gt;
Microsoft acaba de sacar hoy una nueva versión de Visual Studio 2013 totalmente gratuita, que elimina las limitaciones que teníamos con las versiones Express, pudiendo instalar extensiones y eliminando la barrera que había anteriormente en la versión Express con versiones Web y Desktop.&lt;br /&gt;
&lt;br /&gt;
Esta versión es gratuita para profesionales, estudiantes y pequeños equipos hasta 5 programadores.&lt;br /&gt;
&lt;br /&gt;
Más información y descarga en &lt;a href=&quot;http://www.visualstudio.com/news/vs2013-community-vs&quot;&gt;http://www.visualstudio.com/news/vs2013-community-vs&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;ASP.NET 5 multiplataforma&lt;/span&gt;&lt;br /&gt;
ASP.Net 5 estará disponible para Windows, Mac y Linux. Incluirán un web server propio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Otras novedades&lt;/span&gt;&lt;br /&gt;
- El .NET core Framework pasa a ser OpenSource&lt;br /&gt;
- Se prepara un CLR de .NET para Mac y para Linux, por lo que se podrá programar con .NET en estas plataformas&lt;br /&gt;
&lt;br /&gt;
Tenéis más información en el blog de &lt;a href=&quot;http://www.hanselman.com/blog/AnnouncingNET2015NETAsOpenSourceNETOnMacAndLinuxAndVisualStudioCommunity.aspx&quot;&gt;Scott Hanselman.&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La verdad es que son muy buenaa noticia para los desarrolladores de .NET.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.overflowexception.es/feeds/7846159636664622989/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/855032494846532188/7846159636664622989?isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/7846159636664622989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/7846159636664622989'/><link rel='alternate' type='text/html' href='http://www.overflowexception.es/2014/11/visual-studio-2013-community-edition.html' title='Visual Studio 2013 Community Edition'/><author><name>Juan Manuel Fenoll</name><uri>http://www.blogger.com/profile/14376120768475916211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Zj12pCzcjsFNTvQfGGXLhjiurNjl4SWTr--uvnUt2X9m8WccIERoz_QP2N3B7STx2YvcAI9QfeprQxFTTsCDtzDIO4f1y-RrNesiEpgArwqqSLPa5ejNwupLa7H6Tp4/s220/Imagen+007.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-855032494846532188.post-5928580104435826206</id><published>2014-08-11T22:03:00.000+02:00</published><updated>2016-03-28T21:12:35.335+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="c#"/><category scheme="http://www.blogger.com/atom/ns#" term="Entity Framework"/><category scheme="http://www.blogger.com/atom/ns#" term="orm"/><category scheme="http://www.blogger.com/atom/ns#" term="Sql Server"/><title type='text'>Dapper, un micro ORM a tener en cuenta</title><content type='html'>Los ORM (Mapeo objeto – relacional) son una pieza fundamental en el desarrollo de nuestras aplicaciones.&lt;br /&gt;
Permite interactuar con la base de datos mediante objetos y listas de objetos, olvidándonos de los tediosos datasets.&lt;br /&gt;
&lt;br /&gt;
Cuando hablamos de ORM nos viene a la cabeza Entity Framework y Nhibernate, pero existen también los llamados micro-orm que son bastante más ligeros y, siendo más simples que los ORM convencionales, &amp;nbsp;cumplen su función banstante bien, como pueden ser, entre otros, &lt;a href=&quot;https://github.com/robconery/massive&quot; target=&quot;_blank&quot;&gt;Massive&lt;/a&gt;, &lt;a href=&quot;http://simplefx.org/simpledata/docs/&quot;&gt;Simple.Data&lt;/a&gt;, &lt;a href=&quot;https://github.com/toptensoftware/petapoco&quot;&gt;Peta Poco&lt;/a&gt; y &lt;a href=&quot;http://code.google.com/p/dapper-dot-net/&quot;&gt;Dapper&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Dapper es el ORM en el que se basa Stack Overflow y algunas otras webs.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://code.google.com/p/dapper-dot-net/&quot;&gt;https://code.google.com/p/dapper-dot-net/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Según los benchmarks en su web, llega a ser bastante más rápido que Entuty Framework y Nhibernate en realizar los Selects.&lt;br /&gt;
&lt;br /&gt;
Dapper se puede usar a partir del Framework 3.5, aunque es recomendable Framework a partir de 4 para usar el potencial de las clases dynamic&lt;br /&gt;
&lt;br /&gt;
Vamos a trastear un poco con él a ver cómo funciona.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Instalación&lt;/span&gt;&lt;br /&gt;
En primer lugar, decir que se trata de un método extensor de IDbConnection, por lo que podemos utilizar cualquier objeto que implemente IDbConnection( Sql Server, Oracle, MySql, ...)&lt;br /&gt;
&lt;br /&gt;
Podemos descargarlo &lt;a href=&quot;https://www.nuget.org/packages/Dapper&quot;&gt;a través de NuGet&lt;/a&gt;, o directamente adjuntando la clase &lt;a href=&quot;https://github.com/StackExchange/dapper-dot-net/blob/master/Dapper%20NET40/SqlMapper.cs&quot;&gt;SqlMapper.cs&lt;/a&gt;&amp;nbsp;a vuesto proyecto.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Consultas sin objetos mapeados&lt;/span&gt;&lt;br /&gt;
Para obtener una lista de objetos dinamic sin tener que usar ninguna clase:&lt;br /&gt;
&lt;pre class=&quot;brush: csharp&quot;&gt;            

string connectionString = &quot;Data Source=(localdb)\\v11.0;Initial Catalog=NorthWind;Integrated Security=True&quot;;
IDbConnection conn= new SqlConnection(connectionString);
conn.Open();

var empleados = conn.Query(&quot;select * from employees where country = @pais&quot;, new { @pais = &quot;UK&quot; });
foreach (var empleado in empleados)
     Console.WriteLine(&quot;{0} {1} - {2}&quot;, empleado.FirstName, empleado.LastName, empleado.Country);
conn.Close();
Console.ReadKey();
&lt;/pre&gt;
Nótese que estamos usando Parameters en una clase anónima, por lo que evitamos inyección de SQL.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Consultas sin objetos mapeados en .Net 3.5&lt;/span&gt;&lt;br /&gt;
Si estuviéramos trabajando con Framework 3.5, bastará con añadir el símbolo de compilación condicional &quot;CSHARP30&quot; en las propiedades del proyecto - Compilar, y obtendremos los valores en IDictionary&lt;br /&gt;
&lt;pre class=&quot;brush: csharp&quot;&gt;var empleados = conn.Query(&quot;select * from employees where country = @pais&quot;, new { @pais = &quot;UK&quot; });
foreach (var empleado in empleados)
     Console.WriteLine(&quot;{0} {1} - {2}&quot;, empleado[&quot;FirstName&quot;], empleado[&quot;LastName&quot;], empleado[&quot;Country&quot;]);
&lt;/pre&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Consultas con objetos mapeados&lt;/span&gt;&lt;br /&gt;
Ahora añadimos una clase POCO de Empleados, y veamos que sigue funcionando, esta vez devolviendo un IEnumerable&amp;lt;T&amp;gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: csharp&quot;&gt;public class Employees
{
    public int EmployeeId;
    public string LastName;
    public string FirstName;
    public string Country;
}
&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: csharp&quot;&gt;var empleados = conn.Query&amp;lt;employees&amp;gt;(&quot;select * from employees where country = @pais&quot;, new { @pais = &quot;UK&quot; });
foreach (var empleado in empleados)
     Console.WriteLine(&quot;{0} {1} - {2}&quot;, empleado.FirstName, empleado.LastName, empleado.Country);
&lt;/pre&gt;
El mapeo que realiza Dapper es la coincidencia del nombre del campo y del nombre de la propiedad de la clase. Si hay alguna propiedad que difiera de los campos de la clase, simplemente no lo mapeará.
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Actualizaciones, inserciones y borrados&lt;/span&gt;&lt;br /&gt;
Para realizar operaciones de escritura usaremos los siguientes ejemplos:&lt;br /&gt;
&lt;br /&gt;
Observa que se pueden ejecutar varias líneas dentro de la sentencia.
&lt;br /&gt;
&lt;pre class=&quot;brush: csharp&quot;&gt;conn.Execute(@&quot;set identity_insert employees on;
                insert into employees (EmployeeId, FirstName, LastName, Country) values (@EmployeeId, @FirstName, @LastName, @Country);
                set identity_insert employees off;&quot;
                , new { FirstName = &quot;Oswaldo&quot;, EmployeeId = 21, LastName = &quot;Rodriguez&quot;, Country = &quot;Cuba&quot; });

&lt;/pre&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: csharp&quot;&gt;conn.Execute(&quot;update employees set firstname=@FirstName where employeeId=@EmployeeId&quot;, new { FirstName = &quot;Leopoldo&quot;, EmployeeId = 21 });
&lt;/pre&gt;
&lt;br /&gt;
También se pueden realizar operaciones masivas pasando una lista de objetos.&lt;br /&gt;
&lt;pre class=&quot;brush: csharp&quot;&gt;var empleados = conn.Query&amp;gt;empleado&amp;lt;(&quot;select * from employees where country = @pais&quot;, new { @pais = &quot;UK&quot; });
foreach (var empleado in empleados)
     empleado.FirstName = &quot;-&quot; + empleado.FirstName;
conn.Execute(&quot;update employees set firstname=@FirstName where employeeId=@EmployeeId&quot;, empleados.Select(x=&amp;gt;new {FirstName=x.FirstName, EmployeeId=x.EmployeeId}));
&lt;/pre&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Agregados&lt;/span&gt;&lt;br /&gt;
&lt;pre class=&quot;brush: csharp&quot;&gt;var sql=&quot;Select * from products p left join categories c on p.CategoryID=c.CategoryID&quot;;
var products = conn.Query&amp;gt;Producto, Categoria, Producto&amp;lt;(sql, (prod, cat) =&amp;gt; { prod.categoria = cat; return prod; }, splitOn:&quot;CategoryID&quot;);
&lt;/pre&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Conclusiones&lt;/span&gt;&lt;br /&gt;
Como podéis ver, puede ser una buena alternativa para determinados proyectos.
&lt;br /&gt;
Espero que os sea de utilidad.</content><link rel='replies' type='application/atom+xml' href='http://www.overflowexception.es/feeds/5928580104435826206/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/855032494846532188/5928580104435826206?isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/5928580104435826206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/5928580104435826206'/><link rel='alternate' type='text/html' href='http://www.overflowexception.es/2014/08/dapper-un-micro-orm-tener-en-cuenta.html' title='Dapper, un micro ORM a tener en cuenta'/><author><name>Juan Manuel Fenoll</name><uri>http://www.blogger.com/profile/14376120768475916211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Zj12pCzcjsFNTvQfGGXLhjiurNjl4SWTr--uvnUt2X9m8WccIERoz_QP2N3B7STx2YvcAI9QfeprQxFTTsCDtzDIO4f1y-RrNesiEpgArwqqSLPa5ejNwupLa7H6Tp4/s220/Imagen+007.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-855032494846532188.post-872875421706544250</id><published>2014-02-27T16:30:00.000+01:00</published><updated>2014-10-19T22:44:00.592+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio"/><title type='text'>Visualizar objetos en el debug de Visual Studio</title><content type='html'>Una de las cosas que acabo de usar &lt;strike&gt;y que llevan desde el Framework 2 entre nosotros&lt;/strike&gt;&amp;nbsp;es cómo cambiar el modo de visualizar los objetos en el depurador.&lt;br /&gt;
&lt;br /&gt;
Imaginad que queréis ver lo que hay en una lista de objetos, y os encontráis con esta imagen:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;float: left; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibFo6Gtllf7t58bEmkG8IYVq0Uf3cs5T36cGQhKXX2gHTWUlqP5DA21ixLhMJUOFv8S0ZXi8Tdrbuz3V5Vru1xLiHHXu4tR62mXsGocJoNOkwCE2QAjkK06w2It7aocXYGMmN3aU__zmYN/s1600/Imagen+1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibFo6Gtllf7t58bEmkG8IYVq0Uf3cs5T36cGQhKXX2gHTWUlqP5DA21ixLhMJUOFv8S0ZXi8Tdrbuz3V5Vru1xLiHHXu4tR62mXsGocJoNOkwCE2QAjkK06w2It7aocXYGMmN3aU__zmYN/s1600/Imagen+1.png&quot; height=&quot;185&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;float: left; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYQyYrUs2KF1ac-iQxmTbgwkIhJce17cw-kHbF8FYIKx3-wsSsVapTXU0u0-ooLiv31dfHWSWI30X7e20hvart7FP0Eg4Gl_r6TRG7zsUH4Zf565AglByvS4gbo7QlZJElrVe1UC0JNZOH/s1600/Imagen+2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYQyYrUs2KF1ac-iQxmTbgwkIhJce17cw-kHbF8FYIKx3-wsSsVapTXU0u0-ooLiv31dfHWSWI30X7e20hvart7FP0Eg4Gl_r6TRG7zsUH4Zf565AglByvS4gbo7QlZJElrVe1UC0JNZOH/s1600/Imagen+2.png&quot; height=&quot;240&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para tener una visión general de los datos que contiene, tienes que recorrerte la lista e ir seleccionando cada elemento.&lt;br /&gt;
&lt;br /&gt;
Estos son los momentos en los que echas de menos el DataTip que tienen los Datasets, que te mostraba una grid con los datos.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRXPCM2cNvaeJVZijky3CL2vW2gkrEx2M4E1uvGsjoEIaZJX2vhNMPRaNCKFuRwiDXJC9aLG3-eBzaWNoILCtJZZvO6V4vMCIZCHqAWRVPHxZ1UVeKSnnwywlhQO6ThA3szzZKBDITHbHt/s1600/figure6.tif.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRXPCM2cNvaeJVZijky3CL2vW2gkrEx2M4E1uvGsjoEIaZJX2vhNMPRaNCKFuRwiDXJC9aLG3-eBzaWNoILCtJZZvO6V4vMCIZCHqAWRVPHxZ1UVeKSnnwywlhQO6ThA3szzZKBDITHbHt/s1600/figure6.tif.jpg&quot; height=&quot;208&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Hay varias soluciones para ello.&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Una solución es usar &lt;b&gt;DebuggerDisplayAttrubute&lt;/b&gt;&amp;nbsp;en la clase. Con ello estamos diciendo al debugger cómo tiene que visualizar los datos.&amp;nbsp;&lt;a href=&quot;http://msdn.microsoft.com/es-es/library/x810d419.aspx&quot; target=&quot;_blank&quot;&gt;[Más info]&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEip-LCgfCnQxRwOGJr47m6Kza5dwxqpDXT438_bC4SBEhhYpcZjR-rZJ3LfSpIDMvzpeYQg6JaDwRr637nWWdp6qdicWa2qF-8qOpwhzWCmUrzPRiRu0OJPehAoGdD6awr58hFPam_Sbjzn/s1600/Imagen+4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEip-LCgfCnQxRwOGJr47m6Kza5dwxqpDXT438_bC4SBEhhYpcZjR-rZJ3LfSpIDMvzpeYQg6JaDwRr637nWWdp6qdicWa2qF-8qOpwhzWCmUrzPRiRu0OJPehAoGdD6awr58hFPam_Sbjzn/s1600/Imagen+4.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;Otra solución es&lt;b&gt; implementar &lt;/b&gt;dentro de la clase &lt;b&gt;el método &quot;ToString()&quot;&lt;/b&gt;, devolviendo el formato que queramos.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkVj429rEhFAhD-kYFzMY5Ro7qr9_I-toNVTSdWsMBUcIvBSN7AsJAsJvflF61zXF9tTbvtKKIOCDTAZMR8M18ZqPNMeAOt0JxKv6I0d_-lukrM9OL4__M32_swrH3gigPk2e8UwiMkPPj/s1600/Imagen+5.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkVj429rEhFAhD-kYFzMY5Ro7qr9_I-toNVTSdWsMBUcIvBSN7AsJAsJvflF61zXF9tTbvtKKIOCDTAZMR8M18ZqPNMeAOt0JxKv6I0d_-lukrM9OL4__M32_swrH3gigPk2e8UwiMkPPj/s1600/Imagen+5.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Otras soluciones, algo más elaboradas, pasan por &lt;a href=&quot;http://msdn.microsoft.com/es-es/library/ms228992(v=vs.110).aspx&quot; target=&quot;_blank&quot;&gt;crear un proxy&lt;/a&gt; o&amp;nbsp;&lt;a href=&quot;http://www.codemag.com/article/0503061&quot; target=&quot;_blank&quot;&gt;crear nuestro propio visualizado&lt;/a&gt;r.&lt;br /&gt;
&lt;br /&gt;
Saludos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---Ampliación Octubre-2014.&lt;br /&gt;
He encontrado un &lt;a href=&quot;http://geeks.ms/blogs/jorge/archive/2014/06/21/uso-de-debuggerbrowsable.aspx&quot;&gt;post de Jorge Serrano&amp;nbsp;&lt;/a&gt;que propone el uso del atributo &amp;nbsp;DebuggerBrowsable para cambiar la forma de la que el depurador visualiza los objetos.&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.overflowexception.es/feeds/872875421706544250/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/855032494846532188/872875421706544250?isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/872875421706544250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/872875421706544250'/><link rel='alternate' type='text/html' href='http://www.overflowexception.es/2014/02/visualizar-objetos-en-el-debug-de.html' title='Visualizar objetos en el debug de Visual Studio'/><author><name>Juan Manuel Fenoll</name><uri>http://www.blogger.com/profile/14376120768475916211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Zj12pCzcjsFNTvQfGGXLhjiurNjl4SWTr--uvnUt2X9m8WccIERoz_QP2N3B7STx2YvcAI9QfeprQxFTTsCDtzDIO4f1y-RrNesiEpgArwqqSLPa5ejNwupLa7H6Tp4/s220/Imagen+007.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibFo6Gtllf7t58bEmkG8IYVq0Uf3cs5T36cGQhKXX2gHTWUlqP5DA21ixLhMJUOFv8S0ZXi8Tdrbuz3V5Vru1xLiHHXu4tR62mXsGocJoNOkwCE2QAjkK06w2It7aocXYGMmN3aU__zmYN/s72-c/Imagen+1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-855032494846532188.post-7216368087605902016</id><published>2014-02-11T08:58:00.001+01:00</published><updated>2014-02-11T09:30:18.211+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="async"/><category scheme="http://www.blogger.com/atom/ns#" term="c#"/><title type='text'>Procesos asíncronos con Async Await</title><content type='html'>Esta es la segunda entrega de la serie que dedico a los procesos asíncronos.&lt;br /&gt;
&lt;br /&gt;
La primera entrega la puedes consultar en &lt;a href=&quot;http://www.overflowexception.es/2013/11/procesos-asincronos-con-task-tpl.html&quot;&gt;este enlace&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Como dijimos anteriormente, con el Framework 4.5 se incluyen algunas instrucciones nuevas en la TPL (Task Parallel Library) como son async, await, y otras contenidas en Task (Delay, FromResult, Run, WhenAll, WhenAny)&lt;br /&gt;
&lt;br /&gt;
Si bien los comandos Async Await se pueden conseguir hacerlos funcionar a partir de VS2012 con el Framework 4.0 importando desde NuGet las librerías &lt;a href=&quot;https://www.nuget.org/packages/Microsoft.Bcl.Async/1.0.165&quot;&gt;Microsoft.Bcl.Async&lt;/a&gt;&amp;nbsp;(subconjunto de las TPL del 4.5), el resto de comandos solo están disponibles con el framework 4.5&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;strong&gt;Un poco de código&lt;/strong&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;
Supongamos que volvemos a tener ese proceso largo que nos paraliza la ejecución del hilo.&lt;br /&gt;
&lt;br /&gt;
Lo primero que deberíamos de hacer es encapsularlo dentro de una función que devuelva un Task&amp;lt;tipo&amp;gt;, donde tipo es la devolución de la función.&lt;br /&gt;
Si la función no devuelve nada, podremos devolver un Task. &lt;br /&gt;
Se recomienda que la función tenga un nombre acabado en &quot;async&quot; por claridad, y que devuelva un Task. Se podría devolver un void, pero no es lo recomendable (&lt;a href=&quot;http://www.tonicodes.net/blog/why-you-should-almost-never-write-void-asynchronous-methods/&quot;&gt;Aquí&lt;/a&gt; y 
&lt;a href=&quot;http://msdn.microsoft.com/en-us/magazine/jj991977.aspx&quot;&gt;aquí&lt;/a&gt; comentan las razones por las que no recomiendan void functions)
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: csharp&quot;&gt;private static Task&amp;lt;string&amp;gt; ProcesoLargoAsync (string texto)
{
     Task&amp;lt;string&amp;gt; t = Task.Run(() =&amp;gt; {
          int tiempo = new Random().Next(1000, 6000);
          Thread.Sleep(tiempo);
          string texto2 = texto.ToUpper();
          return texto2;
     });
     return t;
}
&lt;/pre&gt;
&lt;br /&gt;
Task.Run (que es nuevo en el 4.5) cumple el mismo cometido que Task.Factory.StartNew: Declarar y arrancar el proceso.&lt;br /&gt;
&lt;br /&gt;
A continuación, llamaremos a esta función que devuelve una tarea con otra que es la que la marcaremos como asíncrona.&lt;br /&gt;
&lt;pre class=&quot;brush: csharp&quot;&gt;public static async void PruebaDeAsync0()
{
     string texto = await ProcesoLargoAsync(&quot;Hello world!!!&quot;);
     Console.WriteLine(texto);
}&lt;/pre&gt;
&lt;br /&gt;
Y la llamaremos normalmente.
&lt;br /&gt;
&lt;pre class=&quot;brush: csharp&quot;&gt;Console.WriteLine(&quot;Empezamos hilo principal con Async-Await&quot;);
PruebaDeAsync0();
Console.WriteLine(&quot;Hilo principal acabado&quot;);
&lt;/pre&gt;
En el momento que el hilo de ejecución pase por la función marcada como async, la ejecutará un segundo hilo, parándose en el await hasta que la función ProcesoLargoAwait responda, y, a continuación, imprimirá el resultado por consola.&lt;br /&gt;
Mientras, el hilo principal no se ha detenido y ha impreso el &quot;Hilo principal acabado&quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;strong style=&quot;font-size: x-large;&quot;&gt;Listas&lt;/strong&gt;&lt;br /&gt;
&lt;strong style=&quot;font-size: x-large;&quot;&gt;&lt;br /&gt;&lt;/strong&gt;
Mediante las funciones Task.whenAny o Task.WhenAll podremos controlar la ejecución de las tareas&lt;br /&gt;
&lt;pre class=&quot;brush: csharp&quot;&gt;public static async void PruebaDeAsync1()
{
&amp;nbsp; &amp;nbsp; List&amp;lt;Task&amp;lt;string&amp;gt;&amp;gt; lista = new List&amp;lt;Task&amp;lt;string&amp;gt;&amp;gt;()
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ProcesoLargoAsync(&quot;Hello world 1 !!!&quot;),
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ProcesoLargoAsync(&quot;Hello world 2 !!!&quot;),
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ProcesoLargoAsync(&quot;Hello world 3 !!!&quot;),
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ProcesoLargoAsync(&quot;Hello world 4 !!!&quot;),
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ProcesoLargoAsync(&quot;Hello world 5 !!!&quot;)
&amp;nbsp; &amp;nbsp; };

&amp;nbsp; &amp;nbsp; var y = await Task.WhenAny(lista);
&amp;nbsp; &amp;nbsp; Console.WriteLine(&quot;WhenAny: Se ha acabado la tarea {0}&quot;, y.Result);
&amp;nbsp; &amp;nbsp; var x = await Task.WhenAll(lista);
&amp;nbsp; &amp;nbsp; Console.WriteLine(&quot;Todas las tareas acabadas&quot;);
}

&lt;/pre&gt;
La llamada a la función:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: csharp&quot;&gt;Console.WriteLine(&quot;Empezamos hilo principal de listas Async-Await&quot;);
PruebaDeAsync1();
Console.WriteLine(&quot;Hilo principal acabado&quot;);
&lt;/pre&gt;
&lt;div class=&quot;brush: csharp&quot;&gt;
&amp;nbsp;&lt;/div&gt;
En este caso la instrucción await Task.WhenAny(lista) bloqueará el hilo asíncrono hasta que alguna tarea acabe.
&lt;br /&gt;
La instrucción await Task.WhenAll(lista) volverá a bloquear el hilo asíncrono hasta que todas las tareas acaben.
&lt;br /&gt;
También se podría haber llamado a cada tarea y haberle aplicado un ContinueWith para que cuando acabe cada tarea notifique que ha acabado.
&lt;br /&gt;
&lt;pre class=&quot;brush: csharp&quot;&gt;List&amp;lt;Task&amp;lt;string&amp;gt;&amp;gt; lista = new List&amp;lt;Task&amp;lt;string&amp;gt;&amp;gt;()
{
    ProcesoLargoAsync(&quot;Hello world 1 !!!&quot;),
    ProcesoLargoAsync(&quot;Hello world 2 !!!&quot;),
    ProcesoLargoAsync(&quot;Hello world 3 !!!&quot;),
    ProcesoLargoAsync(&quot;Hello world 4 !!!&quot;),
    ProcesoLargoAsync(&quot;Hello world 5 !!!&quot;),
    ProcesoLargoAsync(&quot;Hello world 6 !!!&quot;),
    ProcesoLargoAsync(&quot;Hello world 7 !!!&quot;),
    ProcesoLargoAsync(&quot;Hello world 8 !!!&quot;),
    ProcesoLargoAsync(&quot;Hello world 9 !!!&quot;),
    ProcesoLargoAsync(&quot;Hello world 10 !!!&quot;)
};

lista.ForEach(tarea=&amp;gt;tarea.ContinueWith((tareaEjecutada)=&amp;gt;
    Console.WriteLine(&quot;Ha acabado la tarea &quot;+tareaEjecutada.Result)));

await Task.WhenAll(lista);
Console.WriteLine(&quot;Todas las tareas acabadas&quot;);
&lt;/pre&gt;
&lt;strong style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-size: x-large; white-space: normal;&quot;&gt;&lt;br /&gt;&lt;/strong&gt;
&lt;strong style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-size: x-large; white-space: normal;&quot;&gt;Interfaces de usuario&lt;/strong&gt;
&lt;br /&gt;
&lt;br /&gt;
En esta parte es donde más se aprecia el cambio.
&lt;br /&gt;
Vimos en las TPL 4.0 que teníamos que andar con Invoke para poder ejecutar un código asíncrono en una interfaz ya que un proceso no tenía visibilidad sobre otro proceso.
&lt;br /&gt;
Con la TPL 4.5 podemos hacer algo tan sencillo como:
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: csharp&quot;&gt;private void button2_Click(object sender, EventArgs e)
{
    TareaAsync();
}

public async void TareaAsync()
{
    label1.Text = await ProcesoLargoAsync(&quot;Hello, world!!!&quot;);
}&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
Saludos.</content><link rel='replies' type='application/atom+xml' href='http://www.overflowexception.es/feeds/7216368087605902016/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/855032494846532188/7216368087605902016?isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/7216368087605902016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/7216368087605902016'/><link rel='alternate' type='text/html' href='http://www.overflowexception.es/2014/02/procesos-asincronos-con-async-await.html' title='Procesos asíncronos con Async Await'/><author><name>Juan Manuel Fenoll</name><uri>http://www.blogger.com/profile/14376120768475916211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Zj12pCzcjsFNTvQfGGXLhjiurNjl4SWTr--uvnUt2X9m8WccIERoz_QP2N3B7STx2YvcAI9QfeprQxFTTsCDtzDIO4f1y-RrNesiEpgArwqqSLPa5ejNwupLa7H6Tp4/s220/Imagen+007.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-855032494846532188.post-6464449417352279562</id><published>2013-11-18T18:08:00.000+01:00</published><updated>2013-11-18T18:11:41.686+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="async"/><category scheme="http://www.blogger.com/atom/ns#" term="c#"/><title type='text'>Procesos asíncronos con Task (TPL)</title><content type='html'>Para ejecutar procesos largos de forma asíncrona, la recomendación actual es que nos apoyemos en las TPL (Tasks Process Library).&lt;br /&gt;
Estas librerías aparecieron en el Framework 4 y nos van a facilitar la tarea de ejecutar código en paralelo u multiproceso, aunque en determinados casos nos puede complicar algo la existencia&lt;br /&gt;
&lt;br /&gt;
Veamos su uso con varios ejemplos.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;TAREAS&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tenemos este proceso laaaargo que queremos ejecutar asíncronamente.&lt;br /&gt;
Para ejecutarlo con las TPL, podemos hacerlo de esta forma:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: csharp&quot;&gt;
Console.WriteLine(&quot;Empezamos task con código&quot;);
string frase=&quot;Hello world!!!&quot;;
// Creamos una tarea que contiene una función y devuelve un string
var task = new Task&amp;lt;string&amp;gt;(() =&amp;gt; {
// Generamos un aleatorio entre 1000 y 4000
int tiempo = new Random(DateTime.Now.Millisecond).Next(1000, 4000);
Thread.Sleep(tiempo);
string texto2 = frase.ToUpper();
return texto2;
});
// Ejecutamos la tarea
task.Start();
// cuando acabe la tarea, que imprima el resultado en consola
task.ContinueWith(tareaAnterior =&amp;gt; Console.WriteLine(tareaAnterior.Result));
Console.WriteLine(&quot;Hilo principal acabado&quot;);
Console.ReadKey();
&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
Si el proceso largo lo tenemos en una función
&lt;br /&gt;
&lt;pre class=&quot;brush: csharp&quot;&gt;  
private static string ProcesoLargo(string texto)
{
int tiempo = new Random().Next(1000, 6000);
Thread.Sleep(tiempo);
string texto2 = texto.ToUpper();
return texto2;
}

&lt;/pre&gt;
&lt;br /&gt;
, lo llamaremos de esta otra forma.
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: csharp&quot;&gt;Console.WriteLine(&quot;Empezamos task con lambda y start&quot;);
var task = new Task&amp;lt;string&amp;gt;(() =&amp;gt; ProcesoLargo(&quot;Hello world!!!&quot;));
task.Start();
task.ContinueWith(tareaAnterior =&amp;gt; Console.WriteLine(tareaAnterior.Result));
Console.WriteLine(&quot;Hilo principal acabado&quot;);
Console.ReadKey();
&lt;/pre&gt;
&lt;br /&gt;
En vez de preparar la tarea y empezarla con task.start, podemos empezarla directamente usando Task.Factory.StartNew
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: csharp&quot;&gt;Console.WriteLine(&quot;Empezamos task con lambda y startNew&quot;);
var task = Task.Factory.StartNew(() =&amp;gt; ProcesoLargo(&quot;Hello world!!!&quot;));
task.ContinueWith(tareaAnterior =&amp;gt; Console.WriteLine(tareaAnterior.Result));
Console.WriteLine(&quot;Hilo principal acabado&quot;);
Console.ReadKey();
&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;LISTAS DE TAREAS Y SEMAFOROS&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Si tenemos varias tareas, podemos lanzarlas en paralelo mediante un array de tasks, y luego parar el proceso principal hasta que acabe una o todas las tareas que habían en el array.
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: csharp&quot;&gt;Console.WriteLine(&quot;Empezamos array de task usando WaitAny y WaitAll&quot;);
Task&amp;lt;string&amp;gt;[] lista = new Task&amp;lt;string&amp;gt;[]
{
    Task.Factory.StartNew(() =&amp;gt; ProcesoLargo(&quot;Hello, world 1 !!!&quot;)),
    Task.Factory.StartNew(() =&amp;gt; ProcesoLargo(&quot;Hello, world 2 !!!&quot;)),
    Task.Factory.StartNew(() =&amp;gt; ProcesoLargo(&quot;Hello, world 3 !!!&quot;)),
    Task.Factory.StartNew(() =&amp;gt; ProcesoLargo(&quot;Hello, world 4 !!!&quot;))
};

// El flujo se para hasta que alguna tarea se acabe.
// WaitAny nos devuelve el índice de la tarea que ha acabado.
var i= Task.WaitAny(lista);
Console.WriteLine(&quot;Ha acabado la tarea {0} con el resultado {1}&quot;, i, lista[i].Result);


// El flujo se para hasta que todas las tareas se acaben
Task.WaitAll(lista);
Console.WriteLine(&quot;Han acabado las {0} tareas&quot;, lista.Count());

Console.WriteLine(&quot;Hilo principal acabado&quot;);
Console.ReadKey();
&lt;/pre&gt;
Si no queremos esperarnos a que acaben las tareas, podemos también lanzar otra función asíncrona cuando acaben las tareas.
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: csharp&quot;&gt;Console.WriteLine(&quot;Empezamos array de task usando ContinueWhenAny y ContinueWhenAll&quot;);
Task&amp;lt;string&amp;gt;[] lista = new Task&amp;lt;string&amp;gt;[]
{
    Task.Factory.StartNew(() =&amp;gt; ProcesoLargo(&quot;Hello, world 1 !!!&quot;)),
    Task.Factory.StartNew(() =&amp;gt; ProcesoLargo(&quot;Hello, world 2 !!!&quot;)),
    Task.Factory.StartNew(() =&amp;gt; ProcesoLargo(&quot;Hello, world 3 !!!&quot;)),
    Task.Factory.StartNew(() =&amp;gt; ProcesoLargo(&quot;Hello, world 4 !!!&quot;))
};

// El flujo sigue, y ejecuta la función cuando acabe alguna tarea
Task.Factory.ContinueWhenAny(lista, (tareaAcabada) =&amp;gt; { Console.WriteLine(&quot;Se ha acabado la tarea {0}&quot;,tareaAcabada.Result); });

// El flujo sigue, y ejecuta la función cuando acaben todas las tareas.
Task.Factory.ContinueWhenAll(lista, (listaTareas) =&amp;gt; { Console.WriteLine(&quot;Se han acabado las {0} tareas&quot;, listaTareas.Count()); });

Console.WriteLine(&quot;Hilo principal acabado&quot;);
Console.ReadKey();
&lt;/pre&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;CANCELACIONES&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;
Para realizar cancelaciones, modificaremos el proceso largo para que acepte una Cancellation Token por parámetro.
En el ejemplo, lo que haremos es que cuando acabe la primera tarea, cancelamos el resto de tareas. 
Para ello creamos un nuevo proceso largo con Cancellation.
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: csharp&quot;&gt;private static string ProcesoLargoConCancel(string texto, CancellationToken cancel)
{
    // Generamos un aleatorio
    int tiempo = new Random(DateTime.Now.Millisecond).Next(4000, 6000);
    DateTime horaExit = DateTime.Now.AddMilliseconds(tiempo);
    try
    {

        cancel.ThrowIfCancellationRequested();
        while (horaExit &amp;lt; DateTime.Now); 
        return texto.ToUpper();
    }
    
    catch (OperationCanceledException ex)
    {
        Console.WriteLine(&quot;Tarea cancelada&quot;);
    }

    return null;
}
&lt;/pre&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: csharp&quot;&gt; Console.WriteLine(&quot;Empezamos array con cancelación&quot;);
 CancellationTokenSource cancel = new CancellationTokenSource();

 Task&amp;lt;string&amp;gt;[] lista = new Task&amp;lt;string&amp;gt;[]
 {
     new Task&amp;lt;string&amp;gt;(()=&amp;gt;ProcesoLargoConCancel(&quot;Hello, world 1 !!!&quot;, cancel.Token)),
     new Task&amp;lt;string&amp;gt;(()=&amp;gt;ProcesoLargoConCancel(&quot;Hello, world 2 !!!&quot;, cancel.Token)),
     new Task&amp;lt;string&amp;gt;(()=&amp;gt;ProcesoLargoConCancel(&quot;Hello, world 3 !!!&quot;, cancel.Token)),
     new Task&amp;lt;string&amp;gt;(()=&amp;gt;ProcesoLargoConCancel(&quot;Hello, world 4 !!!&quot;, cancel.Token))
 };

 Task.Factory.ContinueWhenAny(lista, (tareaAcabada) =&amp;gt; {
     cancel.Cancel();
     Console.WriteLine(&quot;Se ha acabado la tarea {0}&quot;, tareaAcabada.Result); 
 });

 lista.ToList().ForEach(x =&amp;gt; x.Start());

 Console.WriteLine(&quot;Hilo principal acabado&quot;);
 Console.ReadKey();
&lt;/pre&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;PROGRESO&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Si queremos controlar el progreso de un proceso, nos suscribimos al evento ProgressChanged de IProgress con una función, y en medio de la tarea vamos llamando al método Report para ir notificando.
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: csharp&quot;&gt;Console.WriteLine(&quot;Empezamos hilo con porcentaje&quot;);
Progress&amp;lt;int&amp;gt; p = new Progress&amp;lt;int&amp;gt;();

p.ProgressChanged += (sender, porcentaje) =&amp;gt;
{
    Console.Write(&quot;{0}%.......&quot;, porcentaje);
};

Task tarea = Task.Factory.StartNew(() =&amp;gt;
{
    for (int i = 0; i &amp;lt;= 100; i++)
    {
        Thread.Sleep(60);
        ((IProgress&amp;lt;int&amp;gt;)p).Report(i);
    }
});

Console.WriteLine(&quot;Hilo principal acabado&quot;);
Console.ReadKey();
&lt;/pre&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;Sincronización de procesos.&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Ahora vamos con asincronía para winforms.
Tenemos un botón y un label. Hacemos un proceso de esperar 2 segundos, y luego cambiar el label.
 
Escribimos en el evento click del ratón el siguiente código:
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: csharp&quot;&gt;private void button1_Click(object sender, EventArgs e)
{
    var t= Task.Factory.StartNew(()=&amp;gt;Thread.Sleep(2000));
    t.ContinueWith(tarea =&amp;gt; label1.Text = &quot;Hello, world!!!&quot;);
}
&lt;/pre&gt;
Esto nos va a dar un bonito &lt;b&gt;System.InvalidOperationException.&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&amp;nbsp;&amp;nbsp;Operación no válida a través de subprocesos: Se tuvo acceso al control &#39;label1&#39; desde un subproceso distinto a aquel en que lo creó&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;¿Por qué?&lt;br /&gt;
Porque el código que se llama asíncronamente no está en el mismo proceso y no puede acceder al proceso donde está el formulario.&lt;br /&gt;
&amp;nbsp;Si cambiamos el label con un lambda y la función Invoke del formulario, el proceso lo ejecutará el formulario cuando acabe la tarea.
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: csharp&quot;&gt;private void button1_Click(object sender, EventArgs e)
{
    var t= Task.Factory.StartNew(()=&amp;gt;Thread.Sleep(2000));
    t.ContinueWith((taskPrevia)=&amp;gt;
        this.Invoke((MethodInvoker)(() =&amp;gt;
        {
            label1.Text = &quot;Hello, world!!!&quot;;
        })));
}
&lt;/pre&gt;
Otra aproximación podría ser crear una función para cambiar el label de forma síncrona o asíncrona, y que sea llamada desde el método anterior. 
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: csharp&quot;&gt;private void button1_Click(object sender, EventArgs e)
{
    var t = Task.Factory.StartNew(() =&amp;gt; Thread.Sleep(2000));
    t.ContinueWith((taskprevia)=&amp;gt;CambiarLabel(&quot;Hello, world!!!&quot;));
}
private void CambiarLabel(string texto)
{
    if (InvokeRequired)
        this.Invoke((MethodInvoker)(()=&amp;gt;label1.Text=texto));
    else
        label1.Text=texto;
}
&lt;/pre&gt;
Como dije al principio, todos estos ejemplos se aplican a partir del Framework 4.

En el Framework 4.5 se incorporan las instrucciones Async, Await, whenAll, whenAny, ... &amp;nbsp;que simplifican un poco la llamada a funciones asíncronas.&lt;br /&gt;
&lt;br /&gt;
Comentaré estas nuevas instrucciones en un segundo post.&lt;br /&gt;
&lt;br /&gt;
Saludos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.overflowexception.es/feeds/6464449417352279562/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/855032494846532188/6464449417352279562?isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/6464449417352279562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/6464449417352279562'/><link rel='alternate' type='text/html' href='http://www.overflowexception.es/2013/11/procesos-asincronos-con-task-tpl.html' title='Procesos asíncronos con Task (TPL)'/><author><name>Juan Manuel Fenoll</name><uri>http://www.blogger.com/profile/14376120768475916211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Zj12pCzcjsFNTvQfGGXLhjiurNjl4SWTr--uvnUt2X9m8WccIERoz_QP2N3B7STx2YvcAI9QfeprQxFTTsCDtzDIO4f1y-RrNesiEpgArwqqSLPa5ejNwupLa7H6Tp4/s220/Imagen+007.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-855032494846532188.post-4719306333654921606</id><published>2013-10-28T08:56:00.000+01:00</published><updated>2013-10-28T08:56:41.524+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="c#"/><category scheme="http://www.blogger.com/atom/ns#" term="LINQ"/><title type='text'>Convertir consultas SQL a listas</title><content type='html'>&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;En esta entrada voy a mostraros algunas de las formas que
tengo para extraer datos de una fuente de datos SQL usando ADO.Net sin usar
Entity Framework ni Linq2SQL.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h3&gt;
Convertir un Dataset a Lista de objetos&lt;/h3&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;En este caso, tenemos un antiguo repositorio que nos
devuelva un dataset a partir de un SQL. Podemos usar este método para
convertirlo a un Enumerable y así poder adaptarlo a nuestras clases.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h4 class=&quot;MsoNormal&quot;&gt;
La clase que devuelve un DataSet&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;pre style=&quot;background: rgb(240, 240, 240); border: 1px dashed rgb(204, 204, 204); color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;-ms-word-wrap: normal; color: black;&quot;&gt;   public class DL_Datos  
   {  
     string connectionString=&quot;Persist Security Info=False;Integrated Security=TRUE;database=NorthWind;server=srvdesarrollo;Connect Timeout=60&quot;;  
     public DataSet DameDatos(string consulta)  
     {  
       SqlConnection conn = new SqlConnection(connectionString);  
       SqlDataAdapter da = new SqlDataAdapter(consulta, conn);  
       DataSet ds = new DataSet();  
       da.Fill(ds);  
       return ds;  
     }  
   }  
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 class=&quot;MsoNormal&quot;&gt;
Nuestra clase&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;pre style=&quot;background: rgb(240, 240, 240); border: 1px dashed rgb(204, 204, 204); color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;-ms-word-wrap: normal; color: black;&quot;&gt;    public class Empleado
    {
        public int codigo { get; set; }
        public string nombre { get; set; }
        public string ciudad { get; set; }
        public string pais { get; set; }
    };
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;h4 class=&quot;MsoNormal&quot;&gt;
La conversión&lt;/h4&gt;
&lt;pre style=&quot;background: rgb(240, 240, 240); border: 1px dashed rgb(204, 204, 204); color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;-ms-word-wrap: normal; color: black;&quot;&gt;        DL_Datos Sqldatos = new DL_Datos();  
       DataSet ds = Sqldatos.DameDatos(&quot;select EmployeeID, FirstName, LastName, City, Country from employees&quot;);  
       List&amp;lt;Empleado&amp;gt; empleados = ds.Tables[0]  
                     .AsEnumerable()  
                     .Select(dr =&amp;gt; new Empleado()  
                     {  
                       codigo = dr.Field&amp;lt;int&amp;gt;(&quot;EmployeeID&quot;),  
                       nombre = dr.Field&amp;lt;string&amp;gt;(&quot;FirstName&quot;) + &quot; &quot; + dr.Field&amp;lt;string&amp;gt;(&quot;LastName&quot;),  
                       ciudad = dr.Field&amp;lt;string&amp;gt;(&quot;City&quot;),  
                       pais = dr.Field&amp;lt;string&amp;gt;(&quot;Country&quot;)  
                     })  
                     .ToList();  
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 class=&quot;MsoNormal&quot; style=&quot;margin: 2pt 0cm 0pt;&quot;&gt;
Convertir una consulta SQL a una lista de objetos&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Otra forma de crear una lista directamente es crearnos un
método extensor del Command que nos devuelva ya la lista montada&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;h4 class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 8pt;&quot;&gt;
El método extensor&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;pre style=&quot;background: rgb(240, 240, 240); border: 1px dashed rgb(204, 204, 204); color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;-ms-word-wrap: normal; color: black;&quot;&gt;       public static void Fill&amp;lt;T&amp;gt;(this IDbCommand cmd, IList&amp;lt;T&amp;gt; list, Func&amp;lt;IDataReader, T&amp;gt; rowConverter)  
       {  
         using (var reader = cmd.ExecuteReader())  
         {  
           while (reader.Read())  
           {  
             list.Add(rowConverter(reader));  
           }  
         }  
       }  
&lt;/code&gt;&lt;/pre&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;h4 class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 8pt;&quot;&gt;
Lo utilizaremos de esta manera:&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;pre style=&quot;background: rgb(240, 240, 240); border: 1px dashed rgb(204, 204, 204); color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;-ms-word-wrap: normal; color: black;&quot;&gt;       string connectionString = &quot;Persist Security Info=False;Integrated Security=TRUE;database=NorthWind;server=srvdesarrollo;Connect Timeout=60&quot;;  
       using (SqlConnection conn = new SqlConnection(connectionString))  
       {  
         conn.Open();  
         SqlCommand comm = new SqlCommand(&quot;select EmployeeID, FirstName, LastName, City, Country from employees&quot;, conn);  
         List&amp;lt;Empleado&amp;gt; empleados = new List&amp;lt;Empleado&amp;gt;();  
         comm.Fill(empleados, r =&amp;gt; new Empleado()  
         {  
           codigo = r.GetInt32(r.GetOrdinal(&quot;EmployeeID&quot;)),  
           nombre = r.GetString(r.GetOrdinal(&quot;FirstName&quot;)) + &quot; &quot; + r.GetString(r.GetOrdinal(&quot;LastName&quot;)),  
           ciudad = r.GetString(r.GetOrdinal(&quot;City&quot;)),  
           pais = r.GetString(r.GetOrdinal(&quot;Country&quot;))  
         });  
         conn.Close();  
       }  
&lt;/code&gt;&lt;/pre&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;h3 class=&quot;MsoNormal&quot; style=&quot;margin: 2pt 0cm 0pt;&quot;&gt;
Convertir un DataSet a un Dictionary&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;pre style=&quot;background: rgb(240, 240, 240); border: 1px dashed rgb(204, 204, 204); color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;-ms-word-wrap: normal; color: black;&quot;&gt;       DL_Datos Sqldatos = new DL_Datos();  
       DataSet ds = Sqldatos.DameDatos(&quot;select regionID, regionDescription from Region&quot;);  
       Dictionary&amp;lt;int, string&amp;gt; dict = ds.Tables[0]  
           .AsEnumerable()  
           .ToDictionary(  
               x =&amp;gt; x.Field&amp;lt;int&amp;gt;(&quot;regionID&quot;),   
               x =&amp;gt; x.Field&amp;lt;string&amp;gt;(&quot;regionDescription&quot;)  
               );  
&lt;/code&gt;&lt;/pre&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Saludos.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.overflowexception.es/feeds/4719306333654921606/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/855032494846532188/4719306333654921606?isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/4719306333654921606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/4719306333654921606'/><link rel='alternate' type='text/html' href='http://www.overflowexception.es/2013/10/convertir-consultas-sql-listas.html' title='Convertir consultas SQL a listas'/><author><name>Juan Manuel Fenoll</name><uri>http://www.blogger.com/profile/14376120768475916211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Zj12pCzcjsFNTvQfGGXLhjiurNjl4SWTr--uvnUt2X9m8WccIERoz_QP2N3B7STx2YvcAI9QfeprQxFTTsCDtzDIO4f1y-RrNesiEpgArwqqSLPa5ejNwupLa7H6Tp4/s220/Imagen+007.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-855032494846532188.post-7067487916513453822</id><published>2013-10-21T19:36:00.000+02:00</published><updated>2013-10-22T15:20:26.234+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio"/><title type='text'>Comparador de datos en Visual Studio 2012</title><content type='html'>En Visual Studio 2010 teníamos la comparación de esquemas y la comparación de datos.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMuYIBffTye-xlDOX1gjdUv3Hjyg4i1gb3DfqWFNCXRaWd2pFw4nWRuATjKEZ1kXkgSARD8UFcGMCurmlrAIpzHscWq03j89oiqpB91Sx9UXRdIL9dCnSpgHOZpxNzYEQ5Zs3N0YeqTh-g/s1600/vs2010.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMuYIBffTye-xlDOX1gjdUv3Hjyg4i1gb3DfqWFNCXRaWd2pFw4nWRuATjKEZ1kXkgSARD8UFcGMCurmlrAIpzHscWq03j89oiqpB91Sx9UXRdIL9dCnSpgHOZpxNzYEQ5Zs3N0YeqTh-g/s1600/vs2010.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El Visual Studio 2012 solamente viene con el comparador de esquemas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqlalc86cMNSvLESIW9BU60Tu8cAIcJwNfigMxtRo7kr3AQ_5RYk0GG7ydFcts3SBR4LBjyAfTHIQIOHPOybh9_l223GRfaTOhtXLF90gKtkogciUstSxWekYDsNlyMWTDEJr2rTXNWYXZ/s1600/vs2012.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqlalc86cMNSvLESIW9BU60Tu8cAIcJwNfigMxtRo7kr3AQ_5RYk0GG7ydFcts3SBR4LBjyAfTHIQIOHPOybh9_l223GRfaTOhtXLF90gKtkogciUstSxWekYDsNlyMWTDEJr2rTXNWYXZ/s1600/vs2012.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
El comparador de datos para Visual Studio 2012 viene con las Sql Server Data Tools.&lt;br /&gt;
&lt;br /&gt;
Lo podéis bajar de este enlace.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://msdn.microsoft.com/en-us/jj650015&quot;&gt;http://msdn.microsoft.com/en-us/jj650015&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Ojo, si tienes el Visual Studio 2012 en Español, como bien se indica en la página, debes bajarte la versión en español y ejecutarla en modo Administrador. Si no se hace de esta forma, dará un error al instalar.&lt;br /&gt;
&lt;br /&gt;
Saludos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.overflowexception.es/feeds/7067487916513453822/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/855032494846532188/7067487916513453822?isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/7067487916513453822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/7067487916513453822'/><link rel='alternate' type='text/html' href='http://www.overflowexception.es/2013/10/comparador-de-datos-en-visual-studio.html' title='Comparador de datos en Visual Studio 2012'/><author><name>Juan Manuel Fenoll</name><uri>http://www.blogger.com/profile/14376120768475916211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Zj12pCzcjsFNTvQfGGXLhjiurNjl4SWTr--uvnUt2X9m8WccIERoz_QP2N3B7STx2YvcAI9QfeprQxFTTsCDtzDIO4f1y-RrNesiEpgArwqqSLPa5ejNwupLa7H6Tp4/s220/Imagen+007.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMuYIBffTye-xlDOX1gjdUv3Hjyg4i1gb3DfqWFNCXRaWd2pFw4nWRuATjKEZ1kXkgSARD8UFcGMCurmlrAIpzHscWq03j89oiqpB91Sx9UXRdIL9dCnSpgHOZpxNzYEQ5Zs3N0YeqTh-g/s72-c/vs2010.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-855032494846532188.post-7610356342542146550</id><published>2013-10-01T19:23:00.000+02:00</published><updated>2013-10-17T17:59:21.891+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="nuget"/><title type='text'>Comandos de NuGet</title><content type='html'>&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;line-height: 107%;&quot;&gt;El
administrador de paquetes NuGet nos proporciona una forma cómoda de instalar
los paquetes, pero sólo mediante consola podemos sacar el máximo
provecho.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;line-height: 107%;&quot;&gt;A medida que vamos escribiendo en la consola podemos pulsar tabulación y nos irá apareciendo las opciones disponibles.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
Aquí detallo los comandos más importantes con los que podemos sacarle jugo al nuget:&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjy326eXRSaiw6RK8BkOG__G8X-xq077XF77w5luBmF9mwLLVXLsP5hXXVtkJ3qBF5DrUmrFTth2-I9gsuj6DtTS2gGpUwRNrl-2OYIIzFZvHNy_bfuAp7IkTzvFoz-LJZHpbR6j4P2vwTO/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; Get-help nuget         
&lt;/code&gt;&lt;/pre&gt;
Ayuda de los comandos de NuGet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f0f0f0; border: 1px dashed rgb(204, 204, 204); font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; width: 646.46875px;&quot;&gt;&lt;code style=&quot;word-wrap: normal;&quot;&gt; install-package jquery
&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
Instala la última versión del paquete&lt;/div&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjy326eXRSaiw6RK8BkOG__G8X-xq077XF77w5luBmF9mwLLVXLsP5hXXVtkJ3qBF5DrUmrFTth2-I9gsuj6DtTS2gGpUwRNrl-2OYIIzFZvHNy_bfuAp7IkTzvFoz-LJZHpbR6j4P2vwTO/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; install-package jquery -Version 1.7.2
&lt;/code&gt;&lt;/pre&gt;
Instala una versión específica del paquete&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjy326eXRSaiw6RK8BkOG__G8X-xq077XF77w5luBmF9mwLLVXLsP5hXXVtkJ3qBF5DrUmrFTth2-I9gsuj6DtTS2gGpUwRNrl-2OYIIzFZvHNy_bfuAp7IkTzvFoz-LJZHpbR6j4P2vwTO/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; get-package jquery
&lt;/code&gt;&lt;/pre&gt;
Lista de los paquetes&amp;nbsp;instalados&amp;nbsp;que contienen tanto en la descripción como en el ID del paquete la palabra ‘jquery’
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjy326eXRSaiw6RK8BkOG__G8X-xq077XF77w5luBmF9mwLLVXLsP5hXXVtkJ3qBF5DrUmrFTth2-I9gsuj6DtTS2gGpUwRNrl-2OYIIzFZvHNy_bfuAp7IkTzvFoz-LJZHpbR6j4P2vwTO/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; get-package id:jquery
&lt;/code&gt;&lt;/pre&gt;
Lista de los paquetes&amp;nbsp;instalados&amp;nbsp;que contienen el ID del paquete la palabra ‘jquery’&amp;nbsp;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjy326eXRSaiw6RK8BkOG__G8X-xq077XF77w5luBmF9mwLLVXLsP5hXXVtkJ3qBF5DrUmrFTth2-I9gsuj6DtTS2gGpUwRNrl-2OYIIzFZvHNy_bfuAp7IkTzvFoz-LJZHpbR6j4P2vwTO/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; Get-package -updates
&lt;/code&gt;&lt;/pre&gt;
Lista de los paquetes instalados que tienen &amp;nbsp;una nueva versión.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjy326eXRSaiw6RK8BkOG__G8X-xq077XF77w5luBmF9mwLLVXLsP5hXXVtkJ3qBF5DrUmrFTth2-I9gsuj6DtTS2gGpUwRNrl-2OYIIzFZvHNy_bfuAp7IkTzvFoz-LJZHpbR6j4P2vwTO/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; get-package –ListAvailable 
&lt;/code&gt;&lt;/pre&gt;
Lista de todos los paquetes disponibles en NuGet&amp;nbsp;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjy326eXRSaiw6RK8BkOG__G8X-xq077XF77w5luBmF9mwLLVXLsP5hXXVtkJ3qBF5DrUmrFTth2-I9gsuj6DtTS2gGpUwRNrl-2OYIIzFZvHNy_bfuAp7IkTzvFoz-LJZHpbR6j4P2vwTO/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; get-package -Listavailable –filter jquery 
&lt;/code&gt;&lt;/pre&gt;
Lista de todos los paquetes de NuGet que contienen tanto en el ID como en la descripción la palabra jquery&lt;br /&gt;
&amp;nbsp;
&lt;br /&gt;
&lt;pre style=&quot;background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjy326eXRSaiw6RK8BkOG__G8X-xq077XF77w5luBmF9mwLLVXLsP5hXXVtkJ3qBF5DrUmrFTth2-I9gsuj6DtTS2gGpUwRNrl-2OYIIzFZvHNy_bfuAp7IkTzvFoz-LJZHpbR6j4P2vwTO/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; get-package -Listavailable –filter id: jquery 
&lt;/code&gt;&lt;/pre&gt;
Lista de todos los paquetes de NuGet que contienen en el ID la palabra jquery
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjy326eXRSaiw6RK8BkOG__G8X-xq077XF77w5luBmF9mwLLVXLsP5hXXVtkJ3qBF5DrUmrFTth2-I9gsuj6DtTS2gGpUwRNrl-2OYIIzFZvHNy_bfuAp7IkTzvFoz-LJZHpbR6j4P2vwTO/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; get-package -Listavailable –filter jquery –AllVersions 
&lt;/code&gt;&lt;/pre&gt;
Lista de todos los paquetes de NuGet con sus versiones disponibles que contienen tanto en el ID como en la descripción la palabra jquery
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f0f0f0; background-position: initial initial; background-repeat: initial initial; border: 1px dashed rgb(204, 204, 204); height: auto; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; font-family: arial; font-size: 12px; line-height: 20px; word-wrap: normal;&quot;&gt; Get-Package -ListAvailable -filter jquery -allversions |?{$id -eq &#39;jquery&#39;}&lt;/code&gt;&lt;code style=&quot;white-space: normal; word-wrap: normal;&quot;&gt;&lt;span style=&quot;font-family: Times New Roman;&quot;&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
Lista de todos los paquetes de NuGet con sus versiones disponibles que contienen en el ID la palabra jquery&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjy326eXRSaiw6RK8BkOG__G8X-xq077XF77w5luBmF9mwLLVXLsP5hXXVtkJ3qBF5DrUmrFTth2-I9gsuj6DtTS2gGpUwRNrl-2OYIIzFZvHNy_bfuAp7IkTzvFoz-LJZHpbR6j4P2vwTO/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; Update-Package jquery 
&lt;/code&gt;&lt;/pre&gt;
Actualiza JQuery a la última versiónReinstala el paquete jquery&lt;br /&gt;
&lt;pre style=&quot;background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjy326eXRSaiw6RK8BkOG__G8X-xq077XF77w5luBmF9mwLLVXLsP5hXXVtkJ3qBF5DrUmrFTth2-I9gsuj6DtTS2gGpUwRNrl-2OYIIzFZvHNy_bfuAp7IkTzvFoz-LJZHpbR6j4P2vwTO/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; update-package jQuery -version 1.7.2
&lt;/code&gt;&lt;/pre&gt;
Actualiza el paquete JQuery a una versión determinada&lt;br /&gt;
&lt;pre style=&quot;background-color: #f0f0f0; border: 1px dashed rgb(204, 204, 204); font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; width: 646.46875px;&quot;&gt;&lt;code style=&quot;word-wrap: normal;&quot;&gt; update-package jQuery -safe
&lt;/code&gt;&lt;/pre&gt;
Actualiza la revisión del paquete JQuery sin pasar de major-minor. Esto significa que, en el caso que tengamos JQuery 1.7.0, se actualizará a 1.7.2 y no a versiones superiores.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: #f0f0f0; border: 1px dashed rgb(204, 204, 204); font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; width: 646.46875px;&quot;&gt;&lt;code style=&quot;word-wrap: normal;&quot;&gt; Update-Package -Reinstall  
&lt;/code&gt;&lt;/pre&gt;
Reinstala todos los paquetes instalados en la solución&lt;br /&gt;
&lt;pre style=&quot;background-color: #f0f0f0; border: 1px dashed rgb(204, 204, 204); font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; width: 646.46875px;&quot;&gt;&lt;code style=&quot;word-wrap: normal;&quot;&gt; Update-Package jquery -Reinstall  
&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;code style=&quot;word-wrap: normal;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;Reinstala jquery&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjy326eXRSaiw6RK8BkOG__G8X-xq077XF77w5luBmF9mwLLVXLsP5hXXVtkJ3qBF5DrUmrFTth2-I9gsuj6DtTS2gGpUwRNrl-2OYIIzFZvHNy_bfuAp7IkTzvFoz-LJZHpbR6j4P2vwTO/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; uninstall-package jquery 
&lt;/code&gt;&lt;/pre&gt;
Desinstala JQuery&lt;br /&gt;
&lt;pre style=&quot;background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjy326eXRSaiw6RK8BkOG__G8X-xq077XF77w5luBmF9mwLLVXLsP5hXXVtkJ3qBF5DrUmrFTth2-I9gsuj6DtTS2gGpUwRNrl-2OYIIzFZvHNy_bfuAp7IkTzvFoz-LJZHpbR6j4P2vwTO/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt; uninstall-package jquery –Force 
&lt;/code&gt;&lt;/pre&gt;
Fuerza la desinstalación de JQuery, saltándose las dependencias.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Espero que os sea de utilidad.&lt;br /&gt;
&lt;br /&gt;
Saludos.</content><link rel='replies' type='application/atom+xml' href='http://www.overflowexception.es/feeds/7610356342542146550/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/855032494846532188/7610356342542146550?isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/7610356342542146550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/7610356342542146550'/><link rel='alternate' type='text/html' href='http://www.overflowexception.es/2013/10/comandos-de-nuget.html' title='Comandos de NuGet'/><author><name>Juan Manuel Fenoll</name><uri>http://www.blogger.com/profile/14376120768475916211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Zj12pCzcjsFNTvQfGGXLhjiurNjl4SWTr--uvnUt2X9m8WccIERoz_QP2N3B7STx2YvcAI9QfeprQxFTTsCDtzDIO4f1y-RrNesiEpgArwqqSLPa5ejNwupLa7H6Tp4/s220/Imagen+007.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-855032494846532188.post-2499157071531641446</id><published>2013-07-26T12:48:00.003+02:00</published><updated>2013-10-22T08:52:14.928+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CVS"/><title type='text'>Problemas con los iconos del TortoiseCVS - TortoiseSVN - Dropbox</title><content type='html'>Seguramente os habrá pasado instalar una aplicación que gestione archivos, y que de repente, en el Explorador de Windows, &amp;nbsp;desaparezcan los iconos que tenía otra aplicación, o no aparezcan los iconos de la aplicación que hayáis instalado.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Causa:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;El “Icon overlay” es una forma de gestionar el explorador de
Windows los iconos que diferentes aplicaciones usan para mostrar el estado de
los ficheros.&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Dropbox, Skydrive, TortoiseCVS, entre otros, usan esta forma
de gestionar los iconos.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjR6IGj1wsDHJmVNED7x8q_mwEH77z8cI0MHzUPJadF9vSDoGOe60i62p9Y9a7omGg7dCYbeWoYA4PwC9h-QV8t4zbkmo5sLN1QONmcorR-85PT2oS-3VRfDBeSGHAn3f77Oe4CoB2-LTAy/s1600/Iconos.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjR6IGj1wsDHJmVNED7x8q_mwEH77z8cI0MHzUPJadF9vSDoGOe60i62p9Y9a7omGg7dCYbeWoYA4PwC9h-QV8t4zbkmo5sLN1QONmcorR-85PT2oS-3VRfDBeSGHAn3f77Oe4CoB2-LTAy/s1600/Iconos.png&quot; /&gt;&lt;/a&gt;El “Icon overlay”, descontando los iconos que usa el
Explorador de Windows, tiene soporte para 11 iconos más (15 en total), y se los
tienen que repartir las aplicaciones que están instaladas que usen este método.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Solución:&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
En el Regedit, en la siguiente ruta,&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: #EEEEEE; line-height: 13.5pt; margin-bottom: 7.5pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 10.5pt;&quot;&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\ShellIconOverlayIdentifiers&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
se encuentran la definición de los iconos. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Para asignar los iconos que le quedan por asignar, el explorador de Windows se coge la lista de forma
alfabética. Fijaos que “ SkyDrivePro” conoce esta problemática, y se añade un
espacio delante para figurar de los primeros.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Tortoise, en cambio, aparecerá de los últimos de la lista, y
no tendrá derecho a “iconito”, por lo que aparece en el explorador de Windows
con los iconos por defecto.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnffEbwU0O8GvDp7rPYsxuZwuDl0McB5BpXHSoPK6GraOaxFq3n3F-0HuibPvS4nI7ZHyi4DAGNYJQbe0H_PcsC_i33mYUkDj-3AysiJtZsQINNJHhBLilizzemfj-HQulwTDr_Sv9VCeQ/s1600/RegeditAntes.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnffEbwU0O8GvDp7rPYsxuZwuDl0McB5BpXHSoPK6GraOaxFq3n3F-0HuibPvS4nI7ZHyi4DAGNYJQbe0H_PcsC_i33mYUkDj-3AysiJtZsQINNJHhBLilizzemfj-HQulwTDr_Sv9VCeQ/s320/RegeditAntes.png&quot; width=&quot;212&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
La solución es, con mucho cuidado, renombrar las carpetas que no usemos a
z_ para dejar primero a los que queremos usar. (O renombrar a 01_*, 02_*, 03_* para asignar el orden que queramos)&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLR9gqi_NHuCf27k-hzB2kAgolek6up79HtV6yLFPcyitx6G7xbscZ7UpCEu1PGG_xSFKbR_ME-wxQlRfDM0Wd-8do2RuwD325TXk3TLqDKcQZWVZeopihxWQ-cekqIBrNLXxkCFesnkq9/s1600/RegeditDespues.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLR9gqi_NHuCf27k-hzB2kAgolek6up79HtV6yLFPcyitx6G7xbscZ7UpCEu1PGG_xSFKbR_ME-wxQlRfDM0Wd-8do2RuwD325TXk3TLqDKcQZWVZeopihxWQ-cekqIBrNLXxkCFesnkq9/s320/RegeditDespues.png&quot; width=&quot;217&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Una vez efectuado esto, reiniciamos el equipo y ya deberían de aparecer los iconos que hemos querido que aparecieran.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Saludos.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.overflowexception.es/feeds/2499157071531641446/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/855032494846532188/2499157071531641446?isPopup=true' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/2499157071531641446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/2499157071531641446'/><link rel='alternate' type='text/html' href='http://www.overflowexception.es/2013/07/problemas-con-los-iconos-del.html' title='Problemas con los iconos del TortoiseCVS - TortoiseSVN - Dropbox'/><author><name>Juan Manuel Fenoll</name><uri>http://www.blogger.com/profile/14376120768475916211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Zj12pCzcjsFNTvQfGGXLhjiurNjl4SWTr--uvnUt2X9m8WccIERoz_QP2N3B7STx2YvcAI9QfeprQxFTTsCDtzDIO4f1y-RrNesiEpgArwqqSLPa5ejNwupLa7H6Tp4/s220/Imagen+007.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjR6IGj1wsDHJmVNED7x8q_mwEH77z8cI0MHzUPJadF9vSDoGOe60i62p9Y9a7omGg7dCYbeWoYA4PwC9h-QV8t4zbkmo5sLN1QONmcorR-85PT2oS-3VRfDBeSGHAn3f77Oe4CoB2-LTAy/s72-c/Iconos.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-855032494846532188.post-2540517929311121744</id><published>2013-03-27T22:36:00.000+01:00</published><updated>2013-10-22T08:52:21.445+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Windows"/><title type='text'>Mantenimiento y limpieza de Windows</title><content type='html'>&lt;span style=&quot;color: #222222; font-family: Arial, sans-serif;&quot;&gt;He
escrito una pequeña guía a nivel básico para aquellos que andáis algo perdidos en
informática, para que mantengáis vuestro Windows en el mejor estado posible.&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;b&gt;&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 18.0pt; line-height: 115%;&quot;&gt;Lo primero, COPIAS DE SEGURIDAD&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;u1:p&gt;&lt;/u1:p&gt;

&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;Y no me
cansaré de repetirlo. Un disco duro puede estropearse, y siempre perdemos cosas
importantes como fotos, documentos, etc.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 13.5pt; line-height: 115%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;Que se
estropeen 2 discos a la vez, es bastante menos probable.&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 13.5pt; line-height: 115%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;Solución
sencilla: Los archivos siempre por duplicado; tener un disco de trabajo (el mismo del equipo), y usar
otro medio de respaldo (disco duro extraíble, otro disco duro dentro del
equipo, Dropbox u otras soluciones cloud, etc). Si os llega la economía como
para tener almacenamientos NAS en Raid, mejor que mejor.&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 13.5pt; line-height: 115%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;Cada semana o
cada mes, copiamos la información que nos interesa guardar del disco de trabajo al de respaldo.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 13.5pt; line-height: 115%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;Para
facilitaros la tarea de la copia, recomiendo tener 2 directorios: Uno con los
datos más críticos, y otro directorio con datos que no os suponga una tragedia
perderlos&amp;nbsp;&amp;nbsp;(Música, Videos, aplicaciones, etc...)&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 13.5pt; line-height: 115%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;Así, la
carpeta de datos críticos tendrá menos tamaño y se podrá copiar mejor.&lt;/span&gt;&lt;span style=&quot;font-size: 13.5pt; line-height: 115%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;Existen
programas como&amp;nbsp;&lt;a href=&quot;http://www.cobiansoft.com/&quot;&gt;Cobian Backup&lt;/a&gt;&amp;nbsp;(en&amp;nbsp;&lt;a href=&quot;http://www.softonic.com/windows/copias-de-seguridad&quot;&gt;Softonic&lt;/a&gt;&amp;nbsp;hay
bastantes más) que te automatizan el proceso de copia.&lt;/span&gt;&lt;span style=&quot;font-size: 13.5pt; line-height: 115%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 18.0pt; line-height: 115%;&quot;&gt;Lo segundo, MANTENIMIENTO y LIMPIEZA&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 13.5pt; line-height: 115%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;Los programas
que considero imprescindibles son: Un antivirus, un limpiador de temporales &amp;nbsp;y
un anti-malware,&lt;/span&gt;&lt;span style=&quot;font-size: 13.5pt; line-height: 115%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;Para estos 3
tipos de programas, los que he usado y me ha dado buenos resultados son:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 13.5pt; line-height: 115%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;- Antivirus:&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://avast.softonic.com/descargar?ptn=avast&quot;&gt;AVAST&amp;nbsp;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 13.5pt; line-height: 115%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;- Limpiador
de temporales y de registro:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 13.5pt; line-height: 115%;&quot;&gt;&lt;a href=&quot;http://www.piriform.com/ccleaner&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11.0pt; line-height: 115%;&quot;&gt;CCLEANER&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;- Limpiador
de malwares y spywares:&amp;nbsp;&lt;a href=&quot;http://es.malwarebytes.org/&quot;&gt;MALWAREBYTES&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 13.5pt; line-height: 115%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;En&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://www.softonic.com/&quot;&gt;Softonic&lt;/a&gt;,
buscando por categorías, podemos ver los que más se han descargado semanalmente
y así poder probar otros. &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 13.5pt; line-height: 115%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;Ojo con las
instalaciones de Softonic: Si le damos Siguiente-Siguiente- nos va a instalar
programas que no necesitamos, así como barras de navegadores. Fijaos bien y
leer la instalación. En Instalación rápida, nos instalará estos ad-wares. En
Instalación personalizada, podremos desmarcar las casillas para que no nos
instale nada más que lo que hemos escogido.&lt;/span&gt;&lt;span style=&quot;font-size: 13.5pt; line-height: 115%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;Limpieza
de Windows&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 13.5pt; line-height: 115%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;Una vez
tenemos instalado el MalwareBytes, el Avast y el CCleaner, los actualizamos para estar
seguros de tener la última versión y que están actualizados.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-89txRpPmxUbTdoqZgauGpC07p11-LXE6vIVjRlNGpT2QeLpx3OHTB8meX44UeR7lZzAxZaSx59pvzaDC6mA9SaShzgZ5NnxyrUKjR9sS2ZjDxfQW-GZtzsNKmUDzE2brWydojCE7wUmZ/s1600/Imagen+1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;477&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-89txRpPmxUbTdoqZgauGpC07p11-LXE6vIVjRlNGpT2QeLpx3OHTB8meX44UeR7lZzAxZaSx59pvzaDC6mA9SaShzgZ5NnxyrUKjR9sS2ZjDxfQW-GZtzsNKmUDzE2brWydojCE7wUmZ/s640/Imagen+1.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-ASj9cJMPiVJlm7buxbSKzPfFluvWHxtJXzGu6V1kNMmc2PlLPNg5UGhSEXbcfrpfHSMbWzO530R0bw6_bRkxcu9-ogqifEDMD2ohzr1jZzigq-eUrEpcEX1exZHHU8tTDkUkK9G_w0QY/s1600/Imagen+2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;441&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-ASj9cJMPiVJlm7buxbSKzPfFluvWHxtJXzGu6V1kNMmc2PlLPNg5UGhSEXbcfrpfHSMbWzO530R0bw6_bRkxcu9-ogqifEDMD2ohzr1jZzigq-eUrEpcEX1exZHHU8tTDkUkK9G_w0QY/s640/Imagen+2.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&amp;nbsp;&lt;span style=&quot;font-size: 13.5pt; line-height: 115%;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;MalwareBytes&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;A
continuación, apagaremos el equipo y arrancamos en modo Seguro o Prueba de
fallos. Esto lo hacemos para evitar que tengamos un virus en memoria y que se
haga “invisible” a los ojos del escaneador.&lt;/span&gt;&lt;span style=&quot;font-size: 13.5pt; line-height: 115%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;Aquí tenéis
unos enlaces que muestran cómo hacerlo.&lt;/span&gt;&lt;span style=&quot;font-size: 13.5pt; line-height: 115%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-size: 13.5pt; line-height: 115%;&quot;&gt;&lt;a href=&quot;http://cert.inteco.es/Proteccion/Recuperacion_de_sistemas/Inicio_a_prueba_de_fallos/&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11.0pt; line-height: 115%;&quot;&gt;http://cert.inteco.es/Proteccion/Recuperacion_de_sistemas/Inicio_a_prueba_de_fallos/&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;Si no os
funciona de esta forma, probad esta otra&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;&lt;a href=&quot;http://es.kioskea.net/faq/82-iniciar-windows-en-modo-seguro-a-prueba-de-fallos&quot;&gt;http://es.kioskea.net/faq/82-iniciar-windows-en-modo-seguro-a-prueba-de-fallos&lt;/a&gt;&lt;u1:p&gt;&lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;Una
vez arrancado, ejecutar en MalwareBytes un análisis rápido.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;Si
salen resultados con malware, seleccionar todos y borrarlos&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHEEtzmLCzVbnTWc-8XKwxX5dSuKYtQ0j7oU6keHSBbYLFRhW9ns7HQFIpe2nZIfRzWukH2CqnRJNpxL-LDjuTQ1yKHtKdKQ4QlVQTTE3M2bQJusmXCGvc2WsqmkbHHXE4P4S8cOqKw_UK/s1600/Imagen+11.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;492&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHEEtzmLCzVbnTWc-8XKwxX5dSuKYtQ0j7oU6keHSBbYLFRhW9ns7HQFIpe2nZIfRzWukH2CqnRJNpxL-LDjuTQ1yKHtKdKQ4QlVQTTE3M2bQJusmXCGvc2WsqmkbHHXE4P4S8cOqKw_UK/s640/Imagen+11.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;&lt;b&gt;AVAST&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #222222; font-family: Arial, sans-serif;&quot;&gt;Aprovecharemos que tenemos el equipo en modo &quot;A Prueba de Fallos&quot; para pasar un escaneo con el Avast&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMnyDqeEnOBlayXSP0jCCUreraLidM1To5NLvE2FEMW8ndlV3IUjlpEJ-daHMTyPSpM_CWW-K7XOJ5_OmxCiKPpMxd8R9MkgjtrcIl5JjeD4yDegTADzwQzqNRk3wtsW5HWjtMKLJliIb6/s1600/Imagen12.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;454&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMnyDqeEnOBlayXSP0jCCUreraLidM1To5NLvE2FEMW8ndlV3IUjlpEJ-daHMTyPSpM_CWW-K7XOJ5_OmxCiKPpMxd8R9MkgjtrcIl5JjeD4yDegTADzwQzqNRk3wtsW5HWjtMKLJliIb6/s640/Imagen12.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;color: #222222; font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;Volvemos
a arrancar el equipo en modo normal&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;Ccleaner&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;Arrancamos
el CCLEANER&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;En
“Limpiador”, elegiremos que nos limpie más o menos lo que aparece en las
imágenes adjuntas. No he elegido ni los historiales ni las cookies ni los
documentos ya que esto nos borraría las listas de los archivos abiertos
recientemente, las urls recién escritas en los historiales de los navegadores,
etc.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi402yPKqgKD1kMUOJJWYHnHIjSFtYVQFtIhp6W5j8Im9QGpR-6VYyo-SyehQ8RMZSDOPgPtAgGdZsNh8hwA3ohRH6WFqC8kg5zmIRuRry0h00liMAiRYixXGlCFlCAAbMcYAnRtLOrvZxN/s1600/Imagen+3.png&quot; imageanchor=&quot;1&quot; style=&quot;font-size: 18px; line-height: 20px; margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi402yPKqgKD1kMUOJJWYHnHIjSFtYVQFtIhp6W5j8Im9QGpR-6VYyo-SyehQ8RMZSDOPgPtAgGdZsNh8hwA3ohRH6WFqC8kg5zmIRuRry0h00liMAiRYixXGlCFlCAAbMcYAnRtLOrvZxN/s640/Imagen+3.png&quot; width=&quot;312&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiu4XVfcfazEg18AwQjHT80P6av1EyeHN7-AIAVmCQ0BfORQyIElDwnnj0UhvaBkzjBDJoMpoepm5Z_Df44vOTMgMFk4GykI58XmFdcKPoyt8DCBNqb-7t7Ul_7lmttWVuJJ0d3jzDjsAp-/s1600/Imagen+4.png&quot; imageanchor=&quot;1&quot; style=&quot;font-size: 18px; line-height: 20px; margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiu4XVfcfazEg18AwQjHT80P6av1EyeHN7-AIAVmCQ0BfORQyIElDwnnj0UhvaBkzjBDJoMpoepm5Z_Df44vOTMgMFk4GykI58XmFdcKPoyt8DCBNqb-7t7Ul_7lmttWVuJJ0d3jzDjsAp-/s640/Imagen+4.png&quot; width=&quot;228&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;Una
vez termine de analizar, pulsamos sobre “ejecutar el limpiador”&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrYkSb8SHfS0qJn1I92rD4tX_-rUDJFb8VhdaoLf0zJyowcjFQQpCJwSNucCVsR0arKW9va9boVcuwREzrc37kCQbDisnuSzHgWUp5HcddwzKz7NAKFzV5hK_WZ6nbtlQkQzDJolZtMzMZ/s1600/Imagen+5.png&quot; imageanchor=&quot;1&quot; style=&quot;font-size: 18px; line-height: 20px; margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;428&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrYkSb8SHfS0qJn1I92rD4tX_-rUDJFb8VhdaoLf0zJyowcjFQQpCJwSNucCVsR0arKW9va9boVcuwREzrc37kCQbDisnuSzHgWUp5HcddwzKz7NAKFzV5hK_WZ6nbtlQkQzDJolZtMzMZ/s640/Imagen+5.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: Arial, sans-serif;&quot;&gt;Ahora, en la sección de Registro, pulsamos en “buscar problemas”, y luego en “Reparar seleccionadas”.&amp;nbsp;&amp;nbsp;Luego pulsaremos sobre “Reparar todas las seleccionadas”.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: Arial, sans-serif;&quot;&gt;Conviene guardarnos una copia de seguridad de los cambios del registro. Es un ficherito con extensión “reg” con el que podemos revertir cambios (ejecutándolo desde el Explorador de Windows) si la limpieza del registro ha borrado algo que no tenía que haber borrado.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #222222; font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyB0Xt3r_MzbTUtX2E2cEDwLNDsRGM2pDR2AujlDulSm6LsYV_R6ULN9ctdi76hVkF3iCA7xOuMuOM4S75p7EP9lJYB8f12kq0EK3ERBELGhk8vxy5s3xuMV79-IFIpiE0aRh_t595VdYH/s1600/Imagen+7.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; font-size: 18px; line-height: 20px; margin-bottom: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;432&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyB0Xt3r_MzbTUtX2E2cEDwLNDsRGM2pDR2AujlDulSm6LsYV_R6ULN9ctdi76hVkF3iCA7xOuMuOM4S75p7EP9lJYB8f12kq0EK3ERBELGhk8vxy5s3xuMV79-IFIpiE0aRh_t595VdYH/s640/Imagen+7.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin2HCgqbP9Zs0vq8xqDH3Y0EOwRzHa30HboGHSJL2fCiGaBeI6xFKEkurtvq0bzYUaNYl2aI3bYWpKZ12md3J4BzOMRL3NKHYQmt4xoj_FSvzyfgzUdr-6Svy9lIraFuDYwmnQAfvRb7AH/s1600/Imagen+10.png&quot; imageanchor=&quot;1&quot; style=&quot;font-size: 18px; line-height: 20px; margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;430&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin2HCgqbP9Zs0vq8xqDH3Y0EOwRzHa30HboGHSJL2fCiGaBeI6xFKEkurtvq0bzYUaNYl2aI3bYWpKZ12md3J4BzOMRL3NKHYQmt4xoj_FSvzyfgzUdr-6Svy9lIraFuDYwmnQAfvRb7AH/s640/Imagen+10.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;Defrag&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;Por
último, podemos defragmentar el disco duro. Es un proceso que suele tardar, por
lo que recomiendo dejarlo en marcha por la noche, o cuando vayas a salir.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;Reordena
los archivos que están separados o fragmentados, optimizando algo más el
sistema de archivos.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;Esto
lo podéis arrancar desde el Explorador de Archivos, botón derecho sobre la
unidad C: , &amp;nbsp;propiedades, herramientas.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8wM7ehAutk84agXD20NgTa8CjtqyZeR8t0g8eaVMMng8g5dqf7bUW6yh7oIluqmS3-dUQBZjPaGEEaw6YppBfepyJZWomJOHX73OyAbxrl0Ybr7KhXioirLuCx7pGUIkkPFMWFlf8zVhD/s1600/Imagen+9.png&quot; imageanchor=&quot;1&quot; style=&quot;font-size: 18px; line-height: 20px; margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8wM7ehAutk84agXD20NgTa8CjtqyZeR8t0g8eaVMMng8g5dqf7bUW6yh7oIluqmS3-dUQBZjPaGEEaw6YppBfepyJZWomJOHX73OyAbxrl0Ybr7KhXioirLuCx7pGUIkkPFMWFlf8zVhD/s640/Imagen+9.png&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 18.0pt; line-height: 115%;&quot;&gt;Lo último, el formateo&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;Si con todo
lo expuesto aquí no conseguís solucionar el problema de lentitud, errores, etc,
podéis seguir buscando la solución a vuestro problema usando tu amigo Google. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;Pero
tampoco perdáis mucho tiempo si no lo conseguís fácilmente: Un formateo (reinstalación del
sistema operativo) deja el PC nuevo como el primer día.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;Acordaos
de guardar vuestros datos en sitio seguro antes de formatear, y apuntaos la marca y modelo de tarjeta gráfica y tarjeta de red para buscar los drivers adecuados si no los detecta la reinstalación.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;Hay miles de páginas en Internet que explican cómo formatear el equipo.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: #222222; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;&quot;&gt;Saludos y espero que os sea útil&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.overflowexception.es/feeds/2540517929311121744/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/855032494846532188/2540517929311121744?isPopup=true' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/2540517929311121744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/2540517929311121744'/><link rel='alternate' type='text/html' href='http://www.overflowexception.es/2013/03/mantenimiento-y-limpieza-de-windows.html' title='Mantenimiento y limpieza de Windows'/><author><name>Juan Manuel Fenoll</name><uri>http://www.blogger.com/profile/14376120768475916211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Zj12pCzcjsFNTvQfGGXLhjiurNjl4SWTr--uvnUt2X9m8WccIERoz_QP2N3B7STx2YvcAI9QfeprQxFTTsCDtzDIO4f1y-RrNesiEpgArwqqSLPa5ejNwupLa7H6Tp4/s220/Imagen+007.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-89txRpPmxUbTdoqZgauGpC07p11-LXE6vIVjRlNGpT2QeLpx3OHTB8meX44UeR7lZzAxZaSx59pvzaDC6mA9SaShzgZ5NnxyrUKjR9sS2ZjDxfQW-GZtzsNKmUDzE2brWydojCE7wUmZ/s72-c/Imagen+1.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-855032494846532188.post-2224558767888848602</id><published>2013-03-15T12:41:00.001+01:00</published><updated>2013-10-22T08:52:28.279+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Errores"/><category scheme="http://www.blogger.com/atom/ns#" term="IIS"/><title type='text'>No se puede cargar el archivo o ensamblado &#39;XXX&#39; ni una de sus dependencias. Se ha intentado cargar un programa con un formato incorrecto</title><content type='html'>Hoy, haciendo una instalación de un webservice en un Windows Server 2008 con IIS7 recién instalado, me he encontrado con el siguiente error:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: red; font-family: Arial, Helvetica, sans-serif; font-size: large;&quot;&gt;Error de servidor en la aplicación &#39;/xxx&#39;.&lt;/span&gt;&lt;br /&gt;
&lt;i style=&quot;color: #990000; font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/i&gt;
&lt;i style=&quot;color: #990000; font-family: Arial, Helvetica, sans-serif;&quot;&gt;No se puede cargar el archivo o ensamblado &#39;BL&#39; ni una de sus dependencias. 
Se ha intentado cargar un programa con un formato incorrecto&lt;/i&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;color: #990000; font-family: Arial, Helvetica, sans-serif; font-size: small;&quot;&gt;&lt;i style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Por defecto, el IIS7 viene configurado para ejecutar sólo aplicaciones de 64 bits, por lo que si subimos al IIS algún ensamblado compilado en 32 bits, va a dar este error.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Esto se soluciona tocando la configuración avanzada del grupo de aplicación, y habilitando las aplicaciones de 32 bits.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdmTaEUTW1vHtFa_eJwk8J6fTg7fTmgGXMAfz4rX-WVhm6IhjUHLwb_edyQnExEO2hfP1tW3Cmv4xyL3-Flv_tcy9NM2OXFdny_E8P-g9FB2piLZnS_gXRiG_Cdg7Odikv21jD9nxPNHL8/s1600/Imagen+1.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;382&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdmTaEUTW1vHtFa_eJwk8J6fTg7fTmgGXMAfz4rX-WVhm6IhjUHLwb_edyQnExEO2hfP1tW3Cmv4xyL3-Flv_tcy9NM2OXFdny_E8P-g9FB2piLZnS_gXRiG_Cdg7Odikv21jD9nxPNHL8/s640/Imagen+1.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipg6-tZAJkvCvGYAf9Pnt0eN63DKpwGikYvwj-gZELcGBGY-rXlpYOfJ9m_bPa2oWEn9Z2m-3jNy_ILUiwvErcMM006hp1qlarkofgDxOvY6JfwpA7xIXzbSBkhmeHmYR2XDHfj4bgIsfX/s1600/Imagen+2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipg6-tZAJkvCvGYAf9Pnt0eN63DKpwGikYvwj-gZELcGBGY-rXlpYOfJ9m_bPa2oWEn9Z2m-3jNy_ILUiwvErcMM006hp1qlarkofgDxOvY6JfwpA7xIXzbSBkhmeHmYR2XDHfj4bgIsfX/s640/Imagen+2.png&quot; width=&quot;530&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Saludos.&amp;nbsp;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.overflowexception.es/feeds/2224558767888848602/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/855032494846532188/2224558767888848602?isPopup=true' title='30 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/2224558767888848602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/2224558767888848602'/><link rel='alternate' type='text/html' href='http://www.overflowexception.es/2013/03/no-se-puede-cargar-el-archivo-o.html' title='No se puede cargar el archivo o ensamblado &#39;XXX&#39; ni una de sus dependencias. Se ha intentado cargar un programa con un formato incorrecto'/><author><name>Juan Manuel Fenoll</name><uri>http://www.blogger.com/profile/14376120768475916211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Zj12pCzcjsFNTvQfGGXLhjiurNjl4SWTr--uvnUt2X9m8WccIERoz_QP2N3B7STx2YvcAI9QfeprQxFTTsCDtzDIO4f1y-RrNesiEpgArwqqSLPa5ejNwupLa7H6Tp4/s220/Imagen+007.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdmTaEUTW1vHtFa_eJwk8J6fTg7fTmgGXMAfz4rX-WVhm6IhjUHLwb_edyQnExEO2hfP1tW3Cmv4xyL3-Flv_tcy9NM2OXFdny_E8P-g9FB2piLZnS_gXRiG_Cdg7Odikv21jD9nxPNHL8/s72-c/Imagen+1.png" height="72" width="72"/><thr:total>30</thr:total></entry><entry><id>tag:blogger.com,1999:blog-855032494846532188.post-5742828895668458977</id><published>2013-03-08T23:47:00.002+01:00</published><updated>2013-10-22T08:52:34.328+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="nuget"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio"/><title type='text'>Reinstalar paquetes de NuGet</title><content type='html'>&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitSzVh8INk3NCodx1Te1nHdbHmnNs6nfET2tFEKzWy0Q6oBXtJ5VMIAh-Z_rYyqed5lFJtUm5GeiVQDztrGINRwPxqwg933JbWoSxYvzFnDfpguJRmbPAVdBcV2JJps4NNbsuNyu5qrcbD/s1600/Pollo+mc+nugget-6+piezas+(mc+donald)-6-big.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitSzVh8INk3NCodx1Te1nHdbHmnNs6nfET2tFEKzWy0Q6oBXtJ5VMIAh-Z_rYyqed5lFJtUm5GeiVQDztrGINRwPxqwg933JbWoSxYvzFnDfpguJRmbPAVdBcV2JJps4NNbsuNyu5qrcbD/s1600/Pollo+mc+nugget-6+piezas+(mc+donald)-6-big.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
En el equipo en el que normalmente trabajo tenía un proyecto de prueba con varios paquetes cargados con el NuGet.&lt;br /&gt;
&lt;br /&gt;
( Si todavía no sabéis qué es NuGet, os recomiendo encarecidamente que os leáis algunos enlaces introductorios como&amp;nbsp;&lt;a href=&quot;http://panicoenlaxbox.blogspot.com.es/2011/07/nuget.html&quot;&gt;este&lt;/a&gt;&amp;nbsp;o&amp;nbsp;&lt;a href=&quot;http://www.programacion.com/articulo/nuget_administracion_de_paquetes_con_visual_studio_866&quot;&gt;este&lt;/a&gt;&amp;nbsp;y os lancéis a usarlo; &amp;nbsp;habrá un antes y un después en vuestra vida &amp;nbsp;:))&lt;br /&gt;
&lt;br /&gt;
Los proyectos de pruebas y formaciones los tengo en una carpeta Dropbox, así los tengo sincronizados y disponibles en cualquier equipo.&lt;br /&gt;
&lt;br /&gt;
El problema ha venido con un paquete que me funcionaba en el equipo que lo había descargado y no me funcionaba en otro. Pensé en quitarlo y volverlo a poner, pero debido al anidamiento de dependencias de paquetes, me parecía una faena un poco pesada.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKyXckNftdeveNyd6tK_RPAlvaDh_s7CNlbR5vtrnv9on19jX7hYntuc2Q-h2l0ZjFkGUyIP6QABN9VSta27u7MxI4XKl7dqLk7tgbp_z7bXQFN_N4JKeYpCZy58vTVCtkalOBj8zm4z9j/s1600/Imagen+1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;244&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKyXckNftdeveNyd6tK_RPAlvaDh_s7CNlbR5vtrnv9on19jX7hYntuc2Q-h2l0ZjFkGUyIP6QABN9VSta27u7MxI4XKl7dqLk7tgbp_z7bXQFN_N4JKeYpCZy58vTVCtkalOBj8zm4z9j/s640/Imagen+1.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
En la consola de NuGet estaba la solución:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;PM&amp;gt; Update-Package &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
Actualiza los paquetes instalados con la última versión&lt;br /&gt;
&lt;br /&gt;
Y este es &quot;el bueno&quot;:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;PM&amp;gt; Update-Package &lt;b&gt;-Reinstall &amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
Reinstala los paquetes instalados con la última versión, respetando las dependencias&lt;br /&gt;
&lt;br /&gt;
Esta opción está disponible a partir de NuGert 2.1, según reza el workitem de codeplex:&amp;nbsp;&lt;a href=&quot;http://nuget.codeplex.com/workitem/1779&quot;&gt;http://nuget.codeplex.com/workitem/1779&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Saludos.</content><link rel='replies' type='application/atom+xml' href='http://www.overflowexception.es/feeds/5742828895668458977/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/855032494846532188/5742828895668458977?isPopup=true' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/5742828895668458977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/5742828895668458977'/><link rel='alternate' type='text/html' href='http://www.overflowexception.es/2013/03/reinstalar-paquetes-de-nuget.html' title='Reinstalar paquetes de NuGet'/><author><name>Juan Manuel Fenoll</name><uri>http://www.blogger.com/profile/14376120768475916211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Zj12pCzcjsFNTvQfGGXLhjiurNjl4SWTr--uvnUt2X9m8WccIERoz_QP2N3B7STx2YvcAI9QfeprQxFTTsCDtzDIO4f1y-RrNesiEpgArwqqSLPa5ejNwupLa7H6Tp4/s220/Imagen+007.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitSzVh8INk3NCodx1Te1nHdbHmnNs6nfET2tFEKzWy0Q6oBXtJ5VMIAh-Z_rYyqed5lFJtUm5GeiVQDztrGINRwPxqwg933JbWoSxYvzFnDfpguJRmbPAVdBcV2JJps4NNbsuNyu5qrcbD/s72-c/Pollo+mc+nugget-6+piezas+(mc+donald)-6-big.jpg" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-855032494846532188.post-6364132889747485316</id><published>2013-03-04T11:31:00.001+01:00</published><updated>2013-10-22T08:52:42.294+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Crystal Reports"/><title type='text'>Error &quot;No se ha podido cargar el informe&quot; en Crystal Reports para VS2010</title><content type='html'>&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Hemos tenido este error al cambiar una aplicación a un servidor
recién instalado:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;i&gt;&amp;nbsp;No se ha podido
cargar el informe.&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;at
CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp;at
CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename,
OpenReportMethod openMethod, Int16 parentJob)&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; at
CrystalDecisions.CrystalReports.Engine.ReportClass.Load(String reportName,
OpenReportMethod openMethod, Int16 parentJob)&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; at
CrystalDecisions.CrystalReports.Engine.ReportDocument.EnsureLoadReport()&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; at
CrystalDecisions.CrystalReports.Engine.ReportDocument.get_FormatEngine()&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; at
CrystalDecisions.CrystalReports.Engine.ReportDocument.ExportToStream(ExportOptions
options)&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; at
CrystalDecisions.CrystalReports.Engine.ReportDocument.ExportToStream(ExportFormatType
formatType)&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp; at
BL.BL_InformeCaratula.DameInforme(String vista, CErrores&amp;amp;amp;
errores, String[] param) in ………&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
El servidor estaba recién instalado, con su base de datos
restaurada,&amp;nbsp; su Framework 4.0, su Runtime
de Crystal Reports, la aplicación publicada en el IIS, todo parecía correcto, …
pero seguía dando error.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Lo único que habíamos cambiado de una instalación estándar
era el usuario de suplantación ASP.NET en el IIS, que no era el típico IUSR_XX,
sino un usuario de dominio.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Ahí estaba el problema.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Cuando hacemos la instrucción Informe. SetDataSource(ds), el
Crystal Reports crea un report en el directorio temporal. Al cambiar el usuario
del IIS, ya no tenía permisos en la carpeta c:/ Windows /Temp.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Solución: dar permisos al usuario del IIS en c:/Windows / Temp.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Saludos&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.overflowexception.es/feeds/6364132889747485316/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/855032494846532188/6364132889747485316?isPopup=true' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/6364132889747485316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/6364132889747485316'/><link rel='alternate' type='text/html' href='http://www.overflowexception.es/2013/03/error-no-se-ha-podido-cargar-el-informe.html' title='Error &quot;No se ha podido cargar el informe&quot; en Crystal Reports para VS2010'/><author><name>Juan Manuel Fenoll</name><uri>http://www.blogger.com/profile/14376120768475916211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Zj12pCzcjsFNTvQfGGXLhjiurNjl4SWTr--uvnUt2X9m8WccIERoz_QP2N3B7STx2YvcAI9QfeprQxFTTsCDtzDIO4f1y-RrNesiEpgArwqqSLPa5ejNwupLa7H6Tp4/s220/Imagen+007.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-855032494846532188.post-4269050157681345776</id><published>2013-01-08T15:54:00.001+01:00</published><updated>2013-10-22T08:52:47.649+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AX2012"/><title type='text'>Usar DataSets .NET desde AX2012</title><content type='html'>&lt;span style=&quot;font-family: Calibri;&quot;&gt;En las devoluciones de los servicios web, lo normal es
devolver datos primitivos (string, int32, array de strings) , así hacemos un servicio compatible con diferentes&amp;nbsp;plataformas.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Para devolver “tablas” de datos, y si la lógica la tenemos en .NET, nos puede ser más cómodo
devolver datasets, pero tenemos el&amp;nbsp;inconveniente de estar “complicando” a clientes que no sean&amp;nbsp;.NET.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Por ejemplo, para consumir un servicio web que devolvía un DataSet
de .NET en versiones anteriores de Axapta, teníamos que crearnos un clase que
nos parseara el dataset a un contenedor. (Un servicio web SOAP devuelve XML)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;En esta versión se incluyen unas librerías que nos simulan el ADO, con lo que podemos manipular el dataset “casi” igual que desde .NET. (con
algo más de “fontanería”)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;¿Un ejemplo?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Partiendo del &lt;a href=&quot;http://www.overflowexception.es/2013/01/consumir-servicios-web-desde-ax2012.html&quot;&gt;artículo anterior&lt;/a&gt;, prepararemos un proyecto
que haga referencia a un servicio web que devuelva un dataset.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Luego, nos crearemos un job que use ese proyecto.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDRQD1uqR286E3No3iEbX6NopfputALLAMEfTdQ46PRfYuqfDhPee0W5yInj_kupRSL7dwgcYaTTWo-m881eBp1yDp4V_BlObG52m4VDRnBX4oMjKww58yjS6b3qvhuzj_-hgk4rnfWglR/s1600/21.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;388&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDRQD1uqR286E3No3iEbX6NopfputALLAMEfTdQ46PRfYuqfDhPee0W5yInj_kupRSL7dwgcYaTTWo-m881eBp1yDp4V_BlObG52m4VDRnBX4oMjKww58yjS6b3qvhuzj_-hgk4rnfWglR/s640/21.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;mso-fareast-language: ES; mso-no-proof: yes;&quot;&gt;&lt;v:shapetype coordsize=&quot;21600,21600&quot; filled=&quot;f&quot; id=&quot;_x0000_t75&quot; o:preferrelative=&quot;t&quot; o:spt=&quot;75&quot; path=&quot;m@4@5l@4@11@9@11@9@5xe&quot; stroked=&quot;f&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;
 &lt;v:stroke joinstyle=&quot;miter&quot;&gt;
 &lt;v:formulas&gt;
  &lt;v:f eqn=&quot;if lineDrawn pixelLineWidth 0&quot;&gt;
  &lt;v:f eqn=&quot;sum @0 1 0&quot;&gt;
  &lt;v:f eqn=&quot;sum 0 0 @1&quot;&gt;
  &lt;v:f eqn=&quot;prod @2 1 2&quot;&gt;
  &lt;v:f eqn=&quot;prod @3 21600 pixelWidth&quot;&gt;
  &lt;v:f eqn=&quot;prod @3 21600 pixelHeight&quot;&gt;
  &lt;v:f eqn=&quot;sum @0 0 1&quot;&gt;
  &lt;v:f eqn=&quot;prod @6 1 2&quot;&gt;
  &lt;v:f eqn=&quot;prod @7 21600 pixelWidth&quot;&gt;
  &lt;v:f eqn=&quot;sum @8 21600 0&quot;&gt;
  &lt;v:f eqn=&quot;prod @7 21600 pixelHeight&quot;&gt;
  &lt;v:f eqn=&quot;sum @10 21600 0&quot;&gt;
 &lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;
 &lt;v:path gradientshapeok=&quot;t&quot; o:connecttype=&quot;rect&quot; o:extrusionok=&quot;f&quot;&gt;
 &lt;o:lock aspectratio=&quot;t&quot; v:ext=&quot;edit&quot;&gt;
&lt;/o:lock&gt;&lt;/v:path&gt;&lt;/v:stroke&gt;&lt;/span&gt;&lt;/v:shapetype&gt;&lt;v:shape id=&quot;Imagen_x0020_4&quot; o:spid=&quot;_x0000_i1025&quot; style=&quot;height: 258pt; mso-wrap-style: square; visibility: visible; width: 425.25pt;&quot; type=&quot;#_x0000_t75&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file:///C:\Users\jmf\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png&quot;&gt;
&lt;/v:imagedata&gt;&lt;/span&gt;&lt;/v:shape&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Podemos recuperar los datos según el nombre de la columna, o
por índice de columna.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Un saludo.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.overflowexception.es/feeds/4269050157681345776/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/855032494846532188/4269050157681345776?isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/4269050157681345776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/4269050157681345776'/><link rel='alternate' type='text/html' href='http://www.overflowexception.es/2013/01/usar-datasets-net-desde-ax2012.html' title='Usar DataSets .NET desde AX2012'/><author><name>Juan Manuel Fenoll</name><uri>http://www.blogger.com/profile/14376120768475916211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Zj12pCzcjsFNTvQfGGXLhjiurNjl4SWTr--uvnUt2X9m8WccIERoz_QP2N3B7STx2YvcAI9QfeprQxFTTsCDtzDIO4f1y-RrNesiEpgArwqqSLPa5ejNwupLa7H6Tp4/s220/Imagen+007.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDRQD1uqR286E3No3iEbX6NopfputALLAMEfTdQ46PRfYuqfDhPee0W5yInj_kupRSL7dwgcYaTTWo-m881eBp1yDp4V_BlObG52m4VDRnBX4oMjKww58yjS6b3qvhuzj_-hgk4rnfWglR/s72-c/21.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-855032494846532188.post-5158804077237898172</id><published>2013-01-08T14:28:00.000+01:00</published><updated>2013-10-22T08:52:56.846+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AX2012"/><title type='text'>Consumir servicios web desde AX2012</title><content type='html'>&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Tenemos unos servicios webs ya creados y queremos
consumirlos dentro de AX2012.&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Para ello, crearemos un proyecto “dll” con las referencias
web que queramos usar, y ese proyecto lo añadiremos al AOT y podremos usar sus servicios web desde&amp;nbsp;X++.&lt;/span&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;strong&gt;Añadiendo un proyecto VS&amp;nbsp;a&amp;nbsp;AX2012&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;En VS2010, creamos un proyecto de tipo “Biblioteca de clases”,y añadiremos las referencias web que queramos usar.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwed47dTwkl954zGdYa_ZIXwtWVBaE2ZPu0ZQqqLfKzcRsoxIWYIV2TL2PJ32gTy5RASf5pUieKHRtqb6IKdv713Wi4adiYk-3GLPI9K3VGgwLo0uh-WGRrl5POSeVU37ZsktMfvgfZH_9/s1600/1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwed47dTwkl954zGdYa_ZIXwtWVBaE2ZPu0ZQqqLfKzcRsoxIWYIV2TL2PJ32gTy5RASf5pUieKHRtqb6IKdv713Wi4adiYk-3GLPI9K3VGgwLo0uh-WGRrl5POSeVU37ZsktMfvgfZH_9/s640/1.png&quot; width=&quot;445&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;En mi caso, quiero consumir servicios web SOAP
creados en .NET 2.0 (no servicios WCF). &amp;nbsp;Debemos de agregar la referencia web de
esta forma:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWhagsSrcft0Id39R0zBzZPfSR2u1Nleev-D7-gBZFTBC02R8RYqA2RPFFW-TQRscTsrfHb7ZhGdiQEeTGgxpH1a7hF4DEITSaFDRlXz6D0lRDqOeCN2nX957U21Ow4wgp_h9VtwIY45Pl/s1600/2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;523&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWhagsSrcft0Id39R0zBzZPfSR2u1Nleev-D7-gBZFTBC02R8RYqA2RPFFW-TQRscTsrfHb7ZhGdiQEeTGgxpH1a7hF4DEITSaFDRlXz6D0lRDqOeCN2nX957U21Ow4wgp_h9VtwIY45Pl/s640/2.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjN24uruEi36aUvod1Ff3NOFQESGk0gFFdYsudu7_KA08SBlBa_gzTfqwwtPrlHEr-_roXurrKRehYxSJu7F_c8qBPm-WPBzQch_BNnYQx0y-PXF_hZZP-MIHgPmelVhsja8ymmzMkSHQDe/s1600/3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;593&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjN24uruEi36aUvod1Ff3NOFQESGk0gFFdYsudu7_KA08SBlBa_gzTfqwwtPrlHEr-_roXurrKRehYxSJu7F_c8qBPm-WPBzQch_BNnYQx0y-PXF_hZZP-MIHgPmelVhsja8ymmzMkSHQDe/s640/3.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMLzsbV2t0b6VHhLKQ3OZ2nHFibPP4fW9FPxXkufzUo2HTYKAnjDquC-na1IZQSCoR51svXPwi1Hw8WJ_9JIPeGQYNwHac3vZhbVMpRK09cA49zEugx8kXMWakK4KmV3nxZwFBgjJiJpb4/s1600/4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;460&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMLzsbV2t0b6VHhLKQ3OZ2nHFibPP4fW9FPxXkufzUo2HTYKAnjDquC-na1IZQSCoR51svXPwi1Hw8WJ_9JIPeGQYNwHac3vZhbVMpRK09cA49zEugx8kXMWakK4KmV3nxZwFBgjJiJpb4/s640/4.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Con esto, tendremos un proyecto de biblioteca de clases que
hace referencia a un servicio web. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqpJU7NXAjcqVS-aXAV-tE0xxtveaDRJxJjbhqw-pl3igJizX0l7-e8-_x5rbJO9LUOILZTyVPn6X4ke8IIVqbq-_2sCuI6VCk6MZpEhukjflPnxuy_R8wRSi434cJ2FduAJRKTHHGiKHb/s1600/5.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqpJU7NXAjcqVS-aXAV-tE0xxtveaDRJxJjbhqw-pl3igJizX0l7-e8-_x5rbJO9LUOILZTyVPn6X4ke8IIVqbq-_2sCuI6VCk6MZpEhukjflPnxuy_R8wRSi434cJ2FduAJRKTHHGiKHb/s1600/5.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Si quisiérais hacerlo con un servicio WCF, el procedimiento
debería ser el mismo, salvo que en la ventana “agregar referencia de servicio”
deberíamos escribir la url del servicio WCF, y el servicio se crearía en el nodo Service Reference en vez de Web Reference&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Una vez añadidos los servicios que queremos usar, debemos
añadir este proyecto al AOT.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Para ello, botón derecho en el proyecto y “Añadir proyecto
al AOT”.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiekJtjYhlj1uLP453XdosMa8-bpdh0FnG1E1-Ss4598Q-K09_QS_JwgSFgrYxWCErDjLfb4CugKZuKybFI9z8ihgE7gxHlZINsRb8-maW2e8OLNfYelP7Q6j1bDzbWrM0YK1dfXwxbP0HK/s1600/6.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiekJtjYhlj1uLP453XdosMa8-bpdh0FnG1E1-Ss4598Q-K09_QS_JwgSFgrYxWCErDjLfb4CugKZuKybFI9z8ihgE7gxHlZINsRb8-maW2e8OLNfYelP7Q6j1bDzbWrM0YK1dfXwxbP0HK/s640/6.png&quot; width=&quot;426&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Si nos vamos al AOT en AX2012, podemos ver en Visual Studio
Projects / C Sharp Projects, el proyecto que hemos creado anteriormente.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWeubWJ-gzJiPHrZzcGH8d5yyvj0Yw-Qsib08OiPE7C2AwP00B2REiykxElh4GxYnBR3LXpKYvHoKPeQFwNiIGXGSrqqajrWeUMFMThIeSNod3jvjBFQVxXUgLzjSBjkvbLANBPMI7wExy/s1600/7.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;388&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWeubWJ-gzJiPHrZzcGH8d5yyvj0Yw-Qsib08OiPE7C2AwP00B2REiykxElh4GxYnBR3LXpKYvHoKPeQFwNiIGXGSrqqajrWeUMFMThIeSNod3jvjBFQVxXUgLzjSBjkvbLANBPMI7wExy/s400/7.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUA5sstDJ9UGq38DRf3uvgpjQtzg2EtXnQiLv-JPbPW_OS1wgySZi-j_PwzQnNCIk3sVsgb2alN3eYJZjhDSvfNcj2_6PkInHHSBRAKZ5MeyCXDQ96WGZKZEL1oY3b8Qigb0wyIorTezBZ/s1600/8.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUA5sstDJ9UGq38DRf3uvgpjQtzg2EtXnQiLv-JPbPW_OS1wgySZi-j_PwzQnNCIk3sVsgb2alN3eYJZjhDSvfNcj2_6PkInHHSBRAKZ5MeyCXDQ96WGZKZEL1oY3b8Qigb0wyIorTezBZ/s400/8.png&quot; width=&quot;312&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Añadiendo un nuevo servicio
web&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Si queremos añadir un nuevo servicio al proyecto creado anteriormente, no hace falta que lo tengamos creado ya que está integrado en el AOT.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Nos vamos al proyecto que contiene los web
services, botón derecho &amp;gt; Editar.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Se nos abre el VS2010 con el proyecto cargado, añadimos las
referencias que queramos añadir, y compilamos el proyecto.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Hecho este paso, en el AOT, si restauramos el proyecto, ya
nos debe de aparecer el nuevo servicio.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Modificación de un
servicio web&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Añadir un proyecto al AOT, lo que hace es crear un código “proxy”
dentro de AX2012 para que se pueda usar desde X++. Esa clase proxy va mapeada a
llamadas a la DLL, que dentro tienen otra clase proxy con llamadas al web
service SOAP.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Si cambia el Web Service, se rompen esos mapeos y da error.
Para ello, hay que actualizar el proxy de dentro del proyecto DLL.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Para ello, editamos el proyecto&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;(Visual Studio Projects &amp;gt; C Sharp Projects
&amp;gt; Proyecto de WS &amp;gt; botón derecho &amp;gt; Editar )&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Nos situamos sobre el proxy que queremos actualizar, y botón
derecho &amp;gt; actualizar referencia web. Este paso vuelve a generar el proxy.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHco6FupieZNB5Zf9TJMNU33xQLmj6BW_DI6n3pijSVElJgm9Zv3fo1ICBabzkcnrKz1jzRLO8xsI7ilF98-GJ9iha5cE8lGF6DJUYQutooy1Ec8uGanXF3_V5_W5GgU2hd_G1cGmSDwDJ/s1600/13.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;321&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHco6FupieZNB5Zf9TJMNU33xQLmj6BW_DI6n3pijSVElJgm9Zv3fo1ICBabzkcnrKz1jzRLO8xsI7ilF98-GJ9iha5cE8lGF6DJUYQutooy1Ec8uGanXF3_V5_W5GgU2hd_G1cGmSDwDJ/s400/13.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Compilamos y cerramos proyecto.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;strong&gt;Consumiendo el servicio web&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;strong&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Para consumir el proyecto, relizaremos el ejemplo con un job.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTuN7VY-5gzm89blcO0YvirvDgXD-3F3IppP47usRAIoKY1bVrjneUMXwfksPS6V4mLL-0Y4r5bPvJuZFh2YdbjCgHi6UcJLYrzrji5h6JutNA3B5z9cmPNUU7woTSufgEMZ1tvo3iET4m/s1600/10.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTuN7VY-5gzm89blcO0YvirvDgXD-3F3IppP47usRAIoKY1bVrjneUMXwfksPS6V4mLL-0Y4r5bPvJuZFh2YdbjCgHi6UcJLYrzrji5h6JutNA3B5z9cmPNUU7woTSufgEMZ1tvo3iET4m/s1600/10.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Mediante el método set_Url, podemos cambiar la URL del
servicio, por lo que nos permite tener webservices de producción y de prueba.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;En el &lt;a href=&quot;http://www.overflowexception.es/2013/01/usar-datasets-net-desde-ax2012.html&quot;&gt;siguiente artículo&lt;/a&gt;, pondré un ejemplo de cómo recuperar información de DataSets de .NET dentro de X++.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Espero que os sirva este ejemplo. Un saludo.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUA5sstDJ9UGq38DRf3uvgpjQtzg2EtXnQiLv-JPbPW_OS1wgySZi-j_PwzQnNCIk3sVsgb2alN3eYJZjhDSvfNcj2_6PkInHHSBRAKZ5MeyCXDQ96WGZKZEL1oY3b8Qigb0wyIorTezBZ/s1600/8.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.overflowexception.es/feeds/5158804077237898172/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/855032494846532188/5158804077237898172?isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/5158804077237898172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/5158804077237898172'/><link rel='alternate' type='text/html' href='http://www.overflowexception.es/2013/01/consumir-servicios-web-desde-ax2012.html' title='Consumir servicios web desde AX2012'/><author><name>Juan Manuel Fenoll</name><uri>http://www.blogger.com/profile/14376120768475916211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Zj12pCzcjsFNTvQfGGXLhjiurNjl4SWTr--uvnUt2X9m8WccIERoz_QP2N3B7STx2YvcAI9QfeprQxFTTsCDtzDIO4f1y-RrNesiEpgArwqqSLPa5ejNwupLa7H6Tp4/s220/Imagen+007.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwed47dTwkl954zGdYa_ZIXwtWVBaE2ZPu0ZQqqLfKzcRsoxIWYIV2TL2PJ32gTy5RASf5pUieKHRtqb6IKdv713Wi4adiYk-3GLPI9K3VGgwLo0uh-WGRrl5POSeVU37ZsktMfvgfZH_9/s72-c/1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-855032494846532188.post-6856264546960340238</id><published>2012-12-16T20:27:00.002+01:00</published><updated>2013-10-22T08:53:10.222+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="c#"/><title type='text'>funciones Lazy en c#, o ejecución de funciones perezosas</title><content type='html'>&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
En alguna ocasión puede que os haga falta definir una llamada
a una función, y ejecutarla en otro momento de la aplicación.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;(Cachés, funciones con muchos bucles, &amp;nbsp;etc.)&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
En .NET 4.0, la clase Lazy permite hacer esto.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Según el &lt;a href=&quot;http://msdn.microsoft.com/es-es/library/dd642331.aspx&quot;&gt;MSDN&lt;/a&gt;,&amp;nbsp; se utiliza una instancia de Lazy&amp;lt;T&amp;gt;
para diferir la creación de un objeto grande o con uso intensivo de recursos, o
la ejecución de una tarea con uso intensivo de recursos, especialmente cuando
puede que no se produzca esa creación o ejecución durante la duración del
programa.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
Veamos un ejemplo , que
es donde mejor se ve.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;static&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt; &lt;span style=&quot;color: blue;&quot;&gt;void&lt;/span&gt; Main(&lt;span style=&quot;color: blue;&quot;&gt;string&lt;/span&gt;[] args)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #2b91af; font-family: Consolas; font-size: 9.5pt;&quot;&gt;Lazy&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Consolas; font-size: 9.5pt;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;gt; fn= &lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Consolas; font-size: 9.5pt;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: #2b91af; font-family: Consolas; font-size: 9.5pt;&quot;&gt;Lazy&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Consolas; font-size: 9.5pt;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;gt;(()=&amp;gt;Sumar(3,4));&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&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=&quot;color: #2b91af; font-family: Consolas; font-size: 9.5pt;&quot;&gt;Console&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;.WriteLine(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Función
definida, pero no ejecutada&quot;&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&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 style=&quot;color: #2b91af;&quot;&gt;Console&lt;/span&gt;.WriteLine(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Valor
creado: &quot;&lt;/span&gt;+ fn.IsValueCreated);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #2b91af; font-family: Consolas; font-size: 13px;&quot;&gt;Console&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 13px;&quot;&gt;.WriteLine(&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: Consolas; font-size: 13px;&quot;&gt;&quot;Valor: &quot;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 13px;&quot;&gt;+ fn.&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;Value);&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&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 style=&quot;color: #2b91af;&quot;&gt;Console&lt;/span&gt;.WriteLine(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Valor
creado: &quot;&lt;/span&gt; +&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 13px;&quot;&gt;fn&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;.IsValueCreated);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt; Sumar(&lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt; a, &lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt; b)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&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 style=&quot;color: blue;&quot;&gt;return&lt;/span&gt; a + b;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&amp;nbsp;Definimos&amp;nbsp;&lt;span style=&quot;font-family: Consolas; font-size: 13px;&quot;&gt;fn&amp;nbsp;&lt;/span&gt;como una llamada a Sumar (3, 4) , pero no se procesa hasta que no se llame a&amp;nbsp;&lt;span style=&quot;font-family: Consolas; font-size: 13px;&quot;&gt;fn&lt;/span&gt;.value.&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;Si copiáis el código en el VS y depuráis, lo veréis mejor.&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;Saludos.&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.overflowexception.es/feeds/6856264546960340238/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/855032494846532188/6856264546960340238?isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/6856264546960340238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/6856264546960340238'/><link rel='alternate' type='text/html' href='http://www.overflowexception.es/2012/12/lazy-functions-o-ejecucion-de-funciones.html' title='funciones Lazy en c#, o ejecución de funciones perezosas'/><author><name>Juan Manuel Fenoll</name><uri>http://www.blogger.com/profile/14376120768475916211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Zj12pCzcjsFNTvQfGGXLhjiurNjl4SWTr--uvnUt2X9m8WccIERoz_QP2N3B7STx2YvcAI9QfeprQxFTTsCDtzDIO4f1y-RrNesiEpgArwqqSLPa5ejNwupLa7H6Tp4/s220/Imagen+007.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-855032494846532188.post-1799459103956947773</id><published>2012-10-01T16:10:00.000+02:00</published><updated>2013-10-22T08:53:15.039+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AX2012"/><title type='text'>Diagrama de tablas en Ax2012</title><content type='html'>Hola.&lt;br /&gt;
&lt;br /&gt;
Estamos &quot;lidiando&quot; con la estructura de tablas y las relaciones que tiene el nuevo AX2012.&lt;br /&gt;
&lt;br /&gt;
La teoría y la recomendación es que no se acceda a las tablas directamente, ya que hay unas opciones muy válidas para&amp;nbsp;&lt;a href=&quot;http://www.overflowexception.es/2012/09/tipos-de-integracion-vs2010-ax2012.html&quot; target=&quot;_blank&quot;&gt;integrar aplicaciones&amp;nbsp;en Ax2012 como Interop, AIF y Business Connector&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Pero si necesitáis atacar a las tablas directamente, no queda otra que comprender su estructura.&lt;br /&gt;
Para ello,&amp;nbsp;comparto (con permiso de mis compañeros), los diagramas de relaciones de los módulos que hemos ido necesitando.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Nombres y direcciones&lt;/h2&gt;
&lt;div&gt;
Como sabéis, en AX2012 se ha creado un AddressBook que ha normalizado todos los nombres y direcciones en tablas relacionadas. Este es el diagrama que relaciona estas tablas:&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdh8sH_Ns3OxOgeKoFghrdvn_ToOfkv0CWlJdsWv-pNnU0ymwLQFnV0JPIvntNyXbqfUF1JddgFiuWlwJWjcu_8iMlwSYvLLlu0wauQl9GqLZpW7k03_hcVeWAYMFPqV6oTve8GGfF2NsM/s1600/Party.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;364&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdh8sH_Ns3OxOgeKoFghrdvn_ToOfkv0CWlJdsWv-pNnU0ymwLQFnV0JPIvntNyXbqfUF1JddgFiuWlwJWjcu_8iMlwSYvLLlu0wauQl9GqLZpW7k03_hcVeWAYMFPqV6oTve8GGfF2NsM/s640/Party.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h4&gt;
Tablas que intervienen:&lt;/h4&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;DirPartyTable (&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dirpartytable.aspx&quot; target=&quot;_blank&quot;&gt;Enlace&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;DirPartyLocation&amp;nbsp;(&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dirpartylocation.aspx&quot; target=&quot;_blank&quot;&gt;Enlace&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;LogisticsLocation&amp;nbsp;(&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/logisticslocation.aspx&quot; target=&quot;_blank&quot;&gt;Enlace&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;LogisticsElectronicAddress&amp;nbsp;(&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/logisticselectronicaddress.aspx&quot; target=&quot;_blank&quot;&gt;Enlace&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;LogisticsPostalAddress&amp;nbsp;(&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/logisticspostaladdress.aspx&quot; target=&quot;_blank&quot;&gt;Enlace&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h4&gt;
Vistas que intervienen:&lt;/h4&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;DirPartyContactInfoView&amp;nbsp;(&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dirpartycontactinfoview.aspx&quot; target=&quot;_blank&quot;&gt;Enlace&lt;/a&gt;&amp;nbsp;)&lt;/li&gt;
&lt;li&gt;DirPartyPostalAddressView&amp;nbsp;(&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dirpartypostaladdressview.aspx&quot; target=&quot;_blank&quot;&gt;Enlace&lt;/a&gt;&amp;nbsp;)&lt;/li&gt;
&lt;li&gt;DirPartyNameView&amp;nbsp;(&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dirpartynameview.aspx&quot; target=&quot;_blank&quot;&gt;Enlace&lt;/a&gt;&amp;nbsp;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2&gt;
&lt;/h2&gt;
&lt;h2&gt;
&lt;/h2&gt;
&lt;h2&gt;
&lt;/h2&gt;
&lt;h2&gt;
Dimensiones&lt;/h2&gt;
&lt;h3&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXqriD-P865cVO5kd4_BGXAvozoWghaf3mbfYBPD4YCOm_27EYQK6v5_GW7-8m7Jm7CMe56vUS6bS7H9otRcw2nbgv6c5XtJLW91IcvLrEVTZh-d6FYqSu7q5dKuI4aGijlpt3XZ4R4VEe/s1600/Dimensions.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; font-size: medium; font-weight: normal; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;217&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXqriD-P865cVO5kd4_BGXAvozoWghaf3mbfYBPD4YCOm_27EYQK6v5_GW7-8m7Jm7CMe56vUS6bS7H9otRcw2nbgv6c5XtJLW91IcvLrEVTZh-d6FYqSu7q5dKuI4aGijlpt3XZ4R4VEe/s640/Dimensions.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;h4&gt;
Tablas que intervienen:&lt;/h4&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;DimensionAttributeValue&amp;nbsp;(&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dimensionattributevalue.aspx&quot; target=&quot;_blank&quot;&gt;Enlace&lt;/a&gt;&amp;nbsp;)&lt;/li&gt;
&lt;li&gt;DimensionAttributeValueSetItem&amp;nbsp;(&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dimensionattributevaluesetitem.aspx&quot; target=&quot;_blank&quot;&gt;Enlace&lt;/a&gt;&amp;nbsp;)&lt;/li&gt;
&lt;li&gt;DimensionAttribute&amp;nbsp;(&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dimensionattribute.aspx&quot; target=&quot;_blank&quot;&gt;Enlace&lt;/a&gt;&amp;nbsp;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h4&gt;
Vistas que intervienen:&lt;/h4&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;DefaultDimensionView&amp;nbsp;(&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/defaultdimensionview.aspx&quot; target=&quot;_blank&quot;&gt;Enlace&lt;/a&gt;&amp;nbsp;)&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;
Personal, trabajadores y roles de proyecto&lt;/h2&gt;
&lt;h3&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHJ57EO0CkIImThCJGCum-Dgu8laONxLdt62b2q2_WOssIhlGd5tSo0zPbjtFlLEgEQiOLP9PZEWmuSegoqO3A9GFMSrW8JfWhzXo_jYGF3LFik7TB-ajMTg-PecNa4LMfqooYmnIjSeou/s1600/Personal.png&quot; imageanchor=&quot;1&quot; style=&quot;font-size: medium; font-weight: normal; margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;382&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHJ57EO0CkIImThCJGCum-Dgu8laONxLdt62b2q2_WOssIhlGd5tSo0zPbjtFlLEgEQiOLP9PZEWmuSegoqO3A9GFMSrW8JfWhzXo_jYGF3LFik7TB-ajMTg-PecNa4LMfqooYmnIjSeou/s640/Personal.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;h4&gt;
Tablas que intervienen:&lt;/h4&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;UserInfo&amp;nbsp;(&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/gg870453.aspx&quot; target=&quot;_blank&quot;&gt;Enlace&lt;/a&gt;&amp;nbsp;)&lt;/li&gt;
&lt;li&gt;DirPersonUser&amp;nbsp;(&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dirpersonuser.aspx&quot; target=&quot;_blank&quot;&gt;Enlace&lt;/a&gt;&amp;nbsp;)&lt;/li&gt;
&lt;li&gt;DirPerson&amp;nbsp;(&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dirperson.aspx&quot; target=&quot;_blank&quot;&gt;Enlace&lt;/a&gt;&amp;nbsp;)&lt;/li&gt;
&lt;li&gt;HcmWorker&amp;nbsp;(&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/hcmworker.aspx&quot; target=&quot;_blank&quot;&gt;Enlace&lt;/a&gt;&amp;nbsp;)&lt;/li&gt;
&lt;li&gt;HcmPersonProjectRole&amp;nbsp;(&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/hcmpersonprojectrole.aspx&quot; target=&quot;_blank&quot;&gt;Enlace&lt;/a&gt;&amp;nbsp;)&lt;/li&gt;
&lt;li&gt;DirPartyTable&amp;nbsp;(&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dirpartytable.aspx&quot; target=&quot;_blank&quot;&gt;Enlace&lt;/a&gt;&amp;nbsp;)&lt;/li&gt;
&lt;li&gt;DirPartyLocation&amp;nbsp;(&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dirpartylocation.aspx&quot; target=&quot;_blank&quot;&gt;Enlace&lt;/a&gt;&amp;nbsp;)&lt;/li&gt;
&lt;li&gt;LogisticsPostalAddress&amp;nbsp;(&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/logisticspostaladdress.aspx&quot; target=&quot;_blank&quot;&gt;Enlace&lt;/a&gt;&amp;nbsp;)&lt;/li&gt;
&lt;li&gt;LogisticsElectronicAddress&amp;nbsp;(&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/logisticselectronicaddress.aspx&quot; target=&quot;_blank&quot;&gt;Enlace&lt;/a&gt;&amp;nbsp;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Cuentas Contables (antigua LedgerTable)&lt;/h2&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDo80q8WLgeIBH-uH1QVZlMReBEJyT-_Yvked3C36qWso-R2aBK6PeFXwiWMVlp7VbYilfC067Jy2uGlpL5A6kpwZpPAIgGawAySPdX9TQAXl2KEsIVYeHUnpMLHQplczdp8ROKTqvvtU9/s1600/LedgerTable.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;422&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDo80q8WLgeIBH-uH1QVZlMReBEJyT-_Yvked3C36qWso-R2aBK6PeFXwiWMVlp7VbYilfC067Jy2uGlpL5A6kpwZpPAIgGawAySPdX9TQAXl2KEsIVYeHUnpMLHQplczdp8ROKTqvvtU9/s640/LedgerTable.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4&gt;
Tablas que intervienen:&lt;/h4&gt;
&lt;h2&gt;
&lt;/h2&gt;
&lt;h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;MainAccount&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;(&lt;span style=&quot;font-size: small; font-weight: bold;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/mainaccount.aspx&quot;&gt;Enlace&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small; font-weight: normal;&quot;&gt;MainAccountLegalEntity&lt;/span&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;(&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/mainaccountlegalentity.aspx&quot;&gt;Enlace&lt;/a&gt;&lt;/span&gt;&amp;nbsp;)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;DimensionAttribute (&lt;/span&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dimensionattribute.aspx&quot; style=&quot;font-weight: normal;&quot; target=&quot;_blank&quot;&gt;Enlace&lt;/a&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;DimensionAttributeValue&amp;nbsp;(&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dimensionattributevalue.aspx&quot; target=&quot;_blank&quot;&gt;Enlace&lt;/a&gt;)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;DimensionAttributeValueCombination&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;(&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dimensionattributevaluecombination.aspx&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;Enlace&lt;/span&gt;&lt;/a&gt;)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small; font-weight: normal;&quot;&gt;DimensionAttributeValueFinancialStmt&lt;/span&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;(&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dimensionattributevaluefinancialstmt.aspx&quot;&gt;Enlace&lt;/a&gt;&lt;/span&gt;)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/h4&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;
Diarios&amp;nbsp;(antigua LedgerTrans)&lt;/h2&gt;
&lt;div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFf3EUNVjmGUSbNGJP2ACBpBtNaIMg5JPMAqisR5qfWi8hML9fuNx6xUiGwvNuIuNzQyxo2rbZXiC2LSa0YYeieRIaP7eFcOBGE6SgySMH4YVcGvvWXYDB14w4iyhQ1Z6lcQ4SKRoXRn1N/s1600/LedgerTrans.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;502&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFf3EUNVjmGUSbNGJP2ACBpBtNaIMg5JPMAqisR5qfWi8hML9fuNx6xUiGwvNuIuNzQyxo2rbZXiC2LSa0YYeieRIaP7eFcOBGE6SgySMH4YVcGvvWXYDB14w4iyhQ1Z6lcQ4SKRoXRn1N/s640/LedgerTrans.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h4&gt;
&amp;nbsp;Tablas que intervienen:&lt;/h4&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;LedgerEntryJournal&amp;nbsp;(&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ledgerentryjournal.aspx&quot; target=&quot;_blank&quot;&gt;Enlace&lt;/a&gt;&amp;nbsp;)&lt;/li&gt;
&lt;li&gt;GeneralJournalEntry&amp;nbsp;(&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/generaljournalentry.aspx&quot; target=&quot;_blank&quot;&gt;Enlace&lt;/a&gt;&amp;nbsp;)&lt;/li&gt;
&lt;li&gt;SubledgerVoucherGeneralJournalEntry&amp;nbsp;(&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/subledgervouchergeneraljournalentry.aspx&quot; target=&quot;_blank&quot;&gt;Enlace&lt;/a&gt;&amp;nbsp;)&lt;/li&gt;
&lt;li&gt;FiscalCalendarPeriod&amp;nbsp;(&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/fiscalcalendarperiod.aspx&quot; target=&quot;_blank&quot;&gt;Enlace&lt;/a&gt;&amp;nbsp;)&lt;/li&gt;
&lt;li&gt;LedgerEntryJournalizing&amp;nbsp;(&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ledgerentryjournalizing.aspx&quot; target=&quot;_blank&quot;&gt;Enlace&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;GeneralJournalAccountEntry&amp;nbsp;(&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/generaljournalaccountentry.aspx&quot; target=&quot;_blank&quot;&gt;Enlace&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;LedgerEntry&amp;nbsp;(&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ledgerentry.aspx&quot; target=&quot;_blank&quot;&gt;Enlace&lt;/a&gt;&amp;nbsp;)&lt;/li&gt;
&lt;li&gt;TaxTransGeneralJournalAccountEntry&amp;nbsp;(&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/taxtransgeneraljournalaccountentry.aspx&quot; target=&quot;_blank&quot;&gt;Enlace&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;TaxTrans&amp;nbsp;(&lt;a href=&quot;http://msdn.microsoft.com/en-US/library/aa603843(v=AX.10).aspx&quot; target=&quot;_blank&quot;&gt;Enlace&lt;/a&gt;&amp;nbsp;)&lt;/li&gt;
&lt;li&gt;DimensionAttributeValueCombination&amp;nbsp;(&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dimensionattributevaluecombination.aspx&quot; target=&quot;_blank&quot;&gt;Enlace&lt;/a&gt;&amp;nbsp;)&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGYMAT1wuoVUfkurDJ6rJPLlenoIbLPiMb1pQDJbTzrlh22uQasR7KmMJrl4HlefVWJJBjYr7QaKEKrcg7Rk5aRxOKhR1nRqyTohg2B4bX05cBOeuKRPwvb6rYAfC1h_u70oP-pQzhzZEP/s1600/Party.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjOwp-dy2KmT3lW-B08Ub1Rsr8GGxRFgKlQnFV3aoZUPuboC8cZcMwyhoiolzGY6pF_4-PhMB_7XIAuojM0tObt-aVl7xpBxONu-b7fzhqFcacB4ay-k3E_M0gsNGB2WgS4B9u1CIzvkV4/s1600/LedgerTable.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;br /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXqriD-P865cVO5kd4_BGXAvozoWghaf3mbfYBPD4YCOm_27EYQK6v5_GW7-8m7Jm7CMe56vUS6bS7H9otRcw2nbgv6c5XtJLW91IcvLrEVTZh-d6FYqSu7q5dKuI4aGijlpt3XZ4R4VEe/s1600/Dimensions.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;br /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
De momento esto es todo. Si van surgiendo nuevos diagramas los iré subiendo.&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;i&gt;Y si la entrada te ha sido de utilidad, pincha en la publicidad para que &lt;a href=&quot;http://www.google.es/&quot; target=&quot;_blank&quot;&gt;Google &lt;/a&gt;me financie algún café al año. ¡Gracias por adelantado!&lt;/i&gt;&lt;/blockquote&gt;
Saludos!!!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.overflowexception.es/feeds/1799459103956947773/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/855032494846532188/1799459103956947773?isPopup=true' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/1799459103956947773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/1799459103956947773'/><link rel='alternate' type='text/html' href='http://www.overflowexception.es/2012/10/relacion-de-tablas-en-axapta-2012.html' title='Diagrama de tablas en Ax2012'/><author><name>Juan Manuel Fenoll</name><uri>http://www.blogger.com/profile/14376120768475916211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Zj12pCzcjsFNTvQfGGXLhjiurNjl4SWTr--uvnUt2X9m8WccIERoz_QP2N3B7STx2YvcAI9QfeprQxFTTsCDtzDIO4f1y-RrNesiEpgArwqqSLPa5ejNwupLa7H6Tp4/s220/Imagen+007.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdh8sH_Ns3OxOgeKoFghrdvn_ToOfkv0CWlJdsWv-pNnU0ymwLQFnV0JPIvntNyXbqfUF1JddgFiuWlwJWjcu_8iMlwSYvLLlu0wauQl9GqLZpW7k03_hcVeWAYMFPqV6oTve8GGfF2NsM/s72-c/Party.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-855032494846532188.post-8015124026006216227</id><published>2012-09-18T19:17:00.001+02:00</published><updated>2013-10-22T08:53:20.778+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AX2012"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio"/><title type='text'>Tipos de integración VS2010 - AX 2012</title><content type='html'>&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Con motivo de la integración de nuestras aplicaciones .NET
con Microsoft Dynamics AX 2012, he ido resumiendo la información que he ido
leyendo y probando. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;AX2012 proporciona las siguientes formas de integrarse con aplicaciones:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmljF4eilXrF2D0n87y32neK2eTXtErODurNtYX1ZoZUE3D8gPrvu7GpTpukVuHHtMayMZNBn6LncOlCgr-8Dsho-T51LMFSFHpRM1xkFYJnuX4gfVvY6wug5i8Ht1MiIFcI0ZvDBZMJl2/s1600/TiposIntegracion.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;564&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmljF4eilXrF2D0n87y32neK2eTXtErODurNtYX1ZoZUE3D8gPrvu7GpTpukVuHHtMayMZNBn6LncOlCgr-8Dsho-T51LMFSFHpRM1xkFYJnuX4gfVvY6wug5i8Ht1MiIFcI0ZvDBZMJl2/s640/TiposIntegracion.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h2 style=&quot;margin: 10pt 0cm 0pt;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;color: #4f81bd;&quot;&gt;&lt;span style=&quot;font-family: Cambria;&quot;&gt;&lt;span style=&quot;font-size: x-large;&quot;&gt;Managed Interop o Proxy
Classes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;br /&gt;
&lt;h2 style=&quot;margin: 10pt 0cm 0pt;&quot;&gt;
&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/gg879799&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt; line-height: 115%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;http://msdn.microsoft.com/en-us/library/gg879799&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;MsoHyperlink&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt; font-weight: normal; line-height: 115%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;br /&gt;
&lt;h1 style=&quot;margin: 0cm 0cm 0pt;&quot;&gt;
&lt;a href=&quot;http://msdn.microsoft.com/EN-US/library/gg889166&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt; line-height: 115%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;http://msdn.microsoft.com/EN-US/library/gg889166&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;MsoHyperlink&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt; font-weight: normal; line-height: 115%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;mso-ansi-language: EN-US;&quot;&gt;&lt;o:p&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Te permite acceder a las Clases, Tablas y Enums del AOT
(Application Object Tree) de Ax2012 desde Visual Studio a través de Proxys, así
como ver datos de display, métodos, etc... directamente, por lo que tienes un acceso a ALTO
NIVEL a los objetos de Axapta.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Este método de acceso, comparado con el Business Connector,
tiene la ventaja de tener Intellisense de las clases, tablas y enums que vas manejando, así
como la detección de errores por parte del compilador, al ser objetos tipados.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Aquí recomiendo la consulta de &lt;a href=&quot;http://www.overflowexception.es/2012/09/tips-integracion-vs2010-ax2012.html&quot; target=&quot;_blank&quot;&gt;“Tips de integración AX2012”&lt;/a&gt;
si surge algún error.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h3&gt;
Pasos para usar Interop:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;color: #000066; font-size: 10pt; line-height: 115%; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;&lt;span style=&quot;font-size-adjust: none; font-stretch: normal; font: 7pt/normal &amp;quot;Times New Roman&amp;quot;;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Nos creamos un nuevo proyecto en Visual Studio 2010
(en un equipo que tengamos instalado AX2012 con las Developer Tools)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;&lt;span style=&quot;font-size-adjust: none; font-stretch: normal; font: 7pt/normal &amp;quot;Times New Roman&amp;quot;;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;En el proyecto que vayamos a acceder a Ax,
creamos una referencia a &lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;Microsoft.Dynamics.AX.ManagedInterop&lt;/b&gt;
que se ubica en “C:\Program Files (x86)\Microsoft Dynamics AX\60\Client\Bin”&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Botón derecho en el proyecto en el “explorador
de soluciones” -&amp;gt; Add Project1 to AOT.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Se nos habrá creado una ventana “Application
explorer” (que la podemos sacar de Ver &amp;gt; Application Explorer) en la que
tenemos el AOT de AX2012.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; margin: 0cm 0cm 0pt 36pt; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhD6or4j7hg9RAdyqmKnpJXM8ea8XRtDm8jCjd3kxVgFxnQT_gpF7j6cocsG1a2v3ZdMYO5tnRnsXxry6ITaEohbi2rpN0iS25-MH2hoIofsVFtlAm76D5xOFvBdNohsSRfEbxXk_NBut60/s1600/ArbolAOT.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhD6or4j7hg9RAdyqmKnpJXM8ea8XRtDm8jCjd3kxVgFxnQT_gpF7j6cocsG1a2v3ZdMYO5tnRnsXxry6ITaEohbi2rpN0iS25-MH2hoIofsVFtlAm76D5xOFvBdNohsSRfEbxXk_NBut60/s400/ArbolAOT.png&quot; width=&quot;268&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; margin: 0cm 0cm 0pt 36pt; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Elegimos los objetos con los que queremos interactuar del AOT (recuerda: Tablas, clases y enumerados) y los arrastramos al árbol de proyecto en el Explorador de Soluciones de VS2010. Esto nos creará unos proxys con los que podremos trabajar&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;Usaremos los proxys&lt;/li&gt;
&lt;/span&gt;&lt;/ul&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Un ejemplo de uso:&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt 18pt;&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCvAWqL8qPCFwdlM8va64Apr3oAtia_rFtJR-UBp8xicw-bQDW9lY_tZdNNAWYyPpOXf7fQStOv8kcWwmqyUl1yw3pSstCDz07AtArUcAJQIvqbm5sub-oCte1mbZseVUHuja5bgY9DSUY/s1600/Interop.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;125&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCvAWqL8qPCFwdlM8va64Apr3oAtia_rFtJR-UBp8xicw-bQDW9lY_tZdNNAWYyPpOXf7fQStOv8kcWwmqyUl1yw3pSstCDz07AtArUcAJQIvqbm5sub-oCte1mbZseVUHuja5bgY9DSUY/s640/Interop.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;mso-fareast-language: ES; mso-no-proof: yes;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;mso-fareast-language: ES; mso-no-proof: yes;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;mso-fareast-language: ES; mso-no-proof: yes;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;mso-fareast-language: ES; mso-no-proof: yes;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;mso-fareast-language: ES; mso-no-proof: yes;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;mso-fareast-language: ES; mso-no-proof: yes;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;mso-fareast-language: ES; mso-no-proof: yes;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt 18pt;&quot;&gt;
&lt;span style=&quot;mso-fareast-language: ES; mso-no-proof: yes;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Fijaos en&amp;nbsp;el consumo de VendTable. VendTable es el proxy que se ha generado al arrastrar la tabla al árbol de proyecto.&amp;nbsp; Estamos usando el método FindByCompany, y luego estamos recuperando la información de forma tipada, con Intellisense, e incluso, pudiendo llamar a Displays y métoodos.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;mso-fareast-language: ES; mso-no-proof: yes;&quot;&gt;
&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt 18pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2 style=&quot;margin: 10pt 0cm 0pt;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;color: #4f81bd;&quot;&gt;&lt;span style=&quot;font-family: Cambria;&quot;&gt;&lt;span style=&quot;font-size: x-large;&quot;&gt;Business Connector for
.NET&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/aa659581&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;color: blue; font-family: Calibri;&quot;&gt;http://msdn.microsoft.com/en-us/library/aa659581&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;MsoHyperlink&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;mso-ansi-language: EN-US;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;i style=&quot;background-color: yellow;&quot;&gt;NOTA: Se recomiendan los otros tipos de integración, ya que este método se mantiene por compatibilidad con anteriores desarrollos, y no se garantiza su continuidad en futuras versiones.&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Es otro componente que permite accede a los elementos del
AOT, pero sin tener proxys ni tipos, y llamando directamente a sus métodos y propiedades.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Ataca un nivel más bajo que los proxyes de Interop, ya que
los campos display y los métodos hay que llamarlos mediante Call() y no
aparecen integrados dentro de la llamada principal. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;span style=&quot;mso-bidi-font-weight: bold;&quot;&gt;Vuelvo a hacer
referencia a&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;a href=&quot;http://www.overflowexception.es/2012/09/tips-integracion-vs2010-ax2012.html&quot; target=&quot;_blank&quot;&gt;“Tips de integración AX2012”&lt;/a&gt;&amp;nbsp;por &lt;/span&gt;si surge algún error.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h3 style=&quot;margin: 10pt 0cm 0pt;&quot;&gt;
Pasos para usar Business Connector.&lt;/h3&gt;
&lt;div style=&quot;margin: 10pt 0cm 0pt;&quot;&gt;
Son unos
pasos parecidos al Managed Interop.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Nos creamos una solución en Visual Studio 2010 (en un equipo que tengamos instalado AX2012 con las Developer Tools)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;En el proyecto que vayamos a acceder a Ax, creamos una referencia a &lt;/span&gt;&lt;span class=&quot;input1&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Segoe UI&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 9.5pt; line-height: 115%;&quot;&gt;&lt;strong&gt;Microsoft.Dynamics.BusinessConnectorNet.dll&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt; que se ubica en “C:\Program Files (x86)\Microsoft Dynamics AX\60\Client\Bin”&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Botón derecho en el proyecto en el “explorador de soluciones” -&amp;gt; Add Project1 to AOT. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Creamos el código.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmstIYP3XJb5tNrchRjiM-Q1u6nF4mhMo49AXYmOTo0OJZcKrtiiyJ6Cz4tRTrG11S_CKVOF_fpgaPACV7WbsAx0ylJ5ui4AiwAy7ce4nOPDJXFAXF68O4vIQiHm3secI9HjtqNZ2wtEwh/s1600/Business.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;238&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmstIYP3XJb5tNrchRjiM-Q1u6nF4mhMo49AXYmOTo0OJZcKrtiiyJ6Cz4tRTrG11S_CKVOF_fpgaPACV7WbsAx0ylJ5ui4AiwAy7ce4nOPDJXFAXF68O4vIQiHm3secI9HjtqNZ2wtEwh/s640/Business.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Si habéis trabajado con el AxaptaComConnector de la versión
3, esto os recordará su manejo.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;También fijaos que los Displays Name y Email hay que
llamarlos. En el proxy generado de Managed Interop, estas llamadas estan incluidas en el proxy, por lo que el código resultante es más compacto.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #4f81bd; font-family: &amp;quot;Cambria&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt; line-height: 115%; mso-ansi-language: EN-US; mso-ascii-theme-font: major-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-theme-font: major-fareast; mso-hansi-theme-font: major-latin; mso-themecolor: accent1;&quot;&gt;&lt;span style=&quot;font-size: x-large;&quot;&gt;Application
Integration Framework (AIF)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/hh509053&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;color: blue; font-family: Calibri;&quot;&gt;http://msdn.microsoft.com/en-us/library/hh509053&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;MsoHyperlink&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;mso-ansi-language: EN-US;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;a href=&quot;http://axwonders.blogspot.com.es/2012/01/microsoft-dynamics-ax-2012-services-and.html&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;color: blue; font-family: Calibri;&quot;&gt;http://axwonders.blogspot.com.es/2012/01/microsoft-dynamics-ax-2012-services-and.html&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;MsoHyperlink&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;mso-ansi-language: EN-US;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;El AIF es una plataforma que permite interactuar con
cualquier aplicación, ya sea .Net o de otro tipo, ya que la comunicación se
basa en WCF.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;mso-special-character: line-break;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Algunos de estos servicios se pueden publicar en el AOS
(Application Object Server) o en el IIS. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Por buscar símiles, el IIS expone servicios WCF y el AOS
expone los servicios AX2012&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;El AIF se compone de:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Document Services&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Custom Services&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;System Services&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;&lt;span style=&quot;color: #4f81bd; font-family: &amp;quot;Cambria&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt; line-height: 115%; mso-ascii-theme-font: major-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-theme-font: major-fareast; mso-hansi-theme-font: major-latin; mso-themecolor: accent1;&quot;&gt;&lt;span style=&quot;font-size: x-large;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #4f81bd; font-family: &amp;quot;Cambria&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 13pt; line-height: 115%; mso-ascii-theme-font: major-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-theme-font: major-fareast; mso-hansi-theme-font: major-latin; mso-themecolor: accent1;&quot;&gt;&lt;span style=&quot;font-size: x-large;&quot;&gt;Document Services&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Su símil con WCF sería el Contract; o sea, el objeto que se expone al servicio. Se trata de una&amp;nbsp;query autogenerada (query con prefijo AXD&amp;nbsp;) a partir de una entidad determinada.
Microsoft ya ha creado unos 70 documents de las entidades más representativas, a
falta de exponerlos en el AIF. &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Los campos DEL_ de las tablas y los campos con la propiedad &quot;Visible=false&quot; no son incluidos en el documento.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;a href=&quot;http://msdn.microsoft.com/EN-US/library/aa859008&quot;&gt;&lt;span style=&quot;color: blue; font-family: Calibri;&quot;&gt;http://msdn.microsoft.com/EN-US/library/aa859008&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;En el caso de que quisiéramos crear nosotros nuestro propio document Service , se
puede seguir el siguiente walkthrough&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/cc589855.aspx&quot;&gt;&lt;span style=&quot;color: blue; font-family: Calibri;&quot;&gt;http://msdn.microsoft.com/en-us/library/cc589855.aspx&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h3 class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
Pasos para crear un Document Service.&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Creamos la Query (o buscamos la query AXD ya generada que nos cuadre)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Creamos el servicio basándonos en la query
(Espacio de desarrollo &amp;gt; herramientas &amp;gt; Marco de integración de la aplicación &amp;gt; Crear servicio
de documentos), eligiendo los métodos que queremos que nos autogenere (Read, Write, Find...)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigok__d91dTt7KI_t3H_e97XojYb86ncywu4pYCDBIScf7jgoTAJd8P5IoVZQslmzvMUpHkzwCRwWXHgzXkQpwuFlbmM9a8_qaaTPTzBCXcT9HK9aoi2NhM9QTvNxy2u4AZlY7mYAjaK5A/s1600/CrearService.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;521&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigok__d91dTt7KI_t3H_e97XojYb86ncywu4pYCDBIScf7jgoTAJd8P5IoVZQslmzvMUpHkzwCRwWXHgzXkQpwuFlbmM9a8_qaaTPTzBCXcT9HK9aoi2NhM9QTvNxy2u4AZlY7mYAjaK5A/s640/CrearService.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Este paso generará una clase con prefijo AXD y un servicio ya preconfigurado con los métodos que hemos elegido.&lt;/li&gt;
&lt;li&gt;Nos quedará publicarlo; para ello vamos a Service Groups, creamos un nuevo Service Group y añadimos un nuevo nodo por cada servicio que queramos añadir en el Service Group. En propiedades de cada nodo vamos eligiendo el Service que queremos publicar.&lt;/li&gt;
&lt;li&gt;Una vez tengamos todo el Service Group completo, implementaremos.&lt;/li&gt;
&lt;li&gt;Para ver que el servicio está correctamente publicado, lo podremos ver en el espacio de trabajo &amp;gt; Administracion del sistema &amp;gt; Configurar &amp;gt; Services and Application Integration Framework &amp;gt; Puertos de entrada.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjohBqZWkhCg9NUxhXT2byH2Vhy_ikdCdwMcocdETUWWRipqSx7kgv2UJx905ip6XmH5bHxZ0ohaR37K2EwmtVmp-ChzBqw5VLHA2TUKufZ6q5EmwdwQHmpbdMKQHPQP0jIpOML9WcbJl-K/s1600/Servicios.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;486&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjohBqZWkhCg9NUxhXT2byH2Vhy_ikdCdwMcocdETUWWRipqSx7kgv2UJx905ip6XmH5bHxZ0ohaR37K2EwmtVmp-ChzBqw5VLHA2TUKufZ6q5EmwdwQHmpbdMKQHPQP0jIpOML9WcbJl-K/s640/Servicios.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Esto te crea un nuevo servicio de tipo &quot;Base&quot;&amp;nbsp;que es creado con una configuración por defecto. Si queremos configurar el adaptador y poder ajustar más opciones, en esa misma pantalla podríamos eliminar y crear un nuevo puerto de entrada, que sería de modo extendido, y permitiría configurar todos los parámetros posibles (configurar el Binding del WCF)&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
Más info en &lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;a href=&quot;http://msdn.microsoft.com/EN-US/library/hh496418&quot;&gt;&lt;span style=&quot;color: blue; font-family: Calibri;&quot;&gt;http://msdn.microsoft.com/EN-US/library/hh496418&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/aa609947&quot;&gt;&lt;span style=&quot;color: blue; font-family: Calibri;&quot;&gt;http://msdn.microsoft.com/en-us/library/aa609947&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3 class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Tipos de puertos&amp;nbsp;&lt;/h3&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Ya que hemos tocado los puertos, decir que los &lt;span style=&quot;font-family: Calibri;&quot;&gt;InboundPorts reciben peticiones desde fuera de AX y los&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Outbound ports emiten peticiones a otros sistemas.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
Consumo de un Document Service&lt;/h3&gt;
En Visual Studio 2010, nos creamos una referencia de servicio a la dirección que aparece en la imagen superior, en el campo &quot;uri de WSDL&quot;&lt;br /&gt;
&lt;br /&gt;
aquí os pongo un ejemplo de cómo se haría un &quot;read&quot; de un proveedor.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAvJap1dhAkVGH-dg5g8MykO0el0I3Drs0JTfTTttVuToFOPaL4bfnYb0S8KeAaVtcuX_dzA4PhbCYphLddDQWycjKLn_YHa9PAj_IOptBd1uK8UiyOyzq3Qq0SSWda0xMEACJmrKjIVEy/s1600/DocumentService.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAvJap1dhAkVGH-dg5g8MykO0el0I3Drs0JTfTTttVuToFOPaL4bfnYb0S8KeAaVtcuX_dzA4PhbCYphLddDQWycjKLn_YHa9PAj_IOptBd1uK8UiyOyzq3Qq0SSWda0xMEACJmrKjIVEy/s1600/DocumentService.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h2&gt;
&lt;span style=&quot;font-size: x-large;&quot;&gt;&lt;span style=&quot;color: #4f81bd;&quot;&gt;&lt;span style=&quot;font-family: Cambria;&quot;&gt;Custom Services&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Son unos servicios más flexibles y personalizados que los
Document Services, ya que permiten exponer directamente una clase a un servicio, que es lo que hacemos normalmente con WCF.&lt;/span&gt;&lt;br /&gt;
&lt;h3 class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;/h3&gt;
&lt;h3 class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
Pasos para crear un Custom Service.&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;&lt;span style=&quot;font-size-adjust: none; font-stretch: normal; font: 7pt/normal &amp;quot;Times New Roman&amp;quot;;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;En el AOT, creamos nueva clase&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Añadimos métodos decorándolos con atributos correctamente. &lt;/span&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;span style=&quot;font-family: Consolas; font-size: xx-small;&quot;&gt;&lt;span style=&quot;font-family: Consolas; font-size: xx-small;&quot;&gt;[SysEntryPointAttribute(t&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: darkblue; font-family: Consolas; font-size: xx-small;&quot;&gt;&lt;span style=&quot;color: darkblue; font-family: Consolas; font-size: xx-small;&quot;&gt;&lt;span style=&quot;color: darkblue; font-family: Consolas; font-size: xx-small;&quot;&gt;rue&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: darkblue; font-family: Consolas; font-size: xx-small;&quot;&gt;&lt;span style=&quot;color: darkblue; font-family: Consolas; font-size: xx-small;&quot;&gt;&lt;span style=&quot;color: darkblue; font-family: Consolas; font-size: xx-small;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: xx-small;&quot;&gt;&lt;span style=&quot;font-family: Consolas; font-size: xx-small;&quot;&gt;), &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: xx-small;&quot;&gt;&lt;span style=&quot;font-family: Consolas; font-size: xx-small;&quot;&gt;AifCollectionTypeAttribute(&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: darkred; font-family: Consolas; font-size: xx-small;&quot;&gt;&lt;span style=&quot;color: darkred; font-family: Consolas; font-size: xx-small;&quot;&gt;&lt;span style=&quot;color: darkred; font-family: Consolas; font-size: xx-small;&quot;&gt;&#39;return&#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: xx-small;&quot;&gt;&lt;span style=&quot;font-family: Consolas; font-size: xx-small;&quot;&gt;, Types::String)]&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: xx-small;&quot;&gt;&lt;span style=&quot;font-family: Consolas; font-size: xx-small;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Creamos un nuevo service, y lo mapeamos a la
clase (propiedad class).&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;&lt;span style=&quot;font-size-adjust: none; font-stretch: normal; font: 7pt/normal &amp;quot;Times New Roman&amp;quot;;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Dentro de Servicios, en el árbol Operaciones, añadimos las operaciones(seleccionamos
los métodos que hemos creado)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;&lt;span style=&quot;font-size-adjust: none; font-stretch: normal; font: 7pt/normal &amp;quot;Times New Roman&amp;quot;;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Creamos un nuevo grupo de servicio, y añadimos nuevos &lt;/span&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;serviceNodeReference asociados a services.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Publicamos&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
Como anteriormente hemos comentado, para ver que el servicio está correctamente publicado, lo podremos ver en el espacio de trabajo &amp;gt; Administracion del sistema &amp;gt; Configurar &amp;gt; Services and Application Integration Framework &amp;gt; Puertos de entrada.&lt;br /&gt;
&lt;br /&gt;
&lt;h3 class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
Consumo de un Custom Service&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Lo consumiremos como como un servicio normal, creando un Service Reference (que ya hemos visto en los Document Services)&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlg4Lbbxb7BPi3cvOLrM9UkndD5ZWUK5e-iAiEO2d3Hn8z3Jc7RPEEgoGNUWW1Yj8s6dIutwbe22hu8Nw0eJfcVzy5yGPDOoTGPAwpPbnb0njwq_DTucjV9jTrnpXoqeoWEx4NbstXoNYX/s1600/CustomServices1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlg4Lbbxb7BPi3cvOLrM9UkndD5ZWUK5e-iAiEO2d3Hn8z3Jc7RPEEgoGNUWW1Yj8s6dIutwbe22hu8Nw0eJfcVzy5yGPDOoTGPAwpPbnb0njwq_DTucjV9jTrnpXoqeoWEx4NbstXoNYX/s1600/CustomServices1.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlg4Lbbxb7BPi3cvOLrM9UkndD5ZWUK5e-iAiEO2d3Hn8z3Jc7RPEEgoGNUWW1Yj8s6dIutwbe22hu8Nw0eJfcVzy5yGPDOoTGPAwpPbnb0njwq_DTucjV9jTrnpXoqeoWEx4NbstXoNYX/s1600/CustomServices1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlg4Lbbxb7BPi3cvOLrM9UkndD5ZWUK5e-iAiEO2d3Hn8z3Jc7RPEEgoGNUWW1Yj8s6dIutwbe22hu8Nw0eJfcVzy5yGPDOoTGPAwpPbnb0njwq_DTucjV9jTrnpXoqeoWEx4NbstXoNYX/s1600/CustomServices1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlg4Lbbxb7BPi3cvOLrM9UkndD5ZWUK5e-iAiEO2d3Hn8z3Jc7RPEEgoGNUWW1Yj8s6dIutwbe22hu8Nw0eJfcVzy5yGPDOoTGPAwpPbnb0njwq_DTucjV9jTrnpXoqeoWEx4NbstXoNYX/s1600/CustomServices1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlg4Lbbxb7BPi3cvOLrM9UkndD5ZWUK5e-iAiEO2d3Hn8z3Jc7RPEEgoGNUWW1Yj8s6dIutwbe22hu8Nw0eJfcVzy5yGPDOoTGPAwpPbnb0njwq_DTucjV9jTrnpXoqeoWEx4NbstXoNYX/s1600/CustomServices1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlg4Lbbxb7BPi3cvOLrM9UkndD5ZWUK5e-iAiEO2d3Hn8z3Jc7RPEEgoGNUWW1Yj8s6dIutwbe22hu8Nw0eJfcVzy5yGPDOoTGPAwpPbnb0njwq_DTucjV9jTrnpXoqeoWEx4NbstXoNYX/s1600/CustomServices1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;
&lt;/a&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Estos métodos devuelven tipos básicos. Si queremos que
devuelva tipos complejos (clases de datos) , usaremos los DataContracts, como en WCF&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Para ello, creamos una clase contenedora de datos y la etiquetamos como &lt;span style=&quot;font-family: Consolas; font-size: xx-small;&quot;&gt;&lt;span style=&quot;font-family: Consolas; font-size: xx-small;&quot;&gt;[DataContractAttribute],&amp;nbsp;s &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;métodos los etiquetando los métodos con &lt;span style=&quot;font-family: Consolas; font-size: xx-small;&quot;&gt;&lt;span style=&quot;font-family: Consolas; font-size: xx-small;&quot;&gt;[DataMemberAttribute(&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: darkred; font-family: Consolas; font-size: xx-small;&quot;&gt;&lt;span style=&quot;color: darkred; font-family: Consolas; font-size: xx-small;&quot;&gt;&lt;span style=&quot;color: darkred; font-family: Consolas; font-size: xx-small;&quot;&gt;&#39;XXX&#39;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: xx-small;&quot;&gt;&lt;span style=&quot;font-family: Consolas; font-size: xx-small;&quot;&gt;)]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
Más info en: &lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;a href=&quot;http://sumitsaxfactor.wordpress.com/2012/05/19/create-your-first-custom-service-ax-2012/&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;color: blue; font-family: Calibri;&quot;&gt;http://sumitsaxfactor.wordpress.com/2012/05/19/create-your-first-custom-service-ax-2012/&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;mso-ansi-language: EN-US;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;a href=&quot;http://sumitsaxfactor.wordpress.com/2012/06/13/data-contracts-and-custom-services-ax-2012/&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;color: blue; font-family: Calibri;&quot;&gt;http://sumitsaxfactor.wordpress.com/2012/06/13/data-contracts-and-custom-services-ax-2012/&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h2 style=&quot;margin: 10pt 0cm 0pt;&quot;&gt;
&lt;span style=&quot;font-size: x-large;&quot;&gt;&lt;span style=&quot;color: #4f81bd;&quot;&gt;&lt;span style=&quot;font-family: Cambria;&quot;&gt;System&amp;nbsp;Services&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Solo AOS sobre TCP. Usado para recibir metadatos, datos de
una query o información de usuario.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
Los system services son un conjunto de los siguientes servicios:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Query Services&lt;/li&gt;
&lt;li&gt;Dynamic Query&lt;/li&gt;
&lt;li&gt;User-session Services&lt;/li&gt;
&lt;/ul&gt;
&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/gg879657.aspx&quot;&gt;http://msdn.microsoft.com/en-us/library/gg879657.aspx&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-large;&quot;&gt;&lt;span style=&quot;color: #4f81bd;&quot;&gt;&lt;span style=&quot;font-family: Cambria;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h2&gt;
&lt;span style=&quot;font-size: x-large;&quot;&gt;&lt;span style=&quot;color: #4f81bd;&quot;&gt;&lt;span style=&quot;font-family: Cambria;&quot;&gt;Query&amp;nbsp;Services&lt;o:p&gt;&lt;/o:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Expone el AOT para realizarle queries. Devuelve datasets. La
url es net.tcp://&amp;lt;hostname:port&amp;gt;/DynamicsAX/Services/QueryService&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;El llamador necesita tener los permisos apropiados para
recoger la información.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Se componen de:&lt;/span&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
Static query&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
User-Defined query&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;ul&gt;
&lt;li&gt;Dynamic Query&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #4f81bd;&quot;&gt;&lt;a href=&quot;http://msdn.microsoft.com/EN-US/library/gg847959.aspx&quot;&gt;http://msdn.microsoft.com/EN-US/library/gg847959.aspx&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;em&gt;&lt;span style=&quot;color: #4f81bd; font-family: Cambria;&quot;&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;
&lt;h3&gt;
&lt;span style=&quot;font-size: x-large;&quot;&gt;&lt;span style=&quot;color: #4f81bd;&quot;&gt;&lt;span style=&quot;font-family: Cambria;&quot;&gt;Static Query&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Query que ha sido definida
previamente en el AOT.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;em&gt;&lt;span style=&quot;color: #4f81bd;&quot;&gt;&lt;span style=&quot;font-family: Cambria;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;
&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/gg863932.aspx&quot;&gt;http://msdn.microsoft.com/en-us/library/gg863932.aspx&lt;/a&gt;&lt;br /&gt;
&lt;h3&gt;
&lt;span style=&quot;font-size: x-large;&quot;&gt;&lt;span style=&quot;color: #4f81bd;&quot;&gt;&lt;span style=&quot;font-family: Cambria;&quot;&gt;User-defined query&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Query definida usando la clase
QueryMetaData del MetadataService&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;span style=&quot;font-size: x-large;&quot;&gt;&lt;span style=&quot;color: #4f81bd;&quot;&gt;&lt;span style=&quot;font-family: Cambria;&quot;&gt;Dynamic Query&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;(Ejemplo: buscar clase KanbanOverviewJobsQueryBuilder)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Query definida en una clase X++
que hereda de AIFQueryBuilder, implementándose en el método Initialize &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;
&lt;span style=&quot;color: black; font-family: Consolas; font-size: 10pt; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: black; font-family: Consolas; font-size: 10pt; mso-ansi-language: EN-US; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;QueryServiceClient
client = new QueryServiceClient();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: black; font-family: Consolas; font-size: 10pt; mso-ansi-language: EN-US; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: black; font-family: Consolas; font-size: 10pt; mso-ansi-language: EN-US; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;DataSet dataSet;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: black; font-family: Consolas; font-size: 10pt; mso-ansi-language: EN-US; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Paging
paging = null;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: black; font-family: Consolas; font-size: 10pt; mso-ansi-language: EN-US; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;CustTransQueryBuilderArgs args = new CustTransQueryBuilderArgs() {
parmCustAccount = &quot;4008&quot; };&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: black; font-family: Consolas; font-size: 10pt; mso-ansi-language: EN-US; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;dataSet = client.ExecuteDynamicQuery(&quot;CustTransQueryBuilder&quot;,
args, ref paging);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;mso-ansi-language: EN-US;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;mso-ansi-language: EN-US;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;mso-ansi-language: EN-US;&quot;&gt;&lt;o:p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/gg847959.aspx&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;color: blue; font-family: Calibri;&quot;&gt;http://msdn.microsoft.com/en-us/library/gg847959.aspx&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;/div&gt;
&lt;h3 style=&quot;margin: 10pt 0cm 0pt;&quot;&gt;
&lt;span style=&quot;font-size: x-large;&quot;&gt;&lt;span style=&quot;color: #4f81bd;&quot;&gt;&lt;span style=&quot;font-family: Cambria;&quot;&gt;Metadata service&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Permite obtener información de los metadatos del AOS. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;net.tcp://&amp;lt;hostname:port&amp;gt;/DynamicsAX/Services/MetadataService&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;mso-ansi-language: EN-US;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;mso-ansi-language: EN-US;&quot;&gt;&lt;a href=&quot;http://msdn.microsoft.com/EN-US/library/gg880762.aspx&quot;&gt;http://msdn.microsoft.com/EN-US/library/gg880762.aspx&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;mso-ansi-language: EN-US;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;margin: 10pt 0cm 0pt;&quot;&gt;
&lt;span style=&quot;color: #4f81bd; font-family: Cambria; font-size: x-large;&quot;&gt;User - session service&lt;/span&gt;&lt;/h3&gt;
&lt;div style=&quot;margin: 10pt 0cm 0pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Permite obtener información del usuario llamante. &lt;span lang=&quot;EN-US&quot; style=&quot;mso-ansi-language: EN-US;&quot;&gt;(User Company, timezone, …)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;net.tcp://&amp;lt;hostname:port&amp;gt;/DynamicsAX/Services/UserSessionService&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://msdn.microsoft.com/EN-US/library/gg881307.aspx&quot;&gt;http://msdn.microsoft.com/EN-US/library/gg881307.aspx&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Y nada más; espero que con esta ayuda os hagáis una idea de qué herramientas tenemos disponibles para integrar apps.&lt;br /&gt;
&lt;br /&gt;
Happy interop!!!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.overflowexception.es/feeds/8015124026006216227/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/855032494846532188/8015124026006216227?isPopup=true' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/8015124026006216227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/8015124026006216227'/><link rel='alternate' type='text/html' href='http://www.overflowexception.es/2012/09/tipos-de-integracion-vs2010-ax2012.html' title='Tipos de integración VS2010 - AX 2012'/><author><name>Juan Manuel Fenoll</name><uri>http://www.blogger.com/profile/14376120768475916211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Zj12pCzcjsFNTvQfGGXLhjiurNjl4SWTr--uvnUt2X9m8WccIERoz_QP2N3B7STx2YvcAI9QfeprQxFTTsCDtzDIO4f1y-RrNesiEpgArwqqSLPa5ejNwupLa7H6Tp4/s220/Imagen+007.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmljF4eilXrF2D0n87y32neK2eTXtErODurNtYX1ZoZUE3D8gPrvu7GpTpukVuHHtMayMZNBn6LncOlCgr-8Dsho-T51LMFSFHpRM1xkFYJnuX4gfVvY6wug5i8Ht1MiIFcI0ZvDBZMJl2/s72-c/TiposIntegracion.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-855032494846532188.post-3046619633984518438</id><published>2012-09-05T18:29:00.000+02:00</published><updated>2014-02-11T09:33:36.850+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AX2012"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio"/><title type='text'>Tips integración VS2010 - AX 2012</title><content type='html'>Aquí os dejo un post con los problemas y soluciones que&amp;nbsp;voy encontrando al tratar de integrar un proyecto .NET en Visual Studio 2010&amp;nbsp;con Microsoft Dynamics AX 2012&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: #365f91;&quot;&gt;&lt;span style=&quot;font-family: Cambria;&quot;&gt;&lt;strong&gt;Problema: &lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Se añade la referencia al Business Connector, pero da el siguiente error:&lt;/span&gt;&lt;/div&gt;
&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;El tipo o el nombre
del espacio de nombres &#39;Dynamics&#39; no existe en el espacio de nombres
&#39;Microsoft&#39; (¿falta una referencia de ensamblado?)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: #365f91;&quot;&gt;&lt;span style=&quot;font-family: Cambria;&quot;&gt;&lt;strong&gt;Solucion:&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: #365f91;&quot;&gt;&lt;span style=&quot;font-family: Cambria;&quot;&gt;&lt;v:line from=&quot;-1.05pt,19.35pt&quot; id=&quot;_x0031__x0020_Conector_x0020_recto&quot; o:gfxdata=&quot;UEsDBBQABgAIAAAAIQC75UiUBQEAAB4CAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbKSRvU7DMBSF
dyTewfKKEqcMCKEmHfgZgaE8wMW+SSwc27JvS/v23KTJgkoXFsu+P+c7Ol5vDoMTe0zZBl/LVVlJ
gV4HY31Xy4/tS3EvRSbwBlzwWMsjZrlprq/W22PELHjb51r2RPFBqax7HCCXIaLnThvSAMTP1KkI
+gs6VLdVdad08ISeCho1ZLN+whZ2jsTzgcsnJwldluLxNDiyagkxOquB2Knae/OLUsyEkjenmdzb
mG/YhlRnCWPnb8C898bRJGtQvEOiVxjYhtLOxs8AySiT4JuDystlVV4WPeM6tK3VaILeDZxIOSsu
ti/jidNGNZ3/J08yC1dNv9v8AAAA//8DAFBLAwQUAAYACAAAACEArTA/8cEAAAAyAQAACwAAAF9y
ZWxzLy5yZWxzhI/NCsIwEITvgu8Q9m7TehCRpr2I4FX0AdZk2wbbJGTj39ubi6AgeJtl2G9m6vYx
jeJGka13CqqiBEFOe2Ndr+B03C3WIDihMzh6RwqexNA281l9oBFTfuLBBhaZ4ljBkFLYSMl6oAm5
8IFcdjofJ0z5jL0MqC/Yk1yW5UrGTwY0X0yxNwri3lQgjs+Qk/+zfddZTVuvrxO59CNCmoj3vCwj
MfaUFOjRhrPHaN4Wv0VV5OYgm1p+LW1eAAAA//8DAFBLAwQUAAYACAAAACEAdF8inrABAAAUBAAA
HwAAAGNsaXBib2FyZC9kcmF3aW5ncy9kcmF3aW5nMS54bWykU8tu2zAQvBfoPxC8N5IS2zGEyDm4
bS5FGzTtBywo0iJKLQWSVeW/75J62DEMFG0vEh8zszNL8uFxaA3rpfPaYsWLm5wzicLWGg8V//7t
47stZz4A1mAsyoofpeePu7dvHqA8OOgaLRgpoC+h4k0IXZllXjSyBX9jO4m0p6xrIdDUHbLawS9S
bk12m+ebrAWNfHeSeg8B2E+n/0HKWPFD1nvAHjxJGlGer0wejfh/ZSixf3LdS/fsonPxuX92TNcV
p84htNQink0bE4ym2QXrcBIYlGsj3irFhqRyjN+kIYfAxLgoTqui+XIFK5oPV9BUeCxAg7OiYsCX
LlbFfh+Hl1mKOUvB9nTsIljHXPwt2SbanO1MxU9qF8GKfLPZ5tQkCnK3yvPV7fp1yPXqbnt/v+Zs
ibqYh7JzPjxJ27I4qLjRKNPFgf6TD6OJGZK6PZvw4WhkDGrwq1R0TtTNIjHTLZV741gPpuIghMRQ
REtUNqEjTWljFmL+Z+KEj1SpFHXsb8gLI1W2eCK3Gq27Vj0Ms2U14sf0Y2oKMh10dvEeEmp6v/HR
nc93vwEAAP//AwBQSwMEFAAGAAgAAAAhAJxOXiHiBgAAOhwAABoAAABjbGlwYm9hcmQvdGhlbWUv
dGhlbWUxLnhtbOxZT28bRRS/I/EdRntv4/+NozpV7NgNtGmj2C3qcbwe704zu7OaGSf1DbVHJCRE
QRyoxI0DAiq1EpfyaQJFUKR+Bd7M7K534jVJ2wgqaA7x7tvfvP/vzZvdy1fuRQwdEiEpjzte9WLF
QyT2+YTGQce7NRpcWPeQVDieYMZj0vHmRHpXNt9/7zLe8BlNxhyLySgkEUHAKJYbuOOFSiUba2vS
BzKWF3lCYng25SLCCm5FsDYR+AgERGytVqm01iJMY28TOCrNqM/gX6ykJvhMDDUbgmIcgfSb0yn1
icFODqoaIeeyxwQ6xKzjAc8JPxqRe8pDDEsFDzpexfx5a5uX1/BGuoipFWsL6wbmL12XLpgc1IxM
EYxzodVBo31pO+dvAEwt4/r9fq9fzfkZAPZ9sNTqUuTZGKxXuxnPAsheLvPuVZqVhosv8K8v6dzu
drvNdqqLZWpA9rKxhF+vtBpbNQdvQBbfXMI3ulu9XsvBG5DFt5bwg0vtVsPFG1DIaHywhNYBHQxS
7jlkytlOKXwd4OuVFL5AQTbk2aVFTHmsVuVahO9yMQCABjKsaIzUPCFT7ENO9nA0FhRrAXiD4MIT
S/LlEknLQtIXNFEd78MEx14B8vLZ9y+fPUHH958e3//p+MGD4/s/WkbOqh0cB8VVL7797M9HH6M/
nnzz4uEX5XhZxP/6wye//Px5ORDKZ2He8y8f//b08fOvPv39u4cl8C2Bx0X4iEZEohvkCO3zCAwz
XnE1J2PxaitGIabFFVtxIHGMtZQS/n0VOugbc8zS6Dh6dInrwdsC2kcZ8OrsrqPwMBQzRUskXwsj
B7jLOetyUeqFa1pWwc2jWRyUCxezIm4f48My2T0cO/HtzxLom1laOob3QuKoucdwrHBAYqKQfsYP
CCmx7g6ljl93qS+45FOF7lDUxbTUJSM6drJpsWiHRhCXeZnNEG/HN7u3UZezMqu3yaGLhKrArET5
EWGOG6/imcJRGcsRjljR4dexCsuUHM6FX8T1pYJIB4Rx1J8QKcvW3BRgbyHo1zB0rNKw77J55CKF
ogdlPK9jzovIbX7QC3GUlGGHNA6L2A/kAaQoRntclcF3uVsh+h7igOOV4b5NiRPu07vBLRo4Ki0S
RD+ZiZJYXiXcyd/hnE0xMa0GmrrTqyMa/13jZhQ6t5Vwfo0bWuXzrx+V6P22tuwt2L3KambnRKNe
hTvZnntcTOjb35238SzeI1AQy1vUu+b8rjl7//nmvKqez78lL7owNGg9i9hB24zd0cqpe0oZG6o5
I9elGbwl7D2TARD1OnO6JPkpLAnhUlcyCHBwgcBmDRJcfURVOAxxAkN71dNMApmyDiRKuITDoiGX
8tZ4GPyVPWo29SHEdg6J1S6fWHJdk7OzRs7GaBWYA20mqK4ZnFVY/VLKFGx7HWFVrdSZpVWNaqYp
OtJyk7WLzaEcXJ6bBsTcmzDUIBiFwMstON9r0XDYwYxMtN9tjLKwmCicZ4hkiCckjZG2ezlGVROk
LFeWDNF22GTQB8dTvFaQ1tZs30DaWYJUFNdYIS6L3ptEKcvgRZSA28lyZHGxOFmMjjpeu1lresjH
ScebwjkZLqMEoi71HIlZAG+YfCVs2p9azKbKF9FsZ4a5RVCFVx/W70sGO30gEVJtYxna1DCP0hRg
sZZk9a81wa3nZUBJNzqbFvV1SIZ/TQvwoxtaMp0SXxWDXaBo39nbtJXymSJiGE6O0JjNxD6G8OtU
BXsmVMLrDtMR9A28m9PeNo/c5pwWXfGNmMFZOmZJiNN2q0s0q2QLNw0p18HcFdQD20p1N8a9uimm
5M/JlGIa/89M0fsJvH2oT3QEfHjRKzDSldLxuFAhhy6UhNQfCBgcTO+AbIH3u/AYkgreSptfQQ71
r605y8OUNRwi1T4NkKCwH6lQELIHbclk3ynMquneZVmylJHJqIK6MrFqj8khYSPdA1t6b/dQCKlu
uknaBgzuZP6592kFjQM95BTrzelk+d5ra+CfnnxsMYNRbh82A03m/1zFfDxY7Kp2vVme7b1FQ/SD
xZjVyKoChBW2gnZa9q+pwitutbZjLVlca2bKQRSXLQZiPhAl8A4J6X+w/1HhM/sFQ2+oI74PvRXB
xwvNDNIGsvqCHTyQbpCWOIbByRJtMmlW1rXp6KS9lm3W5zzp5nJPOFtrdpZ4v6Kz8+HMFefU4nk6
O/Ww42tLW+lqiOzJEgXSNDvImMCUfcnaxQkaB9WOB1+TIND34Aq+R3lAq2laTdPgCj4ywbBkvwx1
vPQio8BzS8kx9YxSzzCNjNLIKM2MAsNZ+g0mo7SgU+nPJvDZTv94KPtCAhNc+kUla6rO577NvwAA
AP//AwBQSwMEFAAGAAgAAAAhAJxmRkG7AAAAJAEAACoAAABjbGlwYm9hcmQvZHJhd2luZ3MvX3Jl
bHMvZHJhd2luZzEueG1sLnJlbHOEj80KwjAQhO+C7xD2btJ6EJEmvYjQq9QHCMk2LTY/JFHs2xvo
RUHwsjCz7DezTfuyM3liTJN3HGpaAUGnvJ6c4XDrL7sjkJSl03L2DjksmKAV201zxVnmcpTGKSRS
KC5xGHMOJ8aSGtHKRH1AVzaDj1bmIqNhQaq7NMj2VXVg8ZMB4otJOs0hdroG0i+hJP9n+2GYFJ69
elh0+UcEy6UXFqCMBjMHSldnnTUtXYGJhn39Jt4AAAD//wMAUEsBAi0AFAAGAAgAAAAhALvlSJQF
AQAAHgIAABMAAAAAAAAAAAAAAAAAAAAAAFtDb250ZW50X1R5cGVzXS54bWxQSwECLQAUAAYACAAA
ACEArTA/8cEAAAAyAQAACwAAAAAAAAAAAAAAAAA2AQAAX3JlbHMvLnJlbHNQSwECLQAUAAYACAAA
ACEAdF8inrABAAAUBAAAHwAAAAAAAAAAAAAAAAAgAgAAY2xpcGJvYXJkL2RyYXdpbmdzL2RyYXdp
bmcxLnhtbFBLAQItABQABgAIAAAAIQCcTl4h4gYAADocAAAaAAAAAAAAAAAAAAAAAA0EAABjbGlw
Ym9hcmQvdGhlbWUvdGhlbWUxLnhtbFBLAQItABQABgAIAAAAIQCcZkZBuwAAACQBAAAqAAAAAAAA
AAAAAAAAACcLAABjbGlwYm9hcmQvZHJhd2luZ3MvX3JlbHMvZHJhd2luZzEueG1sLnJlbHNQSwUG
AAAAAAUABQBnAQAAKgwAAAAA
&quot; o:spid=&quot;_x0000_s1026&quot; strokecolor=&quot;#4579b8 [3044]&quot; style=&quot;mso-position-horizontal-relative: text; mso-position-horizontal: absolute; mso-position-vertical-relative: text; mso-position-vertical: absolute; mso-width-percent: 0; mso-width-relative: margin; mso-wrap-distance-bottom: 0; mso-wrap-distance-left: 9pt; mso-wrap-distance-right: 9pt; mso-wrap-distance-top: 0; mso-wrap-style: square; position: absolute; visibility: visible; z-index: 251659264;&quot; to=&quot;427.2pt,19.35pt&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;El proyecto se compila con el Framework Client profile. Hay que poner el Framework 4.0 completo&lt;strong&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/v:line&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;hr /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: #365f91;&quot;&gt;&lt;span style=&quot;font-family: Cambria;&quot;&gt;&lt;strong&gt;Problema: &lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Al ejecutar el
BusinessConnector&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;(&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;Microsoft.Dynamics.BusinessConnectorNet&lt;/span&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;)
da un &lt;/span&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;System.IO.FileLoadException&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;“El ensamblado de
modo mixto se ha compilado con la versión &#39;v2.0.50727&#39; del runtime y no se
puede cargar en el runtime 4.0 sin información de configuración adicional.”&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: #365f91;&quot;&gt;&lt;span style=&quot;font-family: Cambria;&quot;&gt;&lt;strong&gt;Solucion:&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Debemos de añadir en el App.Config (o en el Web.Config, según
se trate de WinForms o Webforms) la siguiente entrada:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;configuration&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;startup&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: red; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;useLegacyV2RuntimeActivationPolicy&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;=&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&quot;&lt;span style=&quot;color: blue;&quot;&gt;true&lt;/span&gt;&quot;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;startup&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: blue; font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: Consolas; font-size: 9.5pt;&quot;&gt;configuration&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: Consolas; font-size: 9.5pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;- Actualización -&lt;/b&gt;&lt;br /&gt;
Si estás intentando ejecutar una prueba unitaria, hay que modificar el config del siguiente directorio:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.executionengine86.exe.config&lt;/blockquote&gt;
Sacado de el blog &lt;a href=&quot;http://www.diaryofaninja.com/blog/2012/09/13/net-20-mixed-mode-assemblies-in-visual-studio-net-45-test-projects&quot;&gt;Diary of a Ninja&lt;/a&gt;&lt;br /&gt;
&lt;hr /&gt;
&lt;strong&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: #365f91;&quot;&gt;&lt;span style=&quot;font-family: Cambria;&quot;&gt;Problema:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
Da el siguiente error al ejecutar &lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;strong&gt;{&quot;No se puede cargar el archivo o ensamblado
&#39;Microsoft.Dynamics.Ax.Xpp.Support, Version=6.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35&#39; ni una de sus dependencias. El sistema no
puede encontrar el archivo especificado.&quot;:&quot;Microsoft.Dynamics.Ax.Xpp.Support,
Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&quot;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Times New Roman;&quot;&gt;

&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: #365f91;&quot;&gt;&lt;span style=&quot;font-family: Cambria;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: #365f91;&quot;&gt;&lt;span style=&quot;font-family: Cambria;&quot;&gt;Solución:&lt;o:p&gt;&lt;/o:p&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
Nos falta hacer login en el sesión de ManagedInterop. &lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft.Dynamics.AX.ManagedInterop.Session session = new Microsoft.Dynamics.AX.ManagedInterop.Session();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; session.Logon(null, null, null, null);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;....&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; session.Logoff();&lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;
&lt;br /&gt;
Hasta aquí es todo. Iré actualizando la lista a medida que me encuentre con más cosas.&lt;br /&gt;
&lt;br /&gt;
Saludos.</content><link rel='replies' type='application/atom+xml' href='http://www.overflowexception.es/feeds/3046619633984518438/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/855032494846532188/3046619633984518438?isPopup=true' title='9 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/3046619633984518438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/3046619633984518438'/><link rel='alternate' type='text/html' href='http://www.overflowexception.es/2012/09/tips-integracion-vs2010-ax2012.html' title='Tips integración VS2010 - AX 2012'/><author><name>Juan Manuel Fenoll</name><uri>http://www.blogger.com/profile/14376120768475916211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Zj12pCzcjsFNTvQfGGXLhjiurNjl4SWTr--uvnUt2X9m8WccIERoz_QP2N3B7STx2YvcAI9QfeprQxFTTsCDtzDIO4f1y-RrNesiEpgArwqqSLPa5ejNwupLa7H6Tp4/s220/Imagen+007.png'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-855032494846532188.post-3955705599875008376</id><published>2012-06-14T14:52:00.002+02:00</published><updated>2013-10-22T08:53:25.220+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio"/><title type='text'>Error: No se puede cargar el archivo o ensamblado ni una de sus dependencias</title><content type='html'>&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Uno de los&amp;nbsp;ordenadores de desarrollo (Windows 7 x64) ha sufrido
un cuelgue mientras teníamos un proyecto Web de Visual Studio 2010 abierto, y
hemos tenido que darle “botonazo”. (Esto se puede extender a casos como
apagones, hibernaciones en portátiles, falta de batería, etc.)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Cuando hemos arrancado el ordenador y hemos abierto de nuevo
el proyecto, el Visual Studio nos daba las gracias con un bonito error: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;strong&gt;“No se puede cargar el archivo o ensamblado ‘XXX’ ni una de
sus dependencias. El parámetro no es correcto.”&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEha0pfaS2md-tyemCbZehpWeKOfjYiIG91G1gpO7QKNBYhN9V38-LHkDdHW-6yxAREcsfKDGGLpHyUefJGA8_zuYFsyfxUesGcqQ7m5VfbPtxljShf20DNsxamawjrc2Da3MEPMFP2qRHSx/s1600/Error.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEha0pfaS2md-tyemCbZehpWeKOfjYiIG91G1gpO7QKNBYhN9V38-LHkDdHW-6yxAREcsfKDGGLpHyUefJGA8_zuYFsyfxUesGcqQ7m5VfbPtxljShf20DNsxamawjrc2Da3MEPMFP2qRHSx/s1600/Error.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Hemos perdido un rato quitando y poniendo referencias, actualizando
proxys y ensamblados, sin ningún avance.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;La solución era otra: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;El Framework .net , cuando compila una aplicación, almacena
los ensamblados en sus directorios temporales.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: black; font-family: Consolas; font-size: 10pt; mso-ansi-language: EN-US; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;C:\Windows\Microsoft.NET\Framework\[versionNumber]\Temporary
ASP.NET Files&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;color: black; font-family: Consolas; font-size: 10pt; mso-ansi-language: EN-US; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ES;&quot;&gt;&lt;span style=&quot;font-family: Times New Roman; font-size: small;&quot;&gt;

&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt; word-break: break-all;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Times New Roman;&quot;&gt;

&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;(más info: &lt;/span&gt;&lt;a href=&quot;http://msdn.microsoft.com/es-es/library/ms366723.aspx&quot;&gt;&lt;span style=&quot;color: blue; font-family: Calibri;&quot;&gt;http://msdn.microsoft.com/es-es/library/ms366723.aspx&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Parece que al colgarse el equipo, esas carpetas tenían
información incompleta.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;La solución ha sido borrar la carpeta correspondiente al
proyecto que tiene el problema (dentro de Temporary ASP.NET Files) , y al volverá compilar, se ha regenerado la
carpeta temporal de nuevo.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Saludos.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.overflowexception.es/feeds/3955705599875008376/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/855032494846532188/3955705599875008376?isPopup=true' title='22 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/3955705599875008376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/3955705599875008376'/><link rel='alternate' type='text/html' href='http://www.overflowexception.es/2012/06/uno-de-los-de-desarrollo-windows-7-x64.html' title='Error: No se puede cargar el archivo o ensamblado ni una de sus dependencias'/><author><name>Juan Manuel Fenoll</name><uri>http://www.blogger.com/profile/14376120768475916211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Zj12pCzcjsFNTvQfGGXLhjiurNjl4SWTr--uvnUt2X9m8WccIERoz_QP2N3B7STx2YvcAI9QfeprQxFTTsCDtzDIO4f1y-RrNesiEpgArwqqSLPa5ejNwupLa7H6Tp4/s220/Imagen+007.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEha0pfaS2md-tyemCbZehpWeKOfjYiIG91G1gpO7QKNBYhN9V38-LHkDdHW-6yxAREcsfKDGGLpHyUefJGA8_zuYFsyfxUesGcqQ7m5VfbPtxljShf20DNsxamawjrc2Da3MEPMFP2qRHSx/s72-c/Error.png" height="72" width="72"/><thr:total>22</thr:total></entry><entry><id>tag:blogger.com,1999:blog-855032494846532188.post-2259012411425854568</id><published>2012-06-12T15:30:00.000+02:00</published><updated>2013-10-22T08:53:34.092+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="c#"/><title type='text'>Ofuscación de strings, contraseñas  y ensamblados .NET</title><content type='html'>&lt;span style=&quot;font-family: Calibri;&quot;&gt;Tenemos un proyecto antiguo entre manos que tiene una
contraseña metida en el código. &lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Sabéis que el código que genera Visual Studio es descifrable fácilmente, por lo que esa contraseña puede ser&amp;nbsp;comprometida fácilmente.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Pongamos las cosas algo difíciles&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;LA ALTERNATIVA ALGO CHAPUCERA PERO VALIDA&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Hay una porción de ese código
que necesita ejecutarse con un usuario determinado y diferente al logueado, y
para ello usamos una función que internamente usa el “logonUser” de &lt;/span&gt;&lt;span style=&quot;color: #a31515; font-family: Consolas; font-size: 9.5pt;&quot;&gt;advapi32.dll &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNd_R3VmPe7EGIqdugD-kLcGDggkMmOVmfPg2KISnboXCgZQMz9fVkLTIA2mhfrzMSo1PO3l5ZlShYcaStSOWcQF9scsb9TaN0RuGRTAEj2hKqIldsbVEeOSRpRszGuNZvCVsHGexut0Lo/s1600/1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNd_R3VmPe7EGIqdugD-kLcGDggkMmOVmfPg2KISnboXCgZQMz9fVkLTIA2mhfrzMSo1PO3l5ZlShYcaStSOWcQF9scsb9TaN0RuGRTAEj2hKqIldsbVEeOSRpRszGuNZvCVsHGexut0Lo/s1600/1.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Uso la mala técnica de “concatenación
de chars” por no guardar la contraseña “a pelo” en los fuentes y ponerlo en bandeja a los fisgones,&amp;nbsp;pero como más
adelante veréis, esto no sirve de nada.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Compilamos el proyecto, generando el correspondiente fichero EXE.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Usamos el &lt;/span&gt;&lt;a href=&quot;http://www.jetbrains.com/decompiler/&quot;&gt;&lt;span style=&quot;color: blue; font-family: Calibri;&quot;&gt;JetBrains DotPeek&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;, un
descompilador free en la línea de .net Reflector &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Open… y buscamos nuestro
ensamblado.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Navegamos un poco para
buscar dónde teníamos la contraseña.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVD6z4oFjm_30gWidjnl-C192P4DIHdBSjJ1qA06i1N4v8wJZydt6cuLUO08WDzoX3MZIXt6QIWrnOeLLaZmApBysRd6J1CPrna0zfbMkC2CFi-rk5EHpsQH4JKcMILmvSMiln8Ln9I9uY/s1600/3.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;66&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVD6z4oFjm_30gWidjnl-C192P4DIHdBSjJ1qA06i1N4v8wJZydt6cuLUO08WDzoX3MZIXt6QIWrnOeLLaZmApBysRd6J1CPrna0zfbMkC2CFi-rk5EHpsQH4JKcMILmvSMiln8Ln9I9uY/s640/3.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;OPS!&amp;nbsp; La contraseña está
perfectamente visible.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Para poder cifrar este
ensamblado y poder entregarlo sin excesivo miedo a comprometer la contraseña,
usaré un ofuscador. Recordaré que, aunque ofusquemos el código, no está 100%
seguro, ya que alguien con conocimientos avanzados y echándole bastantes horas
podría llegar a sacar la contraseña.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;a href=&quot;http://www.foss.kharkov.ua/g1/projects/eazfuscator/dotnet/Default.aspx&quot;&gt;&lt;span style=&quot;color: blue; font-family: Calibri;&quot;&gt;EAZFuscator&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;,
un ofuscador sencillito y free, nos hará la tarea de enmarañar nuesto código
para que sea una tarea difícil entender el código fuente desensamblado.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnNn-Jdl6_CodH879ceu8Mi0VBEvjO0l5LJfsomqVpqGz1co5OYrUCAtMNk-Vo9kOga22HgO9VL8wLijEJ8xfs1ibglzwUCg_NNJLhP-gOdqFPbF6NRApZs35MGiw-nv3s5BVHTrhBYUHy/s1600/2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;274&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnNn-Jdl6_CodH879ceu8Mi0VBEvjO0l5LJfsomqVpqGz1co5OYrUCAtMNk-Vo9kOga22HgO9VL8wLijEJ8xfs1ibglzwUCg_NNJLhP-gOdqFPbF6NRApZs35MGiw-nv3s5BVHTrhBYUHy/s320/2.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Arrastramos el
ensamblado EXE a la zona verde de la ventana, y ya estará ofuscado.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Volvemos a abrir con el
DotPeek, y vemos que el código nos lo ha dejado hecho unos zorros… pero de eso
se trataba!!!&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2DZhXztQtErtjYHEi86TE67nbiQRsSaC30d7cV0D25wjSJE7DWq4jXWdRC7jPg_iQ0La5WjmLH2ybmmmIqxtFf3txN0HEFhBM9xHBNPy4ov2QdlpPzKfkZ6n-NTfHfgmvMOggGb4Nv_X4/s1600/4.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2DZhXztQtErtjYHEi86TE67nbiQRsSaC30d7cV0D25wjSJE7DWq4jXWdRC7jPg_iQ0La5WjmLH2ybmmmIqxtFf3txN0HEFhBM9xHBNPy4ov2QdlpPzKfkZ6n-NTfHfgmvMOggGb4Nv_X4/s1600/4.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;o:p&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Lo dicho; seguro que echándole muchas horas y mucha
paciencia podríamos llegar a sacar alguna cosa de un código ofuscado, pero por lo menos se lo hemos puesto algo difícil.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;LA ALTERNATIVA
RECOMENDADA&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Microsoft recomienda, para estos casos, poner la contraseña
en un archivo de configuración y cifrar la sección. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;a href=&quot;http://msdn.microsoft.com/es-es/library/ms254494(v=vs.90).aspx&quot;&gt;&lt;span style=&quot;color: blue; font-family: Calibri;&quot;&gt;http://msdn.microsoft.com/es-es/library/ms254494(v=vs.90).aspx&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;a href=&quot;http://geeks.ms/blogs/ilanda/archive/2008/03/03/encriptando-los-ficheros-de-configuraci-243-n.aspx&quot;&gt;&lt;span style=&quot;color: blue; font-family: Calibri;&quot;&gt;http://geeks.ms/blogs/ilanda/archive/2008/03/03/encriptando-los-ficheros-de-configuraci-243-n.aspx&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;a href=&quot;http://social.msdn.microsoft.com/Forums/es-ES/vcses/thread/85bf94a7-0643-4066-9095-39dd3adfa7f6&quot;&gt;&lt;span style=&quot;color: blue; font-family: Calibri;&quot;&gt;http://social.msdn.microsoft.com/Forums/es-ES/vcses/thread/85bf94a7-0643-4066-9095-39dd3adfa7f6&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;En el caso que se quiera
distribuir un único EXE sin tener que adjuntar ficheros de configuración,
siempre podremos incrustar el fichero de configuración dentro del ensamblado.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Saludos.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.overflowexception.es/feeds/2259012411425854568/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/855032494846532188/2259012411425854568?isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/2259012411425854568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/2259012411425854568'/><link rel='alternate' type='text/html' href='http://www.overflowexception.es/2012/06/ofuscacion-de-strings-contrasenas-y.html' title='Ofuscación de strings, contraseñas  y ensamblados .NET'/><author><name>Juan Manuel Fenoll</name><uri>http://www.blogger.com/profile/14376120768475916211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Zj12pCzcjsFNTvQfGGXLhjiurNjl4SWTr--uvnUt2X9m8WccIERoz_QP2N3B7STx2YvcAI9QfeprQxFTTsCDtzDIO4f1y-RrNesiEpgArwqqSLPa5ejNwupLa7H6Tp4/s220/Imagen+007.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNd_R3VmPe7EGIqdugD-kLcGDggkMmOVmfPg2KISnboXCgZQMz9fVkLTIA2mhfrzMSo1PO3l5ZlShYcaStSOWcQF9scsb9TaN0RuGRTAEj2hKqIldsbVEeOSRpRszGuNZvCVsHGexut0Lo/s72-c/1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-855032494846532188.post-3529241572086062059</id><published>2012-05-21T23:31:00.000+02:00</published><updated>2013-10-22T08:54:07.032+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="asp.net"/><category scheme="http://www.blogger.com/atom/ns#" term="c#"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio"/><title type='text'>Multiidioma. Sincronizar varios archivos de recursos</title><content type='html'>Cuando trabajando con&amp;nbsp;aplicaciones multiidioma, lo normal y lo recomendable es hacerlo mediante archivos de&amp;nbsp;recursos localizados (*.resx, *.en-resx, *.es-mx.res)&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://msdn.microsoft.com/es-es/library/ms227427.aspx&quot;&gt;http://msdn.microsoft.com/es-es/library/ms227427.aspx&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Esto requiere de un poco de tacto, ya que debemos tener las mismas claves en los diferentes archivos de recursos.&lt;br /&gt;
&lt;br /&gt;
Añadir, modificar o borrar un recurso cuando gestionas más de 3 recursos puede ser un poco tedioso.&lt;br /&gt;
&lt;br /&gt;
Pensaba crearme una herramienta para poder gestionar varios recursos sincronizados a la vez,&amp;nbsp; pero me dio por buscar y encontré una herramienta que ya hacía esto. (afortunadamente o desgraciadamente,&amp;nbsp;ya está todo inventado)&lt;br /&gt;
&lt;br /&gt;
Se trata de Zeta Resource Editor.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.codeproject.com/Articles/16068/Zeta-Resource-Editor&quot;&gt;http://www.codeproject.com/Articles/16068/Zeta-Resource-Editor&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Tiene incluso opción de traducción automática por Bing o Google Translator.&lt;br /&gt;
&lt;br /&gt;
Espero que os sea útil!!!&lt;br /&gt;
&lt;br /&gt;
Saludos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://www.codeproject.com/KB/aspnet/ZetaResourceEditor/ZetaResourceEditor-02-01.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;451&quot; src=&quot;http://www.codeproject.com/KB/aspnet/ZetaResourceEditor/ZetaResourceEditor-02-01.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.overflowexception.es/feeds/3529241572086062059/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/855032494846532188/3529241572086062059?isPopup=true' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/3529241572086062059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/3529241572086062059'/><link rel='alternate' type='text/html' href='http://www.overflowexception.es/2012/05/multiidioma-sincronizar-varios-archivos.html' title='Multiidioma. Sincronizar varios archivos de recursos'/><author><name>Juan Manuel Fenoll</name><uri>http://www.blogger.com/profile/14376120768475916211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Zj12pCzcjsFNTvQfGGXLhjiurNjl4SWTr--uvnUt2X9m8WccIERoz_QP2N3B7STx2YvcAI9QfeprQxFTTsCDtzDIO4f1y-RrNesiEpgArwqqSLPa5ejNwupLa7H6Tp4/s220/Imagen+007.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-855032494846532188.post-4313715477101337053</id><published>2012-05-17T01:08:00.000+02:00</published><updated>2012-05-17T01:08:36.439+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="asp.net"/><category scheme="http://www.blogger.com/atom/ns#" term="c#"/><category scheme="http://www.blogger.com/atom/ns#" term="Entity Framework"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio"/><title type='text'>Generación de clases POCO</title><content type='html'>&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Estoy haciendo un curso de desarrollo de Asp.net &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;s&gt;y así me desintoxico de tanto winforms&lt;/s&gt;
impartido por &lt;/span&gt;&lt;a href=&quot;http://www.campusmvp.com/&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: blue; font-family: Calibri;&quot;&gt;CampusMVP&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt; (altamente
recomendable!!!) y me ha surgido una duda. &lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Estaba viendo los &lt;/span&gt;&lt;a href=&quot;http://www.variablenotfound.com/2012/02/validacion-manual-con-data-annotations.html&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: blue; font-family: Calibri;&quot;&gt;DataAnnotations&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;
para un ejemplo en MVC y me planteaba el poder generar las clases “buddy”
automáticamente del Entity Framework en vez de crearlas de nuevo para aplicarles
las annotations.&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;Pensaba en esas tablas
de más de 30 campos que suelen haber en escenarios reales.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;No me acordaba que el Entity Framework es un generador automático
de código. &lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Con Entity Framework y la plantilla adecuada se pueden
generar clases POCO, (Plain Old CLR Objects) o, traducido, Objetos simples
y planos.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h2 style=&quot;margin: 10pt 0cm 0pt;&quot;&gt;
&lt;span style=&quot;color: #4f81bd; font-family: Cambria; font-size: medium;&quot;&gt;Entity Framework es un generador de código &lt;/span&gt;&lt;/h2&gt;
&lt;div style=&quot;margin: 10pt 0cm 0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;El Entity Framework, cuando se compila, genera un
“code-behind” del archivo EMDX (con extensión Desiger.cs) que contiene un
código autogenerado a partir del modelo de entidades, que son en realidad los objetos que manejamos cuando trabajamos con él.&lt;/span&gt;&lt;span style=&quot;mso-fareast-language: ES; mso-no-proof: yes;&quot;&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt; &lt;v:shapetype coordsize=&quot;21600,21600&quot; filled=&quot;f&quot; id=&quot;_x0000_t75&quot; o:preferrelative=&quot;t&quot; o:spt=&quot;75&quot; path=&quot;m@4@5l@4@11@9@11@9@5xe&quot; stroked=&quot;f&quot;&gt;
 &lt;v:stroke joinstyle=&quot;miter&quot;&gt;
 &lt;v:formulas&gt;
  &lt;v:f eqn=&quot;if lineDrawn pixelLineWidth 0&quot;&gt;
  &lt;v:f eqn=&quot;sum @0 1 0&quot;&gt;
  &lt;v:f eqn=&quot;sum 0 0 @1&quot;&gt;
  &lt;v:f eqn=&quot;prod @2 1 2&quot;&gt;
  &lt;v:f eqn=&quot;prod @3 21600 pixelWidth&quot;&gt;
  &lt;v:f eqn=&quot;prod @3 21600 pixelHeight&quot;&gt;
  &lt;v:f eqn=&quot;sum @0 0 1&quot;&gt;
  &lt;v:f eqn=&quot;prod @6 1 2&quot;&gt;
  &lt;v:f eqn=&quot;prod @7 21600 pixelWidth&quot;&gt;
  &lt;v:f eqn=&quot;sum @8 21600 0&quot;&gt;
  &lt;v:f eqn=&quot;prod @7 21600 pixelHeight&quot;&gt;
  &lt;v:f eqn=&quot;sum @10 21600 0&quot;&gt;
 &lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;
 &lt;v:path gradientshapeok=&quot;t&quot; o:connecttype=&quot;rect&quot; o:extrusionok=&quot;f&quot;&gt;
 &lt;o:lock aspectratio=&quot;t&quot; v:ext=&quot;edit&quot;&gt;
&lt;/o:lock&gt;&lt;/v:path&gt;&lt;/v:stroke&gt;&lt;/v:shapetype&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9pONJJmdm_ZVFHz71mNmh8Vwn4XDsLRi2TK9L27LejIPwd9iczh_mT6IQDzITgP4XMEXBt0hZqQ3xMzgYwLxzRHnCdTjmRNtSh40Z4yEQ2yL6nR-MbF58u-qXfpJ_imLhvDaEIXc1WnLs/s1600/Imagen+1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9pONJJmdm_ZVFHz71mNmh8Vwn4XDsLRi2TK9L27LejIPwd9iczh_mT6IQDzITgP4XMEXBt0hZqQ3xMzgYwLxzRHnCdTjmRNtSh40Z4yEQ2yL6nR-MbF58u-qXfpJ_imLhvDaEIXc1WnLs/s1600/Imagen+1.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Si buceamos un poco dentro de ese archivo, encontraremos las
regiones “Contextos” y “Entidades”.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Dentro de cada entidad,&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;
&lt;/span&gt;“Métodos de generador”, “Propiedades primitivas” y &quot;Propiedades de
navegación&quot;. &lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Dentro de &quot;Propiedades primitivas&quot; tenemos las
propiedades de la clase, aunque algo enmarañadas con el código que genera el
Entity Framework, y que tanto papel nos hace (guardado, recuperación,
intellisense, tipado, etc...)&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpxW-IqWwkjaYQCFbShUUmZU5zxVhPW_ra6JtGSYaZpbg7AtFcSCuPU_cSSZqzJmXXVL4BqU0BTQ_7HmUaFHYiFLCa1dlrh-56R0z6lcZ2Qm3pz_3aMEeaLJkHMLHzkex1pva7vwTqB20v/s1600/Imagen+2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;488&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpxW-IqWwkjaYQCFbShUUmZU5zxVhPW_ra6JtGSYaZpbg7AtFcSCuPU_cSSZqzJmXXVL4BqU0BTQ_7HmUaFHYiFLCa1dlrh-56R0z6lcZ2Qm3pz_3aMEeaLJkHMLHzkex1pva7vwTqB20v/s640/Imagen+2.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;mso-fareast-language: ES; mso-no-proof: yes;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h2 style=&quot;margin: 10pt 0cm 0pt;&quot;&gt;
&lt;span style=&quot;color: #4f81bd; font-family: Cambria; font-size: medium;&quot;&gt;Cambiando el generador de código por defecto.&lt;/span&gt;&lt;/h2&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Como hemos visto, el Entity Framework genera código. Podemos
cambiar el generador de código por defecto por uno que funcione como queremos,
o incluso, crear nosotros mismos las plantillas de generación de código.
(Plantillas T4)&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;a href=&quot;http://www.hanselman.com/blog/T4TextTemplateTransformationToolkitCodeGenerationBestKeptVisualStudioSecret.aspx&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: blue; font-family: Calibri;&quot;&gt;http://www.hanselman.com/blog/T4TextTemplateTransformationToolkitCodeGenerationBestKeptVisualStudioSecret.aspx&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;a href=&quot;http://msdn.microsoft.com/es-es/library/bb126445.aspx&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;color: blue; font-family: Calibri;&quot;&gt;http://msdn.microsoft.com/es-es/library/bb126445.aspx&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;De hecho, el Entity Framework usa plantillas T4 para generar
el modelo de entidades. &lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilWqfiJhKbwZSh7uUD8d4SuROt4HfK4dYRzOekczY_kJUDfYcLHPcw0-TSEuhyM1mQDHI6uQrFkssZPxK8c2EfENHJmeBwUZr4qnhJduRrhqMAir4XmJYLUdgpMSdoxOXiVs-0uGnFoxcv/s1600/Imagen+3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;298&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilWqfiJhKbwZSh7uUD8d4SuROt4HfK4dYRzOekczY_kJUDfYcLHPcw0-TSEuhyM1mQDHI6uQrFkssZPxK8c2EfENHJmeBwUZr4qnhJduRrhqMAir4XmJYLUdgpMSdoxOXiVs-0uGnFoxcv/s400/Imagen+3.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;En la ventana de propiedades del Entity Framework, le
estamos indicando que genere el código usando la plantilla T4
&quot;SSDLToSQL10.tt&quot;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Podemos cambiar el generador de código pulsando botón
derecho en algún hueco del explorador de entidades del EF, y eligiendo
&quot;Agregar elemento de generación de código&quot;.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;


&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjRYM4yVueVoUhRylTsc7heoK-VuSgKCXRMGX0bTFgVu4JgFL5VEjoilQYopUIL4auQ9O33moKNeVcriBDgXzJOO819elZzL3itO_2x0PqcDrL3pRi61aSqxnVdRjHI59zgez2GHqSL5Vh/s1600/Imagen+5.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;312&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjRYM4yVueVoUhRylTsc7heoK-VuSgKCXRMGX0bTFgVu4JgFL5VEjoilQYopUIL4auQ9O33moKNeVcriBDgXzJOO819elZzL3itO_2x0PqcDrL3pRi61aSqxnVdRjHI59zgez2GHqSL5Vh/s400/Imagen+5.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;mso-fareast-language: ES; mso-no-proof: yes;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Nos aparecerán los generadores de código que tenemos
instalados (El generador por defecto de Entity Framework y el generador de STE(Self-Tracking
entities)).&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;


&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK-ComXS7mSZUbzVh-ofpwRQTWgxMsvwT4gA5djDUyqvX666PVEeh5PDmAwuOY_QcdaUBroRf9CWgZZXIWxu9eLGnTnMWxC_jLlTNcal7CNtwQO6jztWo7UcR9Nz_-5OrCvs1O63uaVJni/s1600/Imagen+6.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;275&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK-ComXS7mSZUbzVh-ofpwRQTWgxMsvwT4gA5djDUyqvX666PVEeh5PDmAwuOY_QcdaUBroRf9CWgZZXIWxu9eLGnTnMWxC_jLlTNcal7CNtwQO6jztWo7UcR9Nz_-5OrCvs1O63uaVJni/s640/Imagen+6.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;mso-fareast-language: ES; mso-no-proof: yes;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Si pulsamos sobre Plantillas en línea, se muestran las
plantillas disponibles a descargar.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Sobre el menú Base de datos, elegiremos EF 4.0 DBContext
Generator for C# (me imagino que también habrá para VB.NET)&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJW94LNW77eodB1MZ7xW_wXfbpho4pxoarRyN2Tm0b_Z97B-VQjec8mQUgkEOSDlGF0kutleBQW-4dvLlFKm5V_usuoLmng-DxeHCdQX9QeUuLQ6USql1n12O3KQH3IdjvB0j2O5yluGHS/s1600/Imagen+8.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;160&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJW94LNW77eodB1MZ7xW_wXfbpho4pxoarRyN2Tm0b_Z97B-VQjec8mQUgkEOSDlGF0kutleBQW-4dvLlFKm5V_usuoLmng-DxeHCdQX9QeUuLQ6USql1n12O3KQH3IdjvB0j2O5yluGHS/s640/Imagen+8.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;mso-fareast-language: ES; mso-no-proof: yes;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Al instalar esta
plantilla se guardan en nuestro proyecto 2 plantillas t4 vinculadas al modelo
de Entity Framework. Una contiene el contexto y otra las entidades.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;TACHAAAAN. Ya tenemos generadas
las entidades POCO&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYEnTWG26gjlFK_jpLDLOVPudX-vmk5CrE9c7mZbn1xXn7pshzcsADCf0GmpuKihRmlKsjgZpXu39wfGSht92gDWBcLk5jZg7ZNhJCg4HjrVql4A7GFpivexOPehtX-J4ECtdYw3LzHBiT/s1600/Imagen+9.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYEnTWG26gjlFK_jpLDLOVPudX-vmk5CrE9c7mZbn1xXn7pshzcsADCf0GmpuKihRmlKsjgZpXu39wfGSht92gDWBcLk5jZg7ZNhJCg4HjrVql4A7GFpivexOPehtX-J4ECtdYw3LzHBiT/s400/Imagen+9.png&quot; width=&quot;293&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;span style=&quot;mso-fareast-language: ES; mso-no-proof: yes;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Detalle del contexto.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt;
DbSet&amp;lt;&lt;span style=&quot;color: #2b91af;&quot;&gt;Category&lt;/span&gt;&amp;gt; Categories { &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt;
DbSet&amp;lt;&lt;span style=&quot;color: #2b91af;&quot;&gt;CustomerDemographic&lt;/span&gt;&amp;gt;
CustomerDemographics { &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt;
DbSet&amp;lt;&lt;span style=&quot;color: #2b91af;&quot;&gt;Customer&lt;/span&gt;&amp;gt; Customers { &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt;
DbSet&amp;lt;&lt;span style=&quot;color: #2b91af;&quot;&gt;Employee&lt;/span&gt;&amp;gt; Employees { &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt;
DbSet&amp;lt;&lt;span style=&quot;color: #2b91af;&quot;&gt;Order_Detail&lt;/span&gt;&amp;gt; Order_Details { &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt;
DbSet&amp;lt;&lt;span style=&quot;color: #2b91af;&quot;&gt;Order&lt;/span&gt;&amp;gt; Orders { &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt;
DbSet&amp;lt;&lt;span style=&quot;color: #2b91af;&quot;&gt;Product&lt;/span&gt;&amp;gt; Products { &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt;
DbSet&amp;lt;&lt;span style=&quot;color: #2b91af;&quot;&gt;Region&lt;/span&gt;&amp;gt; Regions { &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt;
DbSet&amp;lt;&lt;span style=&quot;color: #2b91af;&quot;&gt;Shipper&lt;/span&gt;&amp;gt; Shippers { &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt;
DbSet&amp;lt;&lt;span style=&quot;color: #2b91af;&quot;&gt;Supplier&lt;/span&gt;&amp;gt; Suppliers { &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt;
DbSet&amp;lt;&lt;span style=&quot;color: #2b91af;&quot;&gt;Territory&lt;/span&gt;&amp;gt; Territories { &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Detalle de una entidad&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;partial&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;class&lt;/span&gt; &lt;span style=&quot;color: #2b91af;&quot;&gt;Employee&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt;
Employee()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&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=&quot;color: blue;&quot;&gt;this&lt;/span&gt;.Employees1
= &lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: #2b91af;&quot;&gt;HashSet&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: #2b91af;&quot;&gt;Employee&lt;/span&gt;&amp;gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&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=&quot;color: blue;&quot;&gt;this&lt;/span&gt;.Orders
= &lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: #2b91af;&quot;&gt;HashSet&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: #2b91af;&quot;&gt;Order&lt;/span&gt;&amp;gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&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=&quot;color: blue;&quot;&gt;this&lt;/span&gt;.Territories
= &lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: #2b91af;&quot;&gt;HashSet&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: #2b91af;&quot;&gt;Territory&lt;/span&gt;&amp;gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt; EmployeeID { &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;;
&lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;string&lt;/span&gt; LastName { &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;;
&lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;string&lt;/span&gt; FirstName { &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;;
&lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;string&lt;/span&gt; Title { &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;string&lt;/span&gt; TitleOfCourtesy { &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;;
&lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #2b91af;&quot;&gt;Nullable&lt;/span&gt;&amp;lt;System.&lt;span style=&quot;color: #2b91af;&quot;&gt;DateTime&lt;/span&gt;&amp;gt;
BirthDate { &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;;
}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #2b91af;&quot;&gt;Nullable&lt;/span&gt;&amp;lt;System.&lt;span style=&quot;color: #2b91af;&quot;&gt;DateTime&lt;/span&gt;&amp;gt;
HireDate { &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;;
}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;string&lt;/span&gt; Address
{ &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;string&lt;/span&gt; City { &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;string&lt;/span&gt; Region { &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;string&lt;/span&gt; PostalCode { &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;;
&lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;string&lt;/span&gt; Country { &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;;
&lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;string&lt;/span&gt; HomePhone { &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;;
&lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;string&lt;/span&gt; Extension { &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;;
&lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;byte&lt;/span&gt;[] Photo { &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;string&lt;/span&gt; Notes { &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #2b91af;&quot;&gt;Nullable&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: blue;&quot;&gt;int&lt;/span&gt;&amp;gt;
ReportsTo { &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;;
}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;string&lt;/span&gt; PhotoPath { &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;;
&lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&amp;nbsp; &lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;virtual&lt;/span&gt; &lt;span style=&quot;color: #2b91af;&quot;&gt;ICollection&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: #2b91af;&quot;&gt;Employee&lt;/span&gt;&amp;gt; Employees1 { &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;;
&lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;virtual&lt;/span&gt; &lt;span style=&quot;color: #2b91af;&quot;&gt;Employee&lt;/span&gt;
Employee1 { &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;;
}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;virtual&lt;/span&gt; &lt;span style=&quot;color: #2b91af;&quot;&gt;ICollection&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: #2b91af;&quot;&gt;Order&lt;/span&gt;&amp;gt; Orders { &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;;
&lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;virtual&lt;/span&gt; &lt;span style=&quot;color: #2b91af;&quot;&gt;ICollection&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: #2b91af;&quot;&gt;Territory&lt;/span&gt;&amp;gt; Territories { &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;span lang=&quot;EN-US&quot; style=&quot;font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;


&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Para que nos compile esta
plantilla sería necesario tener Framework 4.1 (usa System.Data.Entity.Infrastructure),
&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;y encima tenemos deshabilitado el
generador predeterminado de Entity Framework para que no se generen entidades
duplicadas, pero para lo que queremos, que es obtener las clases POCO de
nuestras entidades, no es necesario. &lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;o:p&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;Así que copiamos las clases generadas en una carpeta, y
deshagamos el camino.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;


&lt;br /&gt;
&lt;h2 style=&quot;margin: 10pt 0cm 0pt;&quot;&gt;
&lt;span style=&quot;color: #4f81bd; font-family: Cambria; font-size: medium;&quot;&gt;Volvamos al generador de código por defecto.&lt;/span&gt;&lt;/h2&gt;
&lt;o:p&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;br /&gt;


&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;¿Qué ha pasado con el Entity Framework? &lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Las nuevas plantillas están usando las entidades del EF,
pero éste está deshabilitado.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR0huOzBoM0T8wZ863gUtH6tEgTts0Z9lpfwJWaMWTVYfmhEPidVgda1I7HGSKeNbMxGRumgmthyphenhyphenQiC57Rku2HXCBpuKPeETTTCnpeiG75ITyVc1qKoVbP-PJoHo1LiK3HNYCF3FiexNN3/s1600/Imagen+10.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;212&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR0huOzBoM0T8wZ863gUtH6tEgTts0Z9lpfwJWaMWTVYfmhEPidVgda1I7HGSKeNbMxGRumgmthyphenhyphenQiC57Rku2HXCBpuKPeETTTCnpeiG75ITyVc1qKoVbP-PJoHo1LiK3HNYCF3FiexNN3/s400/Imagen+10.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;mso-fareast-language: ES; mso-no-proof: yes;&quot;&gt;&lt;/span&gt;&lt;br /&gt;


&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Fijémonos en las clases generadas por el Entity:&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;span style=&quot;color: green; font-family: Consolas; font-size: 9.5pt;&quot;&gt;// La generación de código
predeterminada está deshabilitada para el modelo &#39;C:\*******\MvcApplication1\MvcApplication1\Models\Model1.edmx&#39;.
&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;span style=&quot;color: green; font-family: Consolas; font-size: 9.5pt;&quot;&gt;// Para habilitar la generación de código
predeterminada, cambie el valor de la propiedad del diseñador &#39;Estrategia de
generación de código&#39;&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;span style=&quot;color: green; font-family: Consolas; font-size: 9.5pt;&quot;&gt;// por otro valor. Esta propiedad está
disponible en la ventana Propiedades cuando se abre&lt;/span&gt;&lt;span style=&quot;font-family: Consolas; font-size: 9.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;&quot;&gt;
&lt;span style=&quot;color: green; font-family: Consolas; font-size: 9.5pt;&quot;&gt;// el modelo en el diseñador.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Para deshacer el camino, borramos las dos plantillas T4 que
ha creado la plantilla (los ficheros *.tt) y cambiemos la propiedad del Entity
Framework &quot;Estrategia de generación de código&quot; a
&quot;Predeterminados&quot;&lt;/span&gt;&lt;/div&gt;
&lt;o:p&gt;&lt;span style=&quot;font-family: Calibri;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/o:p&gt;&lt;br /&gt;


&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Con esto hemos conseguido generar unas clases POCO que nos
pueden servir para muchas cosas, como para las validaciones con MVC y
DataAnnotations, clases para pasarlas entre capas, etc.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0cm 0cm 10pt;&quot;&gt;
&lt;span style=&quot;font-family: Calibri;&quot;&gt;Saludos!!!&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.overflowexception.es/feeds/4313715477101337053/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/855032494846532188/4313715477101337053?isPopup=true' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/4313715477101337053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/855032494846532188/posts/default/4313715477101337053'/><link rel='alternate' type='text/html' href='http://www.overflowexception.es/2012/05/generacion-de-clases-poco.html' title='Generación de clases POCO'/><author><name>Juan Manuel Fenoll</name><uri>http://www.blogger.com/profile/14376120768475916211</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Zj12pCzcjsFNTvQfGGXLhjiurNjl4SWTr--uvnUt2X9m8WccIERoz_QP2N3B7STx2YvcAI9QfeprQxFTTsCDtzDIO4f1y-RrNesiEpgArwqqSLPa5ejNwupLa7H6Tp4/s220/Imagen+007.png'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9pONJJmdm_ZVFHz71mNmh8Vwn4XDsLRi2TK9L27LejIPwd9iczh_mT6IQDzITgP4XMEXBt0hZqQ3xMzgYwLxzRHnCdTjmRNtSh40Z4yEQ2yL6nR-MbF58u-qXfpJ_imLhvDaEIXc1WnLs/s72-c/Imagen+1.png" height="72" width="72"/><thr:total>0</thr:total></entry></feed>