<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">ponte</title><subtitle type="html">Un blog de Gabriel Flores sobre C#, .NET y tecnología</subtitle><id>http://msmvps.com/blogs/gflores/atom.aspx</id><link rel="alternate" type="text/html" href="http://msmvps.com/blogs/gflores/default.aspx" /><link rel="self" type="application/atom+xml" href="http://msmvps.com/blogs/gflores/atom.aspx" /><generator uri="http://communityserver.org" version="4.1.40407.4157">Community Server</generator><updated>2009-02-09T12:02:00Z</updated><entry><title>el problema CREATE DATABASE permission denied in database 'master'</title><link rel="alternate" type="text/html" href="/blogs/gflores/archive/2013/01/04/el-problema-create-database-permission-denied-in-database-master.aspx" /><id>/blogs/gflores/archive/2013/01/04/el-problema-create-database-permission-denied-in-database-master.aspx</id><published>2013-01-04T23:44:00Z</published><updated>2013-01-04T23:44:00Z</updated><content type="html">&lt;p&gt;Me encontraba haciendo ejercicios de programaci&amp;oacute;n usando database migrations cuando al hacer un update-database me ocurre el error:&lt;/p&gt;
&lt;p&gt;
CREATE DATABASE permission denied in database &amp;#39;master&amp;#39;&lt;/p&gt;
&lt;p&gt;Algo raro pues uso Visual Studio con mi cuenta con derechos de Administrador, adem&amp;aacute;s de ejecutarlo con el &amp;quot;Run as Administrator&amp;quot; e investigando un poco di con problemas al querer &lt;a href="http://stackoverflow.com/questions/10780650/creating-database-using-efcodefirst-on-a-web-server-host/10802616#10802616"&gt;migrar de ambiente de desarrollo a producci&amp;oacute;n&lt;/a&gt; la aplicaci&amp;oacute;n, cosa que no es mi caso. Al final di con el problema, y no ca&amp;iacute; en cuenta de que en este equipo mi cuenta fue creada despu&amp;eacute;s de tener instalado SQL Server Express, por lo que mi cuenta de usuario no figuraba con derechos de administraci&amp;oacute;n sobre la instancia de SQL Server actual. Es algo m&amp;aacute;s o menos sencillo de hacer pero siguiendo la filosof&amp;iacute;a de &amp;quot;si alguien m&amp;aacute;s ya batall&amp;oacute; con esto&amp;quot; encontr&amp;eacute; un &lt;a href="http://archive.msdn.microsoft.com/addselftosqlsysadmin"&gt;script para agregar al usuario de sistema actual con derechos de sysadmin de la instancia de SQL Server&lt;/a&gt;. Este fue publicada en los anales de MSDN por lo que su uso me pareci&amp;oacute; lo suficientemente seguro, adem&amp;aacute;s de que me resolvi&amp;oacute; el problema.&lt;/p&gt;
&lt;p&gt;Recursos:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://archive.msdn.microsoft.com/addselftosqlsysadmin"&gt;Script to add the current user to the SQL Server &amp;#39;sysadmin&amp;#39; role&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1822125" width="1" height="1"&gt;</content><author><name>gflores</name><uri>http://msmvps.com/members/gflores/default.aspx</uri></author><category term=".net" scheme="http://msmvps.com/blogs/gflores/archive/tags/.net/default.aspx" /><category term="nivel:100" scheme="http://msmvps.com/blogs/gflores/archive/tags/nivel_3A00_100/default.aspx" /><category term="asp.net" scheme="http://msmvps.com/blogs/gflores/archive/tags/asp.net/default.aspx" /></entry><entry><title>dev3cast</title><link rel="alternate" type="text/html" href="/blogs/gflores/archive/2011/12/13/dev3cast.aspx" /><id>/blogs/gflores/archive/2011/12/13/dev3cast.aspx</id><published>2011-12-13T19:06:00Z</published><updated>2011-12-13T19:06:00Z</updated><content type="html">&lt;p&gt;Con la &lt;a href="http://tjnet.org"&gt;Comunidad .NET Tijuana&lt;/a&gt; y junto con &lt;a href="http://developeando.com"&gt;Mario Cornejo&lt;/a&gt; he venido participando en podcast tecnol&amp;oacute;gicos para desarrolladores con tem&amp;aacute;tica general para cualquiera que trabaje desarrollando software. Son entrevistas y discusiones con especialistas en los temas donde se aclaran y se someten a consideraci&amp;oacute;n puntos de vista en episodios de aproximadamente 30 minutos para hacer m&amp;aacute;s conciso lo discutido y haya menor tiempo de distracciones.&amp;nbsp; Algunos de los temas m&amp;aacute;s populares en el 2011 han sido:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.dev3cast.com/2011/02/02/cultura-o-falta-de-en-tdd/"&gt;Cultura (o falta de) en Test Driven Development&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.dev3cast.com/2011/02/17/scrum/"&gt;SCRUM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.dev3cast.com/2011/05/05/documentacion-tecnica/"&gt;Documentaci&amp;oacute;n T&amp;eacute;cnica&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.dev3cast.com/2011/06/21/event-driven-web-applications/"&gt;Event-Driven web applications&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.dev3cast.com/2011/07/16/behavior-driven-development/"&gt;Behavior Driven Development&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.dev3cast.com/2011/09/19/mvc-vs-webforms/"&gt;MVC vs. Webforms&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cualquiera de ellos los puedes descargar o &lt;a href="http://feeds.feedburner.com/Dev3cast"&gt;suscribirte&lt;/a&gt; para oirlos a tu tiempo en tu lector de RSS favorito.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1803592" width="1" height="1"&gt;</content><author><name>gflores</name><uri>http://msmvps.com/members/gflores/default.aspx</uri></author><category term=".net" scheme="http://msmvps.com/blogs/gflores/archive/tags/.net/default.aspx" /><category term="tecnolog&amp;#237;a" scheme="http://msmvps.com/blogs/gflores/archive/tags/tecnolog_26002300_237_3B00_a/default.aspx" /></entry><entry><title>La versión de SQL Server no soporta el tipo de dato datetime2</title><link rel="alternate" type="text/html" href="/blogs/gflores/archive/2011/07/22/la-versi-243-n-de-sql-server-no-soporta-el-tipo-de-dato-datetime2.aspx" /><id>/blogs/gflores/archive/2011/07/22/la-versi-243-n-de-sql-server-no-soporta-el-tipo-de-dato-datetime2.aspx</id><published>2011-07-22T16:16:00Z</published><updated>2011-07-22T16:16:00Z</updated><content type="html">&lt;p&gt;Est&amp;aacute;s trabajando en tu aplicaci&amp;oacute;n web con Entity Framework y C# en tu m&amp;aacute;quina de desarrollo usando la versi&amp;oacute;n m&amp;aacute;s reciente de SQL Server 2008 feliz de la vida. Pero al momento de hacer la implementaci&amp;oacute;n en el servidor de producci&amp;oacute;n, te encuentras con este error:&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#0000ff;"&gt;The version of SQL Server in use does not support datatype &amp;#39;datetime2&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Y entonces te acuerdas, en el servidor de producci&amp;oacute;n tienen instalado SQL Server 2005. No hay problema, solo ubica el archivo EDMX de tu modelo y con el click derecho del mouse selecciona la opci&amp;oacute;n del men&amp;uacute; emergente &amp;quot;Abrir con...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gflores/7658.Openwith.JPG"&gt;&lt;img src="http://msmvps.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/gflores/7658.Openwith.JPG" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hay que ubicar la etiqueta Schema y en el atributo ProviderManifestToken colocar 2005 en lugar de 2008. De esta manera le indicas a Entity Framework que trabaje en modo de compatibilidad de 2005 y as&amp;iacute; trata apropiadamente los tipos de dato de fecha.&lt;/p&gt;
&lt;blockquote&gt;&lt;code&gt;&lt;span style="font-family:Courier New;color:black;font-size:x-small;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Schema&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Namespace&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;SAOModel.Store&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Alias&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Self&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Provider&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;System.Data.SqlClient&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;ProviderManifestToken&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;2005&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;/code&gt;&lt;code&gt;&lt;span style="color:gray;font-size:xx-small;"&gt;&lt;/span&gt;&lt;span style="color:gray;font-size:xx-small;"&gt;&lt;/span&gt;&lt;/code&gt;&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;span style="color:gray;font-size:xx-small;"&gt;* Este c&amp;oacute;digo fuente ha sido resaltado con &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;span style="color:gray;font-size:xx-small;"&gt;Source Code Highlighter&lt;/span&gt;&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1796599" width="1" height="1"&gt;</content><author><name>gflores</name><uri>http://msmvps.com/members/gflores/default.aspx</uri></author><category term="c#" scheme="http://msmvps.com/blogs/gflores/archive/tags/c_2300_/default.aspx" /><category term="nivel:200" scheme="http://msmvps.com/blogs/gflores/archive/tags/nivel_3A00_200/default.aspx" /><category term="asp.net" scheme="http://msmvps.com/blogs/gflores/archive/tags/asp.net/default.aspx" /><category term="Entity Framework" scheme="http://msmvps.com/blogs/gflores/archive/tags/Entity+Framework/default.aspx" /></entry><entry><title>Usando WHERE IN de SQL en Entity Framework (y Linq) con C#</title><link rel="alternate" type="text/html" href="/blogs/gflores/archive/2011/02/20/usando-where-in-de-sql-en-entity-framework-y-linq-con-c.aspx" /><id>/blogs/gflores/archive/2011/02/20/usando-where-in-de-sql-en-entity-framework-y-linq-con-c.aspx</id><published>2011-02-21T02:07:13Z</published><updated>2011-02-21T02:07:13Z</updated><content type="html">&lt;p&gt;A veces necesitas hacer una consulta basándote en datos que no estarás seguro tener porque simplemente es tu usuario quien los eligirá y pues, no eres adivino ¿verdad?&lt;/p&gt;  &lt;p&gt;Vamos a basarnos en la base de datos de Northwind para el siguiente ejemplo (si no la tienes, checa el video de como obtener las bases de datos de pruebas &lt;a href="http://www.youtube.com/watch?v=t34ASNrXh1Y" target="_blank"&gt;Northwind y pubs&lt;/a&gt;). En esta base de datos tenemos Proveedores (Suppliers) que ofrecen Productos (Products). ¿Qué pasaría si necesitaramos saber los productos de un proveedor en específico? Si ese proveedor específico fuera &lt;em&gt;Exotic Liquids&lt;/em&gt; el código Transact-SQL sería algo tan simple como esto:&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt;&amp;#160;&lt;font color="#c0c0c0"&gt;*&lt;/font&gt;       &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;products&lt;/font&gt;       &lt;br /&gt;&lt;font color="#0000ff"&gt;WHERE&lt;/font&gt;&amp;#160; &lt;font color="#800000"&gt;supplierid&lt;/font&gt;&amp;#160;&lt;font color="#c0c0c0"&gt;=&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;(&lt;/font&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;supplierid&lt;/font&gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;FROM&lt;/font&gt;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;suppliers&lt;/font&gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;WHERE&lt;/font&gt;&amp;#160; &lt;font color="#800000"&gt;companyname&lt;/font&gt;&amp;#160;&lt;font color="#c0c0c0"&gt;=&lt;/font&gt;&amp;#160;&lt;font color="#ff0000"&gt;&amp;#39;Exotic Liquids&amp;#39;&lt;/font&gt;&lt;font color="#800000"&gt;)&lt;/font&gt;&amp;#160; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Ya se que también lo podemos poner con INNER JOIN pero estoy tratando de demostrar un punto, aguarda un poco.&lt;/p&gt;  &lt;p&gt;Si la interfaz gráfica lo permite, y si el usuario quiere saber productos de más de un proveedor podemos hacer algo igual de sencillo usando WHERE IN. Imagínate un ListBox donde el usuario selecciona más de un proveedor de cual escoger productos, o una caja de texto con autocompletado. En este caso estamos obteniendo los productos de los proveedores que empiezan con la letra E:&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt;&amp;#160;&lt;font color="#c0c0c0"&gt;*&lt;/font&gt;       &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;products&lt;/font&gt;       &lt;br /&gt;&lt;font color="#0000ff"&gt;WHERE&lt;/font&gt;&amp;#160; &lt;font color="#800000"&gt;supplierid&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;IN&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;(&lt;/font&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt;&amp;#160;&lt;font color="#800000"&gt;supplierid&lt;/font&gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;FROM&lt;/font&gt;&amp;#160;&amp;#160; &lt;font color="#800000"&gt;suppliers&lt;/font&gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;WHERE&lt;/font&gt;&amp;#160; &lt;font color="#800000"&gt;companyname&lt;/font&gt;&amp;#160;&lt;font color="#0000ff"&gt;LIKE&lt;/font&gt;&amp;#160;&lt;font color="#ff0000"&gt;&amp;#39;E%&amp;#39;&lt;/font&gt;&lt;font color="#800000"&gt;)&lt;/font&gt;&amp;#160; &lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;&lt;/blockquote&gt;  &lt;p&gt;Donde usamos un campo de la tabla para que encuentre todos los valores que cumplan lo que tenemos entre paréntesis. Básico ¿no? pero ¿como hacemos para llevar esta sentencia SQL a Entity Framework?&lt;/p&gt;  &lt;p&gt;Si estás usando Entity Framework 4.0, es muy similar a Linq2SQL, donde puedes usar el método Contains de un arreglo y podrás usar los IDs que ocupas para hacer el filtrado de elementos:&lt;/p&gt;  &lt;p&gt;&lt;code&gt;&lt;font color="#000000" size="2" face="Courier New"&gt;&amp;#160; &lt;font color="#008000"&gt;//Si usamos Linq2SQL usar &lt;/font&gt;        &lt;br /&gt;&amp;#160; &lt;font color="#008000"&gt;//NorthwindDataContext nc = new NorthwindDataContext();&lt;/font&gt;         &lt;br /&gt;&amp;#160; NorthwindEntities ne = &lt;font color="#0000ff"&gt;new&lt;/font&gt; NorthwindEntities();         &lt;br /&gt;        &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;int&lt;/font&gt;[] supplierIDs = { 1, 27 };         &lt;br /&gt;        &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;var&lt;/font&gt; products = &lt;font color="#0000ff"&gt;from&lt;/font&gt; p &lt;font color="#0000ff"&gt;in&lt;/font&gt; ne.Products         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;where&lt;/font&gt; (supplierIDs.Contains((&lt;font color="#0000ff"&gt;int&lt;/font&gt;)p.SupplierID))         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;select&lt;/font&gt; p;         &lt;br /&gt;&lt;/font&gt;&lt;/code&gt;&lt;/p&gt;  &lt;p&gt;Aquí dos cosas que aclarar, primero, se hace un cast al tipo de dato int para asegurar que los SupplierID coincidan. La otra es que habíamos quedado que no podemos saber cuales proveedores pudiera escojer el usuario, aunque aquí se forzó al proveedor con supplierID 1 y 27 (que son los de &lt;em&gt;Exotic Liquids&lt;/em&gt; y &lt;em&gt;Escargots Nouveaux&lt;/em&gt;, sí, ambos empiezan con E). &lt;/p&gt;  &lt;p&gt;Entonces, ¿cómo hacerlo más dinámico usando Linq to Entities o Linq2SQL? Vaciamos en una variable la consulta, pero exclusivamente con las llaves primarias que nos interesan, y ese resultado lo convertimos a un arreglo, que sería el que finalmente usamos para la consulta final:&lt;/p&gt;  &lt;p&gt;&lt;font color="#000000" size="2" face="Courier New"&gt;&amp;#160; &lt;font color="#008000"&gt;//Si usamos Linq2SQL usar &lt;/font&gt;      &lt;br /&gt;&amp;#160; &lt;font color="#008000"&gt;//NorthwindDataContext nc = new NorthwindDataContext();&lt;/font&gt;       &lt;br /&gt;&amp;#160; NorthwindEntities ne = &lt;font color="#0000ff"&gt;new&lt;/font&gt; NorthwindEntities();       &lt;br /&gt;      &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;var&lt;/font&gt; suppliers = &lt;font color="#0000ff"&gt;from&lt;/font&gt; s &lt;font color="#0000ff"&gt;in&lt;/font&gt; ne.Suppliers       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;where&lt;/font&gt; (s.CompanyName.StartsWith(&lt;font color="#a31515"&gt;&amp;quot;E&amp;quot;&lt;/font&gt;))       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;select&lt;/font&gt; s.SupplierID;       &lt;br /&gt;      &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;int&lt;/font&gt;[] supplierIDs = suppliers.ToArray();       &lt;br /&gt;      &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;var&lt;/font&gt; products = &lt;font color="#0000ff"&gt;from&lt;/font&gt; p &lt;font color="#0000ff"&gt;in&lt;/font&gt; ne.Products       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;where&lt;/font&gt; (supplierIDs.Contains((&lt;font color="#0000ff"&gt;int&lt;/font&gt;)p.SupplierID))       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;select&lt;/font&gt; p;       &lt;br /&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;La clave aquí es usar en la consulta solo el campo que nos interesa (SupplierID) y convertir el resultado en arreglo para poder pasarlo a la segunda consulta ya que con el Contains lo tendremos resuelto. El ejemplo es con proveedores cuyo nombre empiece con E, pero puedes hacerlo aún más dinámico obteniendo ese dato de una caja de texto, un dropdownlist o lo que se te ocurra.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Consideraciones&lt;/strong&gt;:&lt;/p&gt;  &lt;p&gt;En Entity Framework 3.5 no podemos usar Contains, para hacerlo puedes usar el workaround propuesto por &lt;a href="http://stackoverflow.com/questions/374267/contains-workaround-using-linq-to-entities/1069820#1069820" target="_blank"&gt;Shimmy en StackOverflow&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Puedes repasar como preparar tu ambiente de desarrollo con Entity Framework con el video &lt;a href="http://www.youtube.com/watch?v=6Rm4z2iUxik" target="_blank"&gt;Búsqueda en ADO.NET Entity Framework con C#&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;La otra es que siempre son bienvenidos los comentarios para mejorar el código o ver que otras aplicaciones tendrían para esta manera de consultar datos que aunque muy común si trabajamos con Transact-SQL en Linq no es del todo clara.&lt;/p&gt;  &lt;p&gt;Fuentes: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://blog.wekeroad.com/2008/02/27/creating-in-queries-with-linq-to-sql/"&gt;Creating IN queries with Linq to SQL&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://stackoverflow.com/questions/1378801/convert-linq-query-to-string-array-c/1378816#1378816"&gt;Converting query to string array&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font color="#808080" size="1"&gt;* El código fuente fue coloreado con &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1788485" width="1" height="1"&gt;</content><author><name>gflores</name><uri>http://msmvps.com/members/gflores/default.aspx</uri></author><category term="c#" scheme="http://msmvps.com/blogs/gflores/archive/tags/c_2300_/default.aspx" /><category term="nivel:200" scheme="http://msmvps.com/blogs/gflores/archive/tags/nivel_3A00_200/default.aspx" /><category term="Entity Framework" scheme="http://msmvps.com/blogs/gflores/archive/tags/Entity+Framework/default.aspx" /></entry><entry><title>No hay excusas para no programar para Windows Phone 7</title><link rel="alternate" type="text/html" href="/blogs/gflores/archive/2011/02/07/no-hay-excusas-para-no-programar-para-windows-phone-7.aspx" /><id>/blogs/gflores/archive/2011/02/07/no-hay-excusas-para-no-programar-para-windows-phone-7.aspx</id><published>2011-02-07T17:26:00Z</published><updated>2011-02-07T17:26:00Z</updated><content type="html">&lt;p&gt;Aunque ya lo hab&amp;iacute;a mencionado en Twitter hace &lt;a href="http://twitter.com/gabo/status/26360204165644288"&gt;casi un mes&lt;/a&gt;, es necesario elaborar un poco sobre el magn&amp;iacute;fico recurso que comparte &lt;a href="http://www.robmiles.com"&gt;Rob Miles&lt;/a&gt; sobre programaci&amp;oacute;n para Windows Phone 7. Rob Miles (en twitter &lt;a href="http://twitter.com/robmiles"&gt;@RobMiles&lt;/a&gt;) ya antes conoc&amp;iacute;a su magn&amp;iacute;fico &lt;a href="http://www.robmiles.com/c-yellow-book/"&gt;C# Yellow Book&lt;/a&gt;, pues bien, en &lt;a href="https://www.facultyresourcecenter.com/curriculum/pfv.aspx?ID=8729&amp;amp;Login="&gt;Windows Phone Programming in C#&lt;/a&gt; nos regala:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Un ebook de 152 p&amp;aacute;ginas con todos los detalles que necesitas para programar en Windows Phone&lt;/li&gt;
&lt;li&gt;Presentaciones de PowerPoint para dar un seguimiento a grandes razgos&lt;/li&gt;
&lt;li&gt;Demos de las t&amp;eacute;cnicas y funcionalidades presentadas&lt;/li&gt;
&lt;li&gt;Laboratorios pr&amp;aacute;cticas para que desarrolles tus aplicaciones&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Los temas abordados son los precisos para que aprendas a programar ya mismo:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Informaci&amp;oacute;n General de la plataforma&lt;/li&gt;
&lt;li&gt;Introducci&amp;oacute;n a Silverlight&lt;/li&gt;
&lt;li&gt;Introducci&amp;oacute;n a Visual Studio 2010&lt;/li&gt;
&lt;li&gt;Dise&amp;ntilde;ando la interfaz de usuario con Silverlight&lt;/li&gt;
&lt;li&gt;Consumiendo servicios de datos&lt;/li&gt;
&lt;li&gt;Informaci&amp;oacute;n general de XNA&lt;/li&gt;
&lt;li&gt;Creando aplicaciones Windows Phone&lt;/li&gt;
&lt;li&gt;Usando el Marketplace para vender soluciones&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Entonces, &amp;iquest;qu&amp;eacute; esperas? Descarga ya mismo (completamente gratis) desde &lt;a href="https://www.facultyresourcecenter.com/curriculum/pfv.aspx?ID=8729&amp;amp;Login="&gt;Microsoft Faculty Connection: Windows Phone Programming in C#&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gflores/0755.wp7.JPG"&gt;&lt;img src="http://msmvps.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/gflores/0755.wp7.JPG" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;iquest;Quieres programar para Windows Phone 7 y no tienes uno? Participa haciendo 3 soluciones antes del 6 de mayo y &amp;iexcl;g&amp;aacute;nate uno gratis! Consulta las &lt;a href="http://blogs.msdn.com/b/oaviles/archive/2011/01/11/pediste-una-nueva-oportunidad-para-ganar-un-windows-phone-7-aqu-237-la-tienes.aspx"&gt;bases aqu&amp;iacute;&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1787785" width="1" height="1"&gt;</content><author><name>gflores</name><uri>http://msmvps.com/members/gflores/default.aspx</uri></author><category term="c#" scheme="http://msmvps.com/blogs/gflores/archive/tags/c_2300_/default.aspx" /><category term="Windows Phone" scheme="http://msmvps.com/blogs/gflores/archive/tags/Windows+Phone/default.aspx" /></entry><entry><title>Ebooks gratuitos</title><link rel="alternate" type="text/html" href="/blogs/gflores/archive/2010/11/19/ebooks-gratuitos.aspx" /><id>/blogs/gflores/archive/2010/11/19/ebooks-gratuitos.aspx</id><published>2010-11-19T17:36:00Z</published><updated>2010-11-19T17:36:00Z</updated><content type="html">&lt;p&gt;Aprovecha los d&amp;iacute;as libres en las fiestas de fin de a&amp;ntilde;o para prepararte en tu carrera:&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://msmvps.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/gflores/4214.foundationscover.jpg" height="206" width="160" alt="" /&gt; &lt;br /&gt;
&lt;a href="http://codebetter.com/blogs/karlseguin/archive/2008/06/24/foundations-of-programming-ebook.aspx"&gt;Foundations of Programming&lt;/a&gt; por por Karl Seguin, donde el colaborador de www.codebetter.com nos da un punto de vista de lo que t&amp;uacute; como programador debes saber ahora mismo si quieres ser mejor en tu trabajo.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://msmvps.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/gflores/1663.fundamentoscover.JPG" height="207" width="160" alt="" /&gt;&lt;br /&gt;
&lt;a href="http://www.scribd.com/doc/33303471/Fundamentos-de-Programacion-Traducido"&gt;Fundamentos de programaci&amp;oacute;n&lt;/a&gt; por Karl Seguin (traducci&amp;oacute;n al espa&amp;ntilde;ol realizada por miembros de las comunidades tecnol&amp;oacute;gicas Microsoft en M&amp;eacute;xico)
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://tjnet.org/images/winPhoneProg.jpg" alt="" /&gt;&lt;br /&gt;
&lt;a href="http://blogs.msdn.com/microsoft_press/archive/2010/03/15/free-ebook-programming-windows-phone-7-series-draft-preview.aspx"&gt;Programming Windows Phone 7&lt;/a&gt;: Con este ebook gratuito podr&amp;aacute;s conocer de primera mano como programar para la siguiente plataforma de dispositivos m&amp;oacute;viles. &lt;a href="http://blogs.msdn.com/microsoft_press/archive/2010/03/15/free-ebook-programming-windows-phone-7-series-draft-preview.aspx"&gt;Aqu&amp;iacute;&lt;/a&gt; puedes ver el contenido de este libro y conocer las novedades. Descarga ya en &lt;a href="http://download.microsoft.com/download/7/C/8/7C820C6F-C205-4ECF-B9F3-1505DD13F9BF/ProgWinPhonePreview.pdf"&gt;versi&amp;oacute;n PDF&lt;/a&gt;, &lt;a href="http://download.microsoft.com/download/E/3/5/E359FC51-1CF5-47F1-9BF3-74AB09D3339B/ProgWinPhonePreview.xps"&gt;versi&amp;oacute;n XPS&lt;/a&gt; y &lt;a href="http://download.microsoft.com/download/1/D/B/1DB49641-3956-41F1-BAFA-A021673C709E/CodeSamples_DRAFTPreview_ProgrammingWindowsPhone7Series.zip"&gt;ejemplos en c&amp;oacute;digo&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://tjnet.org/images/ownyourfuture.jpg" alt="" /&gt;&lt;br /&gt;
&lt;a href="http://blogs.msdn.com/microsoft_press/archive/2010/03/03/free-ebook-own-your-future-update-your-skills-with-resources-and-career-ideas-from-microsoft.aspx"&gt;Own your future&lt;/a&gt;: En este libro se te ofrece un panorama de como actualizar tus habilidades y tomar control de tu futuro en tu carrera tecnol&amp;oacute;gica. Aunque enfocado a el trabajo que se hace en Microsoft, puede ser perfectamente aplicable a cualquiera que quiera tener un futuro brillante basado en el esfuerzo y trabajo en su carrera.
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;Otros t&amp;iacute;tulos dedicados a la programaci&amp;oacute;n y C#&lt;/b&gt;&lt;br /&gt;
&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ce40e4e1-9838-4c89-a197-a373b2a60df2&amp;amp;displaylang=en"&gt;Microsoft Application Architecture Guide, 2nd Edition&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.csharpcourse.com/"&gt;Rob Miles C# Yellow Book 2010&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.albahari.com/threading/"&gt;Threading in C#&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=8A2E454D-F30E-4E72-B531-75384A0F1C47"&gt;Improving .NET Application Performance and Scalability&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://amazedsaint.blogspot.com/2009/06/software-design-patterns-for-everyone.html"&gt;Applying Design Patterns&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;Otros ebooks de MSPress&lt;/b&gt;&lt;br /&gt;
&lt;img src="http://tjnet.org/images/FirstLookOffice2010_s.png" align="left" alt="" /&gt;Como parte del evento de lanzamiento de Office 2010 Microsoft Press hace disponible el ebook First Look Office 2010 de manera gratuita. S&amp;oacute;lo tienes que acceder a &lt;a href="http://office.microsoft.com/en-us/access-help/redir/AF101862665.aspx?CTT=5&amp;amp;origin=HA101822265"&gt;este enlace&lt;/a&gt; para iniciar la descarga (PDF directo 10.5MB).&lt;br /&gt;
&lt;br /&gt;
Pero no es el &amp;uacute;nico, a lo largo del tiempo se han hecho disponibles distintos t&amp;iacute;tulos para ser aprovechados por quienes se interesan por estar al d&amp;iacute;a en distintos tipos de tecnolog&amp;iacute;a. Puedes descargarlos en cada una de las ligas:
&lt;br /&gt;
&lt;a href="http://blogs.msdn.com/b/microsoft_press/archive/2010/03/26/free-ebook-moving-to-microsoft-visual-studio-2010-draft-preview.aspx" target="_blank"&gt;Free ebook: Moving to Microsoft Visual Studio 2010 (DRAFT Preview)&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://blogs.msdn.com/b/microsoft_press/archive/2010/05/13/free-ebook-moving-to-microsoft-visual-studio-2010-draft-preview-ii.aspx" target="_blank"&gt;Free ebook: Moving to Microsoft Visual Studio 2010 (DRAFT Preview II)&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://blogs.msdn.com/b/microsoft_press/archive/2010/05/17/code-for-moving-to-microsoft-visual-studio-2010-draft-ebooks.aspx" target="_blank"&gt;Code for &amp;quot;Moving to Microsoft Visual Studio 2010&amp;quot; DRAFT ebooks&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://blogs.msdn.com/b/microsoft_press/archive/2010/04/14/free-ebook-introducing-microsoft-sql-server-2008-r2.aspx" target="_blank"&gt;Free ebook: Introducing Microsoft SQL Server 2008 R2&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://blogs.msdn.com/b/microsoft_press/archive/2010/02/16/free-ebook-understanding-microsoft-virtualization-r2-solutions.aspx" target="_blank"&gt;Free ebook: Understanding Microsoft Virtualization Solutions (Second Edition)&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://blogs.msdn.com/b/microsoft_press/archive/2010/01/20/free-ebook-first-look-microsoft-office-2010.aspx" target="_blank"&gt;Free ebook: First Look Microsoft Office 2010&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://blogs.msdn.com/b/microsoft_press/archive/2009/10/26/free-e-book-windows-7-troubleshooting-tips.aspx" target="_blank"&gt;Free ebook: Windows 7 troubleshooting tips&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://blogs.msdn.com/b/microsoft_press/archive/2009/10/20/free-ebook-introducing-windows-server-2008-r2.aspx" target="_blank"&gt;Free ebook: Introducing Windows Server 2008 R2&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://blogs.msdn.com/b/microsoft_press/archive/2009/10/16/free-e-book-deploying-windows-7-essential-guidance.aspx" target="_blank"&gt;Free ebook: Deploying Windows 7, Essential Guidance&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1782628" width="1" height="1"&gt;</content><author><name>gflores</name><uri>http://msmvps.com/members/gflores/default.aspx</uri></author><category term=".net" scheme="http://msmvps.com/blogs/gflores/archive/tags/.net/default.aspx" /><category term="c#" scheme="http://msmvps.com/blogs/gflores/archive/tags/c_2300_/default.aspx" /></entry><entry><title>Importante: Vulnerabilidad en ASP.NET (todas las versiones)</title><link rel="alternate" type="text/html" href="/blogs/gflores/archive/2010/10/04/importante-vulnerabilidad-en-asp-net-todas-las-versiones.aspx" /><id>/blogs/gflores/archive/2010/10/04/importante-vulnerabilidad-en-asp-net-todas-las-versiones.aspx</id><published>2010-10-04T13:00:00Z</published><updated>2010-10-04T13:00:00Z</updated><content type="html">&lt;p&gt;Quienes me siguen en twitter (twitter.com/gabo) se habr&amp;aacute;n enterado sobre la vulnerabilidad en ASP.NET que me hizo decir algunas maldiciones en d&amp;iacute;as pasados. Es una vulnerabilidad importante que Microsoft coment&amp;oacute; en un &lt;a href="http://www.microsoft.com/technet/security/advisory/2416728.mspx"&gt;Security Advisory&lt;/a&gt; y se trata b&amp;aacute;sicamente de que un atacante pueda hacer peticiones al servidor web y verificando los mensajes de error que este arroje, descifrar el contenido de algunos archivos que no est&amp;aacute;n expuestos por default por IIS, como el archivo web.config, donde algunos almacenan por ejemplo informaci&amp;oacute;n de conexi&amp;oacute;n a servidores SQL Server y algunos otros (malamente) tambi&amp;eacute;n usuarios y passwords.&lt;/p&gt;
&lt;p&gt;&amp;iquest;Qu&amp;eacute; hay que hacer? Afortunadamente Microsoft ha lanzado ya actualizaciones por Windows Update, si no lo has hecho o por alguna raz&amp;oacute;n no lo puedes ejecutar, aqu&amp;iacute; lo puedes descargar directamente:&lt;/p&gt;
&lt;table style="width:441pt;border-collapse:collapse;margin-left:4.65pt;" class="MsoNormalTable" border="0" cellpadding="0" cellspacing="0" width="588"&gt;
&lt;tbody&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:315.75pt;background:none repeat scroll 0% 0% #0f243e;height:15pt;" colspan="2" nowrap="nowrap" valign="top" width="421"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:white;"&gt;&lt;span&gt;Windows Server 2008 R2 and Windows 7&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:125.25pt;background:none repeat scroll 0% 0% #0f243e;height:15pt;" nowrap="nowrap" valign="top" width="167"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:white;"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #4f81bd;height:15pt;border:medium 1pt 1.5pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:white;"&gt;&lt;span&gt;.NET Framework Version &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #4f81bd;height:15pt;border:medium 1pt 1.5pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:white;"&gt;&lt;span&gt;KB Article &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:125.25pt;background:none repeat scroll 0% 0% #4f81bd;height:15pt;border:medium medium 1.5pt none none solid -moz-use-text-color -moz-use-text-color white;" nowrap="nowrap" valign="top" width="167"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:white;"&gt;&lt;span&gt;Patch &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;.NET Framework 3.5.1 (Default install)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://support.microsoft.com/kb/2416471"&gt;&lt;span&gt;&lt;span&gt;KB2416471&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="color:blue;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:125.25pt;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium medium 1pt none none solid -moz-use-text-color -moz-use-text-color white;" nowrap="nowrap" valign="top" width="167"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202405"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #dce6f1;height:15pt;border:medium 1pt medium medium none solid none none -moz-use-text-color white -moz-use-text-color -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;.NET Framework 4 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #dce6f1;height:15pt;border:medium 1pt medium medium none solid none none -moz-use-text-color white -moz-use-text-color -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://support.microsoft.com/kb/2416472"&gt;&lt;span&gt;&lt;span&gt;KB2416472&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="color:blue;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border:medium none;padding:0in 5.4pt;width:125.25pt;background:none repeat scroll 0% 0% #dce6f1;height:15pt;" nowrap="nowrap" valign="top" width="167"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202406"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style="width:445pt;border-collapse:collapse;margin-left:4.65pt;" class="MsoNormalTable" border="0" cellpadding="0" cellspacing="0" width="593"&gt;
&lt;tbody&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:315.75pt;background:none repeat scroll 0% 0% #0f243e;height:15pt;" colspan="2" nowrap="nowrap" valign="top" width="421"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:white;"&gt;&lt;span&gt;Windows Server 2008 SP2, Windows Vista SP2&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:129.25pt;background:none repeat scroll 0% 0% #0f243e;height:15pt;" nowrap="nowrap" valign="top" width="172"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:white;"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #4f81bd;height:15pt;border:medium 1pt 1.5pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:white;"&gt;&lt;span&gt;.NET Framework Version &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #4f81bd;height:15pt;border:medium 1pt 1.5pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:white;"&gt;&lt;span&gt;KB Article &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:129.25pt;background:none repeat scroll 0% 0% #4f81bd;height:15pt;border:medium medium 1.5pt none none solid -moz-use-text-color -moz-use-text-color white;" nowrap="nowrap" valign="top" width="172"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:white;"&gt;&lt;span&gt;Patch &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;.NET Framework 2.0 SP2 (default install)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://support.microsoft.com/kb/2416470"&gt;&lt;span&gt;&lt;span&gt;KB2416470&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="color:blue;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:129.25pt;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium medium 1pt none none solid -moz-use-text-color -moz-use-text-color white;" nowrap="nowrap" valign="top" width="172"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202404"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #dce6f1;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;.NET Framework 4 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #dce6f1;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://support.microsoft.com/kb/2416472"&gt;&lt;span&gt;&lt;span&gt;KB2416472&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="color:blue;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:129.25pt;background:none repeat scroll 0% 0% #dce6f1;height:15pt;border:medium medium 1pt none none solid -moz-use-text-color -moz-use-text-color white;" nowrap="nowrap" valign="top" width="172"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202406"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;.NET Framework 3.5 SP1 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://support.microsoft.com/kb/2416470"&gt;&lt;span&gt;&lt;span&gt;KB2416470&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt;, &lt;/span&gt;&lt;/span&gt;&lt;a href="http://support.microsoft.com/kb/2416473"&gt;&lt;span&gt;&lt;span&gt;KB2416473&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:129.25pt;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium medium 1pt none none solid -moz-use-text-color -moz-use-text-color white;" nowrap="nowrap" valign="top" width="172"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202404"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt;, &lt;/span&gt;&lt;/span&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202423"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt;* &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #dce6f1;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;.NET Framework 3.5 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #dce6f1;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://support.microsoft.com/kb/2416470"&gt;&lt;span&gt;&lt;span&gt;KB2416470&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt;, &lt;/span&gt;&lt;/span&gt;&lt;a href="http://support.microsoft.com/kb/2418240"&gt;&lt;span&gt;&lt;span&gt;KB2418240&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;a name="_GoBack"&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:129.25pt;background:none repeat scroll 0% 0% #dce6f1;height:15pt;border:medium medium 1pt none none solid -moz-use-text-color -moz-use-text-color white;" nowrap="nowrap" valign="top" width="172"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202404"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt;, &lt;/span&gt;&lt;/span&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202422"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt;* &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium 1pt medium medium none solid none none -moz-use-text-color white -moz-use-text-color -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;.NET Framework 1.1 SP1 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium 1pt medium medium none solid none none -moz-use-text-color white -moz-use-text-color -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://support.microsoft.com/kb/2416447"&gt;&lt;span&gt;&lt;span&gt;KB2416447&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="color:blue;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border:medium none;padding:0in 5.4pt;width:129.25pt;background:none repeat scroll 0% 0% #b8cce4;height:15pt;" nowrap="nowrap" valign="top" width="172"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202397"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;span&gt;*Si se listan varias descargas sobre una versi&amp;oacute;n de .NET (por ejemplo en .NET 3.5 SP1 y .NET 3.5) entonces todos los parches deben ser instalados (sin importar el orden). &lt;/span&gt;&lt;/p&gt;
&lt;table style="width:441pt;border-collapse:collapse;margin-left:4.65pt;" class="MsoNormalTable" border="0" cellpadding="0" cellspacing="0" width="588"&gt;
&lt;tbody&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:315.75pt;background:none repeat scroll 0% 0% #0f243e;height:15pt;" colspan="2" nowrap="nowrap" valign="top" width="421"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:white;"&gt;&lt;span&gt;Windows Server 2008, Windows Vista SP1 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:125.25pt;background:none repeat scroll 0% 0% #0f243e;height:15pt;" nowrap="nowrap" valign="top" width="167"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:white;"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #4f81bd;height:15pt;border:medium 1pt 1.5pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:white;"&gt;&lt;span&gt;.NET Framework Version &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #4f81bd;height:15pt;border:medium 1pt 1.5pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:white;"&gt;&lt;span&gt;KB Article &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:125.25pt;background:none repeat scroll 0% 0% #4f81bd;height:15pt;border:medium medium 1.5pt none none solid -moz-use-text-color -moz-use-text-color white;" nowrap="nowrap" valign="top" width="167"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:white;"&gt;&lt;span&gt;Patch &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;.NET Framework 2.0 SP1 (default install)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://support.microsoft.com/kb/2416469"&gt;&lt;span&gt;&lt;span&gt;KB2416469&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="color:blue;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:125.25pt;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium medium 1pt none none solid -moz-use-text-color -moz-use-text-color white;" nowrap="nowrap" valign="top" width="167"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202401"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #dce6f1;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;.NET Framework 4 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #dce6f1;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://support.microsoft.com/kb/2416472"&gt;&lt;span&gt;&lt;span&gt;KB2416472&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="color:blue;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:125.25pt;background:none repeat scroll 0% 0% #dce6f1;height:15pt;border:medium medium 1pt none none solid -moz-use-text-color -moz-use-text-color white;" nowrap="nowrap" valign="top" width="167"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202406"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;.NET Framework 3.5 SP1 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://support.microsoft.com/kb/2416474"&gt;&lt;span&gt;&lt;span&gt;KB2416474&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt;, &lt;/span&gt;&lt;/span&gt;&lt;a href="http://support.microsoft.com/kb/2416473"&gt;&lt;span&gt;&lt;span&gt;KB2416473&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:125.25pt;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium medium 1pt none none solid -moz-use-text-color -moz-use-text-color white;" nowrap="nowrap" valign="top" width="167"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202403"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt;, &lt;/span&gt;&lt;/span&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202423"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt;* &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #dce6f1;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;.NET Framework 2.0 SP2 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #dce6f1;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://support.microsoft.com/kb/2416474"&gt;&lt;span&gt;&lt;span&gt;KB2416474&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="color:blue;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:125.25pt;background:none repeat scroll 0% 0% #dce6f1;height:15pt;border:medium medium 1pt none none solid -moz-use-text-color -moz-use-text-color white;" nowrap="nowrap" valign="top" width="167"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202403"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;.NET Framework 3.5 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://support.microsoft.com/kb/2416469"&gt;&lt;span&gt;&lt;span&gt;KB2416469&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt;, &lt;/span&gt;&lt;/span&gt;&lt;a href="http://support.microsoft.com/kb/2418240"&gt;&lt;span&gt;&lt;span&gt;KB2418240&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:125.25pt;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium medium 1pt none none solid -moz-use-text-color -moz-use-text-color white;" nowrap="nowrap" valign="top" width="167"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202401"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt;, &lt;/span&gt;&lt;/span&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202422"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt;* &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #dce6f1;height:15pt;border:medium 1pt medium medium none solid none none -moz-use-text-color white -moz-use-text-color -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;.NET Framework 1.1 SP1 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #dce6f1;height:15pt;border:medium 1pt medium medium none solid none none -moz-use-text-color white -moz-use-text-color -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://support.microsoft.com/kb/2416447"&gt;&lt;span&gt;&lt;span&gt;KB2416447&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="color:blue;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border:medium none;padding:0in 5.4pt;width:125.25pt;background:none repeat scroll 0% 0% #dce6f1;height:15pt;" nowrap="nowrap" valign="top" width="167"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202397"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;span&gt;*Si se listan varias descargas sobre una versi&amp;oacute;n de .NET (por 
ejemplo en .NET 3.5 SP1 y .NET 3.5) entonces todos los parches deben ser
 instalados (sin importar el orden). &lt;/span&gt;&lt;/p&gt;
