<?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-5502553796733750143</id><updated>2024-10-07T02:49:25.465-03:00</updated><category term="patrones de diseño"/><category term="Seminario"/><category term="Matematica Aplicada I"/><category term="java"/><category term="sistemas administrativos II"/><category term="Proyecto Esba"/><category term="Escritorio Remoto"/><category term="asp.net"/><category term="mvc"/><category term="sistemas administrativos III"/><category term="Lgi II"/><category term="SQL"/><category term="Uml"/><category term="Visual Basic"/><category term="c#"/><category term="xna"/><category term=".NET"/><category term="Antivirus"/><category term="Business Intelligence"/><category term="Comunicacion de datos en Internet"/><category term="Crystal Reports 7"/><category term="Desarrollo de Soluciones Informaticas"/><category term="Discuciones"/><category term="Diseño"/><category term="Dot Net Bar"/><category term="Flash"/><category term="Malware"/><category term="Metedeologias"/><category term="Microsoft"/><category term="Objetos"/><category term="Scaffolding"/><category term="Seagate"/><category term="Spyware"/><category term="Windows 7"/><category term="Windows Seven"/><category term="android"/><category term="codanet"/><category term="google maps"/><category term="html"/><category term="iphone"/><category term="liskov"/><category term="minicomputadoras"/><category term="mvp"/><category term="pratones de diseño"/><category term="samsung 550"/><category term="sql server 2005"/><category term="type object"/><title type='text'>PEB</title><subtitle type='html'>Pensá en binario [0101010101]</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://pensaenbinario.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://pensaenbinario.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01638697400199573619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>125</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5502553796733750143.post-1784352647668097825</id><published>2013-06-26T23:51:00.003-03:00</published><updated>2013-06-26T23:51:44.016-03:00</updated><title type='text'>Configuración de Variables de Entorno JAVA_HOME y PATH</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;background-color: white; clear: both; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcnlQkc9ou72nSUm21-5s21fJ6HGqTaImExuDPG2_6RwAJRcYGoxl1yksXSAOQvTG8Ka3nMQFpg14Zc1utLi-jc7MRIxfSvhyphenhyphenq-WfgTGYPjFR2GvY2T36KXI6-h3lrAMnVeNvkf6VGgI4/s1600/java_icon.png&quot; imageanchor=&quot;1&quot; style=&quot;color: #ff4f1f; margin-left: 1em; margin-right: 1em; outline: none;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcnlQkc9ou72nSUm21-5s21fJ6HGqTaImExuDPG2_6RwAJRcYGoxl1yksXSAOQvTG8Ka3nMQFpg14Zc1utLi-jc7MRIxfSvhyphenhyphenq-WfgTGYPjFR2GvY2T36KXI6-h3lrAMnVeNvkf6VGgI4/s1600/java_icon.png&quot; style=&quot;background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: none; padding: 0px;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h3 style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 20px; font-weight: normal; line-height: 20px; margin-bottom: 16px;&quot;&gt;
Introducción&lt;/h3&gt;
&lt;br style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;Esta es un tema mas bien básico pero que no esta del todo bien documentado&amp;nbsp;así&amp;nbsp;que pongo mi aporte a beginners:&amp;nbsp;El JDK (Java Development Kit) requiere por parte de las herramientas que lo usan (por ejemplo, ECLIPSE, MAVEN, GRAILS, etc) que se encuentren&amp;nbsp;disponibles y bien configuradas dos variables de entorno: JAVA_HOME y PATH.&amp;nbsp;A&amp;nbsp;continuación&amp;nbsp;se muestra la&amp;nbsp;configuración&amp;nbsp;paso a paso bajo Windows XP.&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot; /&gt;&lt;br style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot; /&gt;&lt;br style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot; /&gt;&lt;br /&gt;
&lt;h3 style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 20px; font-weight: normal; line-height: 20px; margin-bottom: 16px;&quot;&gt;
Configuración de Variables de Entorno JAVA_HOME y PATH&lt;/h3&gt;
&lt;br style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;Primero que nada, debemos ir a Mi PC, presionar botón derecho y en el menú contextual seleccionar Propiedades:&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;background-color: white; clear: both; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4RwlqBRLO99IwAn8sm_ZT7fzJmm9Ohec6PCgfBYyD1pt7OMH0oXmM575V5ng9Z5eaCBSZIJUyd9T61b-3rwbpjS4beO9i9jwAnmI88td9N1HrKTgp2cNNeIRfjmkvGTYZaWl1DLazNy8/s1600/1.png&quot; imageanchor=&quot;1&quot; style=&quot;color: #ff4f1f; margin-left: 1em; margin-right: 1em; outline: none;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4RwlqBRLO99IwAn8sm_ZT7fzJmm9Ohec6PCgfBYyD1pt7OMH0oXmM575V5ng9Z5eaCBSZIJUyd9T61b-3rwbpjS4beO9i9jwAnmI88td9N1HrKTgp2cNNeIRfjmkvGTYZaWl1DLazNy8/s640/1.png&quot; style=&quot;background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: none; padding: 0px;&quot; width=&quot;572&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;Se presentara la pantalla de&amp;nbsp;&lt;/span&gt;&lt;b style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;Propiedades del sistema&lt;/b&gt;&lt;span style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;; esta es una ventana con varias lenguetas. Seleccionamos la lengueta llamada&amp;nbsp;&lt;/span&gt;&lt;b style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;Opciones avanzadas&lt;/b&gt;&lt;span style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;. Allí seleccionamos&amp;nbsp;&lt;/span&gt;&lt;b style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;Variables de entorno&lt;/b&gt;&lt;span style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;&amp;nbsp;como indica la siguiente imagen:&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot; /&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;background-color: white; clear: both; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhESPpJ9W842tme_ESca-hHl-5rKXe6OWac2Yc4xYE5NPh299mhWAwP_z7zfNnhKdxQdXiQrBLmf3_MN0OB_TiJLYUcBm8GdVIqEtVqpD37wRZ12tbWSs4vSVsDFzUry1SsWaSBXGHWNlU/s1600/2.png&quot; imageanchor=&quot;1&quot; style=&quot;color: #ff4f1f; margin-left: 1em; margin-right: 1em; outline: none;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhESPpJ9W842tme_ESca-hHl-5rKXe6OWac2Yc4xYE5NPh299mhWAwP_z7zfNnhKdxQdXiQrBLmf3_MN0OB_TiJLYUcBm8GdVIqEtVqpD37wRZ12tbWSs4vSVsDFzUry1SsWaSBXGHWNlU/s1600/2.png&quot; style=&quot;background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: none; padding: 0px;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;Se presenta la ventana de&amp;nbsp;&lt;/span&gt;&lt;b style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;Variables de entorno&lt;/b&gt;&lt;span style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;, donde configuraremos las mismas. Para ingresar una nueva variable de entorno,&amp;nbsp;En la misma, en la sección Variables del sistema seleccionamos&amp;nbsp;&lt;/span&gt;&lt;b style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;Nueva&lt;/b&gt;&lt;span style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;:&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;background-color: white; clear: both; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot; /&gt;
&lt;div class=&quot;separator&quot; style=&quot;background-color: white; clear: both; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8XZKaVbxwL8KfLkoG0IvsnAG0oKy1AUtLayunIbbeRnl3re9iEzo3eqk85lQX9LCdg-XMde6UOSzkuQNR3eKqCrnCQIEulZ5MQ-9PS91MrGvFxQpp4C7YLKaEjLQ0l0O2uzWQqnbClBE/s1600/4.png&quot; imageanchor=&quot;1&quot; style=&quot;color: #ff4f1f; margin-left: 1em; margin-right: 1em; outline: none;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8XZKaVbxwL8KfLkoG0IvsnAG0oKy1AUtLayunIbbeRnl3re9iEzo3eqk85lQX9LCdg-XMde6UOSzkuQNR3eKqCrnCQIEulZ5MQ-9PS91MrGvFxQpp4C7YLKaEjLQ0l0O2uzWQqnbClBE/s1600/4.png&quot; style=&quot;background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: none; padding: 0px;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;En la nueva ventana, ingresaremos en el campo Nombre de variable, el texto&amp;nbsp;&lt;/span&gt;&lt;b style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;JAVA_HOME&lt;/b&gt;&lt;span style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;, y en el campo Valor de variable, ingresaremos el path a donde tenemos instalado el JDK. En mi caso lo tengo en&lt;/span&gt;&lt;b style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;C:\Archivos de programa\Java\jdk1.7.0_09\&lt;/b&gt;&lt;span style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;; usted verifique el path de la&amp;nbsp;versión&amp;nbsp;que posea instalado e&amp;nbsp;ingréselo&amp;nbsp;del siguiente modo:&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot; /&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;background-color: white; clear: both; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjleGuQwAJxtUw238STd9oTAwiCNmeivdpwiBflA0LAQuipMzj63dOcU7JDTTdJZMs-k42sg7PvJr-iLgVWf928b2PjQUibWNtCs2JixPo4UaijUw9Dv7m3hqAVxmKXoy36fqb_SBFmreg/s1600/5.png&quot; imageanchor=&quot;1&quot; style=&quot;color: #ff4f1f; margin-left: 1em; margin-right: 1em; outline: none;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjleGuQwAJxtUw238STd9oTAwiCNmeivdpwiBflA0LAQuipMzj63dOcU7JDTTdJZMs-k42sg7PvJr-iLgVWf928b2PjQUibWNtCs2JixPo4UaijUw9Dv7m3hqAVxmKXoy36fqb_SBFmreg/s1600/5.png&quot; style=&quot;background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: none; padding: 0px;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot; /&gt;&lt;br style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;Una vez terminado, presione&amp;nbsp;&lt;/span&gt;&lt;b style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;Aceptar&lt;/b&gt;&lt;span style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;.&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot; /&gt;&lt;br style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;Seguidamente, editaremos el valor de la variable&amp;nbsp;&lt;/span&gt;&lt;b style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;Path&amp;nbsp;&lt;/b&gt;&lt;span style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;existente. Identifiquela en la&amp;nbsp;sección&amp;nbsp;Variables del sistema como indica la siguiente imagen:&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot; /&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;background-color: white; clear: both; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaDpfUAe2QLmASO21qnolnsUM0UdoHHmYbgz_jTY9J3AGviYkUZ13YM0eO8F07FksG4Vgb2YrkysH6MAKRyXzeXcxvW9PGipHf5Ii-IufDf4Tp1WxsXA6pH-vCts2oGPDiJKO8Tow1CLg/s1600/6.png&quot; imageanchor=&quot;1&quot; style=&quot;color: #ff4f1f; margin-left: 1em; margin-right: 1em; outline: none;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaDpfUAe2QLmASO21qnolnsUM0UdoHHmYbgz_jTY9J3AGviYkUZ13YM0eO8F07FksG4Vgb2YrkysH6MAKRyXzeXcxvW9PGipHf5Ii-IufDf4Tp1WxsXA6pH-vCts2oGPDiJKO8Tow1CLg/s1600/6.png&quot; style=&quot;background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: none; padding: 0px;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;Selecciónela haciendo doble click sobre la misma. Se presentara una ventana de Modificar la variable del sistema. Vaya al final de la linea y agregue el texto&amp;nbsp;&lt;/span&gt;&lt;b style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;;%JAVA_HOME%\bin&lt;/b&gt;&lt;span style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;&amp;nbsp;, quedando del siguiente modo:&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot; /&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;background-color: white; clear: both; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGM40o7Tnrv2cicNiaCPlfxAAyuxVV0XMbtTJa6ZvIE2XgpERL18tNQ-6qN1mOgwm-HeyKfikPo7upUiTGFpZ_jeTlA-fQapO6Kq5p_DIHUWDe4Im_54lywBLx9GS8NxyzqgXPahd5Ms4/s1600/7.png&quot; imageanchor=&quot;1&quot; style=&quot;color: #ff4f1f; margin-left: 1em; margin-right: 1em; outline: none;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGM40o7Tnrv2cicNiaCPlfxAAyuxVV0XMbtTJa6ZvIE2XgpERL18tNQ-6qN1mOgwm-HeyKfikPo7upUiTGFpZ_jeTlA-fQapO6Kq5p_DIHUWDe4Im_54lywBLx9GS8NxyzqgXPahd5Ms4/s1600/7.png&quot; style=&quot;background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: none; padding: 0px;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;Presione&amp;nbsp;&lt;/span&gt;&lt;b style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;Aceptar&lt;/b&gt;&lt;span style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;&amp;nbsp;y cierre todas las ventanas.&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot; /&gt;&lt;br style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;Para probar el funcionamiento, abra una nueva consola y escriba:&amp;nbsp;&lt;/span&gt;&lt;b style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;java -version&lt;/b&gt;&lt;span style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot;&gt;. Si todo quedó correctamente configurado,&amp;nbsp;deberá&amp;nbsp;ver un&amp;nbsp;mensaje&amp;nbsp;como el siguiente:&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px;&quot; /&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;background-color: white; clear: both; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_KZ3aeLPhJD5QMt_b2qsMBtKFcrHMT1NDebKet2MDwfz-N1qCDXEvkyAx7YbaBl7OnYxtwB6kMogHLcsjT3xOhNEwaF4YAht9n-RqYvCfc6Hi-vKPkf58-d_RZK3cK2kzR8iO1Ew644M/s1600/8.png&quot; imageanchor=&quot;1&quot; style=&quot;color: #ff653c; margin-left: 1em; margin-right: 1em; outline: none; text-decoration: none;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_KZ3aeLPhJD5QMt_b2qsMBtKFcrHMT1NDebKet2MDwfz-N1qCDXEvkyAx7YbaBl7OnYxtwB6kMogHLcsjT3xOhNEwaF4YAht9n-RqYvCfc6Hi-vKPkf58-d_RZK3cK2kzR8iO1Ew644M/s640/8.png&quot; style=&quot;background-color: transparent; background-position: initial initial; background-repeat: initial initial; border: none; padding: 0px;&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;background-color: white; clear: both; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;background-color: white; clear: both; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 20px; text-align: center;&quot;&gt;
fuente:&amp;nbsp;&lt;a href=&quot;http://davidg-tech.blogspot.com.ar/2012/12/java-configurar-variables-de-entorno-javahome-y-path.html&quot; style=&quot;background-color: transparent;&quot;&gt;http://davidg-tech.blogspot.com.ar/2012/12/java-configurar-variables-de-entorno-javahome-y-path.html&lt;/a&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://pensaenbinario.blogspot.com/feeds/1784352647668097825/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5502553796733750143/1784352647668097825' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/1784352647668097825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/1784352647668097825'/><link rel='alternate' type='text/html' href='http://pensaenbinario.blogspot.com/2013/06/configuracion-de-variables-de-entorno.html' title='Configuración de Variables de Entorno JAVA_HOME y PATH'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01638697400199573619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcnlQkc9ou72nSUm21-5s21fJ6HGqTaImExuDPG2_6RwAJRcYGoxl1yksXSAOQvTG8Ka3nMQFpg14Zc1utLi-jc7MRIxfSvhyphenhyphenq-WfgTGYPjFR2GvY2T36KXI6-h3lrAMnVeNvkf6VGgI4/s72-c/java_icon.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5502553796733750143.post-1358911360914469462</id><published>2013-06-10T16:34:00.001-03:00</published><updated>2013-06-10T16:34:39.834-03:00</updated><title type='text'>Review sobre Android Studio | Androideity</title><content type='html'>&lt;a href=&quot;http://androideity.com/2013/05/18/review-sobre-android-studio/&quot;&gt;Review sobre Android Studio | Androideity&lt;/a&gt;: &quot;Review sobre Android Studio&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://chrome.google.com/webstore/detail/pengoopmcjnbflcjbmoeodbmoflcgjlk&quot; style=&quot;font-size: 13px;&quot;&gt;&#39;via Blog this&#39;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://pensaenbinario.blogspot.com/feeds/1358911360914469462/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5502553796733750143/1358911360914469462' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/1358911360914469462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/1358911360914469462'/><link rel='alternate' type='text/html' href='http://pensaenbinario.blogspot.com/2013/06/review-sobre-android-studio-androideity.html' title='Review sobre Android Studio | Androideity'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01638697400199573619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5502553796733750143.post-552959460898847128</id><published>2012-06-11T11:40:00.001-03:00</published><updated>2013-02-05T10:45:08.598-03:00</updated><title type='text'>C# IoC – Inyección de Dependencias con Unity 2.0</title><content type='html'>&lt;a href=&quot;http://jhonnyslopez.wordpress.com/2011/05/26/ioc-inyeccion-de-dependencias-unity-2-0/&quot;&gt;C# IoC – Inyección de Dependencias con Unity 2.0 | DevNinja&#39;s Blog&lt;/a&gt;: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;color: #333333; font-family: &#39;Lucida Grande&#39;, Verdana, Arial, sans-serif; font-size: 12px; line-height: 19.1875px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
En el presente post&amp;nbsp;vamos a realizar una implementación básica&amp;nbsp;del desacoplamiento&amp;nbsp;entre componentes&amp;nbsp;en una arquitectura&amp;nbsp;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;N-Capas&lt;/em&gt;&lt;/strong&gt;.&amp;nbsp;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;La inyección de dependencias&lt;/em&gt;&lt;/strong&gt;&amp;nbsp;se usa en aquellas ocasiones en las que deseamos que nuestros componentes trabajen de una manera genérica controlando la ejecución de aquellos específicos y maximizando la coherencia entre ellos, también para simplificar el diseño, la implementación y el mantenimiento de las aplicaciones.&lt;/div&gt;
&lt;div style=&quot;color: #333333; font-family: &#39;Lucida Grande&#39;, Verdana, Arial, sans-serif; font-size: 12px; line-height: 19.1875px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
Actualmente existe una variedad de frameworks&amp;nbsp;que nos permiten realizar inyección de dependencias entre ellos Unity que viene incluido en la&amp;nbsp;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;Enterprise&amp;nbsp;Library&lt;/em&gt;&lt;/strong&gt;&amp;nbsp;para este ejemplo vamos a utilizar&amp;nbsp;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;EntLib 5.0&lt;/em&gt;&lt;/strong&gt;&amp;nbsp;la cual incluye&amp;nbsp;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;Unity 2.0&lt;/em&gt;&lt;/strong&gt;.&lt;/div&gt;
&lt;div style=&quot;color: #333333; font-family: &#39;Lucida Grande&#39;, Verdana, Arial, sans-serif; font-size: 12px; line-height: 19.1875px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;Unity&lt;/strong&gt;&lt;/em&gt;&amp;nbsp;es un contenedor de inyección de dependencias ligero y extensible, en pocas palabras&amp;nbsp;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;Unity&lt;/strong&gt;&lt;/em&gt;&amp;nbsp;no es un framework&amp;nbsp;robusto o pesado. Soporta inyección en el constructor, inyección en propiedades, inyección en llamadas a métodos y contenedores anidados. Unity&amp;nbsp;permite mapear&amp;nbsp;Interfaces hacia clases las que podemos instanciar bajo demanda. Entre las diferentes ventajas que ofrece&amp;nbsp;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;Unity&lt;/em&gt;&lt;/strong&gt;&amp;nbsp;tenemos:&lt;/div&gt;
&lt;div style=&quot;color: #333333; font-family: &#39;Lucida Grande&#39;, Verdana, Arial, sans-serif; font-size: 12px; line-height: 19.1875px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
Proporciona una creación de objetos simplificada en estructuras de objetos con dependencias lo cual simplifica el código de la aplicación.&lt;br /&gt;
Incrementamos la flexibilidad al mover la configuración de los componentes al contenedor de inyección de dependencias.&lt;/div&gt;
&lt;div style=&quot;color: #333333; font-family: &#39;Lucida Grande&#39;, Verdana, Arial, sans-serif; font-size: 12px; line-height: 19.1875px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
Bien ahora veamos un ejemplo, supongamos que tenemos una aplicación&amp;nbsp;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;N-Capas&lt;/strong&gt;&lt;/em&gt;&amp;nbsp;donde cargaremos información de una base de datos cualquiera a través de una tecnología de acceso a de datos X, implementando algunos de los patrones de diseño de arquitectura para una aplicación&amp;nbsp;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;N-Capas&lt;/em&gt;&lt;/strong&gt;&amp;nbsp; a manera de ejemplo didáctico, vamos a crear un nuevo proyecto en mi caso he optado por una aplicación de consola a la cual le agregaré una referencia&amp;nbsp;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;Unity&lt;/strong&gt;&lt;/em&gt;&amp;nbsp;que se encuentra entre los ensamblados de la&amp;nbsp;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;Enterprise&amp;nbsp;Library&lt;/strong&gt;&lt;/em&gt;.&lt;/div&gt;
&lt;div style=&quot;color: #333333; font-family: &#39;Lucida Grande&#39;, Verdana, Arial, sans-serif; font-size: 12px; line-height: 19.1875px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-18&quot; height=&quot;269&quot; src=&quot;http://jhonnyslopez.files.wordpress.com/2011/05/1.png?w=284&amp;amp;h=269&quot; style=&quot;border: 1px solid rgb(204, 204, 204); height: auto; margin: 0px; max-width: 100%; padding: 2px;&quot; title=&quot;Referencia a Unity&quot; width=&quot;284&quot; /&gt;&lt;/div&gt;
&lt;div style=&quot;color: #333333; font-family: &#39;Lucida Grande&#39;, Verdana, Arial, sans-serif; font-size: 12px; line-height: 19.1875px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
&lt;span id=&quot;more-12&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;El siguiente paso es crear nuestra implementación del contenedor de&amp;nbsp;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;Unity&lt;/strong&gt;&lt;/em&gt;&amp;nbsp;para resolver las dependencias, lo que voy a hacer es encapsular los métodos necesarios para dicho fin, al ser un objeto que utilizaré a lo largo de toda la aplicación éste será un aspecto transversal de mi aplicación&amp;nbsp;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;N-Capas.&lt;/strong&gt;&lt;/em&gt;&lt;/div&gt;
&lt;div style=&quot;color: #333333; font-family: &#39;Lucida Grande&#39;, Verdana, Arial, sans-serif; font-size: 12px; line-height: 19.1875px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-21&quot; height=&quot;101&quot; src=&quot;http://jhonnyslopez.files.wordpress.com/2011/05/2.png?w=248&amp;amp;h=101&quot; style=&quot;border: 1px solid rgb(204, 204, 204); height: auto; margin: 0px; max-width: 100%; padding: 2px;&quot; title=&quot;Implmentación FábricaIoC&quot; width=&quot;248&quot; /&gt;&lt;/div&gt;
&lt;div style=&quot;color: #333333; font-family: &#39;Lucida Grande&#39;, Verdana, Arial, sans-serif; font-size: 12px; line-height: 19.1875px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
Lo que haré en la clase FabricaIoC será registrar todos aquellos tipos los cuales quiero que&amp;nbsp;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;Unity&lt;/em&gt;&lt;/strong&gt;&amp;nbsp;se encargue de la creación de los específicos, por ejemplo voy a registrar el tipo&amp;nbsp;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;IRepositorioUsuarios&lt;/em&gt;&lt;/strong&gt;&amp;nbsp;e indicarle a&amp;nbsp;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;Unity&lt;/strong&gt;&lt;/em&gt;&amp;nbsp;que cuando le pida resolver este tipo el deberá crear una nueva instancia de un objeto&amp;nbsp;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;CsvRepositorioUsuarios&lt;/strong&gt;&lt;/em&gt;&amp;nbsp;donde dicho objeto implementa los métodos para la gestión de usuarios con una tecnología de acceso a datos específica. De igual manera tambíen aislamos a Unity dado el caso que cambiemos el framework de inyección de dependencias nuestra aplicación sigue funcionando igual.&lt;/div&gt;
&lt;div style=&quot;color: #333333; font-family: &#39;Lucida Grande&#39;, Verdana, Arial, sans-serif; font-size: 12px; line-height: 19.1875px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;Código:&lt;/strong&gt;&lt;/em&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;; font-size: 9pt; line-height: 19.1875px; margin: 0px; overflow: auto; padding: 0px; width: 776.09375px;&quot;&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;1:&lt;/span&gt; &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// -----------------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;2:&lt;/span&gt; &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// &lt;copyright company=&quot;SCI Software&quot;&gt;&lt;/copyright&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;3:&lt;/span&gt; &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// Copyright (c) SCI Software 2011. Todos los derechos reservados.&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;4:&lt;/span&gt; &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// &lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;5:&lt;/span&gt; &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// &lt;author&gt;Jhonnys Lopez Celedon&lt;/author&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;6:&lt;/span&gt; &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// -----------------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;7:&lt;/span&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;Microsoft.Practices.Unity;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;8:&lt;/span&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;SCI.Unity.Aplicacion.ModuloPrincipal;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;9:&lt;/span&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;SCI.Unity.Dominio.ModuloPrincipal.Repositorios;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;10:&lt;/span&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;SCI.Unity.Infraestructura.Datos.Repositorios;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;11:&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;12:&lt;/span&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;namespace&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;SCI.Unity.Infraestructura.Transversales&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;13:&lt;/span&gt; &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;{&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;14:&lt;/span&gt;     &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;///&lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;&lt;summary&gt;&lt;/summary&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;15:&lt;/span&gt;     &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;///&lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;Fabrica Singleton&amp;nbsp;para la inyeccion&amp;nbsp;de dependencias con Unity&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;16:&lt;/span&gt;     &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;///&lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;17:&lt;/span&gt;     &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;FabricaIoC&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;18:&lt;/span&gt;     &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;{&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;19:&lt;/span&gt;         &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;readonly&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;FabricaIoC&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; _contenedor = &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;FabricaIoC&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; ();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;20:&lt;/span&gt;         &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;readonly&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;IUnityContainer&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; _unityContainer;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;21:&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;22:&lt;/span&gt;         &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;FabricaIoC()&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;23:&lt;/span&gt;         &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;{&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;24:&lt;/span&gt;             _unityContainer = &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;UnityContainer&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; ();&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;25:&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;26:&lt;/span&gt;             &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// Registrar los tipos utilizados en la aplicacion.&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;27:&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;28:&lt;/span&gt;             &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;//_unityContainer.RegisterType&lt;irepositoriousuarios xmlrepositoriousuarios=&quot;&quot;&gt;();&lt;/irepositoriousuarios&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;29:&lt;/span&gt;             _unityContainer.RegisterType&amp;lt;&lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;IRepositorioUsuarios&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; , &lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;CsvRepositorioUsuarios&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &amp;gt;();&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;30:&lt;/span&gt;             _unityContainer.RegisterType&amp;lt;&lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;IServicioUsuarios&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; , &lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;ServicioUsuarios&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &amp;gt;();&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;31:&lt;/span&gt;         &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;32:&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;33:&lt;/span&gt;         &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;FabricaIoC&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; Contenedor&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;34:&lt;/span&gt;         &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;{&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;35:&lt;/span&gt;             &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;{&lt;/span&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; _contenedor; &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;36:&lt;/span&gt;         &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;37:&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;38:&lt;/span&gt;         &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;///&lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;&lt;summary&gt;&lt;/summary&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;39:&lt;/span&gt;         &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;///&lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;Crear una instancia de un objeto que implemente un tipo TServicio.&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;40:&lt;/span&gt;         &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;///&lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;41:&lt;/span&gt;         &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;///&lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;name = &quot;TServicio&quot;&amp;gt;&lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;Tipo de servicio que deseamos resolver&lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;42:&lt;/span&gt;         &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;///&lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;&lt;returns&gt;&lt;/returns&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;43:&lt;/span&gt;         &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;TServicio Resolver&lt;tservicio&gt;() &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;where&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;TServicio : &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;class&lt;/span&gt;&lt;/span&gt;&lt;/tservicio&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;44:&lt;/span&gt;         &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;{&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;45:&lt;/span&gt;             &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;_unityContainer.Resolve&lt;tservicio&gt;();&lt;/tservicio&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;46:&lt;/span&gt;         &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;47:&lt;/span&gt;     &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;48:&lt;/span&gt; &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;49:&lt;/span&gt;&lt;/pre&gt;
&lt;div style=&quot;color: #333333; font-family: &#39;Lucida Grande&#39;, Verdana, Arial, sans-serif; font-size: 12px; line-height: 19.1875px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
Lo que logramos con esta implementación&amp;nbsp;sencilla es olvidarnos de como se realizarán las operaciones dentro de mis repositorios en pocas palabras mi aplicación&amp;nbsp;en las capas superiores como Dominio y Aplicación ignoran como se realiza el acceso a los datos, concentrando toda la atención únicamente en que operaciones realizan dichos objetos.&lt;/div&gt;
&lt;div style=&quot;color: #333333; font-family: &#39;Lucida Grande&#39;, Verdana, Arial, sans-serif; font-size: 12px; line-height: 19.1875px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
Tambíen tengo un servicio de aplicación al que he llamado&amp;nbsp;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;ServicioUsuarios&lt;/strong&gt;&lt;/em&gt;&amp;nbsp;el cual implementa el contrato o interfaz&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;IServicioUsuarios&lt;/em&gt;&lt;/strong&gt;&amp;nbsp;en el cual a manera de&amp;nbsp;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;Facade&lt;/strong&gt;&amp;nbsp;podemos exponer uno mas métodos de nuestro subsistema&amp;nbsp;en una operación más sencilla, tambíen&amp;nbsp;será el encagardo&amp;nbsp;de tomas decisiones como si una operación necesita ir al dominio para ser validada o ir directamente a los orígenes de datos, en fin dicho servicio “&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;depende&lt;/strong&gt;&lt;/em&gt;” de un&amp;nbsp;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;IRepositorioUsuarios&lt;/strong&gt;&lt;/em&gt;&amp;nbsp;el cual ya tengo registrado en mi contenedor de&amp;nbsp;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;Unity&lt;/em&gt;&lt;/strong&gt;.&lt;/div&gt;
&lt;div style=&quot;color: #333333; font-family: &#39;Lucida Grande&#39;, Verdana, Arial, sans-serif; font-size: 12px; line-height: 19.1875px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-32&quot; height=&quot;52&quot; src=&quot;http://jhonnyslopez.files.wordpress.com/2011/05/3.png?w=241&amp;amp;h=52&quot; style=&quot;border: 1px solid rgb(204, 204, 204); height: auto; margin: 0px; max-width: 100%; padding: 2px;&quot; title=&quot;Servicio de Aplicación&quot; width=&quot;241&quot; /&gt;&lt;/div&gt;
&lt;div style=&quot;color: #333333; font-family: &#39;Lucida Grande&#39;, Verdana, Arial, sans-serif; font-size: 12px; line-height: 19.1875px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
Las operaciones que realizará mi servicio están en el contrato o interfaz&amp;nbsp;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;IServicioUsuarios&lt;/strong&gt;&lt;/em&gt;:&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;; font-size: 9pt; line-height: 19.1875px; margin: 0px; overflow: auto; padding: 0px; width: 776.09375px;&quot;&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;1:&lt;/span&gt; &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// -----------------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;2:&lt;/span&gt; &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// &lt;copyright company=&quot;SCI Software&quot;&gt;&lt;/copyright&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;3:&lt;/span&gt; &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// Copyright (c) SCI Software 2011. Todos los derechos reservados.&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;4:&lt;/span&gt; &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// &lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;5:&lt;/span&gt; &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// &lt;author&gt;Jhonnys Lopez Celedon&lt;/author&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;6:&lt;/span&gt; &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// -----------------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;7:&lt;/span&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;System.Collections.Generic;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;8:&lt;/span&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;SCI.Unity.Dominio.ModuloPrincipal.Entidades;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;9:&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;10:&lt;/span&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;namespace&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;SCI.Unity.Aplicacion.ModuloPrincipal&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;11:&lt;/span&gt; &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;{&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;12:&lt;/span&gt;     &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;interface&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;IServicioUsuarios&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;13:&lt;/span&gt;     &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;{&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;14:&lt;/span&gt;         &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;///&lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;&lt;summary&gt;&lt;/summary&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;15:&lt;/span&gt;         &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;///&lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt; Obtener todos los registros de la tabla Usuarios.&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;16:&lt;/span&gt;         &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;///&lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;17:&lt;/span&gt;         &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;///&lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;&lt;returns&gt;&lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;Coleccion de usuarios registrados.&lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/returns&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;18:&lt;/span&gt;         &lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;IList&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &amp;lt;&lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;Usuario&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &amp;gt; Obtener();&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;19:&lt;/span&gt;     &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;20:&lt;/span&gt; &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;21:&lt;/span&gt;&lt;/pre&gt;
&lt;div style=&quot;color: #333333; font-family: &#39;Lucida Grande&#39;, Verdana, Arial, sans-serif; font-size: 12px; line-height: 19.1875px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
La manera de como se realizan estas operaciones se encuentran definidas en la clase&amp;nbsp;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;ServicioUsuarios&lt;/strong&gt;&lt;/em&gt;:&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;; font-size: 9pt; line-height: 19.1875px; margin: 0px; overflow: auto; padding: 0px; width: 776.09375px;&quot;&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;1:&lt;/span&gt; &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// -----------------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;2:&lt;/span&gt; &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// &lt;copyright company=&quot;SCI Software&quot;&gt;&lt;/copyright&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;3:&lt;/span&gt; &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// Copyright (c) SCI Software 2011. Todos los derechos reservados.&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;4:&lt;/span&gt; &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// &lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;5:&lt;/span&gt; &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// &lt;author&gt;Jhonnys Lopez Celedon&lt;/author&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;6:&lt;/span&gt; &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// -----------------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;7:&lt;/span&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;System.Collections.Generic;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;8:&lt;/span&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;SCI.Unity.Dominio.ModuloPrincipal.Entidades;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;9:&lt;/span&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;SCI.Unity.Dominio.ModuloPrincipal.Repositorios;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;10:&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;11:&lt;/span&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;namespace&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;SCI.Unity.Aplicacion.ModuloPrincipal&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;12:&lt;/span&gt; &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;{&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;13:&lt;/span&gt;     &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;ServicioUsuarios&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; : &lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;IServicioUsuarios&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;14:&lt;/span&gt;     &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;{&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;15:&lt;/span&gt;         &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;readonly&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;IRepositorioUsuarios&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; _repositorioUsuarios;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;16:&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;17:&lt;/span&gt;         &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;ServicioUsuarios(&lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;IRepositorioUsuarios&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;repositorioUsuarios)&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;18:&lt;/span&gt;         &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;{&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;19:&lt;/span&gt;&amp;nbsp;            _repositorioUsuarios = repositorioUsuarios;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;20:&lt;/span&gt;         &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;21:&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;22:&lt;/span&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;#region&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;IServicioUsuarios&amp;nbsp;Members&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;23:&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;24:&lt;/span&gt;         &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;IList&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &amp;lt;&lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;Usuario&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &amp;gt; Obtener()&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;25:&lt;/span&gt;         &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;{&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;26:&lt;/span&gt;             &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; _repositorioUsuarios.Obtener();&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;27:&lt;/span&gt;         &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;28:&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;29:&lt;/span&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;#endregion&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;30:&lt;/span&gt;     &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;31:&lt;/span&gt; &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;32:&lt;/span&gt;&lt;/pre&gt;
&lt;div style=&quot;color: #333333; font-family: &#39;Lucida Grande&#39;, Verdana, Arial, sans-serif; font-size: 12px; line-height: 19.1875px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
Una de las grandes ventajas de&amp;nbsp;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;Unity&lt;/strong&gt;&lt;/em&gt;&amp;nbsp;es que puede resolvernos grafos de dependencias como el que observamos en&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;IServicioUsuarios&lt;/em&gt;&lt;/strong&gt;&amp;nbsp;que para instanciar&amp;nbsp;un objeto&amp;nbsp;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;ServicioUsuarios&lt;/strong&gt;&lt;/em&gt;&amp;nbsp;necesitamos pasarle&amp;nbsp;como parámetro en el constructor una instancia de un objeto que implemente&amp;nbsp;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;IRepositorioUsuario&lt;/strong&gt;&lt;/em&gt;&amp;nbsp;lo cual ya hemos registrado en el contenedor&amp;nbsp;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;Unity&lt;/em&gt;&lt;/strong&gt;&amp;nbsp;de manera tal que el pedir resolver una instancia de nuestro servicio&amp;nbsp;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;Unity&lt;/strong&gt;&lt;/em&gt;&amp;nbsp;estará en capacidad de resolver completamente todo el grafo de dependencias.&lt;/div&gt;
&lt;div style=&quot;color: #333333; font-family: &#39;Lucida Grande&#39;, Verdana, Arial, sans-serif; font-size: 12px; line-height: 19.1875px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
En la práctica sería:&lt;/div&gt;
&lt;div style=&quot;color: #333333; font-family: &#39;Lucida Grande&#39;, Verdana, Arial, sans-serif; font-size: 12px; line-height: 19.1875px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-34&quot; height=&quot;269&quot; src=&quot;http://jhonnyslopez.files.wordpress.com/2011/05/4.png?w=267&amp;amp;h=269&quot; style=&quot;border: 1px solid rgb(204, 204, 204); height: auto; margin: 0px; max-width: 100%; padding: 2px;&quot; title=&quot;Explorador de Soluciones.&quot; width=&quot;267&quot; /&gt;&lt;/div&gt;
&lt;div style=&quot;color: #333333; font-family: &#39;Lucida Grande&#39;, Verdana, Arial, sans-serif; font-size: 12px; line-height: 19.1875px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;Código:&lt;/strong&gt;&lt;/em&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;; font-size: 9pt; line-height: 19.1875px; margin: 0px; overflow: auto; padding: 0px; width: 776.09375px;&quot;&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;1:&lt;/span&gt; &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// -----------------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;2:&lt;/span&gt; &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// &lt;copyright company=&quot;SCI Software&quot;&gt;&lt;/copyright&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;3:&lt;/span&gt; &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// Copyright (c) SCI Software 2011. Todos los derechos reservados.&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;4:&lt;/span&gt; &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// &lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;5:&lt;/span&gt; &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// &lt;author&gt;Jhonnys Lopez Celedon&lt;/author&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;6:&lt;/span&gt; &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// -----------------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;7:&lt;/span&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;System;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;8:&lt;/span&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;System.Collections.Generic;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;9:&lt;/span&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;SCI.Unity.Aplicacion.ModuloPrincipal;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;10:&lt;/span&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;SCI.Unity.Dominio.ModuloPrincipal.Entidades;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;11:&lt;/span&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;SCI.Unity.Infraestructura.Transversales;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;12:&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;13:&lt;/span&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;namespace&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;SCI.Unity&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;14:&lt;/span&gt; &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;{&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;15:&lt;/span&gt;     &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;Program&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;16:&lt;/span&gt;     &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;{&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;17:&lt;/span&gt;         &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;Main(&lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;[] args)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;18:&lt;/span&gt;         &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;{&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;19:&lt;/span&gt;             &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// Declaramos un IServicioUsuarios&amp;nbsp;y le pedimos a nuestra fabrica de inyeccion de dependencias&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;20:&lt;/span&gt;             &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// que resuelva de menera&amp;nbsp;automatica&amp;nbsp;dicha peticion.&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;21:&lt;/span&gt;             &lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;IServicioUsuarios&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;servicioUsuarios = &lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;FabricaIoC&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; .Contenedor.Resolver&amp;lt;&lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;IServicioUsuarios&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &amp;gt;();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;22:&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;23:&lt;/span&gt;             &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// Utilizar uno de los metodos contenidos dentro el contrato.&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;24:&lt;/span&gt;             &lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;IList&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &amp;lt;&lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;Usuario&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;&amp;gt; usuarios = servicioUsuarios.Obtener();&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;25:&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;26:&lt;/span&gt;             &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;foreach&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; (&lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; usuario &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; usuarios)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;27:&lt;/span&gt;             &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;{&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;28:&lt;/span&gt;                 &lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;Console&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;.WriteLine(usuario.Login);&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;29:&lt;/span&gt;             &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;30:&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;31:&lt;/span&gt;             &lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;Console&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;.ReadKey();&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;32:&lt;/span&gt;         &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;33:&lt;/span&gt;     &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;34:&lt;/span&gt; &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;35:&lt;/span&gt;&lt;/pre&gt;
&lt;div style=&quot;color: #333333; font-family: &#39;Lucida Grande&#39;, Verdana, Arial, sans-serif; font-size: 12px; line-height: 19.1875px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
Podemos observar que nuestro contenedor realiza correctamente su labor:&lt;/div&gt;
&lt;div style=&quot;color: #333333; font-family: &#39;Lucida Grande&#39;, Verdana, Arial, sans-serif; font-size: 12px; line-height: 19.1875px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
&lt;img alt=&quot;&quot; height=&quot;251&quot; src=&quot;http://jhonnyslopez.files.wordpress.com/2011/05/5.png?w=711&amp;amp;h=251&quot; style=&quot;border: 1px solid rgb(204, 204, 204); height: auto; margin: 0px; max-width: 100%; padding: 2px;&quot; title=&quot;Debug&quot; width=&quot;711&quot; /&gt;&lt;/div&gt;
&lt;div style=&quot;color: #333333; font-family: &#39;Lucida Grande&#39;, Verdana, Arial, sans-serif; font-size: 12px; line-height: 19.1875px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
La variable&amp;nbsp;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;servicioUsuarios&lt;/strong&gt;&lt;/em&gt;&amp;nbsp;ahora tiene una instancia de un&amp;nbsp;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;ServicioUsuarios&lt;/strong&gt;&lt;/em&gt;&amp;nbsp;que a su vez depende de un&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;IRepositorioUsuario&lt;/strong&gt;&lt;/em&gt;:&lt;/div&gt;
&lt;div style=&quot;color: #333333; font-family: &#39;Lucida Grande&#39;, Verdana, Arial, sans-serif; font-size: 12px; line-height: 19.1875px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-37&quot; height=&quot;243&quot; src=&quot;http://jhonnyslopez.files.wordpress.com/2011/05/7.png?w=782&amp;amp;h=243&quot; style=&quot;border: 1px solid rgb(204, 204, 204); height: auto; margin: 0px; max-width: 100%; padding: 2px;&quot; title=&quot;Dependencias Resueltas&quot; width=&quot;782&quot; /&gt;&lt;/div&gt;
&lt;div style=&quot;color: #333333; font-family: &#39;Lucida Grande&#39;, Verdana, Arial, sans-serif; font-size: 12px; line-height: 19.1875px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
De manera sencilla&amp;nbsp;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;Unity&lt;/strong&gt;&lt;/em&gt;&amp;nbsp;ha resuelto el grafo de dependencias. Si bien ahora supongamos que hemos migrado la información a otro motor de base de datos lo que significa que la tecnología de acceso a datos también pudo haber cambiado, pues con ésta técnica podemos implementar una nueva clase que cumpla con el contrato&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;IRepositorioUsuarios&lt;/strong&gt;&lt;/em&gt;&amp;nbsp;con la tecnología de acceso a datos&amp;nbsp;especifica para el nuevo motor de bases de datos y solo tenemos que modificar&amp;nbsp;el contenedor&amp;nbsp;al momento de registrar los tipos y como resolverlos:&lt;/div&gt;
&lt;div style=&quot;color: #333333; font-family: &#39;Lucida Grande&#39;, Verdana, Arial, sans-serif; font-size: 12px; line-height: 19.1875px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;Código:&lt;/strong&gt;&lt;/em&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;; font-size: 9pt; line-height: 19.1875px; margin: 0px; overflow: auto; padding: 0px; width: 776.09375px;&quot;&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;1:&lt;/span&gt; &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// -----------------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;2:&lt;/span&gt; &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// &lt;copyright company=&quot;SCI Software&quot;&gt;&lt;/copyright&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;3:&lt;/span&gt; &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// Copyright (c) SCI Software 2011. Todos los derechos reservados.&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;4:&lt;/span&gt; &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// &lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;5:&lt;/span&gt; &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// &lt;author&gt;Jhonnys Lopez Celedon&lt;/author&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;6:&lt;/span&gt; &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// -----------------------------------------------------------------------&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;7:&lt;/span&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;Microsoft.Practices.Unity;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;8:&lt;/span&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;SCI.Unity.Aplicacion.ModuloPrincipal;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;9:&lt;/span&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;SCI.Unity.Dominio.ModuloPrincipal.Repositorios;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;10:&lt;/span&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;using&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;SCI.Unity.Infraestructura.Datos.Repositorios;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;11:&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;12:&lt;/span&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;namespace&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;SCI.Unity.Infraestructura.Transversales&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;13:&lt;/span&gt; &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;{&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;14:&lt;/span&gt;     &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;///&lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;&lt;summary&gt;&lt;/summary&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;15:&lt;/span&gt;     &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;///&lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;Fabrica Singleton&amp;nbsp;para la inyeccion&amp;nbsp;de dependencias con Unity&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;16:&lt;/span&gt;     &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;///&lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;17:&lt;/span&gt;     &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;FabricaIoC&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;18:&lt;/span&gt;     &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;{&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;19:&lt;/span&gt;         &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;readonly&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;FabricaIoC&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; _contenedor = &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;FabricaIoC&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; ();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;20:&lt;/span&gt;         &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;readonly&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;IUnityContainer&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; _unityContainer;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;21:&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;22:&lt;/span&gt;         &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;FabricaIoC()&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;23:&lt;/span&gt;         &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;{&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;24:&lt;/span&gt;             _unityContainer = &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;UnityContainer&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; ();&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;25:&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;26:&lt;/span&gt;             &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// Registrar los tipos utilizados en la aplicacion.&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;27:&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;28:&lt;/span&gt;             &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// Especificamente&amp;nbsp;con una nueva tecnologia de acceso a datos.&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;29:&lt;/span&gt;             _unityContainer.RegisterType&amp;lt;&lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;IRepositorioUsuarios&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; , &lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;XmlRepositorioUsuarios&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &amp;gt;();&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;30:&lt;/span&gt;             &lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;// _unityContainer.RegisterTypeCsvRepositorioUsuarios&amp;gt;();&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;31:&lt;/span&gt;             _unityContainer.RegisterType&amp;lt;&lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;IServicioUsuarios&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; , &lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;ServicioUsuarios&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &amp;gt;();&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;32:&lt;/span&gt;         &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;33:&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;34:&lt;/span&gt;         &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: #2b91af; margin: 0px; padding: 0px;&quot;&gt;FabricaIoC&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; Contenedor&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;35:&lt;/span&gt;         &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;{&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;36:&lt;/span&gt;             &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;{&lt;/span&gt; &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; _contenedor; &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;37:&lt;/span&gt;         &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;38:&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;39:&lt;/span&gt;         &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;///&lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;&lt;summary&gt;&lt;/summary&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;40:&lt;/span&gt;         &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;///&lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;Crear una instancia de un objeto que implemente un tipo TServicio.&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;41:&lt;/span&gt;         &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;///&lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;42:&lt;/span&gt;         &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;///&lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;name = &quot;TServicio&quot;&amp;gt;&lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt;Tipo de servicio que deseamos resolver&lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;43:&lt;/span&gt;         &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;///&lt;span style=&quot;color: green; margin: 0px; padding: 0px;&quot;&gt; &lt;span style=&quot;color: grey; margin: 0px; padding: 0px;&quot;&gt;&lt;returns&gt;&lt;/returns&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;44:&lt;/span&gt;         &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; TServicio Resolver&lt;tservicio&gt;() &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;where&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; TServicio : &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;class&lt;/span&gt;&lt;/span&gt;&lt;/tservicio&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;45:&lt;/span&gt;         &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;{&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;46:&lt;/span&gt;             &lt;span style=&quot;color: blue; margin: 0px; padding: 0px;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt; _unityContainer.Resolve&lt;tservicio&gt;();&lt;/tservicio&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;47:&lt;/span&gt;         &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;48:&lt;/span&gt;     &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;49:&lt;/span&gt; &lt;span style=&quot;margin: 0px; padding: 0px;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;padding: 0px;&quot;&gt;&lt;span style=&quot;display: inline-block; margin: 0px 10px 0px 0px; padding: 0px; text-align: right; width: 30px;&quot;&gt;50:&lt;/span&gt;&lt;/pre&gt;
&lt;div style=&quot;color: #333333; font-family: &#39;Lucida Grande&#39;, Verdana, Arial, sans-serif; font-size: 12px; line-height: 19.1875px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
Donde hemos cambiado que instancia de que tipo devolverá nuestro contenedor&amp;nbsp;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;Unity&lt;/strong&gt;&lt;/em&gt;&amp;nbsp;a momento de pedirle que resuelva&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;IRepositorioUsuarios&lt;/em&gt;&lt;/strong&gt;, podemos observar que ahora la instancia del repositorio usuarios que tiene el servicio de usuarios implementa&amp;nbsp;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;XmlRepositorioUsuarios.&lt;/strong&gt;&lt;/em&gt;&lt;/div&gt;
&lt;div style=&quot;color: #333333; font-family: &#39;Lucida Grande&#39;, Verdana, Arial, sans-serif; font-size: 12px; line-height: 19.1875px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-40&quot; height=&quot;187&quot; src=&quot;http://jhonnyslopez.files.wordpress.com/2011/05/8.png?w=862&amp;amp;h=187&quot; style=&quot;border: 1px solid rgb(204, 204, 204); height: auto; margin: 0px; max-width: 100%; padding: 2px;&quot; title=&quot;Debug&quot; width=&quot;862&quot; /&gt;&lt;/div&gt;
&lt;div style=&quot;color: #333333; font-family: &#39;Lucida Grande&#39;, Verdana, Arial, sans-serif; font-size: 12px; line-height: 19.1875px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
Hemos desacoplado la tecnología de acceso a datos en nuestra aplicación por medio de&amp;nbsp;&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;Unity&lt;/strong&gt;&lt;/em&gt;, lo cual en el futuro nos facilitará el mantenimiento de dicha aplicación al momento de reemplazar una tecnología por otra sin que el comportamiento de nuestra aplicación cambie.&lt;/div&gt;
&lt;div style=&quot;color: #333333; font-family: &#39;Lucida Grande&#39;, Verdana, Arial, sans-serif; font-size: 12px; line-height: 19.1875px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-43&quot; height=&quot;191&quot; src=&quot;http://jhonnyslopez.files.wordpress.com/2011/05/6.png?w=248&amp;amp;h=191&quot; style=&quot;border: 1px solid rgb(204, 204, 204); height: auto; margin: 0px; max-width: 100%; padding: 2px;&quot; title=&quot;Resultado&quot; width=&quot;248&quot; /&gt;&lt;/div&gt;
&lt;div style=&quot;color: #333333; font-family: &#39;Lucida Grande&#39;, Verdana, Arial, sans-serif; font-size: 12px; line-height: 19.1875px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
&lt;em style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;Solución:&lt;/strong&gt;&lt;/em&gt;&lt;/div&gt;
&lt;div style=&quot;color: #333333; font-family: &#39;Lucida Grande&#39;, Verdana, Arial, sans-serif; font-size: 12px; line-height: 19.1875px; margin-bottom: 10px; margin-top: 10px; padding: 0px;&quot;&gt;
&lt;a href=&quot;http://cid-e1eb8c3fc49b51dd.office.live.com/embedicon.aspx/.Documents/SCI.Unity.zip&quot; style=&quot;border-bottom-color: rgb(102, 102, 102); border-bottom-style: dotted; border-bottom-width: 1px; color: #333333; margin: 0px; outline: none; padding: 0px; text-decoration: initial;&quot;&gt;Decargar: SCI.Unity.zip&lt;/a&gt;&lt;/div&gt;
fuente:&lt;br /&gt;
C# IoC – Inyección de Dependencias con Unity 2.0 | DevNinja&#39;s Blog</content><link rel='replies' type='application/atom+xml' href='http://pensaenbinario.blogspot.com/feeds/552959460898847128/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5502553796733750143/552959460898847128' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/552959460898847128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/552959460898847128'/><link rel='alternate' type='text/html' href='http://pensaenbinario.blogspot.com/2012/06/c-ioc-inyeccion-de-dependencias-con.html' title='C# IoC – Inyección de Dependencias con Unity 2.0'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01638697400199573619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5502553796733750143.post-2296030999775120218</id><published>2012-06-11T10:45:00.001-03:00</published><updated>2012-06-11T10:45:42.274-03:00</updated><title type='text'>Una introducción a MongoDB</title><content type='html'>&lt;a href=&quot;http://www.genbetadev.com/bases-de-datos/una-introduccion-a-mongodb&quot;&gt;Una introducción a MongoDB&lt;/a&gt;: &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://chrome.google.com/webstore/detail/pengoopmcjnbflcjbmoeodbmoflcgjlk&quot; style=&quot;font-size: 13px;&quot;&gt;&#39;via Blog this&#39;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://pensaenbinario.blogspot.com/feeds/2296030999775120218/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5502553796733750143/2296030999775120218' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/2296030999775120218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/2296030999775120218'/><link rel='alternate' type='text/html' href='http://pensaenbinario.blogspot.com/2012/06/una-introduccion-mongodb.html' title='Una introducción a MongoDB'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01638697400199573619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5502553796733750143.post-8820204984087719144</id><published>2012-06-08T16:45:00.001-03:00</published><updated>2012-06-08T16:45:40.807-03:00</updated><title type='text'>Neluz: Empenzando con jquery mobile</title><content type='html'>&lt;a href=&quot;http://nelopauselli.blogspot.com.ar/2012/03/empenzando-con-jquery-mobile.html&quot;&gt;Neluz: Empenzando con jquery mobile&lt;/a&gt;: &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://chrome.google.com/webstore/detail/pengoopmcjnbflcjbmoeodbmoflcgjlk&quot; style=&quot;font-size: 13px;&quot;&gt;&#39;via Blog this&#39;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://pensaenbinario.blogspot.com/feeds/8820204984087719144/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5502553796733750143/8820204984087719144' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/8820204984087719144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/8820204984087719144'/><link rel='alternate' type='text/html' href='http://pensaenbinario.blogspot.com/2012/06/neluz-empenzando-con-jquery-mobile.html' title='Neluz: Empenzando con jquery mobile'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01638697400199573619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5502553796733750143.post-6572953013694669828</id><published>2012-06-08T15:52:00.001-03:00</published><updated>2012-06-08T15:52:48.566-03:00</updated><title type='text'>Neluz: Mvc4 y jquerymobile</title><content type='html'>&lt;a href=&quot;http://nelopauselli.blogspot.com.ar/2012/04/mvc4-y-jquerymobile-y.html&quot;&gt;Neluz: Mvc4 y jquerymobile&lt;/a&gt;: &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://chrome.google.com/webstore/detail/pengoopmcjnbflcjbmoeodbmoflcgjlk&quot; style=&quot;font-size: 13px;&quot;&gt;&#39;via Blog this&#39;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://pensaenbinario.blogspot.com/feeds/6572953013694669828/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5502553796733750143/6572953013694669828' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/6572953013694669828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/6572953013694669828'/><link rel='alternate' type='text/html' href='http://pensaenbinario.blogspot.com/2012/06/neluz-mvc4-y-jquerymobile.html' title='Neluz: Mvc4 y jquerymobile'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01638697400199573619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5502553796733750143.post-5015342930574924872</id><published>2012-02-29T17:03:00.000-03:00</published><updated>2012-02-29T17:03:05.560-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Crystal Reports 7"/><category scheme="http://www.blogger.com/atom/ns#" term="Seagate"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows 7"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Seven"/><title type='text'>Instalación de Seagate Crystal Report 7 en Windows 7 de 32bits</title><content type='html'>&lt;br /&gt;
&lt;div style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #757474; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;&quot;&gt;
Hace&amp;nbsp;algún&amp;nbsp;tiempo, programé algunas aplicaciones en el tradicional Visual Basic 6, ambiente de desarrollo con algunas librerías adicionales que compilaban muy bien sobre Windows XP de 32 bits.&lt;/div&gt;
&lt;div style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #757474; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;&quot;&gt;
Recientemente, decidí utilizar Windows 7 de 32 bits y me encontré con algunos inconvenientes al optar por la decisión de mantener las versiones funcionales de mis sistemas, sin migrar a net.&lt;/div&gt;
&lt;div style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #757474; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;&quot;&gt;
Al &amp;nbsp;instalar Visual Basic 6, la versión empresarial me daba un error con una librería del OLE Viewer (iviewers.dll), al parecer por temas de incompatibilidad con el Windows 7. &amp;nbsp;Conseguí solucionar el problema, al correr el instalador desmarcando de la opción de Herramientas, el Visor de objetos OLE y Com.&lt;/div&gt;
&lt;div class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_140&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; color: #757474; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 21px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 4px; text-align: center; vertical-align: baseline; width: 310px;&quot;&gt;
&lt;a href=&quot;http://tecnopeninsula.com/wp-content/uploads/2011/05/Vb6Sol1.png&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #00b7f3; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;img alt=&quot;Instalación Visual Studio 6 - Herramientas&quot; class=&quot;size-medium wp-image-140 &quot; height=&quot;240&quot; src=&quot;http://tecnopeninsula.com/wp-content/uploads/2011/05/Vb6Sol1-300x240.png&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-style: none; border-bottom-width: 0px; border-color: initial; border-color: initial; border-image: initial; border-left-style: none; border-left-width: 0px; border-right-style: none; border-right-width: 0px; border-style: initial; border-top-style: none; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot; title=&quot;Instalación Visual Studio 6 Dialogo Herramientas&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;div class=&quot;wp-caption-text&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 11px; line-height: 17px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 5px; padding-left: 4px; padding-right: 4px; padding-top: 0px; vertical-align: baseline;&quot;&gt;
Herramientas de Instalación Visual Studio 6&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_141&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; color: #757474; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 21px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 4px; text-align: center; vertical-align: baseline; width: 310px;&quot;&gt;
&lt;a href=&quot;http://tecnopeninsula.com/wp-content/uploads/2011/05/Vb6SolLibErrorWin7.png&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #00b7f3; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;img alt=&quot;Desactivar Visor de objetos OLE y Com&quot; class=&quot;size-medium wp-image-141 &quot; height=&quot;229&quot; src=&quot;http://tecnopeninsula.com/wp-content/uploads/2011/05/Vb6SolLibErrorWin7-300x229.png&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-style: none; border-bottom-width: 0px; border-color: initial; border-color: initial; border-image: initial; border-left-style: none; border-left-width: 0px; border-right-style: none; border-right-width: 0px; border-style: initial; border-top-style: none; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot; title=&quot;Desactivar OLE Viewer&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;div class=&quot;wp-caption-text&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 11px; line-height: 17px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 5px; padding-left: 4px; padding-right: 4px; padding-top: 0px; vertical-align: baseline;&quot;&gt;
Desactivar Visor de objetos OLE y Com.&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #757474; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;&quot;&gt;
El asunto de levantar el ambiente de desarrollo de los sistemas no terminaba ahí, aún tenía que compilar componentes adicionales con los que no tuve mayores inconvenientes, hasta que me encontré con la instalación del Crystal Reports 7.&lt;/div&gt;
&lt;div style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #757474; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;&quot;&gt;
Para dar solución apliqué un criterio muy similar al de la instalación de Visual, respecto al tema del registro de alguna librería que debió estar causando conflicto.&lt;/div&gt;
&lt;div style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #757474; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;&quot;&gt;
Dado que Crystal trae soporte para algunas herramientas de desarrollo y la de mi interés era Visual Basic descarté las que no me sirvieran para mi propósito.&lt;/div&gt;
&lt;div style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #757474; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;&quot;&gt;
Y efectivamente encontré la solución para Windows 7 que a continuación detallo:&lt;/div&gt;
&lt;div style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #757474; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;&quot;&gt;
Inicié el instalador de Seagate Crystal Report 7 desde el CD y seleccioné install (Win32), es recomendable iniciar SETUP &amp;nbsp;en modo de compatibilidad para Windows XP(Service Pack 2).&lt;/div&gt;
&lt;div class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_144&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; color: #757474; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 21px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 4px; text-align: center; vertical-align: baseline; width: 310px;&quot;&gt;
&lt;a href=&quot;http://tecnopeninsula.com/wp-content/uploads/2011/05/install-Win32.png&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #00b7f3; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;img alt=&quot;Crystal Report 7 instalación Win32&quot; class=&quot;size-medium wp-image-144&quot; height=&quot;215&quot; src=&quot;http://tecnopeninsula.com/wp-content/uploads/2011/05/install-Win32-300x215.png&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-style: none; border-bottom-width: 0px; border-color: initial; border-color: initial; border-image: initial; border-left-style: none; border-left-width: 0px; border-right-style: none; border-right-width: 0px; border-style: initial; border-top-style: none; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot; title=&quot;Seagate Crystal Report 7 install (Win32) &quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;div class=&quot;wp-caption-text&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 11px; line-height: 17px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 5px; padding-left: 4px; padding-right: 4px; padding-top: 0px; vertical-align: baseline;&quot;&gt;
Instalación de Crystal Report 7 en Windows 7 de 32 bits&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #757474; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;&quot;&gt;
En el diálogo de Installation Options, en Installation Mode&amp;nbsp;seleccioné Custom.&lt;/div&gt;
&lt;div class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_145&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; color: #757474; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 21px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 4px; text-align: center; vertical-align: baseline; width: 310px;&quot;&gt;
&lt;a href=&quot;http://tecnopeninsula.com/wp-content/uploads/2011/05/installation-Options.png&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #00b7f3; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;img alt=&quot;Opciones de instalación de Crystal Reports&quot; class=&quot;size-medium wp-image-145&quot; height=&quot;254&quot; src=&quot;http://tecnopeninsula.com/wp-content/uploads/2011/05/installation-Options-300x254.png&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-style: none; border-bottom-width: 0px; border-color: initial; border-color: initial; border-image: initial; border-left-style: none; border-left-width: 0px; border-right-style: none; border-right-width: 0px; border-style: initial; border-top-style: none; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot; title=&quot;installation Options&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;div class=&quot;wp-caption-text&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 11px; line-height: 17px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 5px; padding-left: 4px; padding-right: 4px; padding-top: 0px; vertical-align: baseline;&quot;&gt;
Opciones de instalación de Crystal Reports 7&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #757474; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;&quot;&gt;
En Custom Installation Options, en Choose Which item to install seleccioné Developer’s Files y Seagate Crystal Reports Programs.&lt;/div&gt;
&lt;div class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_146&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; color: #757474; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 21px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 4px; text-align: center; vertical-align: baseline; width: 310px;&quot;&gt;
&lt;a href=&quot;http://tecnopeninsula.com/wp-content/uploads/2011/05/custom-items.png&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #00b7f3; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;img alt=&quot;Opciones de instalación de Crystal Reports 7&quot; class=&quot;size-medium wp-image-146&quot; height=&quot;253&quot; src=&quot;http://tecnopeninsula.com/wp-content/uploads/2011/05/custom-items-300x253.png&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-style: none; border-bottom-width: 0px; border-color: initial; border-color: initial; border-image: initial; border-left-style: none; border-left-width: 0px; border-right-style: none; border-right-width: 0px; border-style: initial; border-top-style: none; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot; title=&quot;custom items&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;div class=&quot;wp-caption-text&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 11px; line-height: 17px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 5px; padding-left: 4px; padding-right: 4px; padding-top: 0px; vertical-align: baseline;&quot;&gt;
Personalizar opciones de instalación de Crystal Reports 7&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #757474; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;&quot;&gt;
Utilice el botón Change Option para seleccionar los items de instalación, tanto de&amp;nbsp;Developer’s Files y de Seagate Crystal Reports Programs,&amp;nbsp;para Developer’s Files seleccioné Microsoft Visual Basic y Report Designer Component.&lt;/div&gt;
&lt;div class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_149&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; color: #757474; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 21px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 4px; text-align: center; vertical-align: baseline; width: 310px;&quot;&gt;
&lt;a href=&quot;http://tecnopeninsula.com/wp-content/uploads/2011/05/Developers-Files-Items1.png&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #00b7f3; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;img alt=&quot;Developer&#39;s Files Items&quot; class=&quot;size-medium wp-image-149&quot; height=&quot;254&quot; src=&quot;http://tecnopeninsula.com/wp-content/uploads/2011/05/Developers-Files-Items1-300x254.png&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-style: none; border-bottom-width: 0px; border-color: initial; border-color: initial; border-image: initial; border-left-style: none; border-left-width: 0px; border-right-style: none; border-right-width: 0px; border-style: initial; border-top-style: none; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot; title=&quot;Developer&#39;s Files Items&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;div class=&quot;wp-caption-text&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 11px; line-height: 17px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 5px; padding-left: 4px; padding-right: 4px; padding-top: 0px; vertical-align: baseline;&quot;&gt;
Selección de archivos de desarrollo&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #757474; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;&quot;&gt;
Para Seagate Crystal Reports Programs seleccioné Crystal Report Designer.&lt;/div&gt;
&lt;div class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_152&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; color: #757474; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 21px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 4px; text-align: center; vertical-align: baseline; width: 310px;&quot;&gt;
&lt;a href=&quot;http://tecnopeninsula.com/wp-content/uploads/2011/05/Seagete-Crystal-Reports-Programs-items2.png&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #00b7f3; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;img alt=&quot;Seagete Crystal Reports Programs items&quot; class=&quot;size-medium wp-image-152&quot; height=&quot;254&quot; src=&quot;http://tecnopeninsula.com/wp-content/uploads/2011/05/Seagete-Crystal-Reports-Programs-items2-300x254.png&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-style: none; border-bottom-width: 0px; border-color: initial; border-color: initial; border-image: initial; border-left-style: none; border-left-width: 0px; border-right-style: none; border-right-width: 0px; border-style: initial; border-top-style: none; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot; title=&quot;Seagete Crystal Reports Programs items&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;div class=&quot;wp-caption-text&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 11px; line-height: 17px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 5px; padding-left: 4px; padding-right: 4px; padding-top: 0px; vertical-align: baseline;&quot;&gt;
Selección de Diseñador de Crystal Reports&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #757474; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;&quot;&gt;
Luego de haber seleccionado cuidadosamente las opciones anteriores, damos clic en siguiente hasta finalizar la instalación de Crystal.&lt;/div&gt;
&lt;div style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #757474; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 18px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;&quot;&gt;
Con esto, tenemos funcionando tanto el diseñador de Crystal Reports 7, &amp;nbsp;los archivos de desarrollo Visual Basic y el componente de diseñador de reportes.&lt;/div&gt;
&lt;div class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_153&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; color: #757474; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 21px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 4px; text-align: center; vertical-align: baseline; width: 310px;&quot;&gt;
&lt;a href=&quot;http://tecnopeninsula.com/wp-content/uploads/2011/05/Dise%C3%B1ador-Crystal-Reports.png&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #00b7f3; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;img alt=&quot;Diseñador Crystal Reports&quot; class=&quot;size-medium wp-image-153&quot; height=&quot;210&quot; src=&quot;http://tecnopeninsula.com/wp-content/uploads/2011/05/Dise%C3%B1ador-Crystal-Reports-300x210.png&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-style: none; border-bottom-width: 0px; border-color: initial; border-color: initial; border-image: initial; border-left-style: none; border-left-width: 0px; border-right-style: none; border-right-width: 0px; border-style: initial; border-top-style: none; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot; title=&quot;Diseñador Crystal Reports&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;div class=&quot;wp-caption-text&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 11px; line-height: 17px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 5px; padding-left: 4px; padding-right: 4px; padding-top: 0px; vertical-align: baseline;&quot;&gt;
Diseñador Crystal Reports&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_154&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-image: initial; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; color: #757474; font-family: Arial, Verdana, sans-serif; font-size: 12px; line-height: 21px; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 4px; text-align: center; vertical-align: baseline; width: 310px;&quot;&gt;
&lt;a href=&quot;http://tecnopeninsula.com/wp-content/uploads/2011/05/Crystal-en-Visual-Basic.png&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #00b7f3; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt;&lt;img alt=&quot;Crystal en Visual Basic&quot; class=&quot;size-medium wp-image-154&quot; height=&quot;216&quot; src=&quot;http://tecnopeninsula.com/wp-content/uploads/2011/05/Crystal-en-Visual-Basic-300x216.png&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-style: none; border-bottom-width: 0px; border-color: initial; border-color: initial; border-image: initial; border-left-style: none; border-left-width: 0px; border-right-style: none; border-right-width: 0px; border-style: initial; border-top-style: none; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot; title=&quot;Crystal en Visual Basic&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;div class=&quot;wp-caption-text&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 11px; line-height: 17px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 5px; padding-left: 4px; padding-right: 4px; padding-top: 0px; vertical-align: baseline;&quot;&gt;
Crystal Reports 7 en Visual Basic&lt;/div&gt;
&lt;div class=&quot;wp-caption-text&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 11px; line-height: 17px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 5px; padding-left: 4px; padding-right: 4px; padding-top: 0px; vertical-align: baseline;&quot;&gt;
Fuente:&amp;nbsp;&lt;a href=&quot;http://tecnopeninsula.com/crystal-report7-windows7/&quot; style=&quot;font-size: 12px; line-height: 21px;&quot;&gt;http://tecnopeninsula.com/crystal-report7-windows7/&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pensaenbinario.blogspot.com/feeds/5015342930574924872/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5502553796733750143/5015342930574924872' title='5 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/5015342930574924872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/5015342930574924872'/><link rel='alternate' type='text/html' href='http://pensaenbinario.blogspot.com/2012/02/instalacion-de-seagate-crystal-report-7.html' title='Instalación de Seagate Crystal Report 7 en Windows 7 de 32bits'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01638697400199573619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5502553796733750143.post-8072916418277962547</id><published>2012-01-13T09:48:00.001-03:00</published><updated>2012-01-13T09:49:23.792-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mvc"/><title type='text'>Saltando de ASP.net WebForms a MVC 3</title><content type='html'>&lt;p&gt;Actualmente y desde hace tiempo, existe un debate comparativo  importante con metodologías y patrones a emplear con tecnologías ASP  .net. Específicamente con ASP.net WebForms y MVC.&lt;/p&gt; &lt;p&gt;Tras la aparición de MVC surgió la duda en la comunidad de programadores Microsoft: &lt;b&gt;¿MVC reemplazará WebForms?&lt;/b&gt;. Microsoft aclaró que únicamente iba a representar una opción más para el desarrollo web.&lt;/p&gt; &lt;p&gt;Con el trascurso del tiempo, la tecnología MVC pasó a colocarse en  una posición ventajosa respecto a la utilización de WebForms, &lt;b&gt;siendo la tecnología más apropiada y utilizada para el desarrollo web de proyectos de gran envergadura&lt;/b&gt;.&lt;/p&gt; &lt;center&gt;&lt;img src=&quot;http://img.skitch.com/20081017-b62puhmxj39rk1d3aukicbyqg4.png&quot; /&gt;&lt;/center&gt;&lt;br /&gt; &lt;span id=&quot;more-427&quot;&gt;&lt;/span&gt; &lt;p&gt;Tras aproximadamente medio año, me encuentro abordando la tecnología  ASP.net MVC 3, desarrollando y asistiendo a un curso. Teniendo en cuenta  los más de ocho años programando y escalando versiones en ASP.net  WebForms. Iré recopilando puntos de vista y experiencias en lo que  concierne a dichas tecnologías, en varios escenarios de desarrollo.  Aún  teniendo en cuenta que pueda dejarme muchos conceptos, que os animo a  discutir.  Y que poco a poco, con el transcurso del tiempo iré  comentando.&lt;/p&gt; &lt;p&gt;&lt;b&gt;&lt;u&gt;Empecemos haciendo un poco de memoria:&lt;/u&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;Antes del tremendo cambio conceptual que supuso ASP.net, recuerdo  haber programado con PHP / ColdFusion / JSP / ASP, tareas tan  problemáticas como:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Peticiones asíncronas manuales mediante iframes ocultos.&lt;/li&gt;&lt;li&gt;Proxy Webservices XML/RPC.&lt;/li&gt;&lt;li&gt;Utilización de POO mediante clases contenidas en inclusiones de archivos.&lt;/li&gt;&lt;li&gt;Generación de librerías COM.&lt;/li&gt;&lt;li&gt;Etc.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;b&gt;&lt;u&gt;Con la entrada de ASP.net&lt;/u&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;u&gt;Nos solucionó la inmensa mayoría de todos los problemas&lt;/u&gt;.  Supuso cambiar la filosofía, metodología y patrón de desarrollo,  facilitando en gran medida la programación, organización y  clasificación, en todos los aspectos. &lt;/p&gt; &lt;p&gt;En posteriores versiones, introdujo la librería de código cliente AJAX, incluyendo componentes cómo el &lt;b&gt;ScriptManager, ScriptResource, UpdatePanel&lt;/b&gt;, etc. Facilitando más aún el desarrollo. &lt;/p&gt; &lt;p&gt;&lt;u&gt;Versión a versión, Microsoft priorizó la rapidez, estandarización y  automatización en el desarrollo de cualquier tipo de aplicación, en el  menor tiempo posible.  Mediante &lt;i&gt;wizards&lt;/i&gt; y código auto-generado.&lt;/u&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;&lt;u&gt;Toda esa facilidad y auto-generación de código, con el tiempo y  observación, se convirtió en un problema de rendimiento para los  proyectos web de gran envergadura, alto rendimiento y gran concurrencia  de usuarios.&lt;/u&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;Dichos proyectos web necesitan/requieren una rápida y optimizada  ejecución, tanto en el cliente como en el servidor,  obligando a tener   un control absoluto del HTML y archivos JS y CSS enviados al navegador.&lt;br /&gt;Con esa básica e importante prioridad, ASP.net WebForms, no te lo pone sencillo.&lt;/p&gt; &lt;p&gt;Por cada problema, tanto la comunidad de programadores, como  Microsoft propusieron soluciones y recursos que evitaban la  automatización, mediante prácticas para la mejora del rendimiento para  ASP.net WebForms. &lt;/p&gt; &lt;p&gt;&lt;b&gt;&lt;u&gt;Dichas soluciones, Microsoft fue incluyéndolas en posteriores versiones:&lt;/u&gt;&lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://www.josecuellar.net/js-ajax/asp-net-4-0-nos-facilita-la-optimizacion-de-jsajax-mediante-jquery-y-ms-ajax-content-delivery-network&quot;&gt;ASP .net 4.0 nos facilita la optimización de JS/AJAX mediante jQuery y MS AJAX Content Delivery Network.&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.josecuellar.net/microsoft-asp-net/outputcache-asp-net-4-0-almacenamiento-en-cache-de-salida-2&quot;&gt;Output Caching Extensible con ASP.net 4.0&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.josecuellar.net/microsoft-asp-net/optimizando-el-rendimiento-de-asp-net&quot;&gt;Optimizando el rendimiento de ASP .net&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.josecuellar.net/js-ajax/optimizando-el-rendimiento-de-jsajax&quot;&gt;Optimizando el rendimiento de JS/AJAX&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Viendo esta evolución, no es de extrañar que Microsoft brindara una  nueva opción en los desarrollos web, planteando un nuevo patrón,  mediante una nueva metodología. Intentando extraer la ventaja del rápido  desarrollo de ASP.net WebForms, con el control absoluto de código: &lt;a href=&quot;http://www.asp.net/mvc&quot; target=&quot;_blank&quot;&gt;ASP.net MVC&lt;/a&gt;. Aunque siempre, de una forma u otra, consumiendo todo el potencial del &lt;b&gt;Framework 4.0&lt;/b&gt;.&lt;/p&gt; &lt;p&gt;&lt;b&gt;Arquitectura: Modelo Vista Controlador:&lt;/b&gt;&lt;/p&gt; &lt;center&gt;&lt;img src=&quot;http://geeks.ms/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gtorres/MVC-Pattern.PNG&quot; /&gt;&lt;/center&gt; &lt;p&gt;&lt;b&gt;Modelo&lt;/b&gt;: Representa la lógica de negocio de la aplicación. Más comúnmente: BLL (Business Logic Lager) y DAL (Data Access Layer).&lt;br /&gt;&lt;b&gt;Vista&lt;/b&gt;: Representan la presentación de la aplicación. Más comúnmente: GUI (Graphical User Interface).&lt;br /&gt;&lt;b&gt;Controlador&lt;/b&gt;: Recogen y procesan las acciones del usuario, mediante el Modelo. Devolviendo la Vista determinada y procesada. &lt;/p&gt; &lt;p&gt; &lt;b&gt;De modo que tenemos una nueva óptima solución, a barajar ante nuevos proyectos Web.&lt;/b&gt;&lt;/p&gt; &lt;p&gt;Desde mi experiencia, la adaptación inicial en el desarrollo de  ASP.net WebForms a MVC, fue rápida, aunque teniendo siempre presente los  principales cambios conceptuales que repercuten en cada tecnología.  &lt;/p&gt; &lt;blockquote&gt;&lt;p&gt; Realmente lo importante no es “qué” herramienta vamos a utilizar, sino  el “cómo” vas a emplearla (teniendo en cuenta que el “cómo” es  directamente proporcional al “quien”). Destaco la frase sentenciadora  existente en el post de &lt;a href=&quot;http://www.josecuellar.net/js-ajax/%E2%80%9D&quot; target=&quot;_blank&quot;&gt;ScottGu´s –  About Technical Debates (and ASP.net Web Forms and ASP.net MVC debates in particular&lt;/a&gt;:&lt;/p&gt; &lt;p&gt;&lt;b&gt;“Great developers using bad tools/frameworks can make great apps.  Bad developers using great tools/frameworks can make bad apps.”&lt;/b&gt; &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;i&gt;Puedes encontrar infinidad de links interesantes que hablan del  tema. En los que podrás obtener información más detallada. Destaco  algunos:&lt;/i&gt;&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://social.msdn.microsoft.com/Forums/es-ES/aspnetmvces/thread/de0bfd52-0a0f-415d-a7d1-50d065c0b9c1/&quot; target=&quot;_blank&quot;&gt;Social MSDN – MVC vs WebForms&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/magazine/cc337884.aspx&quot; target=&quot;_blank&quot;&gt;Magazine MSDN – Building Web Apps without Web Forms&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://weblogs.asp.net/despos/archive/2009/04/11/web-forms-vs-asp-net-mvc.aspx&quot; target=&quot;_blank&quot;&gt;WebForms vs ASP.net MVC&lt;/a&gt;&lt;/p&gt;&lt;a href=&quot;http://www.josecuellar.net/js-ajax/saltando-de-asp-net-webforms-a-mvc-3&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;fuente: http://www.josecuellar.net/js-ajax/saltando-de-asp-net-webforms-a-mvc-3&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://pensaenbinario.blogspot.com/feeds/8072916418277962547/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5502553796733750143/8072916418277962547' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/8072916418277962547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/8072916418277962547'/><link rel='alternate' type='text/html' href='http://pensaenbinario.blogspot.com/2012/01/saltando-de-aspnet-webforms-mvc-3.html' title='Saltando de ASP.net WebForms a MVC 3'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01638697400199573619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5502553796733750143.post-8297875452575897553</id><published>2012-01-01T16:39:00.000-03:00</published><updated>2012-01-01T16:41:26.997-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="samsung 550"/><title type='text'>recuperar samsung i5500 sin señal señal</title><content type='html'>abro este post para explicar como recuperar la senal del servidor &lt;br /&gt;en caso de que tu android la haya perdido &lt;br /&gt;les comento que cambie el firmware &lt;br /&gt;de froyo i5500L (latinoamerica) I5500LUYJP2 x una mas nueva i5500B(brasil) I5500BVJJP7 &lt;br /&gt;perdiendo la conexion con el servidor (personal en mi caso) &lt;br /&gt;por si a alguien mas le paso asi pude solucionarlo... &lt;br /&gt;&lt;br /&gt;colocar *#1575# , les aparecera la pantalla de gps &lt;br /&gt; &lt;br /&gt;&lt;br /&gt;palanca hacia la derecha, les aparecera &quot;common&quot; &lt;br /&gt; &lt;br /&gt;&lt;br /&gt;palanca hacia la derecha y luego ingresan a [1] debug screen &lt;br /&gt; &lt;br /&gt;&lt;br /&gt;luego [8] phone control &lt;br /&gt; &lt;br /&gt;&lt;br /&gt;[7] network control &lt;br /&gt; &lt;br /&gt;&lt;br /&gt;[2] band selection &lt;br /&gt; &lt;br /&gt;&lt;br /&gt;[3]gsm band preference &lt;br /&gt; &lt;br /&gt;&lt;br /&gt;[7] gsm all &lt;br /&gt; &lt;br /&gt;&lt;br /&gt;y a los pocos segundos (menos de 10) retornara la señal son el servidor &lt;br /&gt;&lt;br /&gt;espero que les sirva &lt;br /&gt;esto lo descubri solo &lt;br /&gt;y ya que no encontre ningun foro con la solucion para este problema lo posteo &lt;br /&gt;&lt;br /&gt;saludos</content><link rel='replies' type='application/atom+xml' href='http://pensaenbinario.blogspot.com/feeds/8297875452575897553/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5502553796733750143/8297875452575897553' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/8297875452575897553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/8297875452575897553'/><link rel='alternate' type='text/html' href='http://pensaenbinario.blogspot.com/2012/01/recuperar-samsung-i5500-sin-senal-senal.html' title='recuperar samsung i5500 sin señal señal'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01638697400199573619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5502553796733750143.post-6192933179446801111</id><published>2011-10-26T14:22:00.000-03:00</published><updated>2011-10-26T14:24:45.060-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mvc"/><title type='text'>WebGrid en MVC 3, paso a paso</title><content type='html'>Una de las preguntas que recibo con más frecuencia vía &lt;a href=&quot;http://kontactr.com/user/jmaguilar&quot; rel=&quot;Contactar&quot; target=&quot;_blank&quot; title=&quot;Contactar&quot;&gt;formulario de contacto&lt;/a&gt;  en el blog, en sus comentarios, y en los cursos de MVC es cómo  implementar grids, las habituales rejillas de datos que se suelen  utilizar en interfaces de gestión de datos, con capacidades de  paginación y ordenación.&lt;br /&gt;&lt;br /&gt;Dado que hasta MVC 3 no había un soporte oficial para implementar esta  funcionalidad desde la propia plataforma, nos veíamos obligados a  buscarnos un poco la vida, y o bien usar el andamiaje generado por  Visual Studio y desarrollar a mano las paginaciones y ordenaciones  (¡uf!), o utilizar componentes externos (como el de &lt;a href=&quot;http://mvccontrib.codeplex.com/wikipage?title=Grid&quot; target=&quot;_blank&quot; title=&quot;Grid en MVCContrib&quot;&gt;MVCContrib&lt;/a&gt;, &lt;a href=&quot;http://www.telerik.com/products/aspnet-mvc/grid.aspx&quot; target=&quot;_blank&quot; title=&quot;Grid for ASP.NET MVC&quot;&gt;Telerik&lt;/a&gt;, &lt;a href=&quot;http://www.variablenotfound.com/2009/10/jqgrid-grids-espectaculares-para-aspnet.html&quot; target=&quot;_blank&quot; title=&quot;jqGrid, grids espectaculares para ASP.NET MVC&quot;&gt;jqGrid&lt;/a&gt; u otros).&lt;br /&gt;&lt;br /&gt;La última versión de ASP.NET MVC, de la mano de la tecnología WebPages,  nos trae un nuevo conjunto de helpers de productividad bastante  interesantes en el espacio de nombres &lt;em&gt;System.Web.Helpers&lt;/em&gt;, entre los cuales encontramos &lt;strong&gt;WebGrid&lt;/strong&gt;,  que por fin ofrece una solución “de serie” potente y flexible para  ayudarnos a implementar esta funcionalidad de uso tan frecuente en  nuestras aplicaciones.&lt;br /&gt;&lt;br /&gt;Vamos a ver, paso a paso y de forma totalmente práctica, cómo utilizar  WebGrid. Al final de post, además, encontraréis un enlace para descargar  el proyecto completo para VS2010+SQL Express.&lt;br /&gt;&lt;h3&gt; 1. Lo primero: el Modelo&lt;/h3&gt; &lt;img alt=&quot;Estructura de la tabla en la base de datos&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBEn6qMDga4JY_AjOMLkOyksRVwRRxUxFI6NuynMdSzAm-TB_swiuj7dZGkGq_19OlPx5EU80tC67Hsn9_Kiz13lZcF4tcqj0lqaSnwfpjhoUz7eX3diphjG6THgmvz5a0dNXDv9-fcYOf/s320/bdd.png&quot; style=&quot;float: right; margin: 0px 0px 10px 10px;&quot; border=&quot;0&quot; height=&quot;148&quot; width=&quot;320&quot; /&gt;Lo  primero que necesitamos antes de empezar a profundizar en el helper  WebGrid es un Modelo, las entidades de datos de nuestra aplicación, así  como los mecanismos que nos permitan hacer persistente y recuperar la  información desde el sistema de almacenamiento que estemos utilizando.&lt;br /&gt;&lt;br /&gt;En este caso, vamos a utilizar como almacén una base de datos SQL  Express con una única tabla, en la que hemos creado una tabla para  guardar datos de personas; esta colección es la que pretendemos mostrar  en forma de rejilla de datos, por lo que necesitamos poblarla con  algunos datos para probar más adelante.&lt;br /&gt;&lt;br /&gt;&lt;img alt=&quot;Entity Data Model&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixosCSe719sUwj1QErWVoJxHhz3bNJ5vgRGUyXuVi1TqIsLVUi1LsbLHklLUQkOEQp0rEvduo8IHf_qzdnyBE0XYzgOyWPfG_e7nESRJzcaOZbNKZ9NDTMgowcPeqA6uUynDwvXOpGLT3-/s1600/edm.png&quot; style=&quot;float: right; margin: 0px 0px 10px 10px;&quot; border=&quot;0&quot; /&gt;  Para acceder a la base de datos vamos a utilizar Entity Framework, por  lo que  necesitaremos también un Entity Data Model, un modelo conceptual  de entidades, que podemos agregar a la carpeta Models del proyecto  utilizando la opción “Agregar nuevo elemento” del menú contextual. En el  asistente que aparece, sólo debemos indicarle que vamos a generar el  modelo desde una base de datos existente, seleccionamos la tabla  Personas, y listo.&lt;br /&gt;&lt;br /&gt;Con esto tenemos ya la infraestructura básica de datos de nuestra  aplicación. El siguiente paso será crear una clase de servicios, que  será la que provea la lógica de negocio y acceso a datos para nuestro  sistema.&lt;br /&gt;&lt;br /&gt;Obviamente esto no tiene por qué ser siempre así, depende de nuestras  necesidades y de la arquitectura del software, y en nuestro ejemplo van a  ser ambos aspectos bastante simples.&lt;br /&gt;&lt;br /&gt;El código inicial de nuestra clase de servicios es el siguiente:&lt;br /&gt;&lt;pre&gt;&lt;span style=&quot;font-family: Consolas;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;class&lt;/span&gt; &lt;span style=&quot;color: #2b91af;&quot;&gt;ModelServices&lt;/span&gt;: &lt;span style=&quot;color: #2b91af;&quot;&gt;IDisposable&lt;/span&gt; {     &lt;span style=&quot;color: blue;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;readonly&lt;/span&gt; &lt;span style=&quot;color: #2b91af;&quot;&gt;DatosEntities&lt;/span&gt; _datos = &lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: #2b91af;&quot;&gt;DatosEntities&lt;/span&gt;();       &lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #2b91af;&quot;&gt;IEnumerable&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: #2b91af;&quot;&gt;Persona&lt;/span&gt;&amp;gt; ObtenerPersonas()     {         &lt;span style=&quot;color: blue;&quot;&gt;return&lt;/span&gt; _datos.Personas.ToList();     }       &lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;void&lt;/span&gt; Dispose()     {         _datos.Dispose();     } }&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt; Como se puede observar en el código anterior, tenemos un único método, llamado &lt;code&gt;ObtenerPersonas()&lt;/code&gt;, que retorna el conjunto completo de personas almacenadas en la base de datos.&lt;br /&gt;&lt;br /&gt;Y de momento, he aquí todo el Modelo que necesitamos de momento.&lt;br /&gt;&lt;h3&gt; 2. El controlador&lt;/h3&gt; Nuestra clase del controlador, que llamaremos &lt;code&gt;PersonasController&lt;/code&gt;, en este primer acercamiento va a ser realmente sencilla. Una única acción, &lt;code&gt;Index()&lt;/code&gt;, que retornará una vista a la que suministraremos la colección de datos obtenida desde el Modelo:&lt;br /&gt;&lt;pre&gt;&lt;span style=&quot;font-family: Consolas;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;class&lt;/span&gt; &lt;span style=&quot;color: #2b91af;&quot;&gt;PersonasController&lt;/span&gt; : &lt;span style=&quot;color: #2b91af;&quot;&gt;Controller&lt;/span&gt; {     &lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #2b91af;&quot;&gt;ActionResult&lt;/span&gt; Index()     {         &lt;span style=&quot;color: blue;&quot;&gt;var&lt;/span&gt; datos = &lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: #2b91af;&quot;&gt;ModelServices&lt;/span&gt;().ObtenerPersonas();         &lt;span style=&quot;color: blue;&quot;&gt;return&lt;/span&gt; View(datos);     } }&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt; Y esto es todo: una acción con dos líneas. Vale, podría haber sido una  única línea, pero así el código me parecía más legible ;-)&lt;br /&gt;&lt;h3&gt; 3. La vista, toma primera: WebGrid entra en escena&lt;/h3&gt; Ahora es cuando vamos a empezar a notar las ventajas de utilizar WebGrid  respecto a las opciones disponibles hasta MVC y que ya hemos citado al  principio del post.&lt;br /&gt;&lt;br /&gt;Observad el siguiente código, una vista Razor que recibe una enumeración de objetos &lt;code&gt;Persona&lt;/code&gt; desde el controlador y genera un grid completo:&lt;br /&gt;&lt;pre&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Consolas;&quot;&gt;&lt;span style=&quot;background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;&quot;&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;@model &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #2b91af;&quot;&gt;IEnumerable&lt;/span&gt;&lt;webgriddemo.models.&lt;span style=&quot;color: #2b91af;&quot;&gt;Persona&lt;/webgriddemo.models.&lt;span&gt;&lt;/span&gt;&amp;gt; &lt;span style=&quot;background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;&quot;&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;@{&lt;/span&gt;&lt;/span&gt;     ViewBag.Title = &lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Personas&quot;&lt;/span&gt;;     &lt;span style=&quot;color: #2b91af;&quot;&gt;WebGrid&lt;/span&gt; grid = &lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: #2b91af;&quot;&gt;WebGrid&lt;/span&gt;(Model); &lt;span style=&quot;background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;&quot;&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;}&lt;/span&gt;&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;h2&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;Personas&lt;span style=&quot;color: blue;&quot;&gt;&lt;!--&lt;/span--&gt;&lt;span style=&quot;color: maroon;&quot;&gt;h2&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;&quot;&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;@&lt;/span&gt;&lt;/span&gt;grid.GetHtml()&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt; Impresionante, ¿eh? Aunque pueda parecer increíble, el código anterior  es todo lo que necesitamos para montar un grid funcionalmente completo,  con paginación y ordenación por columnas: ¡dos líneas! En la primera de  ellas instanciamos el WebGrid suministrándole la colección de datos  sobre la que debe iterar, y en la segunda (ya al final) generamos el  marcado HTML que enviaremos al cliente.&lt;br /&gt;&lt;br /&gt;El resultado en ejecución lo podemos ver en la siguiente captura de pantalla:&lt;br /&gt;&lt;br /&gt;&lt;img alt=&quot;WebGrid en ejecución&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCPoixajSu_1crngqA4UggULkU24s2qncQ_wqhFB_d7PoAwh07ehOsWMS-7OQ1YuhGNoF1bndVbVtWBMs0KnhfCRBMzv6ASPnyuma65FCxAGmW0jh-CjM28t27ddkVM6a9LdEYG1zubaAi/?imgmax=800&quot; style=&quot;background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;WebGrid en ejecución&quot; border=&quot;0&quot; height=&quot;546&quot; width=&quot;677&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Aunque todavía queda algo lejos de la perfección, el resultado es espectacular.&lt;br /&gt;&lt;br /&gt;El helper, en su comportamiento por defecto, muestra una columna por  cada propiedad que encuentra en la clase sobre la que itera, eso sí,  ordenándolas alfabéticamente. Además, ha utilizado el nombre de las  propiedades como encabezado de columna, y las muestra como enlaces para  forzar la ordenación por cada una de ellas, e incluso ha introducido en  el pie un sistema completo de navegación por las páginas de datos.&lt;br /&gt;&lt;br /&gt;Y lo mejor que todo esto funciona directamente, sin necesidad de añadir una línea de código más :-)&lt;br /&gt;&lt;br /&gt;Sin embargo, como siempre, estos automatismos tienen su precio. Por un  lado, no estamos controlando las columnas a mostrar, ni el formato en  que sus valores son presentados (observad, por ejemplo, la fecha de  nacimiento), ni sus encabezados… Normalmente, necesitaremos esforzarnos  algo más (aunque no demasiado) para dejarlo todo perfecto.&lt;br /&gt;&lt;br /&gt;Además, &lt;strong&gt;existe un serio problema de rendimiento&lt;/strong&gt; cuando  el número de elementos del grid sea importante: tanto la ordenación como  la paginación se realizan en memoria con el número total de elementos.  Exagerando, si tenemos un millón de filas en la base de datos, se  materializarán en memoria un millón de objetos, serán ordenados según el  criterio actual y, finalmente, sólo serán mostrados al cliente los diez  objetos que contiene una página de datos. Veremos más adelante que hay  fórmulas para gestionar de forma eficiente estos escenarios.&lt;br /&gt;&lt;h3&gt; 4. La vista, toma segunda: las columnas que yo quiera, por favor&lt;/h3&gt; Existen distintas fórmulas para especificar las columnas a mostrar en un  WebGrid. La primera de ellas, es mediante exclusión sobre el conjunto  total de propiedades. Entre muchos otros aspectos, en el método &lt;code&gt;GetHtml()&lt;/code&gt;  podemos especificar un array de nombres de propiedad que no deben  mostrarse como columnas. Por ejemplo, sobre el ejemplo anterior, si no  nos interesa mostrar la propiedad &lt;code&gt;IdPersona&lt;/code&gt;, podríamos haber sustituido la última línea de la vista por:&lt;br /&gt;&lt;pre&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Consolas;&quot;&gt;&lt;span style=&quot;background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;&quot;&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;@&lt;/span&gt;&lt;/span&gt;grid.GetHtml(exclusions: &lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt;[] {&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;IdPersona&quot;&lt;/span&gt;})&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt; Sin embargo, el enfoque anterior no es demasiado útil, puesto que  normalmente querremos indicar el orden de aparición de las columnas,  especificar sus encabezados, determinar si las columnas pueden ser  utilizadas como criterios de ordenación, etc. Toda esta información se  define en objetos &lt;code&gt;WebGridColumn&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;Aunque hay otras formas de hacerlo, habitualmente encontraremos en el parámetro &lt;code&gt;columns&lt;/code&gt; de la llamada a &lt;code&gt;GetHtml()&lt;/code&gt; un array con el detalle de las columnas del grid, como en el siguiente ejemplo:&lt;br /&gt;&lt;pre&gt;&lt;span style=&quot;font-family: Consolas;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;&quot;&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;@&lt;/span&gt;&lt;/span&gt;grid.GetHtml(columns: &lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt; [] {     grid.Column(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Nombre&quot;&lt;/span&gt;),     grid.Column(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Apellidos&quot;&lt;/span&gt;),     grid.Column(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;EMail&quot;&lt;/span&gt;),     grid.Column(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;FechaNacimiento&quot;&lt;/span&gt;),     grid.Column(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;NumeroDeHijos&quot;&lt;/span&gt;), })&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt; Como se puede observar, estamos pasando en el parámetro &lt;code&gt;columns&lt;/code&gt; un array en el que cada elemento lo estamos generando mediante una llamada al método &lt;code&gt;Column()&lt;/code&gt; de WebGrid, en cuyo primer parámetro indicamos el nombre de la propiedad a la que corresponde la columna.&lt;br /&gt;&lt;br /&gt;El resultado de la ejecución del código utilizando este último código sería:&lt;br /&gt;&lt;br /&gt;&lt;img alt=&quot;Web grid en ejecución, con mis columnas&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLze73Yz9ZqQbJ7vXQvdug-wCWsNt37Zu9kUugBvOYLKNuA_H7QD6mQr0qnh9bBEMer-J6yB6oXy3a5W9GXvBwaZJqxgVHoWSMjMWz7ey8OHiM-JM65m_gP8qFwugwSezWAJxo_YSJuPQM/?imgmax=800&quot; style=&quot;background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; margin: 0px 0px 0px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;Web grid en ejecución, con mis columnas&quot; border=&quot;0&quot; height=&quot;588&quot; width=&quot;677&quot; /&gt;&lt;br /&gt;&lt;br /&gt;Algo ha mejorado la cosa, aunque todavía tenemos que afinar algo más en cuanto a la presentación.&lt;br /&gt;&lt;h3&gt; 5. La vista, toma tercera: las columnas como yo quiero, por favor&lt;/h3&gt; Todavía nos quedan varios detalles por apuntalar para que el grid, al  menos a efectos visuales, cumpla un mínimo razonable. Para personalizar  cada columna, podemos utilizar los parámetros del método generador de  columnas &lt;code&gt;Column()&lt;/code&gt; que ya hemos visto anteriormente:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;header&lt;/code&gt;, que permite indicar el texto mostrado en el encabezado, &lt;/li&gt;&lt;li&gt;&lt;code&gt;canSort&lt;/code&gt;, que indica si la columna puede ser utilizada como criterio de ordenación, &lt;/li&gt;&lt;li&gt;&lt;code&gt;format&lt;/code&gt;, que permite indicar un formato personalizado para el contenido de la columna, &lt;/li&gt;&lt;li&gt;&lt;code&gt;style&lt;/code&gt;, que indica la clase CSS que se aplicará a todas las celdas de la columna. &lt;/li&gt;&lt;/ul&gt; De todas ellas, sólo merece una especial mención la propiedad format. En  ella podemos indicar, bien mediante un bloque de marcado Razor, bien  mediante una función lambda, cómo debe formatearse el contenido de la  propiedad vinculada a la columna.&lt;br /&gt;&lt;br /&gt;En el primer caso, debemos comenzar el bloque de marcado con el carácter de escape de Razor (&lt;span style=&quot;font-family: Consolas;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;&quot;&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;@&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;)  y seguirlo del código que queremos enviar al cliente. Desde su interior  podemos hacer referencia al objeto que está siendo evaluado utilizando &lt;span style=&quot;background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;&quot;&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;@&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;item&lt;/span&gt;, como en el siguiente ejemplo, donde se muestra cómo formatear la columna &lt;code&gt;EMail &lt;/code&gt;para que sea mostrada como un hiperenlace de tipo &lt;em&gt;mailto:&lt;/em&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Consolas;&quot;&gt;    grid.Column(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;EMail&quot;&lt;/span&gt;,                   format: &lt;span style=&quot;background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;&quot;&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;@&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;a&lt;/span&gt; &lt;span style=&quot;color: red;&quot;&gt;href&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;mailto:&lt;/span&gt;&lt;span style=&quot;background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;&quot;&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;@&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;item.Email&quot;&amp;gt;&lt;/span&gt;&lt;span style=&quot;background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;&quot;&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;@&lt;/span&gt;&lt;/span&gt;item.Email&lt;span style=&quot;color: blue;&quot;&gt;&lt;!--&lt;/span--&gt;&lt;span style=&quot;color: maroon;&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;     )&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;Para profundizar en la &quot;magia&quot; que hace posible la utilización de bloques de marcado donde debería haber código, &lt;a href=&quot;http://geeks.ms/blogs/etomas/archive/2011/01/25/asp-net-mvc3-razor-templates.aspx&quot;&gt;no os perdáis este magnífico post de Eduard Tomás sobre Razor Templates&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;También podemos utilizar una función lambda, que recibe como parámetro el objeto actual y retorna una cadena (o un &lt;code&gt;IHtmlString&lt;/code&gt; si no debe ser codificada). Por ejemplo, a continuación vemos cómo utilizar esta posibilidad para dar formato a la columna &lt;code&gt;FechaNacimiento&lt;/code&gt;:&lt;br /&gt;&lt;pre&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Consolas;&quot;&gt;    grid.Column(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;FechaNacimiento&quot;&lt;/span&gt;,                  format: p=&amp;gt;p.FechaNacimiento.ToShortDateString()     )&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;Por tanto, teniendo en cuenta todo lo anterior, podemos &lt;em&gt;tunear&lt;/em&gt;  un poco el grid utilizando el siguiente código. Como recordatorio,  mostraré de nuevo el código completo de la vista, para que podáis  observar en su conjunto cómo va quedando:&lt;br /&gt;&lt;pre&gt;&lt;span style=&quot;font-family: Consolas;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;&quot;&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;@model &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #2b91af;&quot;&gt;IEnumerable&lt;/span&gt;&lt;webgriddemo.models.&lt;span style=&quot;color: #2b91af;&quot;&gt;Persona&lt;/webgriddemo.models.&lt;span&gt;&lt;/span&gt;&amp;gt; &lt;span style=&quot;background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;&quot;&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;@{&lt;/span&gt;&lt;/span&gt;     ViewBag.Title = &lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Personas&quot;&lt;/span&gt;;     &lt;span style=&quot;color: #2b91af;&quot;&gt;WebGrid&lt;/span&gt; grid = &lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: #2b91af;&quot;&gt;WebGrid&lt;/span&gt;(Model); &lt;span style=&quot;background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;&quot;&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;}&lt;/span&gt;&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;h2&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;Personas&lt;span style=&quot;color: blue;&quot;&gt;&lt;!--&lt;/span--&gt;&lt;span style=&quot;color: maroon;&quot;&gt;h2&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;&quot;&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;@&lt;/span&gt;&lt;/span&gt;grid.GetHtml(columns: &lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt; [] {     grid.Column(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Nombre&quot;&lt;/span&gt;, canSort: &lt;span style=&quot;color: blue;&quot;&gt;false&lt;/span&gt;),     grid.Column(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Apellidos&quot;&lt;/span&gt;),     grid.Column(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;EMail&quot;&lt;/span&gt;,                   format: &lt;span style=&quot;background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;&quot;&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;@&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;a&lt;/span&gt; &lt;span style=&quot;color: red;&quot;&gt;href&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;=&quot;mailto:&lt;/span&gt;&lt;span style=&quot;background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;&quot;&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;@&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;item.Email&quot;&amp;gt;&lt;/span&gt;&lt;span style=&quot;background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;&quot;&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;@&lt;/span&gt;&lt;/span&gt;item.Email&lt;span style=&quot;color: blue;&quot;&gt;&lt;!--&lt;/span--&gt;&lt;span style=&quot;color: maroon;&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;     ),     grid.Column(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;FechaNacimiento&quot;&lt;/span&gt;,                  header: &lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Fecha de nacimiento&quot;&lt;/span&gt;,                 format: p=&amp;gt;p.FechaNacimiento.ToShortDateString()     ),     grid.Column(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;NumeroDeHijos&quot;&lt;/span&gt;,                  header: &lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Número de hijos&quot;&lt;/span&gt;,                 style: &lt;span style=&quot;color: #a31515;&quot;&gt;&quot;a-la-derecha&quot;&lt;/span&gt;     ) })&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;En ejecución ya sí que podemos ver algo más terminado:&lt;br /&gt;&lt;br /&gt;&lt;img alt=&quot;WebGrid, con las columnas con formato&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4oH9Np2ABCn8aIKHWvj5QlZdNNXzyh3beDqz-7DXx8shscx0p7LD_vkKp3jcK-hjgDBLMqHEq4rvVLbaviMKnifIuJnWEXQnLzFgurq0RhSwfDsxnN0wVConYbAyEd5qlf8ILVsERlqBc/?imgmax=800&quot; style=&quot;background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: block; float: none; margin: 0px auto 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;WebGrid, con las columnas con formato&quot; border=&quot;0&quot; height=&quot;574&quot; width=&quot;676&quot; /&gt;&lt;br /&gt;&lt;h3&gt; 6. La vista, toma cuarta: ¿y no puedo añadir columnas personalizadas?&lt;/h3&gt; ¡Pues claro!&lt;br /&gt;&lt;br /&gt;De hecho, basta con añadir columnas exactamente igual que las  anteriores, excepto en que no las vincularemos a ninguna propiedad de la  clase del Modelo. Esto, combinado con la flexibilidad del formateo  personalizado (parámetro &lt;code&gt;format&lt;/code&gt;), nos ofrece ya todo lo que necesitamos para crear columnas totalmente a nuestro antojo.&lt;br /&gt;&lt;br /&gt;El siguiente código muestra cómo añadir una columna adicional con  enlaces hacia las acciones que permitirían, por ejemplo, editar o  eliminar una Persona:&lt;br /&gt;&lt;pre&gt;&lt;span style=&quot;font-family: Consolas;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;&quot;&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;@&lt;/span&gt;&lt;/span&gt;grid.GetHtml(columns: &lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt; [] {      ... &lt;span style=&quot;color: #8fb08c;&quot;&gt;// Resto de columnas del grid, vistas anteriormente&lt;/span&gt;     grid.Column(           &lt;span style=&quot;color: #a31515;&quot;&gt;&quot;&quot;&lt;/span&gt;,            header: &lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Acciones&quot;&lt;/span&gt;,           format: &lt;span style=&quot;background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;&quot;&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;@&lt;text&gt;&lt;/text&gt;&lt;/span&gt;&lt;/span&gt;                     &lt;span style=&quot;background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;&quot;&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;@&lt;/span&gt;&lt;/span&gt;Html.ActionLink(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Editar&quot;&lt;/span&gt;,   &lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Edit&quot;&lt;/span&gt;,   &lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt; { id=item.IdPersona} )                     |                     &lt;span style=&quot;background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;&quot;&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;@&lt;/span&gt;&lt;/span&gt;Html.ActionLink(&lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Eliminar&quot;&lt;/span&gt;, &lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Delete&quot;&lt;/span&gt;, &lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt; { id=item.IdPersona} )                   &lt;span style=&quot;background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;&quot;&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;&lt;/span&gt;&lt;/span&gt;     ) })&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt; Observad que esta vez, para incrementar la legibilidad del código, estamos utilizando el &lt;em&gt;tag&lt;/em&gt; especial &lt;span style=&quot;background-color: yellow;&quot;&gt;&lt;text&gt;&lt;/text&gt;&lt;/span&gt; de Razor, que nos permite crear bloques de marcado de varias líneas.&lt;br /&gt;&lt;br /&gt;Y el resultado, como el siguiente:&lt;br /&gt;&lt;br /&gt;&lt;img alt=&quot;WebGrid, con columnas personalizadas&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhInzBzmJBEoHlUMA2C_kZ7aG9jM86atbujh14gmD2QwCH4D31c27p2AyufKnrltMK8r9DkZFHiFxb8nSiE1x9bKbz58Ih5yoQon3G1J4ziM-GN2WzYtiZt2jIVIwCL-CaqGae_KdP0wFR_/?imgmax=800&quot; style=&quot;background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: block; float: none; margin: 0px auto 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;WebGrid, con columnas personalizadas&quot; border=&quot;0&quot; height=&quot;523&quot; width=&quot;675&quot; /&gt;&lt;br /&gt;&lt;h3&gt; 7. La vista, toma quinta: mejor casi que lo quiero todo a mi gusto&lt;/h3&gt; El helper WebGrid ofrece multitud de opciones de personalización  adicionales que podemos establecer tanto al llamar a sus distintos  métodos como de forma directa. Por ejemplo, &lt;code&gt;GetHtml()&lt;/code&gt; permite indicar los siguientes parámetros, además de los ya vistos:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;headerStyle&lt;/code&gt;, &lt;code&gt;footerStyle&lt;/code&gt;, &lt;code&gt;rowStyle&lt;/code&gt;, &lt;code&gt;alternatingRowStyle&lt;/code&gt;,  y selectedRowStyle permite indicar las clases CSS a aplicar a las filas  de encabezado, pie, filas de datos alternativas, y fila seleccionada,  respectivamente. &lt;/li&gt;&lt;li&gt;&lt;code&gt;caption&lt;/code&gt;, para especificar un título para la tabla, que será incluido en una etiqueta &lt;code&gt;&lt;/code&gt; en el encabezado. &lt;/li&gt;&lt;li&gt;&lt;code&gt;fillEmptyRows&lt;/code&gt;, establecido a &lt;code&gt;true &lt;/code&gt;hace que cada página tenga siempre el mismo número de filas, creando filas en blanco si fuera necesario. &lt;/li&gt;&lt;li&gt;&lt;code&gt;emptyRowCellValue &lt;/code&gt;indica el valor a mostrar en las celdas de filas vacías. &lt;/li&gt;&lt;li&gt;&lt;code&gt;mode&lt;/code&gt;, permite especificar el tipo de paginador a generar, eligiéndolo mediante una combinación de elementos de la enumeración &lt;code&gt;WebGridPagerModes&lt;/code&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;WebGridPagerModes.Numeric&lt;/code&gt;: el paginador mostrará enlaces directos a páginas cercanas a la actual. &lt;/li&gt;&lt;li&gt;&lt;code&gt;WebGridPagerModes.FirsLast&lt;/code&gt;: se mostrarán enlaces para ir a la primera y última página de datos. &lt;/li&gt;&lt;li&gt;&lt;code&gt;WebGridPagerModes.NextPrevious&lt;/code&gt;: aparecerán enlaces para desplazarse a la página anterior y siguiente. &lt;/li&gt;&lt;li&gt;&lt;code&gt;WebGridPagerModes.All&lt;/code&gt;: todos los anteriores al mismo tiempo. &lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;li&gt;&lt;code&gt;numericLinksCount&lt;/code&gt;: indica el número de páginas que aparecerán, siempre que &lt;code&gt;mode &lt;/code&gt;contenga el valor &lt;code&gt;WebGridPagerModes.Numeric&lt;/code&gt;. &lt;/li&gt;&lt;li&gt;&lt;code&gt;firstText&lt;/code&gt;, &lt;code&gt;previousText&lt;/code&gt;, &lt;code&gt;nextText&lt;/code&gt;, &lt;code&gt;lastText&lt;/code&gt;,  permite sustituir los textos que aparecen por defecto en los enlaces de  ir a la primera, anterior, siguiente y última página respectivamente.  Inicialmente son los habituales “&amp;lt;&amp;lt;”, “&amp;lt;”, “&amp;gt;”, y  “&amp;gt;&amp;gt;”. &lt;/li&gt;&lt;/ul&gt; Por ejemplo, observad el siguiente código, y su resultado en ejecución  una vez hemos creado un par de reglas en la hoja de estilos del sitio  web:&lt;br /&gt;&lt;pre&gt;&lt;span style=&quot;font-family: Consolas;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;... &amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;h2&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;Personas&lt;span style=&quot;color: blue;&quot;&gt;&lt;!--&lt;/span--&gt;&lt;span style=&quot;color: maroon;&quot;&gt;h2&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;background-attachment: scroll; background-image: none; background-position: 0% 0%; background-repeat: repeat;&quot;&gt;&lt;span style=&quot;background-color: yellow;&quot;&gt;@&lt;/span&gt;&lt;/span&gt;grid.GetHtml(     fillEmptyRows: &lt;span style=&quot;color: blue;&quot;&gt;true&lt;/span&gt;,     alternatingRowStyle: &lt;span style=&quot;color: #a31515;&quot;&gt;&quot;fila-alternativa&quot;&lt;/span&gt;,     headerStyle: &lt;span style=&quot;color: #a31515;&quot;&gt;&quot;encabezado-grid&quot;&lt;/span&gt;,     footerStyle: &lt;span style=&quot;color: #a31515;&quot;&gt;&quot;pie-grid&quot;&lt;/span&gt;,     mode: WebGridPagerModes.All,     firstText: &lt;span style=&quot;color: #a31515;&quot;&gt;&quot;&amp;lt;&amp;lt; Primera&quot;&lt;/span&gt;,     previousText: &lt;span style=&quot;color: #a31515;&quot;&gt;&quot;&amp;lt; Anterior&quot;&lt;/span&gt;,     nextText: &lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Siguiente &amp;gt;&quot;&lt;/span&gt;,     lastText: &lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Última &amp;gt;&amp;gt;&quot;&lt;/span&gt;,     columns: &lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt; [] {      ... &lt;span style=&quot;color: green;&quot;&gt;// Definición de columnas vista anteriormente&lt;/span&gt; })&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;img alt=&quot;WebGrid, con algo de estilo&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijzH7n4cQ-IyTOum9ykBmrlgZsXoUTDLMTzISg_joLOEr5PNXmaHNCrdEiXZir1m0rgUyw5InTP_XjdyUWqZS0p945R_H8u1ibGhc9Xr7-0Tksn1T0bb6neOR6mEZ8qkxbbD0Q1BIum9yK/?imgmax=800&quot; style=&quot;background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: block; float: none; margin: 0px auto 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;WebGrid, con algo de estilo&quot; border=&quot;0&quot; height=&quot;542&quot; width=&quot;670&quot; /&gt;&lt;br /&gt;&lt;br /&gt;Asimismo, el propio constructor de WebGrid permite modificar también  numerosos aspectos funcionales del grid mediante los siguientes  parámetros:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;defaultSort&lt;/code&gt;, que indica la columna que actuará como ordenación por defecto mientras no se especifique otra. &lt;/li&gt;&lt;li&gt;&lt;code&gt;rowsPerPage&lt;/code&gt; (por defecto, 10), define el número de filas que aparecerán en cada página. &lt;/li&gt;&lt;li&gt;&lt;code&gt;canPage&lt;/code&gt;, &lt;code&gt;canSort&lt;/code&gt;, indican respectivamente si el grid va a permitir paginación y ordenación. Por defecto, true en ambos casos.&lt;br /&gt;&lt;code&gt;fieldNamePrefix&lt;/code&gt;,  que permite indicar el prefijo que será utilizado en los parámetros del  query string utilizados por el grid. Esto, por ejemplo, permitiría  mostrar varios grids simultáneamente sobre la misma página, sin  interferir en su funcionamiento. &lt;/li&gt;&lt;li&gt;&lt;code&gt;selectionFieldName&lt;/code&gt;, &lt;code&gt;sortFieldName&lt;/code&gt;, &lt;code&gt;sortDirectionFieldName&lt;/code&gt;  permiten indicar el nombre de los parámetros usados para mantener el  estado de, respectivamente, la fila seleccionada, el campo de ordenación  y el sentido de la ordenación. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;WebGrid permite incluso el funcionamiento en modo Ajax, es decir, es  capaz de mostrar las distintas páginas de datos sin necesidad de  recargar la página completa. En este caso, podemos utilizar los  parámetros &lt;code&gt;ajaxUpdateContainerId&lt;/code&gt; y &lt;code&gt;ajaxUpdateCallback&lt;/code&gt;, que permiten indicar respectivamente el elemento de la página donde serán mostrados los datos y una función &lt;em&gt;callback&lt;/em&gt; que será llamada tras actualizar el elemento. Esto, si no se me olvida, lo veremos en otro post más adelante.&lt;br /&gt;&lt;h3&gt; Y recapitulando…&lt;/h3&gt; A lo largo de este artículo hemos ido profundizando en el uso de WebGrid  de forma progresiva, partiendo de un ejemplo realmente simple hasta  abordar escenarios de personalización más avanzados. Espero que sirva  para mostrar el uso y principales características de este útil y potente  helper, que con toda seguridad nos ahorrará bastante trabajo en los  proyectos MVC 3.&lt;br /&gt;&lt;br /&gt;Sin embargo, ya he comentado anteriormente que no es oro todo lo que  reluce… la paginación implementada por defecto por WebGrid es bastante  ineficiente, puesto que necesita tener en memoria el conjunto de datos  completo para ordenarlo y extraer únicamente la página solicitada. No es  nada complicado implementar de forma correcta esta paginación, pero  dado que este post ya ha quedado lo suficientemente extenso, dejaremos  su explicación para un artículo posterior.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img alt=&quot;Descargar proyecto&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlMjJQeeUfCU-X1dlI4Ym-ZtmHcJnepdi6dMc5PqHWWaaf3mWyFaxrT5cfwpetvNynHnmdHFXGd1SAve4QqJMTxLBACNTRoSX1eK8OzzdMm4xoOvaWuywONFhFfyLjzBhPg6SaKR1DwDX9/?imgmax=800&quot; style=&quot;background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; float: left; margin: 0px 0px 10px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;Descargar proyecto&quot; align=&quot;left&quot; border=&quot;0&quot; height=&quot;57&quot; width=&quot;55&quot; /&gt;Ah, podéis &lt;a href=&quot;http://cid-c3a43a99b617d787.office.live.com/self.aspx/P%c3%bablico/variablenotfound.com/ASP.NET%20MVC/ASP.NET%20MVC%203/WebGrid/WebGridDemo.zip&quot; target=&quot;_blank&quot; title=&quot;Descargar proyecto desde Skydrive&quot;&gt;descargar el proyecto de demostración desde mi Skydrive&lt;/a&gt; (requiere VS2010, MVC 3 y SQL Express).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Publicado en: &lt;a href=&quot;http://www.variablenotfound.com/&quot;&gt;Variable not found&lt;/a&gt;. </content><link rel='replies' type='application/atom+xml' href='http://pensaenbinario.blogspot.com/feeds/6192933179446801111/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5502553796733750143/6192933179446801111' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/6192933179446801111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/6192933179446801111'/><link rel='alternate' type='text/html' href='http://pensaenbinario.blogspot.com/2011/10/webgrid-en-mvc-3-paso-paso.html' title='WebGrid en MVC 3, paso a paso'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01638697400199573619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBEn6qMDga4JY_AjOMLkOyksRVwRRxUxFI6NuynMdSzAm-TB_swiuj7dZGkGq_19OlPx5EU80tC67Hsn9_Kiz13lZcF4tcqj0lqaSnwfpjhoUz7eX3diphjG6THgmvz5a0dNXDv9-fcYOf/s72-c/bdd.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5502553796733750143.post-2176648027945416049</id><published>2011-10-25T15:39:00.000-03:00</published><updated>2011-10-25T16:08:39.409-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mvc"/><category scheme="http://www.blogger.com/atom/ns#" term="Scaffolding"/><title type='text'>MVC 3 - Scaffolding - EF Code First SQL Compact</title><content type='html'>&lt;iframe src=&quot;http://player.vimeo.com/video/22266437?title=0&amp;amp;byline=0&amp;amp;portrait=0&quot; webkitallowfullscreen=&quot;&quot; allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;225&quot; width=&quot;400&quot;&gt;&lt;/iframe&gt;&lt;p&gt;&lt;a href=&quot;http://vimeo.com/22266437&quot;&gt;MVC 3 - Scaffolding - EF Code First SQL Compact&lt;/a&gt; from &lt;a href=&quot;http://vimeo.com/user3553672&quot;&gt;Moisés Rivas&lt;/a&gt; on &lt;a href=&quot;http://vimeo.com/&quot;&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://pensaenbinario.blogspot.com/feeds/2176648027945416049/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5502553796733750143/2176648027945416049' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/2176648027945416049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/2176648027945416049'/><link rel='alternate' type='text/html' href='http://pensaenbinario.blogspot.com/2011/10/mvc-3-scaffolding-ef-code-first-sql.html' title='MVC 3 - Scaffolding - EF Code First SQL Compact'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01638697400199573619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5502553796733750143.post-8224556894306608208</id><published>2011-10-25T15:32:00.001-03:00</published><updated>2011-10-25T15:39:30.942-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="asp.net"/><category scheme="http://www.blogger.com/atom/ns#" term="mvc"/><title type='text'>Tutorial Nerddinner ASP.NET MVC 1</title><content type='html'>&lt;p&gt;El tutorial comienza en el ménu File-&amp;gt;New Proyect de Visual Studio  para crear un proyecto nuevo de ASP.NET MVC, y luego le vamos añadiendo  funcionalidades y características de manera incremental. Entre otras  cosas veremos cómo:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Crear una base de datos&lt;/li&gt;&lt;li&gt;Construir un modelo con validaciones y reglas de negocio.&lt;/li&gt;&lt;li&gt;Implementar listados/detalles de datos en la UI de un sitio con Controladores y Vistas.&lt;/li&gt;&lt;li&gt;Permitir el trabajo con datos (Crear, Actualizar, Eliminar)&lt;/li&gt;&lt;li&gt;Usar el patrón ViewModel para pasar información desde un controlador a una vista.&lt;/li&gt;&lt;li&gt;Reusar UI en un sitio con clases parciales y master pages.&lt;/li&gt;&lt;li&gt;Implementar paginado eficientes de datos.&lt;/li&gt;&lt;li&gt;Securizar una aplicación usando autenticación y autorización.&lt;/li&gt;&lt;li&gt;Usar Ajax para actualizaciones dinámicas.&lt;/li&gt;&lt;li&gt;Usar ajax para añadir mapeos interactivos.&lt;/li&gt;&lt;li&gt;Crear test unitarios automáticos (incluidos injección de dependencias y objetos mock).&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;La aplicación que creamos en el tutorial se llama “NerdDinner”.  Permite una forma de organizar, hostear y buscar sitios en los que cenar  online:&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://weblogs.asp.net/blogs/scottgu/nerddinner_small1_29171E72.png&quot;&gt;&lt;img class=&quot;alignnone&quot; src=&quot;http://weblogs.asp.net/blogs/scottgu/nerddinner_small1_29171E72.png&quot; alt=&quot;&quot; width=&quot;516&quot; /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://www.hanselman.com/blog/&quot;&gt;Scott Hanselman &lt;/a&gt;ha  estado hosteando Nerddinners durante años, y viene con la idea de crear  el tutorial sobre la aplicación que facilita esta tarea. También hostea  una versión maquillada de la aplicación en &lt;a href=&quot;http://www.nerddiner.com/&quot;&gt;www.nerddiner.com&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Enlaces de descarga&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://aspnetmvcbook.s3.amazonaws.com/aspnetmvc-nerdinner_v1.pdf&quot;&gt;El tutorial en PDF&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://nerddinner.codeplex.com/&quot;&gt;Código fuente + test unitarios de la aplicación completa&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Para aprender más sobre el libro en la &lt;a href=&quot;http://www.wrox.com/WileyCDA/Section/id-321793.html&quot;&gt;página oficial de Wrox&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.amazon.com/gp/product/0470384611?ie=UTF8&amp;amp;tag=scoblo04-20&amp;amp;linkCode=xm2&amp;amp;camp=1789&amp;amp;creativeASIN=0470384611&quot;&gt;Pedir el libro en Amazon.&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Saludos!!</content><link rel='replies' type='application/atom+xml' href='http://pensaenbinario.blogspot.com/feeds/8224556894306608208/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5502553796733750143/8224556894306608208' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/8224556894306608208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/8224556894306608208'/><link rel='alternate' type='text/html' href='http://pensaenbinario.blogspot.com/2011/10/tutorial-nerddinner-aspnet-mvc.html' title='Tutorial Nerddinner ASP.NET MVC 1'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01638697400199573619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5502553796733750143.post-6912251399730950272</id><published>2011-10-12T15:03:00.000-03:00</published><updated>2011-10-12T15:05:01.738-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="liskov"/><category scheme="http://www.blogger.com/atom/ns#" term="patrones de diseño"/><title type='text'>Herencia de clases y el &quot;Principio de Liskov&quot;</title><content type='html'>En realidad se llama &lt;span style=&quot;font-style: italic;&quot;&gt;&quot;Principio de sustitución de Liskov&quot;&lt;/span&gt; y el nombre completo es &lt;a href=&quot;http://es.wikipedia.org/wiki/Barbara_H._Liskov&quot;&gt;Bárbara H. Liskov&lt;/a&gt; (sí, hay mujeres en la informática y han hecho grandes aportes ;-)).&lt;br /&gt;&lt;br /&gt;A grandes rasgos dice que el famoso &quot;es un&quot; (is_a) que generalmente usan los docentes para enseñarnos &lt;a href=&quot;http://es.wikipedia.org/wiki/Herencia_%28programaci%C3%B3n_orientada_a_objetos%29&quot;&gt;&quot;herencia de clases&quot;&lt;/a&gt; no es suficiente.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;blockquote&gt;No basta con &quot;ser&quot; hay que &quot;comportarse como tal&quot;.&lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Generalmente hago el mismo chiste cuando trato el tema en un curso: &lt;span style=&quot;font-style: italic;&quot;&gt;&quot;un docente &lt;/span&gt;&lt;b style=&quot;font-style: italic;&quot;&gt;es una &lt;/b&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;persona, pero no basta, debe comportarse como tal&quot;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size:180%;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Un ejemplo más real: Sistema de liquidación de sueldos&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Si tienes un sistema que liquida sueldos, una clase base &lt;span style=&quot;font-style: italic;&quot;&gt;Empleado&lt;/span&gt; (con atributos como &quot;sueldo&quot; que se usa para calcular su pago) y subclases &lt;span style=&quot;font-style: italic;&quot;&gt;Gerente, Desarrollador, Administrativa y Becario&lt;/span&gt; (asumamos que el último no recibe ninguna remuneración).&lt;br /&gt;&lt;br /&gt;Usas &lt;a href=&quot;http://es.wikipedia.org/wiki/Polimorfismo_en_programaci%C3%B3n_orientada_a_objetos&quot;&gt;polimorfismo&lt;/a&gt; y en tu clase &lt;span style=&quot;font-style: italic;&quot;&gt;Administracion&lt;/span&gt; tienes un método &lt;span style=&quot;font-style: italic;&quot;&gt;liquidarSueldo&lt;/span&gt; donde recibirás objetos de tipo &lt;span style=&quot;font-style: italic;&quot;&gt;Empleado&lt;/span&gt;.  Bien, cuando en un momento recibes de tu lista de empleados un  becario...  ¿qué debe hacer el sistema? (ya que haces el cálculo en base  al valor que viene en el atributo &lt;span style=&quot;font-style: italic;&quot;&gt;sueldo&lt;/span&gt; y este es heredado por todos desde la clase &lt;span style=&quot;font-style: italic;&quot;&gt;Empleado&lt;/span&gt;).&lt;br /&gt;&lt;ol style=&quot;list-style-type: decimal;&quot;&gt;&lt;li&gt;¿Emitir un comprobante impreso pero con &lt;span style=&quot;font-style: italic;&quot;&gt;valor 0&lt;/span&gt;?&lt;/li&gt;&lt;li&gt;¿Agregar un &quot;if&quot; preguntando si es becario, y no hacer nada?&lt;/li&gt;&lt;li&gt;etc&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Supongamos  que el 1) no es aceptable por el gasto de papel y te piden que no se  impriman (no tiene sentido), pasamos al punto 2), agregamos un &quot;if&quot;.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt; ¿No estamos &quot;codificando a fuego&quot; nuestro sistema para un comportamiento particular?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Estamos rompiendo el polimorfismo, justamente, &lt;b&gt;el patrón estratégico más importante que tiene la &lt;a href=&quot;http://es.wikipedia.org/wiki/POO&quot;&gt;POO&lt;/a&gt;&lt;/b&gt;. Cada vez que tenemos que cambiar nuestro código generamos nuevos costos y nuevos posibles errores.&lt;br /&gt;&lt;br /&gt;Por  eso cada vez nos cuesta más desarrollar un sistema, hasta que tenemos  que tirarlo y desarrollar otro de cero... y empezamos otra vez con los  problemas del mal diseño (&lt;a href=&quot;http://en.wikipedia.org/wiki/Code_smell&quot;&gt;code smell&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size:180%;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;La base teórica&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Los &lt;a href=&quot;http://phpsenior.blogspot.com/2007/07/apuntes-principios-de-diseo-orientado.html&quot;&gt;principios de diseño&lt;/a&gt; te dicen que &lt;i&gt;&lt;b&gt;&quot;desarrolla cerrado al cambio y abierto a la extensión&quot;&lt;/b&gt;&lt;/i&gt; (&lt;a href=&quot;http://en.wikipedia.org/wiki/Open/closed_principle&quot;&gt;Principio Open/Closed, &quot;Abierto / Cerrado&quot;&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Por ejemplo, tu código debe ser reutilizable (&lt;a href=&quot;http://es.wikipedia.org/wiki/POO#Diferencias_con_la_programaci%C3%B3n_estructurada&quot;&gt;¿no es la idea esencial de la OO?&lt;/a&gt;)  y con solo agregar código -sin tocar el existente- lograrás adecuarte a  los cambios, a los nuevos requerimientos. No te olvides que nuestro  código lo usan muchos otros objetos, si este cambiara, generaría un  efecto en cadena, posiblemente, dejando de funcionar lo ya existente y  tener que modificar más objetos.&lt;br /&gt;&lt;br /&gt;Esta forma de &quot;extensión&quot; es agregar más clases a la herencia y el método &lt;span style=&quot;font-style: italic;&quot;&gt;liquidarSueldo&lt;/span&gt; no se modifica, pero &lt;span style=&quot;font-weight: bold;&quot;&gt;si tu no haces correctas herencias, no puedes hacer lo primero, por lo tanto tu sistema se degradará en cascada&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Esta simple tontería el autor demuestra con muchos ejemplos que hacer &lt;span style=&quot;font-style: italic;&quot;&gt;&quot;herencia por herencia&quot;&lt;/span&gt;, &lt;span style=&quot;font-style: italic;&quot;&gt;&quot;por reutilizar código&quot;&lt;/span&gt;, no es suficiente y genera grandes problemas en los diseños.&lt;br /&gt;&lt;br /&gt;Es  una de las razones que me ven de mal humor cuando veo que implementan  herencia a los golpes, prueba y error, con el argumento solo de  &quot;reutilizar código&quot; &lt;img src=&quot;http://www.forosdelweb.com/images/smilies/chillando.gif&quot; alt=&quot;&quot; title=&quot;lloron&quot; class=&quot;inlineimg&quot; border=&quot;0&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size:180%;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;La conclusión final es...&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;El problema es que la herencia está mal formulada y que el &lt;span style=&quot;font-style: italic;&quot;&gt;Becario&lt;/span&gt; no se comporta como un &lt;span style=&quot;font-style: italic;&quot;&gt;Empleado&lt;/span&gt;,  por lo tanto no puede ir en esa estructura jerárquica, de lo contrario  nos va a obligar a desarmar nuestro sistema para tratar de ajustarlo a  un comportamiento no adecuado (agregando condiciones explícitas para el  mismo, hardcode) y este empezará a dejar de ser reusable.&lt;br /&gt;&lt;br /&gt;No se puede hacer herencia por herencia, para reusar código. No se puede hacer herencia simplemente por que un &lt;span style=&quot;font-style: italic;&quot;&gt;&quot;Becario es un Empleado&quot;&lt;/span&gt;, hay que estar seguro que además de &quot;ser&quot; se comporte como tal.&lt;br /&gt;&lt;br /&gt;Nuestro  becario, ya que no cobra una remuneración, no pude pasar por el sistema  de liquidación de sueldos. La solución no es ajustar el sistema de  sueldos para que lo permita.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Anexo otro artículo relacionado:&lt;/span&gt; &lt;a href=&quot;http://phpsenior.blogspot.com/2006/08/herencia-mltiple-en-php5.html&quot;&gt;Herencia Múltiple en PHP5&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Nota:&lt;/span&gt; este post está basado en una discusión presentada en &lt;a href=&quot;http://www.forosdelweb.com/f68/aprendiendo-poo-he-topado-con-error-con-public-471154/#post1922447&quot;&gt;Foros del Web&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Fuente: &lt;a href=&quot;http://phpsenior.blogspot.com/2007/10/herencia-de-clases-y-el-principio-de.html&quot;&gt;http://phpsenior.blogspot.com/2007/10/herencia-de-clases-y-el-principio-de.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://pensaenbinario.blogspot.com/feeds/6912251399730950272/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5502553796733750143/6912251399730950272' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/6912251399730950272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/6912251399730950272'/><link rel='alternate' type='text/html' href='http://pensaenbinario.blogspot.com/2011/10/herencia-de-clases-y-el-principio-de.html' title='Herencia de clases y el &quot;Principio de Liskov&quot;'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01638697400199573619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5502553796733750143.post-906537757706188801</id><published>2011-10-10T19:19:00.003-03:00</published><updated>2011-10-10T19:26:10.709-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="patrones de diseño"/><title type='text'>PATRONES DEFINIDOS POR MARTIN FOWLER</title><content type='html'>&lt;a href=&quot;https://skydrive.live.com/embedicon.aspx/Patrones%20de%20Dise%c3%b1o?cid=9db0989fa30ac302&amp;amp;sc=documents&quot;&gt;Ver Pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe title=&quot;Preview&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; style=&quot;width:98px;height:115px;padding:0;background-color:#fcfcfc;&quot; src=&quot;https://skydrive.live.com/embedicon.aspx/Patrones%20de%20Dise%c3%b1o?cid=9db0989fa30ac302&amp;amp;sc=documents&quot; scrolling=&quot;no&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.google.com.ar/url?sa=t&amp;amp;source=web&amp;amp;cd=1&amp;amp;ved=0CBwQFjAA&amp;amp;url=http%3A%2F%2Fsedici.unlp.edu.ar%2FARG-UNLP-TPG-0000000045%2F882.pdf&amp;amp;rct=j&amp;amp;q=Fowler%20%20PATRON%20ACCOUNTABILITY&amp;amp;ei=BGiTTpfBPMX00gHWvLQO&amp;amp;usg=AFQjCNHUWAkruureWAAX0PgnFZjfH2oveg&amp;amp;cad=rja&quot;&gt;Fuente&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://pensaenbinario.blogspot.com/feeds/906537757706188801/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5502553796733750143/906537757706188801' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/906537757706188801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/906537757706188801'/><link rel='alternate' type='text/html' href='http://pensaenbinario.blogspot.com/2011/10/patrones-definidos-por-martin-fowler.html' title='PATRONES DEFINIDOS POR MARTIN FOWLER'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01638697400199573619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5502553796733750143.post-5731720510254381233</id><published>2011-10-05T22:44:00.000-03:00</published><updated>2011-10-05T22:45:26.114-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mvp"/><category scheme="http://www.blogger.com/atom/ns#" term="pratones de diseño"/><title type='text'>El patrón Modelo-Vista-Presentador (MVP)</title><content type='html'>&lt;p&gt;Desde hace tiempo llevo enfrentándome con diversos patrones de diseño  cuyo objetivo principal es el de separar la interfaz de usuario de la  lógica de las aplicaciones. Desde mis años de estudiante universitario  con Smalltalk y el patrón Modelo-Vista-Controlador (MVC), hasta MVVM con  WPF, pasando por MVP, MP y sus variaciones.&lt;/p&gt;  &lt;p&gt;Cada vez que he  tenido que me embarcaba a usar uno de estos patrones de diseño me  encontraba con la misma curva de aprendizaje. Un concepto bastante  sencillo pero que ante ciertos escenarios que encontraba en proyectos  reales uno no sabe exactamente qué solución tomar. &lt;/p&gt;  &lt;p&gt;En esta  entrada quiero centrarme en el patrón de diseño Modelo-Vista-Presentador  (MVP), pero yendo más allá de la descripción académica de este patrón y  enfocándome en cómo puede ser aplicado en aplicaciones reales.&lt;/p&gt;  &lt;p&gt;Como  he comentado antes, MVP es otro patrón de diseño que tiene como  objetivo separar la interfaz de usuario de la lógica de las  aplicaciones.&lt;/p&gt;  &lt;p&gt;Básicamente este patrón consiste en 3 componentes:&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;La vista. Compuesta de las ventanas y controles que forman la interfaz de usuario de la aplicación. &lt;/li&gt;&lt;li&gt;El modelo. Que es donde se lleva a cabo toda la lógica de negocio. &lt;/li&gt;&lt;li&gt;El  presentador. Escucha los eventos que se producen en la vista y ejecuta  las acciones necesarias a través del modelo. Además puede tener acceso a  las vistas a través de las interfaces que la vista debe implementar. &lt;/li&gt;&lt;/ul&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiC3rTiOivQQHCdiOKzh_CNsXe2Yit56-Hux3U8NnvPk2jdrZBvLcDAvh467wbEiHqLReimv3lrgHmPcNIzb21YwtdxSFn4uNPUoclont-w55o5JPgzeBgk3uGzhwfP-rlZQEPS14COhZs/s1600-h/image%5B28%5D.png&quot;&gt;&lt;img style=&quot;border-width: 0px; display: inline;&quot; title=&quot;image&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlHQJZQ89o1FzMtXTxO0zlYo6nSjG1nuXkjL9oUMKeuLWIUW-MjdyxU7oMl3fJ9ktcfyIUV2fA7rxpoR_hdX2zLlQPWV6kZqAmlRTPgjirZH19wuMFf7H5G_d4IhHYAtqtui3mpayK2-M/?imgmax=800&quot; border=&quot;0&quot; height=&quot;211&quot; width=&quot;377&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;El  concepto de este patrón es bastante sencillo. Por un lado tengo la  vista, que se encarga de mostrar la información al usuario y de  interactuar con él para hacer ciertas operaciones. Por otro lado,  tenemos el modelo que, ignorante de cómo la información es mostrada al  usuario, realiza toda la lógica de las aplicaciones usando las entidades  del dominio. Y por último tenemos al presentador que es el que  “presenta” a ambos actores sin que haya ningún tipo de dependencia entre  ellos.&lt;/p&gt;  &lt;p&gt;El propósito del presentador tal y como se ha definido  en este patrón no establece de manera clara el grado de control que este  puede hacer de la vista. &lt;/p&gt;  &lt;p&gt;Dependiendo de este grado de control  podemos encontrarnos variaciones en la manera de ver MVP. De hecho,  algunas de ellas, dejan de ser MVP para convertirse en MVC, por lo cual  debemos tener cuidado.&lt;/p&gt;  &lt;h2&gt;MVP como Controlador Supervisado&lt;/h2&gt;  &lt;p&gt;Por  un lado, podemos tener un presentador que no gestione la forma en que  la información es mostrada en la vista. Es la vista quien define la  lógica de cómo la información es formateada y mostrada en la pantalla a  partir de los controles que contiene. En este caso, el presentador  únicamente los casos más complejos para facilitar el trabajo de la  vista. Martin Fowler llama a esta variación &lt;a href=&quot;http://martinfowler.com/eaaDev/SupervisingPresenter.html&quot;&gt;Controlador Supervisado&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_CeUQUACuL2ve1zRBaBNai3fbXzMyxbG4n-lPYXKa2LQA_oriMTCEV9_7BZy_H066zlZFKS0Y_brB-xt2mvrzfsm3cKxj9haCBx6N8j9Xi79tMErpKPP5YPDGKf4j3zv9l-1jkcQz03M/s1600-h/image%5B29%5D.png&quot;&gt;&lt;img style=&quot;border-width: 0px; display: inline;&quot; title=&quot;image&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNWoj2DVErzvs1U78IW3uHwtxR-2NJytXYUYlfVYzQODJxURX6oDJGns-VuRo4HJiJybSWXnidC3wYTA3VNQuo9vEIZ4YevERnfHopCIPoffR726ndVCnHx86CTbXWq5xIq8TecqTOydg/?imgmax=800&quot; border=&quot;0&quot; height=&quot;222&quot; width=&quot;514&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Cuando  la vista recibe algún evento de ratón o teclado por parte del usuario,  delega el control del evento en el presentador. Este puede realizar  ciertas operaciones relacionadas con la vista como el control del estado  de los controles y después realizar la llamada a algún comando en el  modelo que realice la operación requerida por el usuario. El modelo  realiza las operaciones pudiendo realizar cambios en su estado generando  el evento correspondiente, el cual es manejado por la vista para  actualizar los controles de la pantalla.&lt;/p&gt;  &lt;p&gt;Hay que tener en cuenta  de que el hecho de que la vista pueda hacer referencia al modelo nos da  como resultado un diagrama muy parecido al de MVC. Aunque este enfoque  nos permita el uso de técnicas de Data Binding. Con lo cual la cantidad  de código que la vista y presentador necesitan, se disminuye.&lt;/p&gt;  &lt;p&gt;Este  enfoque nos va a permitir el uso de técnicas de Data Binding sobre el  modelo. Por tanto, la cantidad de líneas de código fuente en la vista y  el presentador disminuyen. Si nos fijamos en el diagrama, este es  similar al de MVC por lo que hay que tener mucho cuidado en no caer en  un cambio de patrón.&lt;/p&gt;  &lt;h2&gt;MVP como Vista Pasiva&lt;/h2&gt;  &lt;p&gt;Por otro  lado, podemos hacer que el presentador gestione totalmente cómo la  información se muestra en la vista. Es decir, tenemos una vista &quot;tonta&quot;,  sin ningún tipo de lógica, cuya única función es la de mostrar la  información que se le pasa a través de la interfaz de la vista. Martin  Fowler llama a esta variación &lt;a href=&quot;http://martinfowler.com/eaaDev/PassiveScreen.html&quot;&gt;Vista Pasiva&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzjIASggUWIGCR65P7CsMLrmd-xouyWUhic5xTgkWbiOBkHgkbk_NbJ3kEQa47w0IJpNRyrHWH7dB4db9pFVaWI6jV3pK7aCZe58LR__5x7AAVLZ05V83WXJBEw-1BxyPtTjobTuZsbzo/s1600-h/image%5B30%5D.png&quot;&gt;&lt;img style=&quot;border-width: 0px; display: inline;&quot; title=&quot;image&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0nrFYLyWsMvrW04-kPW-FwXhHEWCi0haiNwF5IQbg1GzXrolYlql2DpvFD9Rqz9IrJ8aJds-MF0XxVAqmThIuK6a7tJtVj27l1ObBlTv4aGyNLzgLF-FdlQRVioVCl52PckgtdLypVMU/?imgmax=800&quot; border=&quot;0&quot; height=&quot;251&quot; width=&quot;404&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;En  este caso, cuando un usuario realiza alguna operación sobre la interfaz  de usuario, la vista delega los eventos sobre el presentador. Este  realizará algún cambio sobre la vista para indicar el cambio de estado y  hará las llamadas a los comandos sobre el modelo para llevar a cabo la  operación requerida por el usuario. Cuando el modelo provoque cambios en  su estado, estos serán recogidos por el presentador (al contrario que  en el controlador supervisado, que era la vista quien atendía a estos  cambios de estado en el modelo), el cual pedirá al modelo los cambios  realizados para luego actualizar la vista acorde a los cambios  recibidos.&lt;/p&gt;  &lt;h2&gt;Ejemplo&lt;/h2&gt;  &lt;p&gt;Supongamos el siguiente ejemplo: Un  programa que para una fecha que le introduzcamos, te diga si es pasado,  futuro o la fecha del día actual.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK1X49mGW9vgZQgbdE0271-wucV9subfdjbvlx63OJreUBmvGvQsoZOZl6YlCeUbI-oBFisvoAS30OdtPYHYqLgFC-YraXn33vt9DnKYBR7h1sGe9VmTPasT3_UKe61z7Z-i10Q6Hm2nI/s1600-h/image%5B31%5D.png&quot;&gt;&lt;img style=&quot;border-width: 0px; display: inline;&quot; title=&quot;image&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEEPULSCArnyB9Kja76ohmf_XFUB1DSyEPa6WUthBzSt6tf0fyz5W8NSr446WSDJVkuhzAG5DZY1KC0EooqV5r1cAs2IT0XUj30IK0-Tzm-pxrWjWNrGQy62d9v9kyBevU5lNx4FNyQ40/?imgmax=800&quot; border=&quot;0&quot; height=&quot;239&quot; width=&quot;424&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Cuando  el usuario introduce la fecha y pulsa el botón OK, la vista delega el  evento de pulsación de botón sobre el presentador. El presentador toma  la fecha introducida del cuadro de texto y valida que el contenido tiene  el formato de fecha correcto.&lt;/p&gt;  &lt;p&gt;&lt;i&gt;Nota: He obviado la  posibilidad de usar un control específico para introducir fechas y así  ver en qué lugar se pude hacer la validación de datos.&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;Si la fecha introducida no fuera correcta, el presentador comunicaría al usuario este hecho a través de la vista.&lt;/p&gt;  &lt;p&gt;En  caso de que la fecha fuese correcta, el presentador realizaría la  operación de comprobar la fecha usando el modelo. Al recibir el  resultado de la operación, el presentador mostraría el resultado a  través de la vista. Por ejemplo, modificando el texto de la etiqueta con  el resultado.&lt;/p&gt;  &lt;p&gt;En el siguiente diagrama vemos la secuencia de llamadas realizada para el caso de Vista Pasiva:&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9m7Dr2e1Unf5_-4Gk_HSim4dUnryUdsGx-63OyWyn33pkMS8TUtLcewCl_RotzDyMohMpXz2EakV1WmF8iHOUEODd99nKElyPhaPRmc3uxLRYI1PYBTeoChlOVeRtjDOG5pM6ZoVdk6w/s1600-h/image%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-width: 0px; display: inline;&quot; title=&quot;image&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0feZ9SnovCfqLK3MOH8zW64hgQvvL5RwM0AyZMsknU3R-puteF5UJ55dFxQ0u0uyS23qJNDqIV5DSdN-TWvZUCkWeYnIhR-e6YMLtqYFtgL-uTiWu5oZHXFQZ-0I-df6GxcvZKWibESU/?imgmax=800&quot; border=&quot;0&quot; height=&quot;362&quot; width=&quot;550&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;En  caso de usar la variación de Controlador Supervisado, supondría que la  vista toma el resultado directamente del modelo y que además, la vista  define la lógica de cómo el resultado se muestra en la pantalla. En el  caso de que la validación de la fecha fallara, el presentador podría,  por ejemplo, enviar una excepción hacia la vista que al capturarla  decidiría como se mostraría al usuario.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;u&gt;Actualización:&lt;/u&gt;&lt;/em&gt; &lt;br /&gt;He  creado en Codeplex un proyecto que hace uso de este patrón. Se trata de  un sencillo ejemplo de máquina tragaperras sobre Windows Forms. El  enlace al proyecto es &lt;a href=&quot;http://mvpslotmachine.codeplex.com/&quot; target=&quot;_blank&quot;&gt;este&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Fuente: &lt;a href=&quot;http://theartoftheleftfoot.blogspot.com/2010/10/el-patron-modelo-vista-presentador-mvp.html&quot;&gt;http://theartoftheleftfoot.blogspot.com/2010/10/el-patron-modelo-vista-presentador-mvp.html&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://pensaenbinario.blogspot.com/feeds/5731720510254381233/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5502553796733750143/5731720510254381233' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/5731720510254381233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/5731720510254381233'/><link rel='alternate' type='text/html' href='http://pensaenbinario.blogspot.com/2011/10/el-patron-modelo-vista-presentador-mvp.html' title='El patrón Modelo-Vista-Presentador (MVP)'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01638697400199573619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlHQJZQ89o1FzMtXTxO0zlYo6nSjG1nuXkjL9oUMKeuLWIUW-MjdyxU7oMl3fJ9ktcfyIUV2fA7rxpoR_hdX2zLlQPWV6kZqAmlRTPgjirZH19wuMFf7H5G_d4IhHYAtqtui3mpayK2-M/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5502553796733750143.post-4503942722529340775</id><published>2011-10-05T20:43:00.000-03:00</published><updated>2011-10-05T20:44:30.074-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="patrones de diseño"/><category scheme="http://www.blogger.com/atom/ns#" term="type object"/><title type='text'>Patron Type Object</title><content type='html'>(&lt;a href=&quot;http://www.esmuycool.com/2006/12/25/que-es-y-cuando-utilizar-el-patron-type-object/&quot;&gt;updated version in spanish here&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Desacopla  instancias de sus clases para que estas puedan ser implementadas como  una instancia de una clase. Type Object permite crear nuevas clases  dinámicamente en tiempo de ejecución porque estas son instancias, y  también permite al sistema crear instancias de esas class-like  instancias.&lt;br /&gt;A veces una clase no solo requiere un numero desconocido  de instancias, sino que tambien una cantidad desconocida de subclases,  Un objecto puede crear nuevas instancias, pero usualmente no puede crear  nuevas clases sin tener que recompilar.&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Cuando usar este patron?&lt;/strong&gt;&lt;br /&gt;-Las instancias de una clase necesitan estar agrupadas para implementar el comportamiento o los atributos del grupo.&lt;br /&gt;-La clase necesita una subclase por cada grupo para implementar los atributos/comportamientos del grupo.&lt;br /&gt;-La clase requiere una gran cantidad de subclases y/o la variedad total de subclases que quizas se requieren se desconoce&lt;br /&gt;-Se necesita poder crear nuevas agrupaciones en tiempo de ejecucion que quizas no se predijeron durante el diseño.&lt;br /&gt;-Se necesita poder cambiar una subclase de un objeto despues de que se instancio sin tener que mutar a una nueva clase.&lt;br /&gt;-Se necesita jerarquizar los grupos recursivamente de modo que ese grupo sea a su vez un item de otro grupo.</content><link rel='replies' type='application/atom+xml' href='http://pensaenbinario.blogspot.com/feeds/4503942722529340775/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5502553796733750143/4503942722529340775' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/4503942722529340775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/4503942722529340775'/><link rel='alternate' type='text/html' href='http://pensaenbinario.blogspot.com/2011/10/patron-type-object.html' title='Patron Type Object'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01638697400199573619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5502553796733750143.post-6975895871569541702</id><published>2011-09-28T12:27:00.001-03:00</published><updated>2011-09-28T12:32:12.100-03:00</updated><title type='text'>Android Commander y QtADB: los 2 mejores programas para controlar Android desde el PC</title><content type='html'>&lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;&lt;div id=&#39;contenido_dentro&#39;&gt;                            &lt;p&gt;Uno de los puntos más flacos en Android  es un buen programa para controlar nuestro teléfono desde cualquier PC.  Por controlar me refiero a administrar archivos, aplicaciones, realizar  capturas de pantalla, obtener información del sistema y demás. En varias ocasiones os hemos hablado de diferentes opciones, pero hoy os traigo  dos señores programas.&lt;/p&gt; &lt;p&gt;&lt;a href=&#39;http://www.elandroidelibre.com/wp-content/uploads/2011/05/ac.jpg&#39;&gt;&lt;img width=&#39;528&#39; height=&#39;198&#39; border=&#39;0&#39; alt=&#39;ac&#39; src=&#39;http://www.elandroidelibre.com/wp-content/uploads/2011/05/ac_thumb.jpg&#39; title=&#39;ac&#39; style=&#39;display: block; margin-left: auto; margin-right: auto; border: 0px none -moz-use-text-color;&#39;/&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Con todos vosotros, Android Commander y QtADB, canela fina señor@s.&lt;/p&gt; &lt;p&gt;&lt;span id=&#39;more-39474&#39;/&gt;&lt;/p&gt; &lt;h2&gt;Android Commander&lt;/h2&gt; &lt;p&gt;&lt;a href=&#39;http://www.elandroidelibre.com/wp-content/uploads/2011/05/ac1.png&#39;&gt;&lt;img width=&#39;408&#39; height=&#39;287&#39; border=&#39;0&#39; alt=&#39;ac1&#39; src=&#39;http://www.elandroidelibre.com/wp-content/uploads/2011/05/ac1_thumb.png&#39; title=&#39;ac1&#39; style=&#39;display: block; float: none; margin-left: auto; margin-right: auto; border: 0px;&#39;/&gt;&lt;/a&gt; Empezamos con este señor programa. Android Commander nos va a permitir  hacer todo lo que queramos con nuestro teléfono y más. El programa está  disponible tanto para Windows como Linux, y aunque está aún en versión  beta, su rendimiento es muy alto. Os explico brevemente que hace cada  una de las opciones de las que dispone&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;strong&gt;Administrador de archivos&lt;/strong&gt;: Android Commander nos  permite gestionar de manera sencilla el traslado de archivos entre  nuestro PC y el Android. Una sencilla interfaz con dos ventanas nos va a permitir realizar dichas transferencias de la manera más sencilla y  ordenada posible&lt;br/&gt;&lt;a href=&#39;http://www.elandroidelibre.com/wp-content/uploads/2011/05/ac2.png&#39;&gt;&lt;img width=&#39;244&#39; height=&#39;172&#39; border=&#39;0&#39; alt=&#39;ac2&#39; src=&#39;http://www.elandroidelibre.com/wp-content/uploads/2011/05/ac2_thumb.png&#39; title=&#39;ac2&#39; style=&#39;display: inline; border: 0px;&#39;/&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Administrador de aplicaciones&lt;/strong&gt;: Desde AC podremos instalar, desinstalar y administrar en general todas las aplicaciones que tenemos en nuestro teléfono&lt;br/&gt;&lt;a href=&#39;http://www.elandroidelibre.com/wp-content/uploads/2011/05/ac3.png&#39;&gt;&lt;img width=&#39;216&#39; height=&#39;244&#39; border=&#39;0&#39; alt=&#39;ac3&#39; src=&#39;http://www.elandroidelibre.com/wp-content/uploads/2011/05/ac3_thumb.png&#39; title=&#39;ac3&#39; style=&#39;display: inline; border: 0px;&#39;/&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Shell Console&lt;/strong&gt;: Para los usuarios más avanzados.  Genial consola para controlar nuestro teléfono a nuestro antojo. Dispone además de una opción para ejecutar Shell Scripts con un sencillo click&lt;br/&gt;&lt;a href=&#39;http://www.elandroidelibre.com/wp-content/uploads/2011/05/ac4.png&#39;&gt;&lt;img width=&#39;244&#39; height=&#39;198&#39; border=&#39;0&#39; alt=&#39;ac4&#39; src=&#39;http://www.elandroidelibre.com/wp-content/uploads/2011/05/ac4_thumb.png&#39; title=&#39;ac4&#39; style=&#39;display: inline; border: 0px;&#39;/&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Logcat&lt;/strong&gt;: Para poder informar a los desarrolladores  de lo que pasa en nuestro teléfono. La mayoría de nosotros no lo vamos a utilizar pero nunca está de menos tenerlo a mano&lt;br/&gt;&lt;a href=&#39;http://www.elandroidelibre.com/wp-content/uploads/2011/05/ac5.png&#39;&gt;&lt;img width=&#39;244&#39; height=&#39;199&#39; border=&#39;0&#39; alt=&#39;ac5&#39; src=&#39;http://www.elandroidelibre.com/wp-content/uploads/2011/05/ac5_thumb.png&#39; title=&#39;ac5&#39; style=&#39;display: inline; border: 0px;&#39;/&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Flash/update image&lt;/strong&gt;: Una de las opciones más útiles  de AC. Con Flash/update image podremos flashear imágenes, updates y ROMs a nuestro teléfono directamente. Dispone de varias opciones de  configuración, como la de poder realizar un wipe previo.&lt;br/&gt;&lt;a href=&#39;http://www.elandroidelibre.com/wp-content/uploads/2011/05/ac6.png&#39;&gt;&lt;img width=&#39;244&#39; height=&#39;200&#39; border=&#39;0&#39; alt=&#39;ac6&#39; src=&#39;http://www.elandroidelibre.com/wp-content/uploads/2011/05/ac6_thumb.png&#39; title=&#39;ac6&#39; style=&#39;display: inline; border: 0px;&#39;/&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;SingApk&lt;/strong&gt;: A más de uno nos ha salido el mensaje de  “No se puede flashear la rom por que no está firmada”. Pues con esta  utilidad solventaremos ese problema en un plis ;)&lt;br/&gt;&lt;a href=&#39;http://www.elandroidelibre.com/wp-content/uploads/2011/05/ac7.png&#39;&gt;&lt;img width=&#39;244&#39; height=&#39;178&#39; border=&#39;0&#39; alt=&#39;ac7&#39; src=&#39;http://www.elandroidelibre.com/wp-content/uploads/2011/05/ac7_thumb.png&#39; title=&#39;ac7&#39; style=&#39;display: inline; border: 0px;&#39;/&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Screenshot&lt;/strong&gt;: Para realizar todo tipo de capturas de pantalla de nuestro teléfono. Fácil, sencillo, efectivo.&lt;br/&gt;&lt;a href=&#39;http://www.elandroidelibre.com/wp-content/uploads/2011/05/ac8.png&#39;&gt;&lt;img width=&#39;141&#39; height=&#39;244&#39; border=&#39;0&#39; alt=&#39;ac8&#39; src=&#39;http://www.elandroidelibre.com/wp-content/uploads/2011/05/ac8_thumb.png&#39; title=&#39;ac8&#39; style=&#39;display: inline; border: 0px;&#39;/&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Virtual Input&lt;/strong&gt;: Si no tienes ganas de ponerte a  escribir con tu Android no hay problema. Con virtual input podrás  controlar tu teléfono e introducir texto directamente desde tu PC.&lt;br/&gt;&lt;a href=&#39;http://www.elandroidelibre.com/wp-content/uploads/2011/05/ac9.png&#39;&gt;&lt;img width=&#39;233&#39; height=&#39;244&#39; border=&#39;0&#39; alt=&#39;ac9&#39; src=&#39;http://www.elandroidelibre.com/wp-content/uploads/2011/05/ac9_thumb.png&#39; title=&#39;ac9&#39; style=&#39;display: inline; border: 0px;&#39;/&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Información de aplicaciones&lt;/strong&gt;: Para obtener toda la información de cualquier aplicación (permisos, nombre, tamaño,etc)&lt;br/&gt;&lt;a href=&#39;http://www.elandroidelibre.com/wp-content/uploads/2011/05/ac10.png&#39;&gt;&lt;img width=&#39;228&#39; height=&#39;244&#39; border=&#39;0&#39; alt=&#39;ac10&#39; src=&#39;http://www.elandroidelibre.com/wp-content/uploads/2011/05/ac10_thumb.png&#39; title=&#39;ac10&#39; style=&#39;display: inline; border: 0px;&#39;/&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;SD Card&lt;/strong&gt;: Un poco de información acerca de tu tarjeta de memoria&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Modo Wifi&lt;/strong&gt;: Si no quieres utilizar siempre tu cable, puedes utilizar Android Commander mediante WiFi&lt;br/&gt;&lt;a href=&#39;http://www.elandroidelibre.com/wp-content/uploads/2011/05/ac11.png&#39;&gt;&lt;img width=&#39;244&#39; height=&#39;177&#39; border=&#39;0&#39; alt=&#39;ac11&#39; src=&#39;http://www.elandroidelibre.com/wp-content/uploads/2011/05/ac11_thumb.png&#39; title=&#39;ac11&#39; style=&#39;display: inline; border: 0px;&#39;/&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;No está nada mal ¿no? Recordad que Android Commander está disponible tanto para Windows como Linux y de manera gratuita :D&lt;/p&gt; &lt;p&gt;&lt;a href=&#39;http://forum.xda-developers.com/showthread.php?t=597098&#39;&gt;Descarga Windows&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href=&#39;http://forum.xda-developers.com/showthread.php?t=684792&#39;&gt;Descarga Linux&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href=&#39;http://androidcommander.com/&#39;&gt;Web Oficial&lt;/a&gt;&lt;/p&gt; &lt;h2&gt;QtADB&lt;/h2&gt; &lt;p&gt;&lt;a href=&#39;http://www.elandroidelibre.com/wp-content/uploads/2011/05/qtADB2.png&#39;&gt;&lt;img width=&#39;433&#39; height=&#39;277&#39; border=&#39;0&#39; alt=&#39;qtADB2&#39; src=&#39;http://www.elandroidelibre.com/wp-content/uploads/2011/05/qtADB2_thumb.png&#39; title=&#39;qtADB2&#39; style=&#39;display: block; float: none; margin-left: auto; margin-right: auto; border: 0px;&#39;/&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;QtADB es otra aplicación parecida a Android Commander. Dispone de un  poco menos de opciones pero lo compensa siendo compatible con Windows,  Linux y Mac. No me detengo a explicarlas, pero dispone de las siguientes funciones&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Gestor de Archivos&lt;/li&gt;&lt;li&gt;Gestor de Aplicaciones&lt;/li&gt;&lt;li&gt;Shell&lt;/li&gt;&lt;li&gt;Capturas de pantalla&lt;/li&gt;&lt;li&gt;Recovery&lt;/li&gt;&lt;li&gt;Opciones varias&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;No está nada mal la aplicación, así que os recomiendo que le echéis un vistazo.&lt;/p&gt; &lt;p&gt;&lt;a href=&#39;http://www.elandroidelibre.com/wp-content/uploads/2011/05/QtADB.png&#39;&gt;&lt;img width=&#39;529&#39; height=&#39;260&#39; border=&#39;0&#39; alt=&#39;QtADB&#39; src=&#39;http://www.elandroidelibre.com/wp-content/uploads/2011/05/QtADB_thumb.png&#39; title=&#39;QtADB&#39; style=&#39;display: block; float: none; margin-left: auto; margin-right: auto; border: 0px;&#39;/&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Descargas desde la &lt;a href=&#39;http://qtadb.wordpress.com/download/&#39;&gt;web oficial&lt;/a&gt;&lt;/p&gt; &lt;p&gt;  &lt;br/&gt;&lt;/p&gt; &lt;p&gt;Fuentes: &lt;a href=&#39;http://www.addictivetips.com/mobile/android-commander-is-a-swiss-army-knife-for-android-devices/&#39;&gt;AddictiveTips&lt;/a&gt; por descubrirnos el genial AndroidCommander y hacer esas capturas y &lt;a href=&#39;http://forum.xda-developers.com/showthread.php?t=683223&#39;&gt;XDA&lt;/a&gt; por el gran QtADB&lt;/p&gt;                        &lt;/div&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class=&#39;zemanta-pixie&#39;&gt;&lt;img src=&#39;http://img.zemanta.com/pixy.gif?x-id=945628cc-1e05-8329-ab62-a58330a8bf2e&#39; alt=&#39;&#39; class=&#39;zemanta-pixie-img&#39;/&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pensaenbinario.blogspot.com/feeds/6975895871569541702/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5502553796733750143/6975895871569541702' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/6975895871569541702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/6975895871569541702'/><link rel='alternate' type='text/html' href='http://pensaenbinario.blogspot.com/2011/09/android-commander-y-qtadb-los-2-mejores.html' title='Android Commander y QtADB: los 2 mejores programas para controlar Android desde el PC'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01638697400199573619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5502553796733750143.post-9945857839239057</id><published>2011-09-26T17:36:00.000-03:00</published><updated>2011-09-26T17:40:57.626-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="java"/><title type='text'>Primeros Pasos con Maven</title><content type='html'>&lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;Pueden ver el siguiente articulo en :&lt;br/&gt;&lt;br/&gt;&lt;a href=&#39;http://www.chuidiang.com/java/herramientas/maven.php&#39; target=&#39;_blank&#39;&gt;http://www.chuidiang.com/java/herramientas/maven.php&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Saludos&lt;br/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pensaenbinario.blogspot.com/feeds/9945857839239057/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5502553796733750143/9945857839239057' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/9945857839239057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/9945857839239057'/><link rel='alternate' type='text/html' href='http://pensaenbinario.blogspot.com/2011/09/primeros-pasos-con-maven.html' title='Primeros Pasos con Maven'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01638697400199573619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5502553796733750143.post-1642903057874760132</id><published>2011-09-17T16:30:00.004-03:00</published><updated>2012-05-14T16:20:11.627-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="android"/><category scheme="http://www.blogger.com/atom/ns#" term="google maps"/><title type='text'>Google Maps con Android</title><content type='html'>&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
Todo el tutorial lo segui de :&lt;br /&gt;
&lt;div&gt;
&lt;a href=&quot;http://codemagician.wordpress.com/2010/05/06/android-google-mapview-tutorial-done-right/&quot;&gt;http://codemagician.wordpress.com/2010/05/06/android-google-mapview-tutorial-done-right/&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
pero con algunos cambios,  use api google 8 (la que es compatible con android 2.2)  en la creacion del proyecto y en la creacion del disco ADV &lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Con respecto al codigo que copian en la pagina en la clase Hellogooglemaps2&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
deben remplazar la linea &lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: whitesmoke; color: #555555; font-family: monospace; font-size: 12px; line-height: 20px; white-space: pre;&quot;&gt;public class HelloGoogleMaps extends MapActivity  &lt;/span&gt;POR &lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: whitesmoke; color: #555555; font-family: monospace; font-size: 12px; line-height: 20px; white-space: pre;&quot;&gt;public class HelloGoogleMaps2 extends MapActivity&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 12px; line-height: 20px; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div&gt;
Si la aplicación les inicia correctamente pero con el mapa vacio, se debe a que la api key no es correcta. En mi caso me baje el SDK 7 y lo genere de la siguiente manera.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
1-abren un cmd&lt;/div&gt;
&lt;div&gt;
2-&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
C:\Program Files\Java\jdk1.7.0\bin&amp;gt;keytool -list -alias androiddebugkey -keystore &quot;C:\Users\Rody\.android\debug.keystore&quot; -storepass android -keypass android -v&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Y Copian el que dice MD5:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
el parametro -V es para que arroje el MD5 si no esta version de java no lo hace.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
con el md5 brindado pude generar una key (se genera &lt;a href=&quot;http://code.google.com/intl/es-ES/android/maps-api-signup.html&quot;&gt;ACA&lt;/a&gt;) que me funciono a la perfección.&lt;br /&gt;
&lt;br /&gt;
Les adjunto mi proyecto en Eclipse por las dudas.&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 12px; line-height: 20px; white-space: pre;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;iframe frameborder=&quot;0&quot; height=&quot;120&quot; scrolling=&quot;no&quot; src=&quot;https://skydrive.live.com/embed?cid=9DB0989FA30AC302&amp;amp;resid=9DB0989FA30AC302%211989&amp;amp;authkey=AMuAuZcb1TPQ64k&quot; width=&quot;98&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Saludos&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 12px; line-height: 20px; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pensaenbinario.blogspot.com/feeds/1642903057874760132/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5502553796733750143/1642903057874760132' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/1642903057874760132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/1642903057874760132'/><link rel='alternate' type='text/html' href='http://pensaenbinario.blogspot.com/2011/09/google-maps-con-android.html' title='Google Maps con Android'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01638697400199573619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5502553796733750143.post-8777738806574365601</id><published>2011-09-17T13:38:00.001-03:00</published><updated>2011-09-17T13:38:32.288-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="asp.net"/><category scheme="http://www.blogger.com/atom/ns#" term="sql server 2005"/><title type='text'>Como hacer un blog con ASP.NET y SQL Server 2005</title><content type='html'>&lt;div&gt;http://mredison.wordpress.com/2009/01/24/como-hacer-un-blog-con-aspnet-y-sql-server-2005-parte-1/&lt;/div&gt;&lt;div&gt;http://mredison.wordpress.com/2009/01/24/como-hacer-un-blog-con-aspnet-y-sql-server-2005-parte-2/&lt;/div&gt;&lt;div&gt;http://mredison.wordpress.com/2009/01/24/como-hacer-un-blog-con-aspnet-y-sql-server-2005-parte-3/&lt;/div&gt;&lt;div&gt;http://mredison.wordpress.com/2009/01/24/como-hacer-un-blog-con-aspnet-y-sql-server-2005-parte-4/&lt;/div&gt;&lt;div&gt;http://mredison.wordpress.com/2009/01/27/como-hacer-un-blog-con-aspnet-y-sql-server-2005-parte-5/&lt;/div&gt;&lt;div&gt;http://mredison.wordpress.com/2009/01/28/como-hacer-un-blog-con-aspnet-y-sql-server-2005-parte-6/&lt;/div&gt;&lt;div&gt;http://mredison.wordpress.com/2009/02/02/como-hacer-un-blog-con-aspnet-y-sql-server-2005-parte-7/&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pensaenbinario.blogspot.com/feeds/8777738806574365601/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5502553796733750143/8777738806574365601' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/8777738806574365601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/8777738806574365601'/><link rel='alternate' type='text/html' href='http://pensaenbinario.blogspot.com/2011/09/como-hacer-un-blog-con-aspnet-y-sql.html' title='Como hacer un blog con ASP.NET y SQL Server 2005'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01638697400199573619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5502553796733750143.post-9086006427558726081</id><published>2011-08-26T00:00:00.001-03:00</published><updated>2011-08-26T00:01:31.576-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="iphone"/><title type='text'>Pasar Musica del Iphone a la PC</title><content type='html'>El unico programa que me resulto fue SharePOD y encima es GRATIS&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://es.kioskea.net/download/descargar-2801-sharepod&quot;&gt;http://es.kioskea.net/download/descargar-2801-sharepod&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Saludos&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pensaenbinario.blogspot.com/feeds/9086006427558726081/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5502553796733750143/9086006427558726081' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/9086006427558726081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/9086006427558726081'/><link rel='alternate' type='text/html' href='http://pensaenbinario.blogspot.com/2011/08/pasar-musica-del-iphone-la-pc.html' title='Pasar Musica del Iphone a la PC'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01638697400199573619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5502553796733750143.post-2527460533912957066</id><published>2011-07-28T16:35:00.002-03:00</published><updated>2011-07-28T16:37:53.319-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET"/><category scheme="http://www.blogger.com/atom/ns#" term="c#"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Basic"/><title type='text'>Comprimir y Descomprimir archivos en .NET</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Public Class CompresionArchivos&lt;/div&gt;&lt;div&gt;    Public Shared Sub ComprimirArchivos(archivoEntrada As String, archivoSalida As String)&lt;/div&gt;&lt;div&gt;        Using SourceFile As FileStream = File.OpenRead(archivoEntrada)&lt;/div&gt;&lt;div&gt;            Using DestFile As FileStream = File.Create(archivoSalida)&lt;/div&gt;&lt;div&gt;                Using CompStream As GZipStream = New GZipStream(DestFile, CompressionMode.Compress)&lt;/div&gt;&lt;div&gt;                    Dim data(SourceFile.Length) As Byte&lt;/div&gt;&lt;div&gt;                    SourceFile.Read(data, 0, data.Length)&lt;/div&gt;&lt;div&gt;                    CompStream.Write(data, 0, data.Length)&lt;/div&gt;&lt;div&gt;                End Using&lt;/div&gt;&lt;div&gt;            End Using&lt;/div&gt;&lt;div&gt;        End Using&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;    End Sub&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;    Public Shared Sub DescomprimirArchivos(archivoEntrada As String, archivoSalida As String)&lt;/div&gt;&lt;div&gt;        Using SourceFile As FileStream = File.OpenRead(archivoEntrada)&lt;/div&gt;&lt;div&gt;            Using DestFile As FileStream = File.Create(archivoSalida)&lt;/div&gt;&lt;div&gt;                Using CompStream As GZipStream = New GZipStream(DestFile, CompressionMode.Decompress)&lt;/div&gt;&lt;div&gt;                    Dim data As Integer&lt;/div&gt;&lt;div&gt;                    data = CompStream.ReadByte()&lt;/div&gt;&lt;div&gt;                    While (data &amp;lt;&amp;gt; -1)&lt;/div&gt;&lt;div&gt;                        DestFile.WriteByte(CByte(data))&lt;/div&gt;&lt;div&gt;                        data = CompStream.ReadByte&lt;/div&gt;&lt;div&gt;                    End While&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;                End Using&lt;/div&gt;&lt;div&gt;            End Using&lt;/div&gt;&lt;div&gt;        End Using&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;    End Sub&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://carloslone.wordpress.com/2007/08/27/comprimiendo-archivos-en-net-20/&quot;&gt;http://carloslone.wordpress.com/2007/08/27/comprimiendo-archivos-en-net-20/&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pensaenbinario.blogspot.com/feeds/2527460533912957066/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5502553796733750143/2527460533912957066' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/2527460533912957066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/2527460533912957066'/><link rel='alternate' type='text/html' href='http://pensaenbinario.blogspot.com/2011/07/comprimir-y-descomprimir-archivos-en.html' title='Comprimir y Descomprimir archivos en .NET'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01638697400199573619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5502553796733750143.post-941845172860994133</id><published>2011-07-18T11:54:00.002-03:00</published><updated>2011-07-18T12:02:18.132-03:00</updated><title type='text'>Niveles de Aislamiento</title><content type='html'>&lt;a href=&quot;http://zonacodigos.com/index.php/sql/66&quot;&gt;http://zonacodigos.com/index.php/sql/66&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://pensaenbinario.blogspot.com/feeds/941845172860994133/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5502553796733750143/941845172860994133' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/941845172860994133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/941845172860994133'/><link rel='alternate' type='text/html' href='http://pensaenbinario.blogspot.com/2011/07/niveles-de-aislamiento.html' title='Niveles de Aislamiento'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01638697400199573619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5502553796733750143.post-5201180292770046413</id><published>2011-05-10T00:37:00.002-03:00</published><updated>2011-05-10T00:38:13.639-03:00</updated><title type='text'>Conexión remota a instancias de Windows Azure</title><content type='html'>http://geeks.ms/blogs/ilanda/archive/2010/12/09/conexi-243-n-remota-a-instancias-de-windows-azure.aspx</content><link rel='replies' type='application/atom+xml' href='http://pensaenbinario.blogspot.com/feeds/5201180292770046413/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5502553796733750143/5201180292770046413' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/5201180292770046413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/5201180292770046413'/><link rel='alternate' type='text/html' href='http://pensaenbinario.blogspot.com/2011/05/conexion-remota-instancias-de-windows.html' title='Conexión remota a instancias de Windows Azure'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01638697400199573619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5502553796733750143.post-3498680959162114443</id><published>2011-05-10T00:37:00.001-03:00</published><updated>2011-05-10T00:37:44.115-03:00</updated><title type='text'>Base de Datos SQL Server DB en la nube con SQL Data Sync</title><content type='html'>http://comunidadwindows.org/blogs/sql/archive/2010/04/20/base-de-datos-sql-server-db-en-la-nube-con-sql-data-sync.aspx</content><link rel='replies' type='application/atom+xml' href='http://pensaenbinario.blogspot.com/feeds/3498680959162114443/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5502553796733750143/3498680959162114443' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/3498680959162114443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5502553796733750143/posts/default/3498680959162114443'/><link rel='alternate' type='text/html' href='http://pensaenbinario.blogspot.com/2011/05/base-de-datos-sql-server-db-en-la-nube.html' title='Base de Datos SQL Server DB en la nube con SQL Data Sync'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/01638697400199573619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>