&lt;table style="width:445pt;border-collapse:collapse;margin-left:4.65pt;" class="MsoNormalTable" border="0" cellpadding="0" cellspacing="0" width="593"&gt;
&lt;tbody&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:315.75pt;background:none repeat scroll 0% 0% #0f243e;height:15pt;" colspan="2" nowrap="nowrap" valign="top" width="421"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:white;"&gt;&lt;span&gt;Windows Server 2003 SP2 32-bit &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:129.25pt;background:none repeat scroll 0% 0% #0f243e;height:15pt;" nowrap="nowrap" valign="top" width="172"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:white;"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #4f81bd;height:15pt;border:medium 1pt 1.5pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:white;"&gt;&lt;span&gt;.NET Framework Version &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #4f81bd;height:15pt;border:medium 1pt 1.5pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:white;"&gt;&lt;span&gt;KB Article &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:129.25pt;background:none repeat scroll 0% 0% #4f81bd;height:15pt;border:medium medium 1.5pt none none solid -moz-use-text-color -moz-use-text-color white;" nowrap="nowrap" valign="top" width="172"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:white;"&gt;&lt;span&gt;Patch &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;.NET Framework 1.1 SP1 (default install)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://support.microsoft.com/kb/2416451"&gt;&lt;span&gt;&lt;span&gt;KB2416451&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="color:blue;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:129.25pt;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium medium 1pt none none solid -moz-use-text-color -moz-use-text-color white;" nowrap="nowrap" valign="top" width="172"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202398"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:14.35pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #dce6f1;height:14.35pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;.NET Framework 4 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #dce6f1;height:14.35pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://support.microsoft.com/kb/2416472"&gt;&lt;span&gt;&lt;span&gt;KB2416472&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="color:blue;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:129.25pt;background:none repeat scroll 0% 0% #dce6f1;height:14.35pt;border:medium medium 1pt none none solid -moz-use-text-color -moz-use-text-color white;" nowrap="nowrap" valign="top" width="172"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202406"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;.NET Framework 3.5 SP1 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://support.microsoft.com/kb/2418241"&gt;&lt;span&gt;&lt;span&gt;KB2418241&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt;, &lt;/span&gt;&lt;/span&gt;&lt;a href="http://support.microsoft.com/kb/2416473"&gt;&lt;span&gt;&lt;span&gt;KB2416473&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:129.25pt;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium medium 1pt none none solid -moz-use-text-color -moz-use-text-color white;" nowrap="nowrap" valign="top" width="172"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202402"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt;, &lt;/span&gt;&lt;/span&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202423"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt;* &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #dce6f1;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;.NET Framework 2.0 SP2 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #dce6f1;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://support.microsoft.com/kb/2418241"&gt;&lt;span&gt;&lt;span&gt;KB2418241&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="color:blue;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:129.25pt;background:none repeat scroll 0% 0% #dce6f1;height:15pt;border:medium medium 1pt none none solid -moz-use-text-color -moz-use-text-color white;" nowrap="nowrap" valign="top" width="172"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202402"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium 1pt medium medium none solid none none -moz-use-text-color white -moz-use-text-color -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;.NET Framework 3.5 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium 1pt medium medium none solid none none -moz-use-text-color white -moz-use-text-color -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://support.microsoft.com/kb/2416468"&gt;&lt;span&gt;&lt;span&gt;KB2416468&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt;, &lt;/span&gt;&lt;/span&gt;&lt;a href="http://support.microsoft.com/kb/2418240"&gt;&lt;span&gt;&lt;span&gt;KB2418240&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border:medium none;padding:0in 5.4pt;width:129.25pt;background:none repeat scroll 0% 0% #b8cce4;height:15pt;" nowrap="nowrap" valign="top" width="172"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202400"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt;, &lt;/span&gt;&lt;/span&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202422"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt;* &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;span&gt;*Si se listan varias descargas sobre una versi&amp;oacute;n de .NET (por 
ejemplo en .NET 3.5 SP1 y .NET 3.5) entonces todos los parches deben ser
 instalados (sin importar el orden). &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="line-height:115%;font-size:14pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;table style="width:441pt;border-collapse:collapse;margin-left:4.65pt;" class="MsoNormalTable" border="0" cellpadding="0" cellspacing="0" width="588"&gt;
&lt;tbody&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:315.75pt;background:none repeat scroll 0% 0% #0f243e;height:15pt;" colspan="2" nowrap="nowrap" valign="top" width="421"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:white;"&gt;&lt;span&gt;Windows Server 2003 64-bit &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:125.25pt;background:none repeat scroll 0% 0% #0f243e;height:15pt;" nowrap="nowrap" valign="top" width="167"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:white;"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #4f81bd;height:15pt;border:medium 1pt 1.5pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:white;"&gt;&lt;span&gt;.NET Framework Version/SP &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #4f81bd;height:15pt;border:medium 1pt 1.5pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:white;"&gt;&lt;span&gt;KB Article &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:125.25pt;background:none repeat scroll 0% 0% #4f81bd;height:15pt;border:medium medium 1.5pt none none solid -moz-use-text-color -moz-use-text-color white;" nowrap="nowrap" valign="top" width="167"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:white;"&gt;&lt;span&gt;Patch &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;Default OS Configuration &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;NA &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:125.25pt;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium medium 1pt none none solid -moz-use-text-color -moz-use-text-color white;" nowrap="nowrap" valign="top" width="167"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;NA &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:17.5pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #dce6f1;height:17.5pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;.NET Framework 4 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #dce6f1;height:17.5pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://support.microsoft.com/kb/2416472"&gt;&lt;span&gt;&lt;span&gt;KB2416472&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="color:blue;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:125.25pt;background:none repeat scroll 0% 0% #dce6f1;height:17.5pt;border:medium medium 1pt none none solid -moz-use-text-color -moz-use-text-color white;" valign="top" width="167"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202406"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="color:blue;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;.NET Framework 3.5 SP1 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://support.microsoft.com/kb/2418241"&gt;&lt;span&gt;&lt;span&gt;KB2418241&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt;, &lt;/span&gt;&lt;/span&gt;&lt;a href="http://support.microsoft.com/kb/2416473"&gt;&lt;span&gt;&lt;span&gt;KB2416473&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:125.25pt;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium medium 1pt none none solid -moz-use-text-color -moz-use-text-color white;" nowrap="nowrap" valign="top" width="167"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202402"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt;, &lt;/span&gt;&lt;/span&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202423"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt;* &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #dce6f1;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;.NET Framework 2.0 SP2 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #dce6f1;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://support.microsoft.com/kb/2418241"&gt;&lt;span&gt;&lt;span&gt;KB2418241&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="color:blue;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:125.25pt;background:none repeat scroll 0% 0% #dce6f1;height:15pt;border:medium medium 1pt none none solid -moz-use-text-color -moz-use-text-color white;" nowrap="nowrap" valign="top" width="167"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202402"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;.NET Framework 3.5 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://support.microsoft.com/kb/2416468"&gt;&lt;span&gt;&lt;span&gt;KB2416468&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt;, &lt;/span&gt;&lt;/span&gt;&lt;a href="http://support.microsoft.com/kb/2418240"&gt;&lt;span&gt;&lt;span&gt;KB2418240&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:125.25pt;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium medium 1pt none none solid -moz-use-text-color -moz-use-text-color white;" nowrap="nowrap" valign="top" width="167"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202400"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt;, &lt;/span&gt;&lt;/span&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202422"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt;* &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #dce6f1;height:15pt;border:medium 1pt medium medium none solid none none -moz-use-text-color white -moz-use-text-color -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;.NET Framework 1.1 SP1 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #dce6f1;height:15pt;border:medium 1pt medium medium none solid none none -moz-use-text-color white -moz-use-text-color -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://support.microsoft.com/kb/2416447"&gt;&lt;span&gt;&lt;span&gt;KB2416447&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="color:blue;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border:medium none;padding:0in 5.4pt;width:125.25pt;background:none repeat scroll 0% 0% #dce6f1;height:15pt;" nowrap="nowrap" valign="top" width="167"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202397"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;span&gt;*Si se listan varias descargas sobre una versi&amp;oacute;n de .NET (por 
ejemplo en .NET 3.5 SP1 y .NET 3.5) entonces todos los parches deben ser
 instalados (sin importar el orden). &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="line-height:115%;font-size:14pt;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;table style="width:441pt;border-collapse:collapse;margin-left:4.65pt;" class="MsoNormalTable" border="0" cellpadding="0" cellspacing="0" width="588"&gt;
&lt;tbody&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:315.75pt;background:none repeat scroll 0% 0% #0f243e;height:15pt;" colspan="2" nowrap="nowrap" valign="top" width="421"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:white;"&gt;&lt;span&gt;Windows XP SP3 32-bit and 64-bit&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:125.25pt;background:none repeat scroll 0% 0% #0f243e;height:15pt;" nowrap="nowrap" valign="top" width="167"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:white;"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #4f81bd;height:15pt;border:medium 1pt 1.5pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:white;"&gt;&lt;span&gt;.NET Framework Version/SP &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #4f81bd;height:15pt;border:medium 1pt 1.5pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:white;"&gt;&lt;span&gt;KB Article &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:125.25pt;background:none repeat scroll 0% 0% #4f81bd;height:15pt;border:medium medium 1.5pt none none solid -moz-use-text-color -moz-use-text-color white;" nowrap="nowrap" valign="top" width="167"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color:white;"&gt;&lt;span&gt;Patch &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;Default OS Configuration &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;NA &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:125.25pt;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium medium 1pt none none solid -moz-use-text-color -moz-use-text-color white;" nowrap="nowrap" valign="top" width="167"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;NA &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:17.5pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #dce6f1;height:17.5pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;.NET Framework 4 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #dce6f1;height:17.5pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://support.microsoft.com/kb/2416472"&gt;&lt;span&gt;&lt;span&gt;KB2416472&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="color:blue;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:125.25pt;background:none repeat scroll 0% 0% #dce6f1;height:17.5pt;border:medium medium 1pt none none solid -moz-use-text-color -moz-use-text-color white;" valign="top" width="167"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202406"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="color:blue;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;.NET Framework 3.5 SP1 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://support.microsoft.com/kb/2418241"&gt;&lt;span&gt;&lt;span&gt;KB2418241&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt;, &lt;/span&gt;&lt;/span&gt;&lt;a href="http://support.microsoft.com/kb/2416473"&gt;&lt;span&gt;&lt;span&gt;KB2416473&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:125.25pt;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium medium 1pt none none solid -moz-use-text-color -moz-use-text-color white;" nowrap="nowrap" valign="top" width="167"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202402"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt;, &lt;/span&gt;&lt;/span&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202423"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt;* &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #dce6f1;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;.NET Framework 2.0 SP2 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #dce6f1;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://support.microsoft.com/kb/2418241"&gt;&lt;span&gt;&lt;span&gt;KB2418241&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="color:blue;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:125.25pt;background:none repeat scroll 0% 0% #dce6f1;height:15pt;border:medium medium 1pt none none solid -moz-use-text-color -moz-use-text-color white;" nowrap="nowrap" valign="top" width="167"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202402"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;.NET Framework 3.5 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color white white -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://support.microsoft.com/kb/2416468"&gt;&lt;span&gt;&lt;span&gt;KB2416468&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt;, &lt;/span&gt;&lt;/span&gt;&lt;a href="http://support.microsoft.com/kb/2418240"&gt;&lt;span&gt;&lt;span&gt;KB2418240&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:125.25pt;background:none repeat scroll 0% 0% #b8cce4;height:15pt;border:medium medium 1pt none none solid -moz-use-text-color -moz-use-text-color white;" nowrap="nowrap" valign="top" width="167"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202400"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt;, &lt;/span&gt;&lt;/span&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202422"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt;* &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="height:15pt;"&gt;
&lt;td style="padding:0in 5.4pt;width:189.75pt;background:none repeat scroll 0% 0% #dce6f1;height:15pt;border:medium 1pt medium medium none solid none none -moz-use-text-color white -moz-use-text-color -moz-use-text-color;" nowrap="nowrap" valign="top" width="253"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;span style="color:black;"&gt;&lt;span&gt;.NET Framework 1.1 SP1 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0in 5.4pt;width:1.75in;background:none repeat scroll 0% 0% #dce6f1;height:15pt;border:medium 1pt medium medium none solid none none -moz-use-text-color white -moz-use-text-color -moz-use-text-color;" nowrap="nowrap" valign="top" width="168"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://support.microsoft.com/kb/2416447"&gt;&lt;span&gt;&lt;span&gt;KB2416447&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="color:blue;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border:medium none;padding:0in 5.4pt;width:125.25pt;background:none repeat scroll 0% 0% #dce6f1;height:15pt;" nowrap="nowrap" valign="top" width="167"&gt;
&lt;p style="line-height:normal;margin-bottom:0pt;" class="MsoNormal"&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=202397"&gt;&lt;span&gt;&lt;span&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:black;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;span&gt;*Si se listan varias descargas sobre una versi&amp;oacute;n de .NET (por 
ejemplo en .NET 3.5 SP1 y .NET 3.5) entonces todos los parches deben ser
 instalados (sin importar el orden). &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;b&gt;Consideraciones&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Fue muy h&amp;aacute;bil el equipo de expertos que descubri&amp;oacute; esta vulnerabilidad, y fue una bastante importante pues afectaba todas las versiones de ASP.NET, pero afortunadamente la respuesta de Microsoft fue casi inmediata con la publicaci&amp;oacute;n de un workaround que evitaba ser expuestos por esta. Lo m&amp;aacute;s importante es que si mantienes un sitio ASP.NET te asegures no caer en pr&amp;aacute;cticas comunes y poco confiables como dejar los usuarios y contrase&amp;ntilde;as en texto plano en ning&amp;uacute;n archivo del sitio web. Velo as&amp;iacute;, es una carpeta expuesta a la internet para todos, a&amp;uacute;n con restricciones de IIS &amp;iquest;dejar&amp;iacute;as la contrase&amp;ntilde;a de tu coreo electr&amp;oacute;nico en un archivo .PPTX expuesto? S&amp;oacute;lo es cuesti&amp;oacute;n de sentido com&amp;uacute;n.&lt;/p&gt;
&lt;p&gt;Con informaci&amp;oacute;n de los posts de ScottGu:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/09/18/important-asp-net-security-vulnerability.aspx"&gt;ASP.NET Security Vulnerability&lt;/a&gt; (detalles sobre la situaci&amp;oacute;n)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/09/28/asp-net-security-update-now-available.aspx"&gt;ASP.NET Security Update now available&lt;/a&gt; (este listado de parches disponibles)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/09/30/asp-net-security-fix-now-on-windows-update.aspx"&gt;ASP.NET Security Fix now on Windows Update&lt;/a&gt; (detalles para obtener los parches a trav&amp;eacute;s de Windows Update)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1779286" width="1" height="1"&gt;</content><author><name>gflores</name><uri>http://msmvps.com/members/gflores/default.aspx</uri></author><category term="asp.net" scheme="http://msmvps.com/blogs/gflores/archive/tags/asp.net/default.aspx" /></entry><entry><title>Fundamentos de Programación</title><link rel="alternate" type="text/html" href="/blogs/gflores/archive/2010/06/23/fundamentos-de-programaci-243-n.aspx" /><id>/blogs/gflores/archive/2010/06/23/fundamentos-de-programaci-243-n.aspx</id><published>2010-06-24T00:59:00Z</published><updated>2010-06-24T00:59:00Z</updated><content type="html">&lt;p&gt;Traducci&amp;oacute;n al espa&amp;ntilde;ol del Foundations of Programming de Karl Seguin de www.codebetter.com licenciado bajo Creative Commons licencia Attribution-NonCommercial 
-Share-Alike 3.0 Unported.&lt;/p&gt;
&lt;p&gt;&lt;a title="View Fundamentos de Programaci&amp;oacute;n Traducido on Scribd" href="http://www.scribd.com/doc/33303471/Fundamentos-de-Programacion-Traducido" style="margin:12px auto 6px auto;font-family:Helvetica,Arial,Sans-serif;font-style:normal;font-variant:normal;font-weight:normal;font-size:14px;line-height:normal;font-size-adjust:none;font-stretch:normal;-x-system-font:none;display:block;text-decoration:underline;"&gt;Fundamentos de Programaci&amp;oacute;n Traducido&lt;/a&gt; 






 		 	

&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/jaimesb/"&gt;Jaime S&amp;aacute;nchez&lt;/a&gt; nos coment&amp;oacute; a varios miembros de comunidades tecnol&amp;oacute;gicas acerca de traducir al espa&amp;ntilde;ol este libro, y varios nos apuntamos a ello. Pues bien, este es el esfuerzo de Francisco Flamenco, Emilio Reyes, Antonio Ortiz, Gabriel Oliva, Jaime del Palacio, Gabriel Flores y Haar&amp;oacute;n Gonz&amp;aacute;lez. &lt;/p&gt;
&lt;p&gt;Es una traducci&amp;oacute;n que no por provenir de nosotros est&amp;eacute; libre de fallas, as&amp;iacute; que cualquier problema, imprecisi&amp;oacute;n o falta agradecer&amp;iacute;amos nos lo notifiquen para actualizar el documento.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1772537" width="1" height="1"&gt;</content><author><name>gflores</name><uri>http://msmvps.com/members/gflores/default.aspx</uri></author><category term=".net" scheme="http://msmvps.com/blogs/gflores/archive/tags/.net/default.aspx" /><category term="c#" scheme="http://msmvps.com/blogs/gflores/archive/tags/c_2300_/default.aspx" /><category term="tecnolog&amp;#237;a" scheme="http://msmvps.com/blogs/gflores/archive/tags/tecnolog_26002300_237_3B00_a/default.aspx" /></entry><entry><title>La certificación no es una pérdida de tiempo</title><link rel="alternate" type="text/html" href="/blogs/gflores/archive/2010/04/29/la-certificaci-243-n-no-es-una-p-233-rdida-de-tiempo.aspx" /><id>/blogs/gflores/archive/2010/04/29/la-certificaci-243-n-no-es-una-p-233-rdida-de-tiempo.aspx</id><published>2010-04-29T17:48:00Z</published><updated>2010-04-29T17:48:00Z</updated><content type="html">&lt;p&gt;Estoy totalmente de acuerdo en las razones que marca Uncle Bob del &lt;a title="Certification, don&amp;#39;t waste your time" href="http://blog.objectmentor.com/articles/2010/04/27/certification-dont-waste-your-time"&gt;porque certificarse s&amp;iacute; es una p&amp;eacute;rdida de tiempo&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si tratas de impresionar a alguien&lt;/li&gt;
&lt;li&gt;Si lo quieres usar para conseguir trabajo&lt;/li&gt;
&lt;li&gt;Si solo quieres contratar personal certificado&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;Sin embargo, hay un error com&amp;uacute;n en muchas personas que desvirt&amp;uacute;an las certificaciones, y es que certificarse no es atender un curso y obtener un reconocimiento de que participaste en ese curso.&amp;nbsp; D&amp;eacute;jame explicarlo, ese &amp;quot;certificado de participaci&amp;oacute;n&amp;quot; en el curso XYZ-1234 &lt;b&gt;*NO* &lt;/b&gt;es una certificaci&amp;oacute;n. Es m&amp;aacute;s, para estar certificado en algo ni siquiera necesitas haber tomado esos cursos, necesariamente. Lo que ayuda m&amp;aacute;s para aprobar los ex&amp;aacute;menes de certificaci&amp;oacute;n es como dije anteriormente en &amp;quot;&lt;a title="Certificaciones, perder el miedo" href="http://msmvps.com/blogs/gflores/archive/2006/06/15/101596.aspx"&gt;Certificaciones, perder el miedo&lt;/a&gt;&amp;quot; es la experiencia personal en la tecnolog&amp;iacute;a que est&amp;aacute;s certific&amp;aacute;ndote.&lt;br /&gt;&lt;br /&gt;Como tambi&amp;eacute;n dije en ese post, personalmente que yo sepa que est&amp;aacute;s certificado en algo me da a entender que comprendes lo m&amp;iacute;nimo de esa tecnolog&amp;iacute;a, que no tengo que perder tiempo en ense&amp;ntilde;arte desde el principio, pero realmente es muy debatible que demuestre que tan experto seas en ella. Para &lt;b&gt;m&amp;iacute;&lt;/b&gt; estar certificado en algo me sirve para demostrarme &lt;b&gt;a m&amp;iacute; mismo&lt;/b&gt;
antes que a cualquier otra persona un hito personal en mi carrera
profesional. Como dije antes, tu trabajo habla m&amp;aacute;s que cualquier papelito que traigas adjunto a tu CV.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1764561" width="1" height="1"&gt;</content><author><name>gflores</name><uri>http://msmvps.com/members/gflores/default.aspx</uri></author><category term="opini&amp;#243;n" scheme="http://msmvps.com/blogs/gflores/archive/tags/opini_26002300_243_3B00_n/default.aspx" /></entry><entry><title>Cambiar usuario y password de la cadena de conexión en EF</title><link rel="alternate" type="text/html" href="/blogs/gflores/archive/2010/03/09/cambiar-usuario-y-password-de-la-cadena-de-conexi-243-n-en-ef.aspx" /><id>/blogs/gflores/archive/2010/03/09/cambiar-usuario-y-password-de-la-cadena-de-conexi-243-n-en-ef.aspx</id><published>2010-03-09T21:27:00Z</published><updated>2010-03-09T21:27:00Z</updated><content type="html">&lt;p&gt;En una aplicaci&amp;oacute;n donde usas ADO.NET Entity Framework como acceso a datos, en el paso donde se agrega una entidad nueva en el proyecto y se usa autenticaci&amp;oacute;n de SQL Server, siempre se nos pregunta si almacenaremos la informaci&amp;oacute;n de conexi&amp;oacute;n en el archivo de configuraci&amp;oacute;n o si la pasaremos por medio de la aplicaci&amp;oacute;n:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gflores/5126.EntityModelWizard.JPG"&gt;&lt;/a&gt;&lt;a target="_blank" href="http://msmvps.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/gflores/5126.EntityModelWizard.JPG"&gt;&lt;img alt="click para ver m&amp;aacute;s grande" style="border:0;" src="http://msmvps.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/gflores/4718.EntityModelWizard_5F00_s.JPG" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Esta es la mejor pr&amp;aacute;ctica, seleccionar &amp;quot;No, exclude sensitive data from the connection string. I will set it in my application&amp;quot; que palabras m&amp;aacute;s, palabras menos, significa algo as&amp;iacute; como &amp;quot;No, excluir datos sensibles de la cadena de conexi&amp;oacute;n. La asignar&amp;eacute; desde mi aplicaci&amp;oacute;n&amp;quot;. Y es que en un&lt;i&gt; mundo ideal&lt;/i&gt; tu aplicaci&amp;oacute;n se ejecutar&amp;aacute; desde un entorno donde la m&amp;aacute;quina pertenezca a un directorio activo (Active Directory) con todas las credenciales dadas desde Windows para evitar errores y malentendidos. Pero en el &lt;i&gt;mundo real &lt;/i&gt;esto no siempre es as&amp;iacute; y quiz&amp;aacute;s en la misma PC donde se ejecutar&amp;aacute; la aplicaci&amp;oacute;n varios usuarios con distintos tipos de perfil usar&amp;aacute;n la aplicaci&amp;oacute;n por lo que debes pedir sus nombres de usuario y contrase&amp;ntilde;a de SQL Server para acceder al programa. Entonces &amp;iquest;c&amp;oacute;mo cambiamos los datos de la cadena de conexi&amp;oacute;n?&lt;/p&gt;
&lt;p&gt;Supongamos que tenemos una forma de Login con dos cajas de texto para el usuario y contrase&amp;ntilde;a y estos se leen en unas variables &lt;b&gt;sUser &lt;/b&gt;y &lt;b&gt;sPass&lt;/b&gt; respectivamente, vamos a tener esto:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;


&lt;/p&gt;
&lt;pre class="csharpcode"&gt;NorthwindEntities ne = &lt;span class="kwrd"&gt;new&lt;/span&gt; NorthwindEntities();&lt;br /&gt;&lt;br /&gt;SqlConnectionStringBuilder sb = &lt;br /&gt;     &lt;span class="kwrd"&gt;new&lt;/span&gt; SqlConnectionStringBuilder(&lt;br /&gt;         ((EntityConnection)ne.Connection).StoreConnection.ConnectionString&lt;br /&gt;     );&lt;br /&gt;sb.IntegratedSecurity = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;br /&gt;sb.UserID = sUser;&lt;br /&gt;sb.Password = sPass;&lt;br /&gt;&lt;br /&gt;((EntityConnection)ne.Connection).StoreConnection.ConnectionString = sb.ConnectionString;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;NorthwindEntities es como nombramos el modelo de datos desde el Entity Data Model Wizard. Y aqu&amp;iacute; inicializamos la conexi&amp;oacute;n auxili&amp;aacute;ndonos de la clase SqlConnectionStringBuilder para mayor comodidad. Despu&amp;eacute;s de eso, simplemente lo asignamos por medio del ConnectionString. Toma en cuenta los castings de los que hacemos uso con (EntityConnection) para poder tener acceso a la propiedad StoreConnection que es donde la propiedad ConnectionString est&amp;aacute; disponible y que podemos actualizar.&lt;/p&gt;
&lt;p&gt;Basado en &lt;a href="http://sivapinnaka.spaces.live.com/Blog/cns!B027EF7E7070AD69!211.entry"&gt;ADO.NET Entity Framework: Modify EntityConnection connection string values at runtime&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1761335" width="1" height="1"&gt;</content><author><name>gflores</name><uri>http://msmvps.com/members/gflores/default.aspx</uri></author><category term="c#" scheme="http://msmvps.com/blogs/gflores/archive/tags/c_2300_/default.aspx" /><category term="nivel:200" scheme="http://msmvps.com/blogs/gflores/archive/tags/nivel_3A00_200/default.aspx" /><category term="howto" scheme="http://msmvps.com/blogs/gflores/archive/tags/howto/default.aspx" /></entry><entry><title>ADO.NET Entity Framework en unos cuantos pasos</title><link rel="alternate" type="text/html" href="/blogs/gflores/archive/2010/03/09/ado-net-entity-framework-en-unos-cuantos-pasos.aspx" /><id>/blogs/gflores/archive/2010/03/09/ado-net-entity-framework-en-unos-cuantos-pasos.aspx</id><published>2010-03-09T19:31:00Z</published><updated>2010-03-09T19:31:00Z</updated><content type="html">&lt;p&gt;Gracias a una invitaci&amp;oacute;n de Jes&amp;uacute;s Bosch de la &lt;a href="http://uoc.dotnetclubs.com"&gt;Universitat Oberta de Catalunya&lt;/a&gt; tuve el privilegio de presentarles este tema. Desgraciadamente una metida de pata m&amp;iacute;a impidi&amp;oacute; que la pl&amp;aacute;tica fuera en vivo, pero aqu&amp;iacute; lo que pude rescatar de esa memorable ma&amp;ntilde;ana de s&amp;aacute;bado lluvioso.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://vimeo.com/9829992"&gt;&lt;img src="http://msmvps.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/gflores/2654.screencast.JPG" border="0" alt="" /&gt;&lt;/a&gt;&amp;nbsp;



&lt;a class="uywvrgmbpizcntizhuuq" href="http://vimeo.com/moogaloop.swf?clip_id=9829992&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=00ADEF&amp;amp;fullscreen=1"&gt;&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;&lt;a href="http://vimeo.com/9829992"&gt;ADO.NET Entity Framework en pocos pasos&lt;/a&gt; from &lt;a href="http://vimeo.com/user3144349"&gt;Gabriel Flores&lt;/a&gt; on &lt;a href="http://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Presentaci&amp;oacute;n para la UOC.&lt;br /&gt;
&lt;br /&gt;
http://uoc.dotnetclubs.com&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1761313" width="1" height="1"&gt;</content><author><name>gflores</name><uri>http://msmvps.com/members/gflores/default.aspx</uri></author><category term="c#" scheme="http://msmvps.com/blogs/gflores/archive/tags/c_2300_/default.aspx" /><category term="howto" scheme="http://msmvps.com/blogs/gflores/archive/tags/howto/default.aspx" /></entry><entry><title>Regreso a las bases: Memoria (Parte 2)</title><link rel="alternate" type="text/html" href="/blogs/gflores/archive/2009/12/15/regreso-a-las-bases-memoria-parte-2.aspx" /><id>/blogs/gflores/archive/2009/12/15/regreso-a-las-bases-memoria-parte-2.aspx</id><published>2009-12-16T05:00:00Z</published><updated>2009-12-16T05:00:00Z</updated><content type="html">&lt;p&gt;Lo que sigue es una traducci&amp;oacute;n de una secci&amp;oacute;n del ebook gratuito &lt;a href="http://codebetter.com/blogs/karlseguin/archive/2008/06/24/foundations-of-programming-ebook.aspx"&gt;&lt;span style="color:#006bad;"&gt;Foundations of Programming&lt;/span&gt;&lt;/a&gt; de &lt;a href="http://codebetter.com/blogs/karlseguin/"&gt;&lt;span style="color:#006bad;"&gt;Karl Seguin&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;h3 style="margin:10pt 0in 0pt;"&gt;&lt;a name="_Toc205295082"&gt;&lt;span lang="ES" style="mso-ansi-language:ES;"&gt;&lt;span style="font-family:Cambria;color:#4f81bd;font-size:small;"&gt;Apuntadores&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span lang="ES" style="mso-ansi-language:ES;"&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="ES" style="mso-ansi-language:ES;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Para muchos desarrolladores, aprender sobre apuntadores en la escuela fue una experiencia dolorosa. Representan la verdaderamente real indirecci&amp;oacute;n que existe entre c&amp;oacute;digo y hardware. Muchos m&amp;aacute;s desarrolladores nunca tuvieron la experiencia de aprender sobre ellos&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;- saltaron directamente a programar en un lenguaje que no los expone directamente. La verdad sin embargo es que cualquiera que diga que C# o Java son lenguajes sin apuntadores es simplemente un error. Como los apuntadores son el mecanismo con el cual todos los lenguajes almacenan valores en el &lt;i style="mso-bidi-font-style:normal;"&gt;heap&lt;/i&gt;, es m&amp;aacute;s bien tonto no entender como son usados.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="ES" style="mso-ansi-language:ES;"&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Los apuntadores representan el nexus del modelo de memoria de un sistema &amp;ndash; esto es, los apuntadores son el mecanismo donde el &lt;i style="mso-bidi-font-style:normal;"&gt;stack&lt;/i&gt; y el &lt;i style="mso-bidi-font-style:normal;"&gt;heap&lt;/i&gt; trabajan juntos para proveer el subsistema de memoria requerido por su programa. Como discutimos anteriormente, cuando instancia un objeto &lt;/span&gt;&lt;/span&gt;&lt;span class="InlineCodeChar"&gt;&lt;span lang="ES" style="line-height:115%;font-size:10pt;mso-ansi-language:ES;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-bidi-font-size:11.0pt;"&gt;&lt;span style="font-family:Courier New;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="ES" style="mso-ansi-language:ES;"&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;, .NET asigna un bloque de memoria al &lt;i style="mso-bidi-font-style:normal;"&gt;heap&lt;/i&gt; y regresa un apuntador al inicio de este bloque de memoria. Esto es todo lo que un apuntador es: &lt;b style="mso-bidi-font-weight:normal;"&gt;la direcci&amp;oacute;n de inicio para el bloque de memoria que contiene un objeto&lt;/b&gt;. La direcci&amp;oacute;n no es nada m&amp;aacute;s que un n&amp;uacute;mero &amp;uacute;nico, generalmente representado en formato hexadecimal. Por lo tanto, un apuntador no es nada m&amp;aacute;s que un n&amp;uacute;mero &amp;uacute;nico que le dice a .NET donde est&amp;aacute; el objeto mismo en memoria. Esta indirecci&amp;oacute;n es transparente en Java o .NET, pero no en C o C++ donde se puede manipular la direcci&amp;oacute;n de memoria directamente con un apuntador aritm&amp;eacute;tico. En C o C++ se puede tomar un apuntador y agregar 1 a &amp;eacute;l, y as&amp;iacute; arbitrariamente cambiar a donde est&amp;aacute; apuntando (y seguramente hacer tronar el programa debido a esto).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="ES" style="mso-ansi-language:ES;"&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Donde se pone interesante es donde el apuntador est&amp;aacute; realmente almacenado. Ellos en realidad siguen las mismas reglas descritas arriba: como enteros son almacenados en el &lt;i style="mso-bidi-font-style:normal;"&gt;stack&lt;/i&gt; &amp;ndash; al menos, claro, que ellos formen parte de una referencia a un objeto y entonces estar&amp;aacute;n en el &lt;i style="mso-bidi-font-style:normal;"&gt;heap&lt;/i&gt; con el resto del objeto. Puede no ser claro a&amp;uacute;n, pero esto significa que ultimadamente, todos los objetos &lt;i style="mso-bidi-font-style:normal;"&gt;heap&lt;/i&gt; est&amp;aacute;n enraizados al &lt;i style="mso-bidi-font-style:normal;"&gt;stack&lt;/i&gt; (posiblemente a trav&amp;eacute;s de numerosos niveles de referencias). Veamos primero este ejemplo simple:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="border-bottom:#1f497d 2.25pt solid;border-left:medium none;padding-bottom:10pt;padding-left:0in;padding-right:0in;background:#f2f2f2;border-top:#1f497d 2.25pt solid;border-right:medium none;padding-top:10pt;mso-background-themecolor:background1;mso-background-themeshade:242;mso-border-top-themecolor:text2;mso-border-bottom-themecolor:text2;mso-element:para-border-div;"&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span class="CodeKeyword"&gt;&lt;span lang="ES-MX"&gt;&lt;span style="color:#003399;"&gt;static&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="ES-MX"&gt; &lt;span class="CodeKeyword"&gt;&lt;span style="color:#003399;"&gt;void&lt;/span&gt;&lt;/span&gt; Main(&lt;span class="CodeKeyword"&gt;&lt;span style="color:#003399;"&gt;string&lt;/span&gt;&lt;/span&gt;[] args)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;p class="CodeCxSpMiddle"&gt;&lt;span lang="ES-MX"&gt;&lt;span style="font-family:Courier New;font-size:x-small;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="CodeCxSpMiddle"&gt;&lt;span lang="ES-MX"&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span class="CodeKeyword"&gt;&lt;span style="color:#003399;"&gt;int&lt;/span&gt;&lt;/span&gt; x = 5;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="CodeCxSpMiddle"&gt;&lt;span lang="ES-MX"&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span class="CodeKeyword"&gt;&lt;span style="color:#003399;"&gt;string&lt;/span&gt;&lt;/span&gt; y = &amp;quot;&lt;span class="CodeString"&gt;&lt;span style="color:#984806;"&gt;codebetter.com&lt;/span&gt;&lt;/span&gt;&amp;quot;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="CodeCxSpLast"&gt;&lt;span lang="ES-MX"&gt;&lt;span style="font-family:Courier New;font-size:x-small;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="ES" style="mso-ansi-language:ES;"&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Del c&amp;oacute;digo de arriba, terminaremos con 2 valores en el &lt;i style="mso-bidi-font-style:normal;"&gt;stack&lt;/i&gt;, el entero 5 y el apuntador a nuestra cadena, as&amp;iacute; como tambi&amp;eacute;n precisamente el valor en el &lt;i style="mso-bidi-font-style:normal;"&gt;heap&lt;/i&gt;. Aqu&amp;iacute; una representaci&amp;oacute;n gr&amp;aacute;fica:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span lang="ES" style="mso-ansi-language:ES;"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gflores/7838.stackheap.png"&gt;&lt;img src="http://msmvps.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/gflores/7838.stackheap.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span lang="ES" style="mso-ansi-language:ES;"&gt;Cuando salimos de nuestra function main (olvid&amp;eacute;monos del hecho de que el programa se parar&amp;aacute;), nuestro &lt;i style="mso-bidi-font-style:normal;"&gt;stack&lt;/i&gt; liberar&amp;aacute; todos los valores locales, lo que significa que tanto el valor de x como de y se perder&amp;aacute;n. Esto es significativo porque la memoria asignada en el &lt;i style="mso-bidi-font-style:normal;"&gt;heap&lt;/i&gt; todav&amp;iacute;a contiene nuestra cadena, pero hemos perdido toda referencia a ella (no hay alg&amp;uacute;n apuntador apunt&amp;aacute;ndola). En C o C++ esto resulta en una fuga de memoria &amp;ndash; sin una referencia a nuestra direcci&amp;oacute;n en el &lt;i style="mso-bidi-font-style:normal;"&gt;heap&lt;/i&gt; no podemos liberarla de la memoria). En C# o Java, nuestro confiable recolector de basura detectar&amp;aacute; el objeto sin referencia y lo liberar&amp;aacute;.&lt;/span&gt;&lt;span lang="ES-MX" style="mso-no-proof:yes;mso-fareast-language:EN-CA;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="ES" style="mso-ansi-language:ES;mso-no-proof:yes;mso-fareast-language:EN-CA;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Veremos ejemplos m&amp;aacute;s complejos, que aparte de tener m&amp;aacute;s flechas apuntando, es b&amp;aacute;sicamente el mismo.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="border-bottom:#1f497d 2.25pt solid;border-left:medium none;padding-bottom:10pt;padding-left:0in;padding-right:0in;background:#f2f2f2;border-top:#1f497d 2.25pt solid;border-right:medium none;padding-top:10pt;mso-background-themecolor:background1;mso-background-themeshade:242;mso-border-top-themecolor:text2;mso-border-bottom-themecolor:text2;mso-element:para-border-div;"&gt;
&lt;p class="CodeCxSpFirst"&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span class="CodeKeyword"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="color:#003399;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt; &lt;span class="CodeKeyword"&gt;&lt;span style="color:#003399;"&gt;class&lt;/span&gt;&lt;/span&gt; Empleado&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="CodeCxSpMiddle"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-family:Courier New;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="CodeCxSpMiddle"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span class="CodeKeyword"&gt;&lt;span style="color:#003399;"&gt;private&lt;/span&gt;&lt;/span&gt; &lt;span class="CodeKeyword"&gt;&lt;span style="color:#003399;"&gt;int&lt;/span&gt;&lt;/span&gt; _empleadoId;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="CodeCxSpMiddle"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span class="CodeKeyword"&gt;&lt;span style="color:#003399;"&gt;private&lt;/span&gt;&lt;/span&gt; &lt;span class="CodeType"&gt;&lt;span style="color:#31849b;"&gt;Empleado&lt;/span&gt;&lt;/span&gt; _gerente;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="CodeCxSpMiddle"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-family:Courier New;font-size:x-small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="CodeCxSpMiddle"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span class="CodeKeyword"&gt;&lt;span style="color:#003399;"&gt;public&lt;/span&gt;&lt;/span&gt; &lt;span class="CodeKeyword"&gt;&lt;span style="color:#003399;"&gt;int&lt;/span&gt;&lt;/span&gt; EmpleadoId&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="CodeCxSpMiddle"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="CodeCxSpMiddle"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span class="CodeKeyword"&gt;&lt;span style="color:#003399;"&gt;get&lt;/span&gt;&lt;/span&gt; { &lt;span class="CodeKeyword"&gt;&lt;span style="color:#003399;"&gt;return&lt;/span&gt;&lt;/span&gt; _empleadoId; }&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="CodeCxSpMiddle"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span class="CodeKeyword"&gt;&lt;span style="color:#003399;"&gt;set&lt;/span&gt;&lt;/span&gt; { _empleadoId = value; }&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="CodeCxSpMiddle"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="CodeCxSpMiddle"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span class="CodeKeyword"&gt;&lt;span style="color:#003399;"&gt;public&lt;/span&gt;&lt;/span&gt; &lt;span class="CodeType"&gt;&lt;span style="color:#31849b;"&gt;Empleado&lt;/span&gt;&lt;/span&gt; Gerente&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="CodeCxSpMiddle"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="CodeCxSpMiddle"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span class="CodeKeyword"&gt;&lt;span style="color:#003399;"&gt;get&lt;/span&gt;&lt;/span&gt; { &lt;span class="CodeKeyword"&gt;&lt;span style="color:#003399;"&gt;return&lt;/span&gt;&lt;/span&gt; _gerente; }&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="CodeCxSpMiddle"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span class="CodeKeyword"&gt;&lt;span style="color:#003399;"&gt;set&lt;/span&gt;&lt;/span&gt; { _gerente = value; }&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="CodeCxSpMiddle"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-family:Courier New;font-size:x-small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="CodeCxSpMiddle"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span class="CodeKeyword"&gt;&lt;span style="color:#003399;"&gt;public&lt;/span&gt;&lt;/span&gt; Empleado(&lt;span class="CodeKeyword"&gt;&lt;span style="color:#003399;"&gt;int&lt;/span&gt;&lt;/span&gt; empleadoId)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="CodeCxSpMiddle"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="CodeCxSpMiddle"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_empleadoId = empleadoId;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="CodeCxSpMiddle"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="CodeCxSpMiddle"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-family:Courier New;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="CodeCxSpMiddle"&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span class="CodeKeyword"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="color:#003399;"&gt;public class&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt; Prueba&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="CodeCxSpMiddle"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-family:Courier New;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="CodeCxSpMiddle"&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span class="CodeKeyword"&gt;&lt;span style="color:#003399;"&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span lang="ES-MX"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="CodeType"&gt;&lt;span lang="ES-MX"&gt;&lt;span style="color:#31849b;"&gt; Empleado&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="ES-MX"&gt; _subordinado;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="CodeCxSpMiddle"&gt;&lt;span lang="ES-MX"&gt;&lt;span style="font-family:Courier New;font-size:x-small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="CodeCxSpMiddle"&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span class="CodeKeyword"&gt;&lt;span lang="ES-MX"&gt;&lt;span style="color:#003399;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;void &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="ES-MX"&gt;HacerAlgo()&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="CodeCxSpMiddle"&gt;&lt;span lang="ES-MX"&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="CodeCxSpMiddle"&gt;&lt;span lang="ES-MX"&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="CodeType"&gt;&lt;span style="color:#31849b;"&gt;Empleado&lt;/span&gt;&lt;/span&gt; jefe = &lt;span class="CodeKeyword"&gt;&lt;span style="color:#003399;"&gt;new&lt;/span&gt;&lt;/span&gt; &lt;span class="CodeType"&gt;&lt;span style="color:#31849b;"&gt;Empleado&lt;/span&gt;&lt;/span&gt;(1);&lt;br /&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_subordinado = &lt;span class="CodeKeyword"&gt;&lt;span style="color:#003399;"&gt;new&lt;/span&gt;&lt;/span&gt; &lt;span class="CodeType"&gt;&lt;span style="color:#31849b;"&gt;Empleado&lt;/span&gt;&lt;/span&gt;(2);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="CodeCxSpMiddle"&gt;&lt;span lang="ES-MX"&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;_subordinado.Gerente = _jefe;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="CodeCxSpMiddle"&gt;&lt;span lang="ES-MX"&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-family:Courier New;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="CodeCxSpLast"&gt;&lt;span lang="ES-MX"&gt;&lt;span style="font-family:Courier New;font-size:x-small;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p class="MsoNormal" align="center"&gt;&lt;span style="mso-ansi-language:EN-US;mso-no-proof:yes;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="ES" style="mso-ansi-language:ES;"&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gflores/4300.stackheappointers.png"&gt;&lt;img src="http://msmvps.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/gflores/4300.stackheappointers.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="ES" style="mso-ansi-language:ES;"&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Interesantemente, cuando salimos de nuestro m&amp;eacute;todo, la variable jefe se liberar&amp;aacute; del &lt;i style="mso-bidi-font-style:normal;"&gt;stack&lt;/i&gt;, pero el subordinado, que est&amp;aacute; definido por el alcance padre, no. Esto significa que el recolector de basura no tendr&amp;aacute; nada que limpiar porque los dos valores del &lt;i style="mso-bidi-font-style:normal;"&gt;heap&lt;/i&gt; seguir&amp;aacute;n siendo referenciados (uno directamente del &lt;i style="mso-bidi-font-style:normal;"&gt;stack&lt;/i&gt;, y el otro indirectamente del &lt;i style="mso-bidi-font-style:normal;"&gt;stack&lt;/i&gt; a trav&amp;eacute;s del objeto referenciado.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="ES" style="mso-ansi-language:ES;"&gt;&lt;span style="font-family:Calibri;font-size:small;"&gt;Como puede ver, los apuntadores definitivamente juegan una parte importante tanto en C# como en VB.NET. Como el apuntador aritm&amp;eacute;tico no est&amp;aacute; disponible en ninguno de estos lenguajes, los apuntadores son grandemente simplificados y con suerte f&amp;aacute;cilmente entendidos.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1745878" width="1" height="1"&gt;</content><author><name>gflores</name><uri>http://msmvps.com/members/gflores/default.aspx</uri></author><category term=".net" scheme="http://msmvps.com/blogs/gflores/archive/tags/.net/default.aspx" /><category term="c#" scheme="http://msmvps.com/blogs/gflores/archive/tags/c_2300_/default.aspx" /><category term="nivel:100" scheme="http://msmvps.com/blogs/gflores/archive/tags/nivel_3A00_100/default.aspx" /></entry><entry><title>Regreso a las bases: Memoria</title><link rel="alternate" type="text/html" href="/blogs/gflores/archive/2009/12/14/regreso-a-las-bases-memoria.aspx" /><id>/blogs/gflores/archive/2009/12/14/regreso-a-las-bases-memoria.aspx</id><published>2009-12-14T17:08:00Z</published><updated>2009-12-14T17:08:00Z</updated><content type="html">&lt;p&gt;Lo que sigue es una traducci&amp;oacute;n de una secci&amp;oacute;n del ebook gratuito &lt;a href="http://codebetter.com/blogs/karlseguin/archive/2008/06/24/foundations-of-programming-ebook.aspx"&gt;Foundations of Programming&lt;/a&gt; de &lt;a href="http://codebetter.com/blogs/karlseguin/"&gt;Karl Seguin&lt;/a&gt;.&lt;/p&gt;
&lt;h4&gt;Regreso a las bases: Memoria&lt;/h4&gt;
&lt;p&gt;Por m&amp;aacute;s que se intente, los lenguajes modernos de programaci&amp;oacute;n no pueden abstraer completamente los aspectos fundamentales de los sistemas computacionales. Por ejemplo, podemos asumir que usted se ha encontrado con las siguientes excepciones .NET: NullReferneceException, OutOfMemoryException, StackOverflowException y ThreadAbortException. Tan importante como es para desarrolladores adopter varios patrones y t&amp;eacute;cnicas de alto nivel, es igualmente importante comprender el ecosistema en el cual su programa se ejecuta. Mirando por encima de las capas prove&amp;iacute;das por el compilar de C# (o VB.NET), el CLR y el sistema operativo, nos encontramos con la memoria. Todos los programas hacen uso extensivo de la memoria del sistema e interaccionan con ella en maravillas maneras, es dif&amp;iacute;cil ser un buen programador sin comprender esta interacci&amp;oacute;n fundamental.&lt;br /&gt;Mucha de la confusi&amp;oacute;n sobre la memoria nace del hecho de que tanto C# y VB.NET son lenguajes administrados y que el CLR provee la recolecci&amp;oacute;n autom&amp;aacute;tica de basura. Esto ha causado que muchos desarrolladores asuman err&amp;oacute;neamente que no necesitan preocuparse por la memoria.&lt;/p&gt;
&lt;h4&gt;Asignaci&amp;oacute;n de Memoria&lt;/h4&gt;
&lt;p&gt;En .NET, como en muchos otros lenguajes, cada variable que se defina est&amp;aacute; almacenada en el stack&amp;nbsp; o en el heap . Estos son dos espacios separados asignados en la memoria de sistema que sirven un prop&amp;oacute;sito distinto, aunque complementario. Lo que va donde est&amp;aacute; predeterminado: valores de tipos van en el stack, mientras que la referencia a tipos va en el heap. En otras palabras, todos los tipos de sistema, como char, int, long, byte, enum y cualquier estructura (ya sean definidas por.NET o por usted) van en el stack. La &amp;uacute;nica excepci&amp;oacute;n a esta regla son los valores de tipos que pertenecen a referencias de tipos &amp;ndash; por ejemplo la propiedad Id de una clase User va en el heap junto con la instancia de la clase User misma.&lt;/p&gt;
&lt;h4&gt;El Stack&lt;/h4&gt;
&lt;p&gt;Aunque estamos acostumbrados al m&amp;aacute;gico colector de basura, los valores en el stack son autom&amp;aacute;ticamente administrados a&amp;uacute;n en un mundo sin colector de basura (como en C). Esto es porque cuando sea que entramos a un nuevo alcance (como un m&amp;eacute;todo o una sentencia If) los valores son empujados al stack y cuando salen del stack los valores son liberados. Esta es la raz&amp;oacute;n por la que un stack es sin&amp;oacute;nimo a LIFO - last-in first-out (&amp;uacute;ltimo en entrar primero en salir). Puede pensarlo en este modo: cuando se crea un nuevo alcance, por ejemplo un m&amp;eacute;todo, un marcador es puesto en el stack y los valores son a&amp;ntilde;adidos como se necesiten. Cuando se deja ese alcance, todos los valores son liberados incluyendo el marcador del m&amp;eacute;todo. Esto funciona en cualquier nivel de anidado.&lt;br /&gt;Hasta que veamos la interacci&amp;oacute;n entre el heap y el stack, la &amp;uacute;nica manera real de meterse en problemas con el stack es con StackOverflowException. Esto significa que ha usado todo el espacio disponible del stack. 99.9% del tiempo, esto indica una llamada recursiva interminable (una funci&amp;oacute;n que se llama a s&amp;iacute; misma ad infinitum). En teor&amp;iacute;a esto puede ser causado por un muy muy mal dise&amp;ntilde;o de sistema, aunque nunca he visto una llamada&amp;nbsp; no recursiva usando todo el espacio del stack.&lt;/p&gt;
&lt;h4&gt;El Heap&lt;/h4&gt;
&lt;p&gt;La asignaci&amp;oacute;n de memoria en el heap no es tan simple como el stack. La mayor&amp;iacute;a de la asignaci&amp;oacute;n de memoria basada en el heap ocurre cuando creamos un objeto new. El compilador averigua cuanta memoria necesitaremos (lo cual no es tan dif&amp;iacute;cil, a&amp;uacute;n con objetos con referencias anidadas), toma un apropiado mont&amp;oacute;n de memoria y regresa el apuntador a la memoria asignada (m&amp;aacute;s acerca de esto en un momento). El ejemplo m&amp;aacute;s sencillo es una cadena, si cada car&amp;aacute;cter en una cadena toma 2 bytes, y creamos una nueva cadena con el valor de &amp;ldquo;Hola Mundo&amp;rdquo;, entonces el CLR necesitar&amp;aacute; asignar 22 bytes (11x2) m&amp;aacute;s cualquier adicional necesitado.&lt;br /&gt;Hablando de cadenas, seguramente ha o&amp;iacute;do que las cadenas son inmutables &amp;ndash; esto es, una vez que ha sido declarada una cadena y asignado un valor, si se modifica esa cadena (cambiando el valor o concatenando otra cadena a ella), entonces una nueva cadena se crea. Esto realmente puede tener implicaciones de rendimiento negativas, y por ello la recomendaci&amp;oacute;n general es usar un StringBuilder para cualquier manipulaci&amp;oacute;n de cadenas significativa. La verdad es que cualquier objeto almacenado en el heap es inmutable con respecto a la asignaci&amp;oacute;n de tama&amp;ntilde;o, y cualquier cambio en el tama&amp;ntilde;o subyacente requerir&amp;aacute; una nueva asignaci&amp;oacute;n. El StringBuilder, junto con algunas colecciones, parcialmente pueden sacar la vuelta a esto usando buffers internos. Una vez que el buffer se llena, la misma reasignaci&amp;oacute;n ocurre y alg&amp;uacute;n tipo de algoritmo de crecimiento es usado para determinar el nuevo tama&amp;ntilde;o (el m&amp;aacute;s simple siendo antiguoTama&amp;ntilde;o * 2). Siempre que sea posible es buena idea especificar la capacidad inicial de dichos objetos para evitar este tipo de reasignaci&amp;oacute;n (el constructor para tanto el StringBuilder y el&amp;nbsp; ArrayList (entre muchas otras colecciones) le permiten especificar capacidad inicial). &lt;br /&gt;Recolectar basura del heap es una tarea no trivial. A diferencia del stack donde el &amp;uacute;ltimo alcance puede simplemente liberarlo, los objetos del heap no son locales a un determinado alcance. En lugar de ello, la mayor&amp;iacute;a son referencias profundamente anidadas de otros objetos referenciados. En lenguajes como en C, cuando un programador causa que la memoria sea asignada al heap, debe asegurarse tambi&amp;eacute;n de remover del heap cuando ha terminado con &amp;eacute;l. En lenguajes administrados, el motor en tiempo de ejecuci&amp;oacute;n se encarga de limpiar los recursos (.NET usa un Recolector de Basura Generacional que est&amp;aacute; brevemente descrito en la Wikipedia).&lt;br /&gt;Hay muchos incidentes horribles que pueden molestar a los desarrolladores mientras trabajan con el heap. Fugas de memoria no solo son posibles sino muy comunes, la fragmentaci&amp;oacute;n de memoria puede causar todo tipo de caos, y varios problemas de rendimiento pueden generarse gracias a comportamiento de asignaci&amp;oacute;n extra&amp;ntilde;o o interacci&amp;oacute;n con c&amp;oacute;digo sin administrar (lo cual .NET hace mucho debajo del agua). &lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1745558" width="1" height="1"&gt;</content><author><name>gflores</name><uri>http://msmvps.com/members/gflores/default.aspx</uri></author><category term=".net" scheme="http://msmvps.com/blogs/gflores/archive/tags/.net/default.aspx" /><category term="nivel:100" scheme="http://msmvps.com/blogs/gflores/archive/tags/nivel_3A00_100/default.aspx" /></entry><entry><title>Screencasts sobre ADO.NET Entity Framework con C#</title><link rel="alternate" type="text/html" href="/blogs/gflores/archive/2009/09/15/screencasts-sobre-ado-net-entity-framework-con-c.aspx" /><id>/blogs/gflores/archive/2009/09/15/screencasts-sobre-ado-net-entity-framework-con-c.aspx</id><published>2009-09-15T13:13:00Z</published><updated>2009-09-15T13:13:00Z</updated><content type="html">&lt;p&gt;En esta serie de screencasts vemos como hacer cosas sencillas con ADO.NET Entity Framework, para un primer contacto con esta tecnolog&amp;iacute;a.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Introducci&amp;oacute;n&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.youtube.com/watch?v=t34ASNrXh1Y"&gt;&lt;img title="Northwind y pubs" src="http://i1.ytimg.com/vi/t34ASNrXh1Y/default.jpg" alt="Northwind y pubs" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.youtube.com/watch?v=t34ASNrXh1Y"&gt;&lt;span&gt;Northwind y pubs:&lt;/span&gt;&lt;/a&gt; &lt;br /&gt;Para saber como tener instaladas las bases de datos de prueba Northwind y pubs, prove&amp;iacute;das por Microsoft&lt;/p&gt;
&lt;p&gt;

&lt;a href="http://www.youtube.com/watch?v=PuhPIRLokAY"&gt;&lt;img title="Usando C# en ASP.NET con ADO.NET Entity Framework" src="http://i1.ytimg.com/vi/PuhPIRLokAY/default.jpg" alt="Usando C# en ASP.NET con ADO.NET Entity Framework" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.youtube.com/watch?v=PuhPIRLokAY"&gt;&lt;span&gt;Usando C# en ASP.NET con ADO.NET Entity Framework&lt;/span&gt;&lt;/a&gt;
&lt;br /&gt;Un ejemplo r&amp;aacute;pido para ver como es el contexto de uso del ADO.NET Entity Framework

&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Tareas espec&amp;iacute;ficas&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;
&lt;a href="http://www.youtube.com/watch?v=6Rm4z2iUxik"&gt;&lt;img title="B&amp;uacute;squeda en ADO.NET Entity Framework con C#" src="http://i3.ytimg.com/vi/6Rm4z2iUxik/default.jpg" alt="B&amp;uacute;squeda en ADO.NET Entity Framework con C#" /&gt;&lt;/a&gt;
&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=6Rm4z2iUxik"&gt;&lt;span&gt;B&amp;uacute;squeda en ADO.NET Entity Framework con C#&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;Paso inicial para el resto de las tareas
	&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.youtube.com/watch?v=mo9FSoHL9nY"&gt;&lt;img title="Alta de registros con ADO.NET Entity Framework con C#" src="http://i2.ytimg.com/vi/mo9FSoHL9nY/default.jpg" alt="Alta de registros con ADO.NET Entity Framework con C#" /&gt;&lt;/a&gt;
&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=mo9FSoHL9nY"&gt;&lt;span&gt;Alta de registros con ADO.NET Entity Framework con C#&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;Como agregar registros
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.youtube.com/watch?v=ngZqW0vcUWc"&gt;&lt;img title="Baja de registros con ADO.NET Entity Framework con C#" src="http://i3.ytimg.com/vi/ngZqW0vcUWc/default.jpg" alt="Baja de registros con ADO.NET Entity Framework con C#" /&gt;&lt;/a&gt;
&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=ngZqW0vcUWc"&gt;&lt;span&gt;&lt;br /&gt;Baja de registros con ADO.NET Entity Framework con C#&lt;/span&gt;&lt;/a&gt;
&lt;br /&gt;Como eliminar registros
&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.youtube.com/watch?v=jeSbsGlQb3E"&gt;&lt;img title="Cambios a registros en ADO.NET Entity Framework con C#" src="http://i3.ytimg.com/vi/jeSbsGlQb3E/default.jpg" alt="Cambios a registros en ADO.NET Entity Framework con C#" /&gt;&lt;/a&gt;
&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=jeSbsGlQb3E"&gt;&lt;span&gt;Cambios a registros en ADO.NET Entity Framework con C#&lt;/span&gt;&lt;/a&gt;
&lt;br /&gt;Como hacer modificaciones&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1723509" width="1" height="1"&gt;</content><author><name>gflores</name><uri>http://msmvps.com/members/gflores/default.aspx</uri></author><category term="c#" scheme="http://msmvps.com/blogs/gflores/archive/tags/c_2300_/default.aspx" /><category term="nivel:100" scheme="http://msmvps.com/blogs/gflores/archive/tags/nivel_3A00_100/default.aspx" /></entry><entry><title>No abre http://localhost Visual Studio</title><link rel="alternate" type="text/html" href="/blogs/gflores/archive/2009/06/08/no-abre-http-localhost-visual-studio.aspx" /><id>/blogs/gflores/archive/2009/06/08/no-abre-http-localhost-visual-studio.aspx</id><published>2009-06-09T03:57:20Z</published><updated>2009-06-09T03:57:20Z</updated><content type="html">&lt;p&gt;Hace unos días unos compañeros de la universidad me advirtieron de un problema que les ocurría en común a máquinas donde tuvieran Visual Studio 2008 y particularmente en sistema operativo Windows Vista. Se trata de que al intentar correr alguna aplicación ASP.NET desde el entorno de desarrollo les salía Internet Explorer con la infame “Internet Explorer cannot display the webpage” y pues, estaban sin poder continuar con sus trabajos.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gflores.metablogapi/5314.iecannot_5F00_2C07D9A6.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="iecannot" border="0" alt="iecannot" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gflores.metablogapi/4152.iecannot_5F00_thumb_5F00_537EA610.png" width="244" height="153" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Al principio me imaginaba que era algo que tenía que ver con el archivo de hosts y después de &lt;a href="http://stackoverflow.com/questions/657383/localhost-does-not-browser-looks-for-www-localhost-com"&gt;investigar un poco más&lt;/a&gt;, me dieron la razón.&lt;/p&gt;  &lt;p&gt;Lo que debes hacer es usar un editor de texto (como Notepad o Notepad++) y abrir desde el directorio C:\Windows\System32\Drivers\Etc\ un archivo que se llama hosts (sin extensión) y remover la línea que dice algo de localhost. Te puede aparecer así:&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;::1&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; localhost&lt;/strong&gt;    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;o así   &lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;127.0.0.1&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;a href="http://www.localhost.com"&gt;www.localhost.com&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Ahora nada más graba este archivo otra vez, cuidando que no se anexe la extensión txt (y si se anexa, se la quitas). Parece medio absurdo, pero puede ser que si te ocurre este problema, quizás sea por esto.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1694642" width="1" height="1"&gt;</content><author><name>gflores</name><uri>http://msmvps.com/members/gflores/default.aspx</uri></author><category term="nivel:100" scheme="http://msmvps.com/blogs/gflores/archive/tags/nivel_3A00_100/default.aspx" /><category term="howto" scheme="http://msmvps.com/blogs/gflores/archive/tags/howto/default.aspx" /></entry><entry><title>Comunidades Virtuales</title><link rel="alternate" type="text/html" href="/blogs/gflores/archive/2009/05/21/comunidades-virtuales.aspx" /><id>/blogs/gflores/archive/2009/05/21/comunidades-virtuales.aspx</id><published>2009-05-21T15:19:00Z</published><updated>2009-05-21T15:19:00Z</updated><content type="html">&lt;p&gt;De la Facultad de Contadur&amp;iacute;a, Administraci&amp;oacute;n e Inform&amp;aacute;tica de la &lt;a href="http://uabc.mx"&gt;UABC&lt;/a&gt;, me invitaron a dar una pl&amp;aacute;tica acerca de Comunidades Virtuales en la cual les coment&amp;eacute; acerca de como los foros, sitios de redes sociales y otros conforman lo que a todas luces es comunidad que aunque virtuales, llevan un gran sentido de pertenencia y participaci&amp;oacute;n, adem&amp;aacute;s como la &lt;a title="TJNET" href="http://tjnet.org"&gt;Comunidad .NET Tijuana&lt;/a&gt; en particular hace uso de estas herramientas para complementar esta comunidad presencial. Aqu&amp;iacute; algunas fotos y la presentaci&amp;oacute;n misma:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="width:425px;text-align:left;" id="__ss_1467837"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/gabofr/comunidades-virtuales-1467837?type=presentation" title="Comunidades Virtuales"&gt;Comunidades Virtuales&lt;/a&gt;





&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View more &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/gabofr"&gt;Gabriel Flores&lt;/a&gt;.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;iframe style="border:1px solid #dde5e9;margin:3px;padding:0pt;width:240px;height:66px;background-color:#ffffff;" src="http://cid-b4329e20a9381067.skydrive.live.com/embedrowdetail.aspx/Pictures/Fotos%20de%20Eventos%20TJNET/Comunidades%20Virtuales" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Por cierto, un agradecimiento a Sergio Quijada y su equipo por la invitaci&amp;oacute;n.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1692874" width="1" height="1"&gt;</content><author><name>gflores</name><uri>http://msmvps.com/members/gflores/default.aspx</uri></author><category term="nivel:100" scheme="http://msmvps.com/blogs/gflores/archive/tags/nivel_3A00_100/default.aspx" /><category term="eventos" scheme="http://msmvps.com/blogs/gflores/archive/tags/eventos/default.aspx" /></entry><entry><title>ADO.NET Entity Framework y llaves foráneas</title><link rel="alternate" type="text/html" href="/blogs/gflores/archive/2009/04/30/ado-net-entity-framework-y-llaves-for-225-neas.aspx" /><id>/blogs/gflores/archive/2009/04/30/ado-net-entity-framework-y-llaves-for-225-neas.aspx</id><published>2009-04-30T16:37:12Z</published><updated>2009-04-30T16:37:12Z</updated><content type="html">&lt;p&gt;Es algo muy normal trabajar con tablas que están relacionadas con otras por medio de llaves foráneas. Si has usado ADO.NET Framework para hacer algunas operaciones con la BD y para mostrar datos en una página ASP.NET, quizás te hayas encontrado con el dilema de mostrar los campos relacionados de la tabla externa a la que estás mostrando.&lt;/p&gt;  &lt;p&gt;Por ejemplo, tomando como ejemplo la clásica base de datos de Northwind, y teniendo las tablas de Products y Categories, y si definimos nuestro modelo de Entidades de esta forma:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gflores/modelo_5F00_405B6A31.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="modelo" border="0" alt="modelo" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gflores/modelo_5F00_thumb_5F00_1270A82A.jpg" width="419" height="312" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Podemos mostrar en un GridView el contenido de Products haciendo la referencia correspondiente:&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;pre&gt;        NorthwindModel.NorthwindEntities ne &lt;span style="background-color:white;font-family:courier new;color:red;font-size:11px;"&gt;=&lt;/span&gt; 
            &lt;span style="background-color:white;font-family:courier new;color:blue;font-size:11px;"&gt;new&lt;/span&gt; NorthwindModel.NorthwindEntities();

        var products &lt;span style="background-color:white;font-family:courier new;color:red;font-size:11px;"&gt;=&lt;/span&gt; from p &lt;span style="background-color:white;font-family:courier new;color:blue;font-size:11px;"&gt;in&lt;/span&gt; ne.Products
                       select p;

        grdProductos.DataSource &lt;span style="background-color:white;font-family:courier new;color:red;font-size:11px;"&gt;=&lt;/span&gt; products;
        grdProductos.DataBind();&lt;/pre&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gflores/grid_5F00_68FC66E9.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="grid" border="0" alt="grid" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gflores/grid_5F00_thumb_5F00_184DDC74.jpg" width="405" height="321" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Pero ¿qué tal si quiero mostrar en el mismo GridView la descripción de la categoría? Basta incluir en la declaración del campo la propiedad Include para que se pueda cargar ese dato.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;pre&gt;        NorthwindModel.NorthwindEntities ne &lt;span style="background-color:white;font-family:courier new;color:red;font-size:11px;"&gt;=&lt;/span&gt; 
            &lt;span style="background-color:white;font-family:courier new;color:blue;font-size:11px;"&gt;new&lt;/span&gt; NorthwindModel.NorthwindEntities();

        var products &lt;span style="background-color:white;font-family:courier new;color:red;font-size:11px;"&gt;=&lt;/span&gt; from p &lt;span style="background-color:white;font-family:courier new;color:blue;font-size:11px;"&gt;in&lt;/span&gt; ne.Products
                       &lt;strong&gt;.Include(&lt;span style="background-color:#ededed;font-family:courier new;color:#666666;font-size:11px;"&gt;&amp;quot;Categories&amp;quot;&lt;/span&gt;)&lt;/strong&gt;
                       select p;

        grdProductos.DataSource &lt;span style="background-color:white;font-family:courier new;color:red;font-size:11px;"&gt;=&lt;/span&gt; products;
        grdProductos.DataBind();&lt;/pre&gt;

&lt;p&gt;Y con esto tenemos acceso a los campos de la segunda tabla para de esa manera mostrar como fuente de datos de alguna columna del grid algún campo. En este caso, con un Template Field hacemos un Bind usando simplemente &lt;em&gt;Categories.Description&lt;/em&gt; que sería la manera de ligar desde Products a ese campo:&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;pre&gt;    &amp;lt;asp:TemplateField HeaderText=&lt;span style="background-color:#ededed;font-family:courier new;color:#666666;font-size:11px;"&gt;&amp;quot;Category&amp;quot;&lt;/span&gt;&amp;gt;
        &amp;lt;EditItemTemplate&amp;gt;
            &amp;lt;asp:TextBox ID=&lt;span style="background-color:#ededed;font-family:courier new;color:#666666;font-size:11px;"&gt;&amp;quot;TextBox1&amp;quot;&lt;/span&gt; runat=&lt;span style="background-color:#ededed;font-family:courier new;color:#666666;font-size:11px;"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; 
                Text=&amp;#39;&amp;lt;%# Bind(&lt;span style="background-color:#ededed;font-family:courier new;color:#666666;font-size:11px;"&gt;&amp;quot;Categories.Description&amp;quot;&lt;/span&gt;) &lt;span style="background-color:white;font-family:courier new;color:red;font-size:11px;"&gt;%&lt;/span&gt;&amp;gt;&amp;#39;&amp;gt;
                &amp;lt;/asp:TextBox&amp;gt;
        &amp;lt;/EditItemTemplate&amp;gt;
        &amp;lt;ItemTemplate&amp;gt;
            &amp;lt;asp:Label ID=&lt;span style="background-color:#ededed;font-family:courier new;color:#666666;font-size:11px;"&gt;&amp;quot;Label1&amp;quot;&lt;/span&gt; runat=&lt;span style="background-color:#ededed;font-family:courier new;color:#666666;font-size:11px;"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; 
                Text=&amp;#39;&amp;lt;%# Bind(&lt;span style="background-color:#ededed;font-family:courier new;color:#666666;font-size:11px;"&gt;&amp;quot;Categories.Description&amp;quot;&lt;/span&gt;) &lt;span style="background-color:white;font-family:courier new;color:red;font-size:11px;"&gt;%&lt;/span&gt;&amp;gt;&amp;#39;&amp;gt;
            &amp;lt;/asp:Label&amp;gt;
        &amp;lt;/ItemTemplate&amp;gt;
    &amp;lt;/asp:TemplateField&amp;gt;&lt;/pre&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gflores/gridconcategoria_5F00_557197F9.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="gridconcategoria" border="0" alt="gridconcategoria" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gflores/gridconcategoria_5F00_thumb_5F00_549BC2C0.jpg" width="544" height="257" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Por supuesto que en lugar de esto pudiéramos usar Vistas desde el servidor SQL Server con todos los campos que ocupemos, pero esta sería una de las formas de resolver como mostrar los campos en tablas mediante llaves foráneas usando código de ADO.NET Entity Framework.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1691629" width="1" height="1"&gt;</content><author><name>gflores</name><uri>http://msmvps.com/members/gflores/default.aspx</uri></author><category term="c#" scheme="http://msmvps.com/blogs/gflores/archive/tags/c_2300_/default.aspx" /><category term="nivel:100" scheme="http://msmvps.com/blogs/gflores/archive/tags/nivel_3A00_100/default.aspx" /><category term="howto" scheme="http://msmvps.com/blogs/gflores/archive/tags/howto/default.aspx" /><category term="asp.net" scheme="http://msmvps.com/blogs/gflores/archive/tags/asp.net/default.aspx" /></entry><entry><title>Formato de fecha en Gridview</title><link rel="alternate" type="text/html" href="/blogs/gflores/archive/2009/04/03/formato-de-fecha-en-gridview.aspx" /><id>/blogs/gflores/archive/2009/04/03/formato-de-fecha-en-gridview.aspx</id><published>2009-04-03T22:01:00Z</published><updated>2009-04-03T22:01:00Z</updated><content type="html">&lt;p&gt;No est&amp;aacute; de m&amp;aacute;s recordar que cuando tienes un GridView con un campo tipo fecha, puedes definir el formato de la cadena a lo que t&amp;uacute; gustes, en lugar de los valores por default de fecha completa:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gflores/fechafull_5F00_3DA5FC98.jpg"&gt;&lt;span style="color:#000000;"&gt;&lt;/span&gt;&lt;img height="170" width="168" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gflores/fechafull_5F00_thumb_5F00_2D99BE92.jpg" alt="fechafull" border="0" title="fechafull" style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Para definir el formato de salida de la cadena en campos ligados, es sencillo, usando la propiedad DataFormatString:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre&gt;&amp;lt;asp:BoundField DataField=&lt;span style="background-color:#ededed;font-family:courier new;color:#666666;font-size:11px;"&gt;&amp;quot;Fecha&amp;quot;&lt;/span&gt; DataFormatString=&lt;span style="background-color:#ededed;font-family:courier new;color:#666666;font-size:11px;"&gt;&amp;quot;{0:d}&amp;quot;&lt;/span&gt; &lt;span style="background-color:white;font-family:courier new;color:#ff0000;font-size:11px;"&gt;/&lt;/span&gt;&amp;gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Pero &amp;iquest;qu&amp;eacute; pasa si tenemos TemplateFields, sencillo, usando la misma funci&amp;oacute;n &lt;strong&gt;Bind&lt;/strong&gt; donde especificamos en el enlace al campo de datos para agregarle el formato que necesitamos:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre&gt;&amp;lt;asp:TemplateField HeaderText=&lt;span style="background-color:#ededed;font-family:courier new;color:#666666;font-size:11px;"&gt;&amp;quot;Fecha&amp;quot;&lt;/span&gt;&amp;gt;
  &amp;lt;EditItemTemplate&amp;gt;
    &amp;lt;asp:TextBox ID=&lt;span style="background-color:#ededed;font-family:courier new;color:#666666;font-size:11px;"&gt;&amp;quot;TextBox1&amp;quot;&lt;/span&gt; runat=&lt;span style="background-color:#ededed;font-family:courier new;color:#666666;font-size:11px;"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; &lt;/pre&gt;
&lt;pre&gt;             Text=&amp;#39;&amp;lt;%# Bind(&lt;span style="background-color:#ededed;font-family:courier new;color:#666666;font-size:11px;"&gt;&amp;quot;Fecha&amp;quot;&lt;/span&gt;,&lt;span style="background-color:#ededed;font-family:courier new;color:#666666;font-size:11px;"&gt;&amp;quot;{0:d}&amp;quot;&lt;/span&gt;) &lt;span style="background-color:white;font-family:courier new;color:#ff0000;font-size:11px;"&gt;%&lt;/span&gt;&amp;gt;&amp;#39;&amp;gt;&lt;/pre&gt;
&lt;pre&gt;    &amp;lt;/asp:TextBox&amp;gt;
  &amp;lt;/EditItemTemplate&amp;gt;
  &amp;lt;ItemTemplate&amp;gt;
    &amp;lt;asp:Label ID=&lt;span style="background-color:#ededed;font-family:courier new;color:#666666;font-size:11px;"&gt;&amp;quot;Label1&amp;quot;&lt;/span&gt; runat=&lt;span style="background-color:#ededed;font-family:courier new;color:#666666;font-size:11px;"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; &lt;/pre&gt;
&lt;pre&gt;              Text=&amp;#39;&amp;lt;%# Bind(&lt;span style="background-color:#ededed;font-family:courier new;color:#666666;font-size:11px;"&gt;&amp;quot;Fecha&amp;quot;&lt;/span&gt;,&lt;span style="background-color:#ededed;font-family:courier new;color:#666666;font-size:11px;"&gt;&amp;quot;{0:d}&amp;quot;&lt;/span&gt;) &lt;span style="background-color:white;font-family:courier new;color:#ff0000;font-size:11px;"&gt;%&lt;/span&gt;&amp;gt;&amp;#39;&amp;gt;&lt;/pre&gt;
&lt;pre&gt;     &amp;lt;/asp:Label&amp;gt;
  &amp;lt;/ItemTemplate&amp;gt;
&amp;lt;/asp:TemplateField&amp;gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;De esta manera podemos mostrar a nuestra conveniencia el formato de los datos que mostramos en un gridview:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gflores/fecha_5F00_089BFE19.jpg"&gt;&lt;img height="161" width="85" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/gflores/fecha_5F00_thumb_5F00_1602111F.jpg" alt="fecha" border="0" title="fecha" style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1684484" width="1" height="1"&gt;</content><author><name>gflores</name><uri>http://msmvps.com/members/gflores/default.aspx</uri></author><category term="nivel:100" scheme="http://msmvps.com/blogs/gflores/archive/tags/nivel_3A00_100/default.aspx" /><category term="asp.net" scheme="http://msmvps.com/blogs/gflores/archive/tags/asp.net/default.aspx" /></entry><entry><title>Algunas funciones Javascript útiles para ASP.NET (en C#)</title><link rel="alternate" type="text/html" href="/blogs/gflores/archive/2009/03/05/algunas-funciones-javascript-250-tiles-para-asp-net-en-c.aspx" /><id>/blogs/gflores/archive/2009/03/05/algunas-funciones-javascript-250-tiles-para-asp-net-en-c.aspx</id><published>2009-03-06T00:28:00Z</published><updated>2009-03-06T00:28:00Z</updated><content type="html">&lt;p&gt;Nunca est&amp;aacute; de m&amp;aacute;s conocer algunas funciones &amp;uacute;tiles para hacer m&amp;aacute;s efectiva la programaci&amp;oacute;n web en ASP.NET, entre los que uso bastante son:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ventana de Confirmaci&amp;oacute;n (Messagebox del lado del cliente)&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Muy &amp;uacute;til para pedirle confirmaci&amp;oacute;n al usuario cuando se va a hacer alg&amp;uacute;n proceso del cual se puede arrepentir, por ejemplo, pedirle confirmaci&amp;oacute;n para borrar alg&amp;uacute;n registro. En el bot&amp;oacute;n donde se va a agregar la l&amp;oacute;gica para hacerlo, se le agrega el detalle para abrir una ventana y pedir confirmaci&amp;oacute;n. En el evento Load de la p&amp;aacute;gina es un buen lugar para hacerlo:&lt;/p&gt;
&lt;pre&gt;    &lt;span style="font-size:11px;background-color:white;font-family:Courier New;color:blue;"&gt;protected&lt;/span&gt; &lt;span style="font-size:11px;background-color:white;font-family:Courier New;color:blue;"&gt;void&lt;/span&gt; Page_Load(object sender, EventArgs e)&lt;br /&gt;    {&lt;br /&gt;         btnEliminar.Attributes.Add(&lt;span style="font-size:11px;background-color:#ededed;font-family:Courier New;color:#666666;"&gt;&amp;quot;onclick&amp;quot;&lt;/span&gt;, &lt;span style="font-size:11px;background-color:#ededed;font-family:Courier New;color:#666666;"&gt;&lt;br /&gt;         &amp;quot;return confirm(&amp;#39;&amp;iquest;Eliminar registro?&amp;#39;);&amp;quot;&lt;/span&gt;);&lt;br /&gt;    }&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;Si el usuario presiona Ok, se ejecutar&amp;aacute; el c&amp;oacute;digo para borrar el registro, si no, es como si nunca hubiera tocado el bot&amp;oacute;n.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Mostrar una ventana con tama&amp;ntilde;o determinado&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;A veces necesitamos mostrar una ventana extra independiente del &amp;aacute;rea de trabajo del usuario para informaci&amp;oacute;n, alg&amp;uacute;n proceso peque&amp;ntilde;o o algo que para demostrar atenci&amp;oacute;n no puedes abrir en un nuevo tab o en otra ventana del navegador. De esta forma incluso podemos dimensionar la ventana emergente con el tama&amp;ntilde;o adecuado para nuestros fines.&lt;/p&gt;
&lt;pre&gt;    &lt;span style="font-size:11px;background-color:white;font-family:Courier New;color:blue;"&gt;protected&lt;/span&gt; &lt;span style="font-size:11px;background-color:white;font-family:Courier New;color:blue;"&gt;void&lt;/span&gt; Page_Load(object sender, EventArgs e)&lt;br /&gt;    {&lt;br /&gt;        btnNueva.Attributes.Add(&lt;span style="font-size:11px;background-color:#ededed;font-family:Courier New;color:#666666;"&gt;&amp;quot;OnClick&amp;quot;&lt;/span&gt;, &lt;span style="font-size:11px;background-color:#ededed;font-family:Courier New;color:#666666;"&gt;&lt;br /&gt;         &amp;quot;window.open(&amp;#39;Nueva.aspx&amp;#39;,null,&amp;#39;height=220,width=480&amp;#39;);&amp;quot;&lt;/span&gt;);&lt;br /&gt;    }&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;A tomar en cuenta es que el usuario puede tener bloqueadas las ventanas emergentes, as&amp;iacute; que una buena idea es mostrar en alg&amp;uacute;n lado de la aplicaci&amp;oacute;n que desactive para tu sitio este bloqueo.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Cerrar una ventana&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Para casos como el anterior donde despu&amp;eacute;s de abrir una ventana donde se espera generar trabajo pero no se puede confiar o resultar&amp;iacute;a muy engorroso para el usuario cerrar manualmente la ventana, conviene usar este m&amp;eacute;todo. En el ejemplo est&amp;aacute; en el evento Click de un bot&amp;oacute;n pero bien puede figurar despu&amp;eacute;s de terminado alguna funci&amp;oacute;n.&lt;/p&gt;
&lt;pre&gt;    &lt;span style="font-size:11px;background-color:white;font-family:Courier New;color:blue;"&gt;protected&lt;/span&gt; &lt;span style="font-size:11px;background-color:white;font-family:Courier New;color:blue;"&gt;void&lt;/span&gt; btnCerrar_Click(object sender, EventArgs e)&lt;br /&gt;    {&lt;br /&gt;        Response.Write(&lt;span style="font-size:11px;background-color:#ededed;font-family:Courier New;color:#666666;"&gt;&amp;quot;&amp;lt;script&amp;gt;window.close();&amp;lt;/script&amp;gt;&amp;quot;&lt;/span&gt;);&lt;br /&gt;    }&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;Estas son algunas funciones donde es necesario hacer trabajo del lado del cliente para determinado comportamiento, por lo mismo no es para todas las situaciones y eventos posibles. Lo &amp;uacute;nico es preguntarse si son cosas que no se pueden hacer del lado del servidor o que ser&amp;iacute;an m&amp;aacute;s r&amp;aacute;pidas y sencillas que se hicieran del lado del cliente.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1675873" width="1" height="1"&gt;</content><author><name>gflores</name><uri>http://msmvps.com/members/gflores/default.aspx</uri></author><category term="c#" scheme="http://msmvps.com/blogs/gflores/archive/tags/c_2300_/default.aspx" /><category term="nivel:100" scheme="http://msmvps.com/blogs/gflores/archive/tags/nivel_3A00_100/default.aspx" /><category term="howto" scheme="http://msmvps.com/blogs/gflores/archive/tags/howto/default.aspx" /><category term="asp.net" scheme="http://msmvps.com/blogs/gflores/archive/tags/asp.net/default.aspx" /></entry><entry><title>El valor de la capacitación en tiempos de crisis</title><link rel="alternate" type="text/html" href="/blogs/gflores/archive/2009/02/09/el-valor-de-la-capacitaci-243-n-en-tiempos-de-crisis.aspx" /><id>/blogs/gflores/archive/2009/02/09/el-valor-de-la-capacitaci-243-n-en-tiempos-de-crisis.aspx</id><published>2009-02-09T20:02:00Z</published><updated>2009-02-09T20:02:00Z</updated><content type="html">&lt;p&gt;En estas fechas donde es com&amp;uacute;n encontrarte o saber de personas que han perdido su empleo es com&amp;uacute;n tambi&amp;eacute;n encontrar que esa misma situaci&amp;oacute;n va para profesionistas del sector TI, desarrolladores de software y directivos que por la raz&amp;oacute;n que sea, no tienen m&amp;aacute;s su empleo. &lt;/p&gt;
&lt;p&gt;Un tip que hab&amp;iacute;a leido en la extinta Visual Basic Programmers Journal (ahora &lt;a href="http://www.visualstudiomagazine.com"&gt;Visual Studio Magazine&lt;/a&gt;) era que uno puede aprovechar este tiempo &amp;quot;entre trabajos&amp;quot; para ayudarte a capacitarte m&amp;aacute;s. Si tienes un buen manejo del presupuesto personal, y tienes apartado un monto para comprar el nuevo XBox o un iPod, creo que es mejor idea invertirlo en tu propia capacitaci&amp;oacute;n. Y me refiero a capacitaciones de calidad y que te dejen un real valor a tu desempe&amp;ntilde;o profesional. Hay instituciones donde se ofrecen incluso talleres m&amp;aacute;s personalizados y acorde a tus necesidades, aunque un poco m&amp;aacute;s caros. Lo importante es encontrar un curso con el nivel adecuado a tus conocimientos que ya tienes, pero con la tecnolog&amp;iacute;a o &amp;aacute;reas que te hace falta especializarte. Me refiero a que si eres un desarrollador web, quiz&amp;aacute;s te convenga ir viendo como ser&amp;iacute;a desarrollo con Silverlight, por ejemplo. Si eres desarrollador Windows, te conviene capacitarte en desarrollo con WPF o para m&amp;oacute;viles. Si ya dominas Windows Server 2003, ve viendo y aplicando lo nuevo con Windows Server 2008. Y similar para otras tecnolog&amp;iacute;as que tal vez requieras en tu posible nuevo empleo como algo de PHP, Flash, herramientas de dise&amp;ntilde;o y otras que nunca est&amp;aacute; de m&amp;aacute;s por lo menos conocer para que no te agarren en blanco si te preguntan. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://microsoftmva.com"&gt;&lt;img width="159" src="http://s18.photobucket.com/albums/b116/gfr20/th_mva.jpg" alt="MVA" height="88" style="float:left;" /&gt;&lt;/a&gt;Ahora, no todo tienes porque pagarlo. Hay muchas maneras de adquirir estos conocimientos en l&amp;iacute;nea con tutoriales, presentaciones, webcasts y ejemplos pr&amp;aacute;cticos de lo que se te ocurra. Si optas por esta opci&amp;oacute;n, te convendr&amp;aacute; seguir un plan estructurado para no perderte en la nube y poder ir viendo como vas desarroll&amp;aacute;ndote y aplicando tus nuevas habilidades. Una de ellas es con &lt;a href="http://www.dce2005.com"&gt;Desarrollador Cinco Estrellas&lt;/a&gt; que te lleva de la mano desde fundamentos que realmente necesitas como Programaci&amp;oacute;n Orientada a Objetos y bases de .NET Framework hasta cosas m&amp;aacute;s especializadas como WCF, WPF y otros. &lt;a href="http://msdn.microsoft.com/en-us/rampup"&gt;Microsoft Rampup&lt;/a&gt; son una serie de cursos autodid&amp;aacute;cticos en ingl&amp;eacute;s de tecnolog&amp;iacute;as espec&amp;iacute;ficas que quiz&amp;aacute;s consideres mejor opci&amp;oacute;n si ya tienes tiempo desarrollando, sobre todo porque tiene una manera de enfocar los tutoriales y presentaciones si ya tienes experiencia en Java o VB6; se trata pues, de nivelarte a las tecnolog&amp;iacute;as actuales. Por &amp;uacute;ltimo &lt;a href="http://microsoftmva.com"&gt;Microsoft Virtual Academy&lt;/a&gt; agrupa y presenta sus capacitaciones en un formato que te permite elegir una &amp;quot;carrera&amp;quot; y conforme avances en la misma tienes acceso a derechos como una credencial de membres&amp;iacute;a, descuentos y m&amp;aacute;s.&lt;/p&gt;
&lt;p&gt;Lo interesante de estos cursos es que son una punta de lanza de lo que puedes hacer con los conocimientos adquiridos, lo importante es experimentar, jugar con lo aprendido y ponerlo en pr&amp;aacute;ctica. Una vez que ya est&amp;eacute;s m&amp;aacute;s familiarizado con ellos ya podr&amp;aacute;s poner con toda seguridad esa nueva habilidad en tu&amp;nbsp;&lt;a href="http://21agenda.blogspot.com/2009/02/curriculum-vitae.html" title="&amp;iquest;C&amp;oacute;mo hacer un buen curriculum?"&gt;curriculum&lt;/a&gt;&amp;nbsp;y no quedar mal para la siguiente entrevista que tengas.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1670780" width="1" height="1"&gt;</content><author><name>gflores</name><uri>http://msmvps.com/members/gflores/default.aspx</uri></author><category term="tecnolog&amp;#237;a" scheme="http://msmvps.com/blogs/gflores/archive/tags/tecnolog_26002300_237_3B00_a/default.aspx" /><category term="opini&amp;#243;n" scheme="http://msmvps.com/blogs/gflores/archive/tags/opini_26002300_243_3B00_n/default.aspx" /></entry></feed>