<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0"><channel><title>\\Brain\Backup</title><link>http://blogs.msdn.com/b/davidsalgado/</link><description>...Developer Evangelism stuff and sirocco wind effects...</description><dc:language>es-ES</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/msdn/davidsb" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="msdn/davidsb" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><title>public cloud? private clouds? &amp; the art of marketing</title><link>http://blogs.msdn.com/b/davidsalgado/archive/2009/04/28/public-cloud-private-clouds-the-art-of-marketing.aspx</link><pubDate>Tue, 28 Apr 2009 12:42:30 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9573329</guid><dc:creator>DavidSalgado</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/davidsalgado/rsscomments.aspx?WeblogPostID=9573329</wfw:commentRss><comments>http://blogs.msdn.com/b/davidsalgado/archive/2009/04/28/public-cloud-private-clouds-the-art-of-marketing.aspx#comments</comments><description>&lt;p&gt;post available &lt;a href="http://geeks.ms/blogs/dsalgado/archive/2009/04/28/nubes-p-250-blicas-nubes-privadas-y-the-art-of-marketing.aspx"&gt;in spanish&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;It's tricky, marketing departments place an organization on the edge despite of the technology used :D&lt;/p&gt;  &lt;p&gt;All of you have heard about cloud and cloud computing. In a few words, cloud computing is about consuming services, services for the organization or services for applications... For instance...&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;A) A Drugs organization contracts an email/CRM/communications/... service on the cloud, so they save the effort and money spent on the servers, licenses, administration, management... ( it's not their business core ) and invest it on the core activity, improving their drugs. This is a Software as a service (saas) sample, we have a pretty good services platform at Microsoft, check it out ;)&amp;#160; BPOS&amp;#160; &lt;a href="http://www.microsoft.com/online/business-productivity.mspx"&gt;http://www.microsoft.com/online/business-productivity.mspx&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;B) An application has the data stored in SQL Services, or is running hosted in Windows Azure. This is a platform as a service (paas) sample&amp;#160; &lt;a href="http://www.microsoft.com/azure"&gt;http://www.microsoft.com/azure&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Benefits from adopting these kind of platforms are pretty clear... savings on hardware , maintenance, management, updates, count on technology that they couldn't pay as product, a pay-per-use model, rely on cloud's scalability and elasticity, etc....&lt;/p&gt;  &lt;p&gt;There are different providers that offer these services on their datacenters, these providers own datacenters time ago (Microsoft, Amazon, Google...), therefore is clear their movement to cloud services business and their presence in the cloud. But, what's up with the players that do not have a huge datacenter to host services? are thy simply out of the game? of course not x)&lt;/p&gt;  &lt;p&gt;They pull the trick, the &amp;quot;private clouds&amp;quot;, from now on the cloud as we know it...becomes the &amp;quot;public cloud&amp;quot;. so, what's a private cloud?&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;A private cloud is a way to improve resources management in our datacenters( virtual machine management, network, storage, computation). IMHO that's not cloud computing at all, if we think about it for 2 secs we will realize that we are missing all the benefits from the &amp;quot;cloud&amp;quot;... no saving on hardware expenses, licenses, management, manteinance licencias, pay-per-use,...&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;Even if they start talking about the cloud as a conceptual resource made to provide services...for me it's just a brilliant marketing action, but nothing to do with the cloud.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;So these providers finally boarded on the cloud... but their action has a colateral effect, because their competitors, providers that already have an offer to improve resource management in a datacenters... suddenly they have to start offering &amp;quot;private clouds&amp;quot; or they're simply out!&amp;#160; In MS for instance, we have Virtual Machine Manager, System Center... Until now we talked about &lt;a href="http://www.microsoft.com/infrastructure/about/dynamicit.mspx"&gt;Dynamic Datacenters&lt;/a&gt;, do we have to start talking about the MS private cloud? time will tell...&lt;/p&gt;  &lt;p&gt;Happy hacking!&lt;/p&gt;  &lt;p&gt;~ds&lt;/p&gt;  &lt;p&gt;PS -&amp;gt; It's curious how &amp;quot;the cloud&amp;quot; seems to be the Internet's professional use. Is The Internet name loosing strength? x)&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9573329" width="1" height="1"&gt;</description></item><item><title>iisfcgi.dll with version 7.0.6001.18000 is not up-to-date</title><link>http://blogs.msdn.com/b/davidsalgado/archive/2009/04/14/iisfcgi-dll-with-version-7-0-6001-18000-is-not-up-to-date.aspx</link><pubDate>Tue, 14 Apr 2009 13:48:46 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9548335</guid><dc:creator>DavidSalgado</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/davidsalgado/rsscomments.aspx?WeblogPostID=9548335</wfw:commentRss><comments>http://blogs.msdn.com/b/davidsalgado/archive/2009/04/14/iisfcgi-dll-with-version-7-0-6001-18000-is-not-up-to-date.aspx#comments</comments><description>&lt;p&gt;post in &lt;a href="http://geeks.ms/blogs/dsalgado/archive/2009/04/14/aplicaciones-no-net-en-azure.aspx"&gt;spanish&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Yesterday I created my first non .NET application for Windows Azure, surprisingly it was pretty simple! :)&amp;#160; I followed a lab in the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=413e88f8-5966-4a83-b309-53b7b77edf78&amp;amp;displaylang=en"&gt;Azure Training Kit – April&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Personally, I think that the lab it´s too complicated, it´s focused con command line actions, usage of SDK tools… but why don’t just use Visual Studio 08? It’s much more simple, every developer should use it :D&amp;#160; &lt;/p&gt;  &lt;p&gt;( BTW&amp;#160; there is a php tool for Visual Studio, did you know it? ;) &lt;a title="http://www.devsource.com/c/a/Add-Ons/VSPHP-Brings-PHP-Coding-Power-to-Visual-Studio/" href="http://www.devsource.com/c/a/Add-Ons/VSPHP-Brings-PHP-Coding-Power-to-Visual-Studio/"&gt;http://www.devsource.com/c/a/Add-Ons/VSPHP-Brings-PHP-Coding-Power-to-Visual-Studio/&lt;/a&gt; )&lt;/p&gt;  &lt;p&gt;Here you have the steps to build the app and how to solve the iisfcgi.dll error&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1#&lt;/strong&gt; &lt;strong&gt;Choose a FasCGI friendly platform&lt;/strong&gt;, for instance PHP. Downloaded the last non-thread-safe version from php.net ( &lt;a href="http://www.iis-aid.com/articles/my_word/difference_between_php_thread_safe_and_non_thread_safe_binaries"&gt;why?&lt;/a&gt; ) and copied it in c:\PHP&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2# Configure IIS7 to manage .php applications&lt;/strong&gt; Lots of info in the internet about how to achieve this, for instance &lt;a title="http://learn.iis.net/page.aspx/246/using-fastcgi-to-host-php-applications-on-iis-70" href="http://learn.iis.net/page.aspx/246/using-fastcgi-to-host-php-applications-on-iis-70"&gt;http://learn.iis.net/page.aspx/246/using-fastcgi-to-host-php-applications-on-iis-70&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;3# Confirm that you can run php pages&lt;/strong&gt;. You can try with the typical &lt;em&gt;&amp;lt;?php phpinfo(); ?&amp;gt;&lt;/em&gt; If it doesn´t work locally… don´t think that the fabric will be able to do the magic :D&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;4# Create and blank Cloud Service solution&lt;/strong&gt;. Add a CGIWebRole project to the solution and reference this project from the solution’s Roles folder. Obiusly you will neeed the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=59E8FC0C-C399-4AB7-8A93-882D8E74B67A&amp;amp;displaylang=en"&gt;&lt;strong&gt;Azure tools for vs&lt;/strong&gt;&lt;/a&gt; installad ;)&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/Aplicacionesno.NETenAzure_8ADA/image_22.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/Aplicacionesno.NETenAzure_8ADA/image_thumb_3.png" width="350" height="148" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;5# Add a php page to the CGIWebRole project&lt;/strong&gt;. You can add a text file, rename to php and code there the php app. A&amp;#160; phpinfo page is ok for the demo :P&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;6# Edit configuration files&lt;/strong&gt;. We have to point to the right interpreter used by the application.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Open &lt;strong&gt;Web.roleconfig&lt;/strong&gt; file, and ensure that you have a reference to the interpreter&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/Aplicacionesno.NETenAzure_8ADA/image_28.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/Aplicacionesno.NETenAzure_8ADA/image_thumb_10.png" width="425" height="129" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;Open &lt;strong&gt;web.config&lt;/strong&gt;. Here, we have to configure the php page as default one ( if not you´ll receive security errors, because you can not browse the folder )&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/Aplicacionesno.NETenAzure_8ADA/image_30.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/Aplicacionesno.NETenAzure_8ADA/image_thumb_13.png" width="293" height="111" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Also we need to add a new handler for the .php files, we add it in the &lt;em&gt;system.webserver&amp;#160; / handlers &lt;/em&gt;section&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/Aplicacionesno.NETenAzure_8ADA/image_32.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/Aplicacionesno.NETenAzure_8ADA/image_thumb_14.png" width="366" height="107" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;Open &lt;strong&gt;serviceDefinition.csdef &lt;/strong&gt;and set&lt;strong&gt; &lt;/strong&gt;enablenativecontentexecution=”true”&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/Aplicacionesno.NETenAzure_8ADA/image_34.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/Aplicacionesno.NETenAzure_8ADA/image_thumb_15.png" width="354" height="42" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;7# Copy the interpreter into the CgiWebRole project&lt;/strong&gt; As you can see in previous steps, we have a path to the interpreter at &lt;em&gt;&lt;strong&gt;%RoleRoot%\php\php-cgi.exe&lt;/strong&gt;&lt;/em&gt;&amp;#160; We must create it :) Open the project folder in windows explorer and copy there the previously created c:\php folder ( this is for a demo purpose, in a real application we should copy only the required files ), once copied, go back to Visual Vtudio and click Show All Files in the solution explorer&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/Aplicacionesno.NETenAzure_8ADA/image_36.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/Aplicacionesno.NETenAzure_8ADA/image_thumb_16.png" width="185" height="105" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Right click on the php &amp;gt; &lt;strong&gt;Include In Project&lt;/strong&gt;&amp;#160; &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/Aplicacionesno.NETenAzure_8ADA/image_38.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/Aplicacionesno.NETenAzure_8ADA/image_thumb_17.png" width="163" height="287" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;and &lt;strong&gt;time to Compile!&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;{{&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Now is when you may find the error&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;&lt;em&gt;CCT: Error: FastCGI module at C:\Windows\system32\inetsrv\iisfcgi.dll with version 7.0.6001.18000 is not up-to-date.          &lt;br /&gt;CCT: The system is missing a prerequisite to execute the service. Please see the release notes.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;I tried with a couple of fixes but at the end, a colleague from Microsoft, pointed me to the right one. &lt;a href="https://emea.mail.microsoft.com/redir.aspx?C=3f205debd6a2433ea84c9e16f67f34c6&amp;amp;URL=http%3a%2f%2fsupport.microsoft.com%2fkb%2f967131"&gt;&lt;strong&gt;http://support.microsoft.com/kb/967131&lt;/strong&gt;&lt;/a&gt; After the fix, my &lt;strong&gt;iisfcgi.dll &lt;/strong&gt;version is&lt;strong&gt; 7.0.6001.22365&lt;/strong&gt; ( I’m runninc wserver 08 x64 )&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;}}&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Last step &lt;strong&gt;8# Deploy application in Windows Azure&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;in the project properties, add your azure &lt;strong&gt;Application ID&lt;/strong&gt; as in any other Azure project&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/Aplicacionesno.NETenAzure_8ADA/image_40.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/Aplicacionesno.NETenAzure_8ADA/image_thumb_18.png" width="347" height="211" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;save, and right click in the Solution &amp;gt; &lt;strong&gt;Publish&lt;/strong&gt;!&lt;/p&gt;  &lt;p&gt;Azure portal will be automatically opened, we have to upload configuration and description packages. This will take a little more time than in other azure apps… take into account that this time it has to upload all the PHP folder content ;)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/Aplicacionesno.NETenAzure_8ADA/image_42.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/Aplicacionesno.NETenAzure_8ADA/image_thumb_19.png" width="358" height="134" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Once uploaded, remember to click &lt;strong&gt;Run!! &lt;/strong&gt;I’ve forgotten to click run several times, and after 5 minutes waiting and having a coffee, realized that I missed the simplest step :_)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/Aplicacionesno.NETenAzure_8ADA/image_44.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/Aplicacionesno.NETenAzure_8ADA/image_thumb_20.png" width="380" height="230" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;easy, isn´t it?&lt;/p&gt;  &lt;p&gt;Happy Hacking!&lt;/p&gt;  &lt;p&gt;~ds&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9548335" width="1" height="1"&gt;</description></item><item><title>Cambios en este blog... sindicación e Idioma</title><link>http://blogs.msdn.com/b/davidsalgado/archive/2009/04/07/cambios-en-este-blog-sindicaci-n-e-idioma.aspx</link><pubDate>Tue, 07 Apr 2009 22:39:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9536549</guid><dc:creator>DavidSalgado</dc:creator><slash:comments>5</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/davidsalgado/rsscomments.aspx?WeblogPostID=9536549</wfw:commentRss><comments>http://blogs.msdn.com/b/davidsalgado/archive/2009/04/07/cambios-en-este-blog-sindicaci-n-e-idioma.aspx#comments</comments><description>&lt;P&gt;finalmente he sacado un rato para ordenar algunas ideas, esto va a afectar a los blogs porque voy a volver a los inicios... pero con feedburner :)&lt;/P&gt;
&lt;P&gt;De modo que si hay alguien que esta suscrito... y que quiere seguir O=)&amp;nbsp; ... que cambie la suscripción. Venga.. animaos!! que voy a empezar a escribir mucho más a menudo y de más temas...tras hablar un rato con el maligno esta mañana, he decidido dedicarle MUCHO más esfuerzo al blog/videos ;)&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Blog en blogs.msdn.com/davidsalgado&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; Cambia el idioma, volveré a postear en inglés ( humildemente O=) )&amp;nbsp; La URL de sindicación también cambia... &lt;A href="http://feeds2.feedburner.com/msdn/davidsb"&gt;http://feeds2.feedburner.com/msdn/davidsb&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Blog en Geeks.ms/davidsb&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; Sigue en castellano, la URL de sindicación cambiará a partir de este post a ... &lt;A href="http://feeds2.feedburner.com/geeks/davidsb"&gt;http://feeds2.feedburner.com/geeks/davidsb&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;y.. a cenar que ya son horas y empieza house en nada&lt;/P&gt;
&lt;P&gt;Nos leemos!&lt;/P&gt;
&lt;P&gt;~ds&lt;/P&gt;
&lt;P&gt;PD -&amp;gt; ... al final del capítulo seguro que es Lupus o algo autoinmune :P&lt;BR&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9536549" width="1" height="1"&gt;</description></item><item><title>Cloud Computing 101</title><link>http://blogs.msdn.com/b/davidsalgado/archive/2009/04/07/cloud-computing-101.aspx</link><pubDate>Tue, 07 Apr 2009 13:41:11 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9535699</guid><dc:creator>DavidSalgado</dc:creator><slash:comments>3</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/davidsalgado/rsscomments.aspx?WeblogPostID=9535699</wfw:commentRss><comments>http://blogs.msdn.com/b/davidsalgado/archive/2009/04/07/cloud-computing-101.aspx#comments</comments><description>&lt;p&gt;EL concepto es muy sencillo...&amp;#160; es OTRA forma de hacer lo que venimos haciendo, un NUEVO CANAL para alojar/distribuir/utilizar servicios y aplicaciones. Pero no dud&amp;#233;is que no toda empresa y no toda aplicaci&amp;#243;n ser&amp;#225; necesariamente susceptible de subirse a la nube. Mucho software seguir&amp;#225; siendo on-premises por su naturaleza :)&lt;/p&gt;  &lt;p&gt;&amp;#191;&lt;strong&gt;Por qu&amp;#233; es interesante &lt;/strong&gt;colgar cosas en la nube?&lt;/p&gt;  &lt;p&gt;Hay muchas razones, y a muchos niveles, tanto razones de negocio como puramente t&amp;#233;cnicas, voy a comentaros las que m&amp;#225;s me convencen personalmente&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Costes&lt;/strong&gt; Reduzco los costes derivados de la adquisici&amp;#243;n de la infraestructura para prestar el servicio, as&amp;#237; como de su mantenimiento y administraci&amp;#243;n. ( Parches? Actualizaci&amp;#243;n del SO? gaitas!! oygan! ) Adem&amp;#225;s el Cloud tiene un modelo de &lt;strong&gt;Pay Per Use&lt;/strong&gt; que normalmente es m&amp;#225;s rentable que la &lt;strong&gt;inversi&amp;#243;n&lt;/strong&gt; pura y dura. &lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Escalabilidad&lt;/strong&gt; Si hay una campa&amp;#241;a viral de marketing, o un pico en la empresa, no hay problema... indicamos que queremos levantar m&amp;#225;s servidores y listo en unos clicks.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Disponibilidad&lt;/strong&gt; Tanto de servicio como geogr&amp;#225;fica.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Nuevas oportunidades&lt;/strong&gt; Si ya no me tengo que preocupar de no tener la infraestructura necesaria y mantenerla, no tener que pagar las licencias de algunos productos y de que me van a cobrar s&amp;#243;lo por el uso... pues ya puedo centrarme en mi parte, el desarrollo e incluso me animar&amp;#233; con agluna aventura empresarial, qui&amp;#233;n sabe? :D&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#191;&lt;strong&gt;Qu&amp;#233; podemos colgar/qu&amp;#233; podemos usar&lt;/strong&gt; en la nube?&amp;#160; &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Podemos colgar Infraestructura&lt;/strong&gt;, por ejemplo, usamos espacio de almacenamiento en la nube, con lo que nos ahorramos teras y teras y SANs&amp;#160; ... ancho de banda, computaci&amp;#243;n ... ( &lt;strong&gt;Iaas&lt;/strong&gt;&amp;#160; Infraestructure as a Service)&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Podemos colgar un Servicio&lt;/strong&gt;, por ejemplo el correo eletr&amp;#243;nico en s&amp;#237;. Hacemos que la empresa use los servicios de correo de hotmail y nos ahorramos los servidores, las licencias, el mantenimiento y la administraci&amp;#243;n. ( &lt;strong&gt;Saas&lt;/strong&gt;&amp;#160; ... Software as a Service )&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Podemos colgar Plataforma&lt;/strong&gt;, para facilitar el despliegue de aplicaciones. mejorar su escalabilidad y disponibilidad... No es por menospreciar los datacenters de las empresas, pero Microsoft, Google, HP, Amazon... pues como que normalmente tienen m&amp;#225;s recursos para estas cosas :) ( Paas Platform as a Service )&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;Pero no pensemos s&amp;#243;lo en aplicaciones WEB y redes sociales online!!!&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;De hecho, si la nube nos da la potencia de computaci&amp;#243;n, la distribuci&amp;#243;n de nuestros servicios, la disponibilidad... si no tenemos cuidado volveremos al antiguo mundo de aplicaciones conectadas al Mainframe :)&amp;#160; Pero en este caso al megasupermainframequeloflipas.&lt;/p&gt;    &lt;p&gt;Pero aqui es d&amp;#243;nde entra la filosof&amp;#237;a &lt;strong&gt;S+S&lt;/strong&gt;, donde nos podemos diferenciar de lo que hac&amp;#237;amos hace 30 a&amp;#241;os Aprovechemos la potencia que tenemos en las m&amp;#225;quinas de escritorio, consolas, m&amp;#243;viles, port&amp;#225;tiles.... &lt;strong&gt;Desarrollemos aplicaciones cliente que consuman los servicios que tenemos en internet&lt;/strong&gt;! A s&amp;#237; tenemos lo mejor de los dos mundos,&amp;#160; Que s&amp;#237; hombre!&amp;#160; Por ejemplo... &lt;strong&gt;Los que ten&amp;#233;is iPhone&lt;/strong&gt;.... todos ten&amp;#233;is el safari, y podr&amp;#237;ais usarlo para ir a facebook... pero a que es INFINITAMENTE MEJOR la aplicaci&amp;#243;n de facebook!&amp;#160; Y lo mismo para los twitteros, queda alguno que use la web de twitter en lugar de su propio cliente?? No verdad? ( y si queda es que est&amp;#225; despistado :P )&lt;/p&gt;    &lt;p&gt;Podemos hacer aplicaciones cliente que consuman servicios de almacenamiento de datos en la nube, o que hagan el trabajo pesado en la nube (encoding), que integren servicios que est&amp;#225;n online (CRMs, Sincronizaci&amp;#243;n de datos entre m&amp;#225;quinas, Workflows)&amp;#160; OJO que no estoy desprestigiando a la aplicaci&amp;#243;n WEB, pero no creo que debamos olvidarnos de las aplicaciones de escritorio ;)&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#191;&lt;strong&gt;Qu&amp;#233; proveedores &lt;/strong&gt;hay?&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Ahora est&amp;#225;n todos complementando su oferta de servicios con un portfolio de cloud computing, SalesForce, Amazon, HP, IBM, Sun, Google y por supuesto, Microsoft :)&lt;/p&gt;    &lt;p&gt;Ya entraremos m&amp;#225;s en detalle en productos en concreto en otro post.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Espero haber alarado un poco las bases del Cloud Computing&lt;/p&gt;  &lt;p&gt;Happy Hacking!!&lt;/p&gt;  &lt;p&gt;~ds&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;PD -&amp;gt;&lt;/strong&gt; Alguna vez me han preguntado en alguna conferencia que si las aplicaciones de Escritorio tienen sentido existiendo la web... la respuesta es ABSOLUTAMENTE SI, la naturaleza de cada tipo de aplicaci&amp;#243;n cliente es diferente y muchas veces se complementan dando diferentes experiencias al usuario. &lt;/p&gt;  &lt;p&gt;Mucha gente lo pregunta porque esta dando sus primeros pasos en la web y tiene tan interiorizados los principios del desktop que los pasa por alto. Otras personas lo preguntan porque en sus plataformas..es TAN doloroso hacer una aplicaci&amp;#243;n de escritorio que quieren quitarselo de encima cuanto antes :) ( bendito sea .NET )&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;PD 2 -&amp;gt; &lt;/strong&gt;Alguno podr&amp;#225; preguntarse, qu&amp;#233; pasa con el utility computing, grid computing, cluster computing?... bien, podr&amp;#237;amos decir que &lt;strong&gt;&amp;#233;stos son la base &lt;/strong&gt;sobre la que se sustenta el cloud computing.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9535699" width="1" height="1"&gt;</description></item><item><title>Hoy es el TechDay! Quedan 4 sesiones online en Spanish :)</title><link>http://blogs.msdn.com/b/davidsalgado/archive/2009/04/01/hoy-es-el-techday-quedan-4-sesiones-online-en-spanish.aspx</link><pubDate>Wed, 01 Apr 2009 11:20:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9525815</guid><dc:creator>DavidSalgado</dc:creator><slash:comments>4</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/davidsalgado/rsscomments.aspx?WeblogPostID=9525815</wfw:commentRss><comments>http://blogs.msdn.com/b/davidsalgado/archive/2009/04/01/hoy-es-el-techday-quedan-4-sesiones-online-en-spanish.aspx#comments</comments><description>&lt;P&gt;post rápido y con fundamento&lt;/P&gt;
&lt;P&gt;Estan siendo los TechDays &lt;A title=http://msdn.microsoft.com/es-es/techdays2009.aspx href="http://msdn.microsoft.com/es-es/techdays2009.aspx"&gt;&lt;FONT color=#0065e2&gt;http://msdn.microsoft.com/es-es/techdays2009.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Por ahora hemos hecho la charla de &lt;STRONG&gt;Iván Gonzalez ( MVP de IIS - Plainconcepts ) &lt;/STRONG&gt;a ver cuando esta disponible grabada y os pasamos el enlace.&lt;/P&gt;
&lt;P&gt;Nos quedan... ( hora española )&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Silverlight en portales SharePoint&amp;nbsp; ( 11 - 12 ) - Jesús Serrano - Microsoft&lt;/STRONG&gt; 
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;A title=https://www.livemeeting.com/cc/sbsca13/join?id=G4BQKD&amp;amp;role=attend&amp;amp;pw=c%22%28Z4Mw href="https://www.livemeeting.com/cc/sbsca13/join?id=G4BQKD&amp;amp;role=attend&amp;amp;pw=c%22%28Z4Mw"&gt;&lt;FONT color=#0065e2&gt;https://www.livemeeting.com/cc/sbsca13/join?id=G4BQKD&amp;amp;role=attend&amp;amp;pw=c%22%28Z4Mw&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;De Windows Forms a WPF ( 12 - 13 ) - Luis Guerrero - Plain Concepts&lt;/STRONG&gt; 
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;A title=https://www.livemeeting.com/cc/sbsva10/join?id=3RH8RC&amp;amp;role=attend&amp;amp;pw=9jc%60%24Sm href="https://www.livemeeting.com/cc/sbsva10/join?id=3RH8RC&amp;amp;role=attend&amp;amp;pw=9jc%60%24Sm"&gt;&lt;FONT color=#0065e2&gt;https://www.livemeeting.com/cc/sbsva10/join?id=3RH8RC&amp;amp;role=attend&amp;amp;pw=9jc%60%24Sm&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Moviliza tus aplicaciones ( 13 - 14 ) - Alejandro Mezcua - ByteaByte&lt;/STRONG&gt; 
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;A title=https://www.livemeeting.com/cc/sbssg1/join?id=NRRG7M&amp;amp;role=attend&amp;amp;pw=h%2FhF%25%279 href="https://www.livemeeting.com/cc/sbssg1/join?id=NRRG7M&amp;amp;role=attend&amp;amp;pw=h%2FhF%25%279"&gt;&lt;FONT color=#0065e2&gt;https://www.livemeeting.com/cc/sbssg1/join?id=NRRG7M&amp;amp;role=attend&amp;amp;pw=h%2FhF%25%279&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Incrementando la calidad con pruebas ( 14 - 15 ) - Hadi Hariri - Imeta&lt;/STRONG&gt; 
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;A title=https://www.livemeeting.com/cc/sbsgb3/join?id=ZP9JMD&amp;amp;role=attend&amp;amp;pw=FRZ%2Bz4Z href="https://www.livemeeting.com/cc/sbsgb3/join?id=ZP9JMD&amp;amp;role=attend&amp;amp;pw=FRZ%2Bz4Z"&gt;&lt;FONT color=#0065e2&gt;https://www.livemeeting.com/cc/sbsgb3/join?id=ZP9JMD&amp;amp;role=attend&amp;amp;pw=FRZ%2Bz4Z&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Mejorando el acceso a tu base de datos ( 14 - 15 ) - Eladio Rincón - Solid Quality Mentors&lt;/STRONG&gt; 
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;A title=https://www.livemeeting.com/cc/sbsva10/join?id=25SCTH&amp;amp;role=attend&amp;amp;pw=zSb%7E4rm href="https://www.livemeeting.com/cc/sbsva10/join?id=25SCTH&amp;amp;role=attend&amp;amp;pw=zSb%7E4rm"&gt;&lt;FONT color=#0065e2&gt;https://www.livemeeting.com/cc/sbsva10/join?id=25SCTH&amp;amp;role=attend&amp;amp;pw=zSb%7E4rm&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Nos vemos, Happy Hacking!!&lt;/P&gt;
&lt;P&gt;ds&lt;/P&gt;
&lt;P&gt;( Luego enlazo a sus blogs que tengo que salir pitando!!! )&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9525815" width="1" height="1"&gt;</description></item><item><title>Viene una semana cargada de sorpresas!!</title><link>http://blogs.msdn.com/b/davidsalgado/archive/2009/03/13/viene-una-semana-cargada-de-sorpresas.aspx</link><pubDate>Fri, 13 Mar 2009 17:09:08 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9473168</guid><dc:creator>DavidSalgado</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/davidsalgado/rsscomments.aspx?WeblogPostID=9473168</wfw:commentRss><comments>http://blogs.msdn.com/b/davidsalgado/archive/2009/03/13/viene-una-semana-cargada-de-sorpresas.aspx#comments</comments><description>&lt;blockquote style="margin-right: 0px" dir="ltr"&gt;   &lt;p&gt;( pero sorpresas a todos los niveles oyga!! )&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;A nivel de &lt;strong&gt;Microsoft Corporaci&amp;#243;n&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;...Se nos viene encima el MIX09!!!&amp;#160;&amp;#160; &lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;Bienaventurados aquellos que est&amp;#233;is en las vegas!&amp;#160; El resto en la medida de lo posible intentaremos seguirlo desde casa.&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;Como usuario, espero sorpresas por la parte de Silverlight, de Blend, de MVC, de IE8... si avanzan algo m&amp;#225;s de Visual Studio ser&amp;#237;a genial...pero lo dudo por la naturaleza del evento. Pero vamos, todo un mont&amp;#243;n de jueguetes nuevos! Y como ahora estamos en crisis y hay que quedarse en casa sin gastar...pues a jugar con las betas :P &lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;Normalmente se publica mucho contenido durante el propio evento, atentos a la web oficial &lt;a href="http://www.visitmix.com"&gt;http://www.visitmix.com&lt;/a&gt; , a channel 9 USA ( &lt;a href="http://channel9.msdn.com"&gt;http://channel9.msdn.com&lt;/a&gt; ) y los twitteros atentos a #MIX09&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Por parte de &lt;strong&gt;Microsoft Espa&amp;#241;a&lt;/strong&gt;, espero que esta semana tengamos alguna sorpresa... alineada con lo que pase en Corporaci&amp;#243;n ( supongo ) adem&amp;#225;s de las que soltamos hace dos semanas, que igual alguien todav&amp;#237;a no le ha llegado el eco de las noticias:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="https://www.microsoft.com/youshapeit/es/es/msdn"&gt;https://www.microsoft.com/youshapeit/es/es/msdn&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;PureCode&lt;/strong&gt;, &lt;strong&gt;Competencia&lt;/strong&gt;, &lt;strong&gt;Emprendedores&lt;/strong&gt;, &lt;strong&gt;MSDN Respuestas&lt;/strong&gt;... un mont&amp;#243;n de cositas que esperamos os faciliten un poco m&amp;#225;s el d&amp;#237;a a d&amp;#237;a. Tambi&amp;#233;n inauguramos el &lt;strong&gt;buz&amp;#243;n de sugerencias&lt;/strong&gt; de MSDN Espa&amp;#241;a:&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;en MSDN Blogs&amp;#160; - &lt;a title="http://blogs.msdn.com/davidsalgado/archive/2009/03/03/buz-n-de-sugerencias.aspx" href="http://blogs.msdn.com/davidsalgado/archive/2009/03/03/buz-n-de-sugerencias.aspx"&gt;http://blogs.msdn.com/davidsalgado/archive/2009/03/03/buz-n-de-sugerencias.aspx&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;en GEEKS.MS - geeks.ms/blogs/dsalgado&lt;/p&gt;    &lt;p&gt;&lt;a title="http://geeks.ms/blogs/dsalgado/archive/2009/03/03/buz-243-n-de-sugerencias.aspx" href="http://geeks.ms/blogs/dsalgado/archive/2009/03/03/buz-243-n-de-sugerencias.aspx"&gt;http://geeks.ms/blogs/dsalgado/archive/2009/03/03/buz-243-n-de-sugerencias.aspx&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;Ir&amp;#233; respondiendo, recopilando... a medida que vaya pasando el tiempo. TODO lo que se os ocurra, luego ya veremos si tenemos recursos para hacerlo o no O=)&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Y... a &lt;strong&gt;nivel personal&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Aprovecho para pasar una semana de vacaciones con unos amigos. Tiembla Chicago!!! Vamos a pasar San Patricio ( cuidadito con las cervezas los que salg&amp;#225;is ), iremos a un partido de Bulls vs Lakers, pasaremos mucho frio, haremos compritas... y si hay tiempo, habr&amp;#225; que descansar un poco. Lo ir&amp;#233; contando por twitter y subir&amp;#233; a flickr el documento gr&amp;#225;fico a la vuelta =D&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Hacemos una cosa, nos lo repartimos todo, vosotros dedicaos a los dos primeros puntos, yo me encargo del tercero y me pon&amp;#233;is al d&amp;#237;a a la vuelta :)&lt;/p&gt;  &lt;p&gt;Nos vemos en unos d&amp;#237;as! A cuidarse &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt;!&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Happy Hacking!&lt;/p&gt;  &lt;p&gt;PD -&amp;gt; No creo que responda ni un solo mail en 7 d&amp;#237;as... creo que alguna vez so&amp;#241;&amp;#233; con esto.&lt;/p&gt;  &lt;p&gt;PD2 -&amp;gt; Esta tarde hay que ver Underworld 3...que es el estreno y es del tipo de peli de fantas&amp;#237;a que salgo emocionado... si ve&amp;#237;s a alguien disfrazado de hombre lobo corriendo por Kin&amp;#233;polis Madrid..hay muchas posibilidades de que sea yo&lt;/p&gt;  &lt;p&gt;PD3 -&amp;gt; En Chicago, cuando he dicho fr&amp;#237;o... me refiero a fr&amp;#237;o, fr&amp;#237;o de verdad, del que no experimentamos los Bilbainos, que las m&amp;#237;nimas de estos d&amp;#237;as han sido -20 grados!!!... es digno de una expedici&amp;#243;n del mism&amp;#237;simo Calleja!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9473168" width="1" height="1"&gt;</description></item><item><title>Buzón de sugerencias</title><link>http://blogs.msdn.com/b/davidsalgado/archive/2009/03/03/buz-n-de-sugerencias.aspx</link><pubDate>Tue, 03 Mar 2009 20:05:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9457044</guid><dc:creator>DavidSalgado</dc:creator><slash:comments>4</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/davidsalgado/rsscomments.aspx?WeblogPostID=9457044</wfw:commentRss><comments>http://blogs.msdn.com/b/davidsalgado/archive/2009/03/03/buz-n-de-sugerencias.aspx#comments</comments><description>&lt;P&gt;¿ Tienes feedback para MSDN España ?&amp;nbsp; A qué esperas???&lt;/P&gt;
&lt;P&gt;Antes de que nos sugieras una nueva funcionalidad para Windows o para Entity Framework...déjame que te cuente lo que hacemos en MSDN y en qué podemos cambiar&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Nos dedicamos a la página de &lt;A href="http://www.microsoft.es/msdnmsdn" mce_href="http://www.microsoft.es/msdnmsdn"&gt;www.microsoft.es/msdn&lt;/A&gt; y todos los rss y contenidos relacionados&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Llevamos iniciativas localmente en España, como por ejemplo Channel9, programas para emprendedores, ayudas para empresas de desarrollo web, portales específicos dentro de MSDN ( purecode, opensource ... )&lt;/P&gt;
&lt;P&gt;Intentamos ayudar en la medida de lo posible a los grupos de usuarios .NET y a los grupos de estudiantes .NET&lt;/P&gt;
&lt;P&gt;Proporcionamos contenidos a docentes sobre tecnología Microsoft&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;DesarrollaConMSDN, MSDNRespuestas&lt;/P&gt;
&lt;P&gt;Intentaremos también ayudar en cuanto a los foros de discusión de Microsoft&lt;/P&gt;
&lt;P&gt;Organizamos eventos online y offline para difundir tecnología ( los tours MSDN, ReMIX, evolutionshow, techdays... )&lt;/P&gt;
&lt;P&gt;Participamos en eventos de terceros para hablar sobre tecnología Microsoft ( Congreso de webmasters, eventoblog, congreso internacional de opensource, jornadas de imaginática... )&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;En resumen... podemos cambiar o modificar la forma en la que accedes o la forma en la que te llega el contenido relacionado con el mundo del desarrollo en España. Algunos tendréis oportunidad de darnos feedback por una encuesta que lanzamos a estas alturas del año... pero además, tienes este post para hacernos llegar tus inquietudes y opiniones ;)&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Gracias &amp;amp;&amp;amp; Happy Hacking!&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;STRONG&gt;Update&lt;/STRONG&gt;: Recogidos los comentarios hasta el &lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi"&gt;&lt;STRONG&gt;24/3/09&lt;/STRONG&gt;&lt;/SPAN&gt;. Los borro del blog y los paso a un archivo de texto para ponernos a trabajar en ello. &lt;SPAN style="mso-ansi-language: EN" lang=EN&gt;Gracias a todos y seguimos esperando comentarios!!&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9457044" width="1" height="1"&gt;</description></item><item><title>Evento online para desarrolladores e ITPros ... en Castellano</title><link>http://blogs.msdn.com/b/davidsalgado/archive/2009/02/23/evento-online-para-desarrolladores-e-itpros-en-castellano.aspx</link><pubDate>Mon, 23 Feb 2009 13:11:26 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9441185</guid><dc:creator>DavidSalgado</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/davidsalgado/rsscomments.aspx?WeblogPostID=9441185</wfw:commentRss><comments>http://blogs.msdn.com/b/davidsalgado/archive/2009/02/23/evento-online-para-desarrolladores-e-itpros-en-castellano.aspx#comments</comments><description>&lt;p&gt;En breve ser&amp;#225; el &lt;strong&gt;&lt;a href="http://www.microsoft.com/latam/windowsday/communities.aspx" target="_blank"&gt;Windows Day&lt;/a&gt;&lt;/strong&gt;!&amp;#160;&amp;#160; &lt;strong&gt;3 / 3 / 9&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Es un evento organizado por nuestros compa&amp;#241;eros de Microsoft en Latinoam&amp;#233;rica, al que nos hemos podido sumar este a&amp;#241;o. No es nuevo, el a&amp;#241;o pasado tuvo un estreno con un gran &amp;#233;xito, con unos 25k asistentes :)&amp;#160; Montaron hasta una feria virtual con partners, en plan second life.&lt;/p&gt;  &lt;p&gt;Es un evento tanto para ITPros como para desarrolladores. A mi me interesa m&amp;#225;s el track de desarrollo, os adelanto que se va a hablar de...&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;ASP.NET 4.0, windows 7, azure, Windows Forms, WPF, Silverlight, JQuery, IE8, entity framework..., un lujazo de contenido y todo en castellano!&amp;#160; Puedes ver la agenda en detalle y apuntarte en &lt;a href="http://www.microsoft.com/latam/windowsday/communities.aspx" target="_blank"&gt;este enlace&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://www.microsoft.com/latam/windowsday/communities.aspx"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="180x150_WindowsDay" src="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/Eventoonlineparadesarrollad.enCastellano_9D4D/180x150_WindowsDay_3.gif" width="184" height="154" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;[INICIO de Opini&amp;#243;n personal]&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Como persona involucrada en eventos, el formato online creo que puede ser un &amp;#233;xito para este tipo de contenidos de caracter general y de amplia difusi&amp;#243;n, como ejemplo los colegas de &lt;strong&gt;&lt;a href="http://www.secondnug.com/" target="_blank"&gt;SecondNUG&lt;/a&gt;&lt;/strong&gt; con sus webcast...exitazo total. En mi opini&amp;#243;n, el formato presencial, donde todos nos juntamos para charlar deber&amp;#237;a reducirse a 2 escenarios&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;A - Se trata de un aspecto concreto en un entorno concreto. Por ejemplo un evento de tecnolog&amp;#237;a aplicada a un sector ( ... .NET para aplicaciones de Banca online... por ej )&lt;/p&gt;    &lt;p&gt;B - Es m&amp;#225;s interactivo. Todav&amp;#237;a no he dado con el formato, no se si ser&amp;#225;n mesas redondas, escoger tema previamente al evento, improvisar el evento con las preguntas que salgan... no lo s&amp;#233;... pero la participaci&amp;#243;n de los asistentes es crucial.&lt;/p&gt;    &lt;p&gt;En &lt;strong&gt;&lt;a href="http://madriddotnet.spaces.live.com/" target="_blank"&gt;madriddotNet&lt;/a&gt;&lt;/strong&gt;, los &amp;#250;ltimos eventos han sido m&amp;#225;s de que todos discuti&amp;#233;semos sobre lo que se hablaba y como lo hac&amp;#237;a cada uno... MUY enriquecedor&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Obviamente, aqui, &lt;strong&gt;los asistentes a los eventos ten&amp;#233;is la &amp;#250;ltima palabra&lt;/strong&gt;, pero es taaaan vuestra... :)&amp;#160; Nosotros nos rebanamos los sesos para saber qu&amp;#233; temas os interesan, en qu&amp;#233; formatos, a trav&amp;#233;s de qu&amp;#233; canales os ser&amp;#237;a m&amp;#225;s f&amp;#225;cil de acceder... todo para poder daros acceso a ese contenido y conectaros con expertos.&lt;/p&gt;  &lt;p&gt;Creedme que no es tan f&amp;#225;cil como parece ( por eso somos tan pesados con el feedback desde Microsoft )&amp;#160; espero que el &lt;strong&gt;&lt;a href="http://www.microsoft.com/latam/windowsday/communities.aspx" target="_blank"&gt;Windows Day&lt;/a&gt; &lt;/strong&gt;sea una buena opci&amp;#243;n para la mayor&amp;#237;a de vosotros!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;[FIN de Opini&amp;#243;n personal]&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Que haya m&amp;#225;s eventos de este tipo depende de vuestra respuesta y por supuesto...de vuestro feedback ;)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Happy hacking!&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;PD -&amp;gt; Es el primer lunes en mucho tiempo que tengo buena cara y energ&amp;#237;as renovadas... se traduce en que hoy har&amp;#233; la dieta a rajatabla!!&lt;/p&gt;  &lt;p&gt;PD2 -&amp;gt; Y eso que se avecina una jornada de outlook + herramientas de intranet... usease, &lt;strong&gt;diasSinTocarVisualStudio++&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9441185" width="1" height="1"&gt;</description></item><item><title>Windows 7 @ netbook Samsung NC10</title><link>http://blogs.msdn.com/b/davidsalgado/archive/2009/01/09/windows-7-netbook-samsung-nc10.aspx</link><pubDate>Fri, 09 Jan 2009 23:09:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9302533</guid><dc:creator>DavidSalgado</dc:creator><slash:comments>13</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/davidsalgado/rsscomments.aspx?WeblogPostID=9302533</wfw:commentRss><comments>http://blogs.msdn.com/b/davidsalgado/archive/2009/01/09/windows-7-netbook-samsung-nc10.aspx#comments</comments><description>&lt;P&gt;Este año los Reyes Magos se han portado genial ( aun haciendo yo apología del Olentzero por todas partes :P ) y me trajeron un Samsung NC10, uno de estos netbooks que se empiezan a ver por todas partes. 1G de RAM, 160G disco, Atom, Wifi …&amp;nbsp; he de decir que lo adoro :)&amp;nbsp; El único detalle que no me&amp;nbsp;convencía, es que venía con Windows XP SP3… OJO! esta muy bien, es muy rápido y el PC volaba…pero teniendo la oportunidad de ponerle Windows 7 beta… pues como que no me he resistido :P&lt;/P&gt;
&lt;P&gt;&lt;A href="http://geeks.ms/blogs/dsalgado/IMG_0021_60025D1F.jpg" mce_href="http://geeks.ms/blogs/dsalgado/IMG_0021_60025D1F.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title=IMG_0021 border=0 alt=IMG_0021 src="http://geeks.ms/blogs/dsalgado/IMG_0021_thumb_0E2C330D.jpg" width=244 height=184 mce_src="http://geeks.ms/blogs/dsalgado/IMG_0021_thumb_0E2C330D.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Esta es la historia de la batalla!!&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Hacerse con una copia de Windows 7&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Comentábamos en un &lt;A href="http://blogs.msdn.com/davidsalgado/archive/2009/01/08/descarga-windows-7.aspx" target=_blank mce_href="http://blogs.msdn.com/davidsalgado/archive/2009/01/08/descarga-windows-7.aspx"&gt;post anterior&lt;/A&gt; cuales eran las vías “oficiales” para hacerse con una imagen de la beta de Windows 7. Una vez nos hemos hecho con la ISO, lo suyo sería quemar un DVD y listo!&amp;nbsp; Pero en los netbooks no hay unidad de CD/DVD, de modo que hay que hacer algo un poco diferente. Otra opción sería instalarlo por WDS, pero no está disponible hasta dentro de unos días y yo lo necesitaba YA! :D … de modo que me decidí por hacerlo desde una llave USB.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Generar el USB de arranque&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Insertamos el USB ( con uno de más de 3G vale ) y arrancamos diskpart desde la consola de windows. Es una utilidad que nos va a ayudar a preparar el USB como USB de arranque. Su uso es muy sencillo, hasta un developer ha podido hacerlo :D&amp;nbsp; ( eso sí… suspervisado por un ITPRO aka &lt;A href="http://blogs.technet.com/pdias" target=_blank mce_href="http://blogs.technet.com/pdias"&gt;Paulo Dias&lt;/A&gt; y un ingeniero de OEM aka Rui Freitas, para que no haya víctimas )&lt;/P&gt;
&lt;P&gt;Miramos los discos del equipo: &lt;STRONG&gt;list disk&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Nos situamos en el disco en concreto: &lt;STRONG&gt;select disk 1&lt;/STRONG&gt;&amp;nbsp; ( en mi caso el USB era el 1)&lt;/P&gt;
&lt;P&gt;Borramos el contenido: &lt;STRONG&gt;clean&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Creamos una partición: &lt;STRONG&gt;create partition primary&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Nos situamos sobre ella para trabajar:&lt;STRONG&gt;&amp;nbsp; select partition 1&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;La marcamos como activa y determinamos el sector de arranque: &lt;STRONG&gt;active&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;La formateamos: &lt;STRONG&gt;format fs=fat32 label=”w7x86” quick&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Asignamos unidad: &lt;STRONG&gt;assign&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;y salimos: &lt;STRONG&gt;exit&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Con el usb preparado para arrancar, queda volcar el contenido de la imagen ISO ( con winrar por ejemplo )&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Y Listo!!! Bueno, para que lea desde el USB al encender, entramos en la bios (F2) y nos aseguramos que USB KEY es el primer dispositivo de arranque&lt;/P&gt;&lt;A href="http://geeks.ms/blogs/dsalgado/DSC00706_33B5B06E.jpg" mce_href="http://geeks.ms/blogs/dsalgado/DSC00706_33B5B06E.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title=DSC00706 border=0 alt=DSC00706 src="http://geeks.ms/blogs/dsalgado/DSC00706_thumb_0F60A61F.jpg" width=244 height=184 mce_src="http://geeks.ms/blogs/dsalgado/DSC00706_thumb_0F60A61F.jpg"&gt;&lt;/A&gt; &lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Instalación&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Como un Windows cualquiera, desde el USB 2.0 no me tardó más de 20min… palabrita del niño jezú. Acordaos de quitar el USB cuando reinicia Windows para instalarse, que si no, os vuelve a mostrar el mensaje de comenzar la instalación. Vale con quitarlo al reiniciar e insertarlo luego si es necesario.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Contratiempo de último segundo&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Imaginaos mi cara… recién instalado y había reconocido y configurado la cámara web, el lector de SD, la gráfica, los USB, el sonido…waaaaa!!! y sin hacer nada! x)&amp;nbsp; Creo que no me había pasado ni con XP ni con Vista. &lt;/P&gt;
&lt;P&gt;Peeero.. curiosamente no me había reconocido la tarjeta ethernet x)&amp;nbsp; nada, un contratiempillo de nada, me lo tomo como anécdota pq no conozco a nadie más que le haya pasado :) Voy a la página de Samsung, descargo el driver ethernet para XP y no funciona :_)&lt;/P&gt;
&lt;P&gt;Menos mal que estaban los protectores del developer, Paulo Dias y Rui Freitas alrededor y me contaron un truquillo que no conocía O;)&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Vamos al device manager, al driver ethernet (que estará con un warning)&amp;nbsp; y escogemos las propiedades del controlador.&lt;/P&gt;
&lt;P&gt;Desde las propiedades, escogemos la pestaña &lt;STRONG&gt;Details&lt;/STRONG&gt;, y en el desplegable buscamos el &lt;STRONG&gt;Hardware ID&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://geeks.ms/blogs/dsalgado/image_4DE5F3C5.png" mce_href="http://geeks.ms/blogs/dsalgado/image_4DE5F3C5.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title=image border=0 alt=image src="http://geeks.ms/blogs/dsalgado/image_thumb_2BADE83F.png" width=244 height=169 mce_src="http://geeks.ms/blogs/dsalgado/image_thumb_2BADE83F.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;el &lt;STRONG&gt;ven_11ab&lt;/STRONG&gt;&amp;nbsp; es el &lt;STRONG&gt;fabricante&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;el &lt;STRONG&gt;dev_4354 &lt;/STRONG&gt;es el &lt;STRONG&gt;modelo&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;y con esta información, vamos a internet y tenemos el &lt;A href="http://www.pcidatabase.com/search.php?vendor_search=1&amp;amp;vendor_search_str=11ab&amp;amp;sort=user_id" target=_blank mce_href="http://www.pcidatabase.com/search.php?vendor_search=1&amp;amp;vendor_search_str=11ab&amp;amp;sort=user_id"&gt;fabricante&lt;/A&gt; y el &lt;A href="http://www.pcidatabase.com/vendor_details.php?id=957" target=_blank mce_href="http://www.pcidatabase.com/vendor_details.php?id=957"&gt;modelo&lt;/A&gt;!!! Voy a la web y busco los drivers, como Windows 7 es compatible con Vista en el modelo de drivers, instalo el driver de Vista e voilá, ethernet funcionando :)&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Instalación de software&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Ahora llegó el típico paso tedioso de meter Office, el equipo en dominio, Live Writer :P, silverlight, flash, winrar, etc… ¿por qué te lo cuento? Para que en el siguiente punto tengas en cuenta que el equipo ya no esta instalado sin mas, tiene todo lo “habitual” en un PC ( Visual Studio aun no )&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Situación actual&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;“va como un tiro” es muy relativo :) aquí tenéis una foto de la situación. Esta corriendo como aplicación el Live Writer, y como servicios, todos los que vienen por defecto (incluido aero) y los que se hay tras una instalación típica&lt;/P&gt;
&lt;P&gt;&lt;A href="http://geeks.ms/blogs/dsalgado/image_68826A11.png" mce_href="http://geeks.ms/blogs/dsalgado/image_68826A11.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title=image border=0 alt=image src="http://geeks.ms/blogs/dsalgado/image_thumb_673DD132.png" width=244 height=128 mce_src="http://geeks.ms/blogs/dsalgado/image_thumb_673DD132.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;A href="http://geeks.ms/blogs/dsalgado/image_137A5817.png" mce_href="http://geeks.ms/blogs/dsalgado/image_137A5817.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title=image border=0 alt=image src="http://geeks.ms/blogs/dsalgado/image_thumb_18E8C8BB.png" width=244 height=121 mce_src="http://geeks.ms/blogs/dsalgado/image_thumb_18E8C8BB.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;En mi opinión esta mejor que bien, además tened en cuenta que es la primera beta. Personalmente estoy muy contento con el rendimiento, y a nivel de uso, las mejoras de usabilidad de W7 se notan, es fácil acostumbrarse a los thumbnails, jumplists… lo veréis en cuanto empecéis a usarlo ;)&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Próximos pasos…&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Mañana salgo a primera hora a Alternate para comprarle un módulo de 2Gigas. El Samsung viene con una ranura para expandir la RAM en la parte de atrás O=)&lt;/P&gt;
&lt;P&gt;El lunes… instalo la beta de W7 x64 en mi portatil del trabajo :P&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Lo mejorable&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Como he comentado en algún otro post, esperaba una versión un poco más reciente de Internet Explorer 8. Por lo que he hablado con el grupo de producto, la beta 2 de Agosto ha sido mejorada sustancialmente. Hubiera sido un punto genial el tener esas mejoras en la beta de Windows 7.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Happy Seven!!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9302533" width="1" height="1"&gt;</description></item><item><title>Descarga Windows 7!!</title><link>http://blogs.msdn.com/b/davidsalgado/archive/2009/01/08/descarga-windows-7.aspx</link><pubDate>Thu, 08 Jan 2009 19:26:35 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9298713</guid><dc:creator>DavidSalgado</dc:creator><slash:comments>4</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/davidsalgado/rsscomments.aspx?WeblogPostID=9298713</wfw:commentRss><comments>http://blogs.msdn.com/b/davidsalgado/archive/2009/01/08/descarga-windows-7.aspx#comments</comments><description>&lt;p&gt;Si eres subscriptor de &lt;strong&gt;&lt;a target="_blank" href="http://msdn.microsoft.com/es-es/subscriptions/default.aspx"&gt;MSDN&lt;/a&gt;&lt;/strong&gt; o &lt;strong&gt;&lt;a target="_blank" href="http://technet.microsoft.com/es-es/subscriptions/default.aspx"&gt;TechNet&lt;/a&gt;&lt;/strong&gt; que sepas que YA puedes descargarte la beta de Windows 7 &lt;/p&gt;  &lt;p&gt;Si no tienes la subscripci&amp;#243;n, no te preocupes, &lt;strong&gt;hay m&amp;#225;s formas de conseguir la beta&lt;/strong&gt; ( digo oficialmente, ya s&amp;#233; que muchos est&amp;#225;is pensando en 'otras' formas de conseguirlo )&lt;/p&gt;  &lt;p&gt;Una opci&amp;#243;n es probar por &lt;strong&gt;&lt;a target="_blank" href="http://connect.microsoft.com/"&gt;Microsoft Connect&lt;/a&gt;&lt;/strong&gt;, gran parte del software en beta se puede conseguir por ahi, por otro lado el d&amp;#237;a 9/1/09 se har&amp;#225; p&amp;#250;blica la forma de obtener la beta para 2.5 millones de personas. No tenemos detalles espec&amp;#237;ficos, me temo que es un privilegio que se guarda la gente del grupo de producto. Lo &amp;#250;nico que s&amp;#233;, es que ma&amp;#241;ana hay que estar atentos a la siguientes URLs&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a title="http://www.microsoft.com/windows/windows-7/default.aspx" href="http://www.microsoft.com/windows/windows-7/default.aspx"&gt;http://www.microsoft.com/windows/windows-7/default.aspx&lt;/a&gt;&amp;#160;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a title="http://technet.microsoft.com/en-us/windows/default.aspx" href="http://technet.microsoft.com/en-us/windows/default.aspx"&gt;http://technet.microsoft.com/en-us/windows/default.aspx&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;La versi&amp;#243;n que podremos descargar ser&amp;#225; v&amp;#225;lida hasta Agosto del 2009&lt;/p&gt;  &lt;p&gt;Yo voy a instalarla en un Samsung NC10, y un Dell D620, en cuanto lo tenga os cuento las primeras impresiones. A partir de la semana que viene intentaremos sacar informaci&amp;#243;n espec&amp;#237;fica para desarrolladores...nuevas APIs, ejemplos... :)&lt;/p&gt;  &lt;p&gt;Happy Windows Seven!!&lt;/p&gt;  &lt;p&gt;PD -&amp;gt; En mi opini&amp;#243;n, &lt;strong&gt;personal e intransferible&lt;/strong&gt;, hubiese puesto una feed en bittorrent con el hash de la versi&amp;#243;n oficial por parte de Microsoft, as&amp;#237; puede tenerla para probar todo el que quiera y seguro que nos sale m&amp;#225;s barato que 2.5Millones de usuarios x 2 Gigas de descarga cada uno ;)&lt;/p&gt;  &lt;p&gt;PD2 -&amp;gt; Esta ma&amp;#241;ana he tenido un airis kira con el W7 reci&amp;#233;n instalado, usaba 440Mb del Giga del que dispone la m&amp;#225;quina...usease...iba de narices!! :)&lt;/p&gt;  &lt;p&gt;PD3 -&amp;gt; En el Kira estaba aero funcionando perfectamente, y para los m&amp;#225;s curiosos, ocupaba sobre 20 megas :)&lt;/p&gt;  &lt;p&gt;PD4 -&amp;gt; Me ha dado un poco de pena ver que trae la beta 2 de Internet Explorer 8. Sabiendo que hay ya alguna compilaci&amp;#243;n que mejora esa versi&amp;#243;n, esperaba una sorpresa de &amp;#250;ltimo segundo :)&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9298713" width="1" height="1"&gt;</description></item><item><title>Felices Fiestas!</title><link>http://blogs.msdn.com/b/davidsalgado/archive/2008/12/23/felices-fiestas.aspx</link><pubDate>Tue, 23 Dec 2008 13:30:09 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9249691</guid><dc:creator>DavidSalgado</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/davidsalgado/rsscomments.aspx?WeblogPostID=9249691</wfw:commentRss><comments>http://blogs.msdn.com/b/davidsalgado/archive/2008/12/23/felices-fiestas.aspx#comments</comments><description>&lt;p&gt;Estando en las fechas en la que estamos, antes o despu&amp;#233;s hab&amp;#237;a que llegar a este punto de las felicitaciones :)&amp;#160; Desde el equipo de MSDN Espa&amp;#241;a, hemos querido hacerlo un poco diferente, y un poco a lo ganso... fijaos en el detalle de los subt&amp;#237;tulos del v&amp;#237;deo :P. Aqu&amp;#237; pod&amp;#233;is poner cara a algunos de los miembros del equipo de DPE en Microsoft Ib&amp;#233;rica.&lt;/p&gt;  &lt;p&gt;( Es un enlace a una p&amp;#225;gina en channel 9 Spain )&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a target="_blank" href="http://channel9.msdn.com/posts/Daniel+Garzon/Feliz-Navidad-0809/"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/FelicesFiestas_A1BB/image_5.png" width="244" height="182" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Por orden de aparici&amp;#243;n:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;David Salgado&lt;/strong&gt; - Comunidad de desarrolladores&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Fernando Guillot &lt;/strong&gt;- Comunidad de ITPros&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Luis Panzano&lt;/strong&gt; - Dynamics para ISVs&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Alfonso Rodriguez &lt;/strong&gt;- Comunidad de estudiantes y de desarrolladores&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;David Carmona&lt;/strong&gt; - Responsable de comunidades t&amp;#233;cnicas ( ITPro + Dev )&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;David Salgado&lt;/strong&gt;... again&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Paulo Dias&lt;/strong&gt; - Comunidad de ITPros&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Carmen Escobar&lt;/strong&gt; y &lt;strong&gt;Roc&amp;#237;o Gamboa&lt;/strong&gt; - Comunidad de desarrolladores&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Enrique Fern&amp;#225;ndez Laguilhoat &lt;/strong&gt;- El Dire de la divisi&amp;#243;n &lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Milagros Moreno &lt;/strong&gt;- Comunidad de desarrolladores&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Daniel Garz&amp;#243;n &lt;/strong&gt;- Comunidad de desarrolladores&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Elisa Garc&amp;#237;a &lt;/strong&gt;- Comunidad de estudiantes&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Antonio G&amp;#243;mez&lt;/strong&gt; - Program Manager de Tools ( VS, Expression ... )&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Ethel Garc&amp;#237;a &lt;/strong&gt;e &lt;strong&gt;Isabel G&amp;#243;mez &lt;/strong&gt;- Desarrollo para ISVs&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Hay que decir que son todos los que est&amp;#225;n, pero no est&amp;#225;n todos los que son... algunos compa&amp;#241;eros se nos escaparon en el v&amp;#237;deo.... faltan &lt;strong&gt;Aurelio&lt;/strong&gt;, &lt;strong&gt;Cesar&lt;/strong&gt;, &lt;strong&gt;Salvador&lt;/strong&gt;, &lt;strong&gt;Jos&amp;#233; Murillo&lt;/strong&gt;, &lt;strong&gt;Beatriz&lt;/strong&gt;, &lt;strong&gt;Julio&lt;/strong&gt;, &lt;strong&gt;Catherine &lt;/strong&gt;... esperamos haber sido unos representantes dignos!! :D&lt;/p&gt;  &lt;p&gt;Recordad que cuando se pire el de rojo el d&amp;#237;a 24... llegara el que importa... el &lt;a target="_blank" href="http://es.wikipedia.org/wiki/Olentzero"&gt;Olentzero&lt;/a&gt;!! ( Si es que... la tierra tira!! )&lt;/p&gt;  &lt;p&gt;Happy holidays!!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9249691" width="1" height="1"&gt;</description></item><item><title>Plataforma de gesti&amp;#243;n de contenido ( CMS ) en ASP.NET MVC</title><link>http://blogs.msdn.com/b/davidsalgado/archive/2008/12/18/plataforma-de-gesti-n-de-contenido-cms-en-asp-net-mvc.aspx</link><pubDate>Thu, 18 Dec 2008 17:17:17 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9236251</guid><dc:creator>DavidSalgado</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/davidsalgado/rsscomments.aspx?WeblogPostID=9236251</wfw:commentRss><comments>http://blogs.msdn.com/b/davidsalgado/archive/2008/12/18/plataforma-de-gesti-n-de-contenido-cms-en-asp-net-mvc.aspx#comments</comments><description>&lt;p&gt;&amp;#201;chale un vistazo a &lt;a href="http://www.visitmix.com"&gt;www.visitmix.com&lt;/a&gt; no hace falta que mires los contenidos, en este caso lo importante es el contenedor. VisitMix esta alojado en &lt;strong&gt;oxite&lt;/strong&gt; un nuevo proyecto open source comenzado por el equipo que lleva la p&amp;#225;gina de visitmix, channel9,...&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.visitmix.com/Lab/Oxite"&gt;&lt;img alt="Check out Oxite" src="http://www.visitmix.com/Content/img/home_sidebar_oxite.jpg" width="355" height="90" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Oxite&lt;/strong&gt;, como lo definen sus creadores, es un gestor de contenidos Open Source, alineado con est&amp;#225;ndares y capaz de correr desde blogs a sitios web complejos. &lt;/p&gt;  &lt;p&gt;De modo que si estabas buscando realizar una soluci&amp;#243;n similar, puede que te sirva de inspiraci&amp;#243;n, o de hecho puede que te sirva tal cual y te la puedas instalar, configurar y tirar para adelante con ella :)&lt;/p&gt;  &lt;p&gt;Desde el punto de vista de desarrollo, est&amp;#225; &lt;strong&gt;construida sobre &lt;a href="http://asp.net/mvc"&gt;ASP.NET MVC&lt;/a&gt;&lt;/strong&gt;. No s&amp;#233; hasta que punto est&amp;#225;is familiarizados con esta tecnolog&amp;#237;a, a&amp;#250;n en Beta. Aclarar que &lt;strong&gt;ASP.NET MVC no es el futuro de ASP.NET, es otra forma de hacer web dentro de .NET&lt;/strong&gt;, estar&amp;#225; en manos de cada equipo de proyecto decidir si les interesa o no utilizar ASP.NET MVC para su desarrollo.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&amp;#191; Por qu&amp;#233; puede que interese &lt;a href="http://asp.net/mvc"&gt;ASP.NET MVC&lt;/a&gt; ?&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;La pregunta ben podr&amp;#237;a ser... &amp;#191; te interesa trabajar acorde a &lt;a href="http://es.wikipedia.org/wiki/Modelo_Vista_Controlador"&gt;MVC&lt;/a&gt; ? Hay informaci&amp;#243;n sobre pros y contras por todo internet, me limito a repetir lo m&amp;#225;s destacado.&amp;#160; &lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;MVC &lt;strong&gt;favorece&lt;/strong&gt; el testing y TDD, en su estructura de proyecto resulta muy sencillo probar cada uno de los componentes por separado. Tambi&amp;#233;n favorece la reutilizaci&amp;#243;n de componentes y la creaci&amp;#243;n de diferentes representaciones para los mismos datos.&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;En &lt;strong&gt;contra&lt;/strong&gt;, podemos decir que al principio puede resultar algo duro ce&amp;#241;irse a la forma de trabajar. Por ejemplo, como desarrolladores ASP.NET, lo primero que hay que hacer es olvidarse de los controles de servidor, en un formato en el que prima un componente 'controlador'.. no podemos dejar que la voz cantante de la aplicaci&amp;#243;n la lleve un control visual con sus eventos.&lt;/p&gt;    &lt;p&gt;All&amp;#225; cada cual con su proyecto :)&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;Entonces OXITE...&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;OXITE&lt;/strong&gt; es un proyecto muy interesante, en el estado en el que se encuentra ahora mismo, es m&amp;#225;s para desarrolladores interesados en ASP.NET MVC que para otros perfiles. En un futuro no muy lejano, conf&amp;#237;o en que se vuelva un producto open source como otros tantos del mercado, con extensiones, addins... pero por ahora es para trastear y tener un entorno de pruebas y referencia con ASP.NET MVC&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;Recursos&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;El sitio principal de OXITE esta alojado en codeplex, concretamente en &lt;a title="http://www.codeplex.com/oxite" href="http://www.codeplex.com/oxite"&gt;http://www.codeplex.com/oxite&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;Enlace a un post donde se dan los primeros pasos con OXITE &lt;a title="http://neimke.spaces.live.com/blog/cns!F964EB605E70A5CA!513.entry" href="http://neimke.spaces.live.com/blog/cns!F964EB605E70A5CA!513.entry"&gt;http://neimke.spaces.live.com/blog/cns!F964EB605E70A5CA!513.entry&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Felices fiestas!! &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Zorionak eta urte berri on!!&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;PD0-&amp;gt; En el MSDN Flash, queremos dar visibilidad a algunas de las cosas que ocurren en la comunidad de desarrollo, por ese motivo, ver&amp;#233;is posts con tag MSDN Flash que ser&amp;#225;n posteriormente referenciados en la newsletter :)&lt;/p&gt;  &lt;p&gt;PD1 -&amp;gt; Si alguno tiene XBOX y NO tiene XBOX LIVE... que sepas que realmente NO tienes XBOX a&amp;#250;n :)&amp;#160; Me he dado de alta hace poco y es la bomba xD Se que parece marketing total, pero sinceramente os animo a probarlo.&lt;/p&gt;  &lt;p&gt;PD2 -&amp;gt; En cuanto sea un m&amp;#225;quina empezamos a organizar partidas online. Por ahora me muevo por el Call of Duty 5 y el Gears of War 2&lt;/p&gt;  &lt;p&gt;PD3 -&amp;gt; Si tienes hijos/as ... &lt;a title="http://www.navidadessorprendentes.com/" href="http://www.navidadessorprendentes.com/"&gt;http://www.navidadessorprendentes.com/&lt;/a&gt; ok.. no esta en Silverlight, pero la idea es increible. Graba un video personalizado con su nombre y sus cosillas, ya ver&amp;#225;s que cara :D&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9236251" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/davidsalgado/archive/tags/MSDN+Flash/">MSDN Flash</category></item><item><title>Addins gratuitos para Visual Studio</title><link>http://blogs.msdn.com/b/davidsalgado/archive/2008/12/04/addins-gratuitos-para-visual-studio.aspx</link><pubDate>Thu, 04 Dec 2008 17:59:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9175381</guid><dc:creator>DavidSalgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/davidsalgado/rsscomments.aspx?WeblogPostID=9175381</wfw:commentRss><comments>http://blogs.msdn.com/b/davidsalgado/archive/2008/12/04/addins-gratuitos-para-visual-studio.aspx#comments</comments><description>&lt;P&gt;Personalizas tu despacho, personalizas tu PC, personalizas el Fondo de escritorio, Windows, tu blog, la página de facebook y la css de twitter!!!... y tienes el VIsual Studio instalado por defecto?? por favor!! :)&lt;/P&gt;
&lt;P&gt;Lo que pasa, es que hay mucha gente que no sabe que puede personalizar el Visual Studio. OJO! y &lt;STRONG&gt;no hablo a nivel de layout, fuentes, estilos, etcétera&lt;/STRONG&gt;...&amp;nbsp; que también se puede&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/AddinsgratuitosparaVisualStudio_E0E7/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/AddinsgratuitosparaVisualStudio_E0E7/image_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: 0px" border=0 alt=image src="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/AddinsgratuitosparaVisualStudio_E0E7/image_thumb.png" width=545 height=116 mce_src="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/AddinsgratuitosparaVisualStudio_E0E7/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Enlace a un post de Scott Hanselman donde se habla de temas disponibles para Visual Studio&lt;/P&gt;
&lt;P&gt;&lt;A title=http://www.hanselman.com/blog/VisualStudioProgrammerThemesGallery.aspx href="http://www.hanselman.com/blog/VisualStudioProgrammerThemesGallery.aspx" mce_href="http://www.hanselman.com/blog/VisualStudioProgrammerThemesGallery.aspx"&gt;http://www.hanselman.com/blog/VisualStudioProgrammerThemesGallery.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Y otro con más temas&lt;/P&gt;
&lt;P&gt;&lt;A title=http://idehotornot.ning.com/ href="http://idehotornot.ning.com/" mce_href="http://idehotornot.ning.com/"&gt;http://idehotornot.ning.com/&lt;/A&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Estoy hablando a nivel de &lt;STRONG&gt;añadirle addins&lt;/STRONG&gt; creados por miembros de la comunidad, o incluso desarrollarte tu propio gadget para Visual Studio, por qué no?&lt;/P&gt;
&lt;P&gt;Por ejemplo... Algunas tareas que posiblemente realices y que puedas automatizar con un Addin ( o que al menos te facilite la tarea )&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Guardar Notas asociadas a archivos en una solución (stickynotes)&lt;/P&gt;
&lt;P&gt;Sistema de navegación Jerárquico (outliner powertoy)&lt;/P&gt;
&lt;P&gt;Contraer todos los proyectos de una solución con un click (Power Command)&lt;/P&gt;
&lt;P&gt;Resharper ( muy famoso entre desarrolladores de .NET )&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Los Addins que te ayudan con las tareas anteriores, y más, los puedes encontrar en la &lt;A target=_blank href="http://www.visualstudiogallery.com/" mce_href="http://www.visualstudiogallery.com/"&gt;&lt;STRONG&gt;Visual Studio Gallery&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt;. &lt;/STRONG&gt;Para facilitar la búsqueda los tienes agrupados por categorías:&amp;nbsp; Build, Coding, Reporting, Security, Web, Data...&amp;nbsp; además de por rating, visitas, etcétera. Muchos de ellos son gratuitos :)&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;A target=_blank href="http://http//www.visualstudiogallery.com/" mce_href="http://http://www.visualstudiogallery.com/"&gt;&lt;IMG title="" alt="" align=middle src="http://i.msdn.microsoft.com/bb887604.toolbox_banner(en-us,MSDN.10).jpg" mce_src="http://i.msdn.microsoft.com/bb887604.toolbox_banner(en-us,MSDN.10).jpg"&gt;&lt;/A&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;De todos modos.... si no encuentras en esta galería el addin que te ayude con lo que buscas, prueba a mirar también en los portales Open Source &lt;STRONG&gt;&lt;A target=_blank href="http://www.codeplex.com/" mce_href="http://www.codeplex.com/"&gt;Codeplex&lt;/A&gt;&lt;/STRONG&gt; y &lt;STRONG&gt;&lt;A target=_blank href="http://sourceforge.net/index.php" mce_href="http://sourceforge.net/index.php"&gt;Sourceforge&lt;/A&gt;&lt;/STRONG&gt;... &lt;STRONG&gt;¡¡&lt;/STRONG&gt; &lt;STRONG&gt;a ver si hay más suerte y no necesitas picar tu todas las líneas !!&lt;/STRONG&gt; :)&lt;/P&gt;
&lt;P&gt;Qué lo que te atrae es la idea de &lt;STRONG&gt;crearte tu propio addin&lt;/STRONG&gt;??... por ejemplo..integrar twitter/facebook en el Visual Studio? . De acuerdo, no impactará directamente en tú código, pero el hecho de no andar cambiando de pantalla para mantener tu vida online actualizada seguro que reduce el tiempo de proyecto. En ese caso tu punto de entrada es el &lt;STRONG&gt;&lt;A target=_blank href="http://msdn.microsoft.com/en-us/vsx/default.aspx" mce_href="http://msdn.microsoft.com/en-us/vsx/default.aspx"&gt;Visual Studio Extensibility&lt;/A&gt; &lt;/STRONG&gt;Dev Center.&lt;/P&gt;
&lt;P&gt;Pero, si además de hacer el addin, crees que puede haber negocio, entonces debes pasar por &lt;STRONG&gt;&lt;A target=_blank href="http://msdn.microsoft.com/en-us/vsx2008/products/bb964516.aspx" mce_href="http://msdn.microsoft.com/en-us/vsx2008/products/bb964516.aspx"&gt;Visual Studio Industry Partner&lt;/A&gt; &lt;/STRONG&gt;Program. Ofrecen soporte al desarrollo y comarketing para productos integrados con Visual Studio &lt;/P&gt;
&lt;P&gt;Hala!! ya sabes, entre compilación y copmpilación a escoger un tema de colores cool y unos addins potentes, que ya es hora de &lt;STRONG&gt;tunnear tu Visual Studio&lt;/STRONG&gt; ;)&lt;/P&gt;
&lt;P&gt;Happy Hacking!!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9175381" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/davidsalgado/archive/tags/MSDN+Flash/">MSDN Flash</category><category domain="http://blogs.msdn.com/b/davidsalgado/archive/tags/Visual+Studio/">Visual Studio</category></item><item><title>Tenemos Ganador al Juego de Fibonacci!!</title><link>http://blogs.msdn.com/b/davidsalgado/archive/2008/11/24/tenemos-ganador-al-juego-de-fibonacci.aspx</link><pubDate>Mon, 24 Nov 2008 14:50:04 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9136875</guid><dc:creator>DavidSalgado</dc:creator><slash:comments>6</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/davidsalgado/rsscomments.aspx?WeblogPostID=9136875</wfw:commentRss><comments>http://blogs.msdn.com/b/davidsalgado/archive/2008/11/24/tenemos-ganador-al-juego-de-fibonacci.aspx#comments</comments><description>&lt;p&gt;Lo primero.. Gracias a esos &lt;strong&gt;28 pedazo de participantes &lt;/strong&gt;:) Me lo he pasado genial, de hecho no me cre&amp;#237;a que se animase tanta gente a participar. Ha sido una pena el problema con algunos antivirus que se han comido las soluciones. Ya lo sabemos, a partir de ahora texto plano con el algoritmo :D&lt;/p&gt;  &lt;p&gt;Por cierto, tomo nota, ha hab&amp;#237;do un comentario general pidiendo &lt;strong&gt;retos m&amp;#225;s complicados&lt;/strong&gt;. Este era sencillo y no ped&amp;#237;a mucha potencia de calculo, ni tiempo de desarrollo, es para que pudi&amp;#233;s&amp;#233;is seguir con vuestras vidas durante el reto :P&amp;#160; Si es dif&amp;#237;cil normalmente no hay tanta participaci&amp;#243;n :)&lt;/p&gt;  &lt;p&gt;Pero lo dicho... tomo nota :D&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Soluciones propuestas&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Ha sido muy variopinto, todos los participantes sab&amp;#237;an que la soluci&amp;#243;n recursiva tradicional no es m&amp;#225;s que un algoritmo &amp;quot;de laboratorio&amp;quot; y han planteado diversas soluciones. En C#, vb.net&amp;#160; y hasta en IL :)&amp;#160; Aqu&amp;#237; os destaco los algoritmos m&amp;#225;s utilizados...&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Algoritmo Recursivo con cache&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;El de toda la vida, pero guardando cada calculo en un Dictionary, por ejemplo, de modo que cada nueva llamada resultar&amp;#225; en una suma de valores&amp;#160; precalculados en el Dictionary.&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Sumas basadas en arrays&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;Se sustituye la llamada recursiva por una iteraci&amp;#243;n donde se van sumando valores en un array.&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Sumas con 3 variables&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;Igual que la anterior, pero se elimina el array, porque realmente solo hacen falta 3 valores. Actual, Anterior1 y Anterior2.&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Calculos con el n&amp;#250;mero phi&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;Estos me pillaron por sorpresa :) Pero cuesta m&amp;#225;s tiempo hacer el calculo y paralelizarlo que sumar los valores. Habr&amp;#237;a que verlo para calcular valores m&amp;#225;s grandes.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Por lo que he visto muchos tienen ya las lambdas de .net como ciudadanos de primer nivel... cada vez m&amp;#225;s el c&amp;#243;digo .net me recuerda menos a c&amp;#243;digo .net :)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Al grano, c&amp;#243;mo han acelerado el algoritmo?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;La mayor&amp;#237;a del trabajo de los participantes ha pasado por encontrar el algoritmo m&amp;#225;s r&amp;#225;pido para fibonacci.&amp;#160; &lt;/p&gt;  &lt;p&gt;Hay personas que han utilizado la librer&amp;#237;a de &lt;strong&gt;parallels &lt;/strong&gt;para intentar acelerar un poco el c&amp;#225;lculo. ( &lt;em&gt;desafortunadamente, fibonacci tradicional no es la mejor oportunidad para que parallels se luzca. El c&amp;#225;lculo esta basado en valores anteriores, de modo que tiene tinte secuencial por naturaleza.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Pero, no solo del algoritmo vive la aplicaci&amp;#243;n...se puede paralelizar:&lt;/em&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;a)&amp;#160; Ir mostrando el resultado mientras se realiza el c&amp;#225;lculo&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;b)&amp;#160; El c&amp;#225;lculo en s&amp;#237;, siempre y cuando no se utilice el m&amp;#233;todo secuencial. Por ejemplo los que utilizan el c&amp;#225;lculo con phi, si hacen un Parallel.For para calcular los valores por separado.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;em&gt;Posiblemente para valores m&amp;#225;s grandes Parallels hubiese marcado la diferencia. &lt;/em&gt;)&lt;/p&gt;  &lt;p&gt;Pero el tiempo total no era s&amp;#243;lo el tiempo del algoritmo, de hecho era lo m&amp;#237;nimo en la mayor&amp;#237;a de los casos...al ser un n&amp;#250;mero tan bajo, &lt;strong&gt;la mayor&amp;#237;a del tiempo se invierte en presentar los valores al usuario&lt;/strong&gt;. De modo que ah&amp;#237; es donde se ha &lt;strong&gt;marcado la diferencia&lt;/strong&gt;. &lt;/p&gt;  &lt;p&gt;Las soluciones pasaban por presentar strings por consola en cada iteraci&amp;#243;n, concatenar con stringbuilder antes de presentar por pantalla, sacar los valores a un archivo de texto... y la &lt;strong&gt;inesperada aproximaci&amp;#243;n del ganador&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Utilizando el mismo algoritmo que muchos participantes, la diferencia ha sido abismal, mirad algunos de los tiempos ( al final del post pod&amp;#233;is ver como he hecho las pruebas):&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;4&amp;#160; - 187141&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;3&amp;#160; - 179870&lt;/p&gt;    &lt;p&gt;2 -&amp;#160;&amp;#160; 16186&amp;#160;&amp;#160; ( diferencia de usar un archivo en lugar de la consola )&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;1 -&amp;#160;&amp;#160;&amp;#160;&amp;#160; 959 &lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Venga... cu&amp;#225;l es la diferencia ?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;La diferencia, ha sido que nuestro Ganador del juego, &lt;strong&gt;Jorge Serrano&lt;/strong&gt; ha utilizado una &lt;strong&gt;aplicaci&amp;#243;n Windows Forms &lt;/strong&gt;para presentar el resultado. Como muestran los timers, el tiempo en mostrar la informaci&amp;#243;n por consola requiere mucho mas trabajo que mostrarla en un control de WinForms. &lt;/p&gt;  &lt;p&gt;Felicidades Jorge!! te tengo que mandar el detalle, esperamos foto en el blog eh :D&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Las pruebas&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;He sufrido, lo reconozco. La pr&amp;#243;xima vez tengo que trabajar m&amp;#225;s en la descripci&amp;#243;n del reto O=)&lt;/p&gt;    &lt;p&gt;Primero he estandarizado la &lt;strong&gt;forma en la que se tomaba el tiempo&lt;/strong&gt;..de modo que he plantado Stopwatch por vuestro c&amp;#243;digo.. Start justo al empezar el algoritmo y stop justo al acabar la visualizaci&amp;#243;n. He medido el valor de &lt;strong&gt;ElapsedTicks&lt;/strong&gt;. A los que no ten&amp;#237;an visualizaci&amp;#243;n les he a&amp;#241;adido un for concatenando con stringbuilder.&lt;/p&gt;    &lt;p&gt;A los que me hab&amp;#233;is enviado varias opciones.. las he probado todas y solo he tenido &lt;strong&gt;en cuenta la m&amp;#225;s r&amp;#225;pida&lt;/strong&gt;.&lt;/p&gt;    &lt;p&gt;Para tomar un valor por participante, he tomado la &lt;strong&gt;media de&amp;#160; 5 ejecuciones en fr&amp;#237;o &lt;/strong&gt;de cada algoritmo.&lt;/p&gt;    &lt;p&gt;Para la pr&amp;#243;xima, posiblemente de yo el esqueleto de c&amp;#243;digo e indique d&amp;#243;nde hay que rellenar con el algoritmo :D&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Gracias y happy monday meetings!!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9136875" width="1" height="1"&gt;</description></item><item><title>Momento Coder .... Acelera Fibonacci a tope!!!</title><link>http://blogs.msdn.com/b/davidsalgado/archive/2008/11/19/momento-coder-acelera-fibonacci-a-tope.aspx</link><pubDate>Wed, 19 Nov 2008 20:37:04 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9125150</guid><dc:creator>DavidSalgado</dc:creator><slash:comments>5</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/davidsalgado/rsscomments.aspx?WeblogPostID=9125150</wfw:commentRss><comments>http://blogs.msdn.com/b/davidsalgado/archive/2008/11/19/momento-coder-acelera-fibonacci-a-tope.aspx#comments</comments><description>&lt;p&gt;Hace mucho que no ponemos ning&amp;#250;n reto ... a s&amp;#237; que a la carga!!!&lt;/p&gt;  &lt;p&gt;Hoy no vamos a hablar ni de empresa, ni de servicios, ni de web ni nada, hoy toca picarse a ver qui&amp;#233;n es el m&amp;#225;s r&amp;#225;pido!&lt;/p&gt;  &lt;p&gt;Recuerdas tus primeros pinitos en la algoritmia? hacer piramides, ordenar n&amp;#250;meros... si? y recuerdas &lt;strong&gt;Fibonacci&lt;/strong&gt;? ;)&lt;/p&gt;  &lt;p&gt;No voy a explicarlo de nuevo, la red esta llena de explicaciones y algoritmos de retos de este tipo de cosas. Te propongo un reto, para coders con algo de tiempo ( en casa o en el trabajo )&amp;#160; ...&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;&amp;#191;C&amp;#243;mo de r&amp;#225;pido eres haciendo Fibonacci del 1 al 44?&lt;/strong&gt; Me explico... tiempo acumulado utilizado en calcular Fibonacci para los n&amp;#250;meros enteros comprendidos entre el 1 y el 44, ambos incluidos :)&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Ojo, el algoritmo es bien conocido, implementado de una forma m&amp;#225;s o menos bonita, pero se te ocurre alguna forma &lt;strong&gt;m&amp;#225;s r&amp;#225;pida&lt;/strong&gt; de obtener el resultado&lt;strong&gt;? &lt;/strong&gt;(por si alguien lo duda, por supuesto que se puede modificar el algoritmo)&lt;/p&gt;  &lt;p&gt;Como condici&amp;#243;n... tiene que compilar con Visual Studio 2008 y ser c&amp;#243;digo .NET ( ahora bien, puedes usar herramientas/librer&amp;#237;as instaladas sobre Visual Studio 2008 )&lt;/p&gt;  &lt;p&gt;Te parece bien hasta este &lt;strong&gt;domingo 22/11/08 &lt;/strong&gt;a las 6pm en tiempo GMT+1?&lt;/p&gt;  &lt;p&gt;Para hacer esto un poco m&amp;#225;s interesante... habr&amp;#225; un detalle para el m&amp;#225;s r&amp;#225;pido.... a no ser que gane yo ;)&lt;/p&gt;  &lt;p&gt;Como el detalle te lo mandar&amp;#233; a casa, me temo que lo tenemos que restringir a los participantes de Espa&amp;#241;a ( lo siento por el resto, pero si no, os iba a salir el detalle caro de narices en la aduana :_) ) &lt;/p&gt;  &lt;p&gt;Los que os anim&amp;#233;is... cuando est&amp;#233;is listos pod&amp;#233;is enviarme vuestros proyectos / soluciones a &lt;strong&gt;david.salgado&lt;/strong&gt; en &lt;strong&gt;microsoft.com&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Publicar&amp;#233; el ganador el lunes &lt;strike&gt;13/11/08&lt;/strike&gt; 23/11/08 (tnx phobeo)&lt;/p&gt;  &lt;p&gt;Happy Coding!!!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9125150" width="1" height="1"&gt;</description></item><item><title>Interpretar los contenidos del PDC sin agobiarse</title><link>http://blogs.msdn.com/b/davidsalgado/archive/2008/11/10/interpretar-los-contenidos-del-pdc-sin-agobiarse.aspx</link><pubDate>Mon, 10 Nov 2008 21:35:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9058434</guid><dc:creator>DavidSalgado</dc:creator><slash:comments>5</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/davidsalgado/rsscomments.aspx?WeblogPostID=9058434</wfw:commentRss><comments>http://blogs.msdn.com/b/davidsalgado/archive/2008/11/10/interpretar-los-contenidos-del-pdc-sin-agobiarse.aspx#comments</comments><description>&lt;P&gt;¡Que nadie se agobie! :)&lt;/P&gt;
&lt;P&gt;Hace un par de semanas fue el PDC en los Ángeles, el professional developers conference. En este evento, los grupos de producto de Microsoft nos presentan lo que nos están preparando para el futuro. Futuro a un par de años!!! de modo que nada de agobiarse por aprender C# 4.0 o VB10 ahora mismo. Los que lo estamos haciendo es porque a) Estamos intentando ver la mejor manera posible de contarlo luego, crear documentación, demos... b) Son MUY frikis y lo hacen por hobby :)&lt;/P&gt;
&lt;P&gt;De todos modos, siguiendo con el ejemplo, si cualquiera queréis probar alguna de las nuevas características de los futuros lenguajes, tenéis disponible en internet una máquina virtual con los bits de Visual Studio 2010. Sinceramente, por ahora creo que a la gran mayoría de la gente no os merece la pena bajarlo, a día de hoy y teniendo en cuenta el tiempo que falta, con leeros el post y ver hacia a donde apuntan las cosas es más que suficiente :)&lt;/P&gt;
&lt;P&gt;Pero por si acaso... aquí esta el enlace&lt;/P&gt;
&lt;P&gt;&lt;A title="Download details- Visual Studio 2010 and .NET Framework 4.0 CTP" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=922B4655-93D0-4476-BDA4-94CF5F8D4814" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyId=922B4655-93D0-4476-BDA4-94CF5F8D4814"&gt;Download details- Visual Studio 2010 and .NET Framework 4.0 CTP&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Volvemos al PDC, como os he comentado, es un evento de tendencias, y como tal creo que hemos de tomarlo, se han dicho muchos nombres, pero a mi me gusta ver el conjunto. En definitiva&lt;/P&gt;
&lt;P&gt;¿Qué podemos sacar en claro de todo esto?&lt;/P&gt;
&lt;P&gt;Por un lado, con los lanzamientos de &lt;STRONG&gt;Azure&lt;/STRONG&gt; y de la infraestructura de &lt;STRONG&gt;Azure Services&lt;/STRONG&gt;, vemos que en el mundo del desarrollo nos acercamos hacia la nube, ya sea para alojar nuestras aplicaciones (&lt;STRONG&gt;Azure hosting&lt;/STRONG&gt;), nuestros datos (&lt;STRONG&gt;SQL Services&lt;/STRONG&gt;), gestión de identidades y relaciones de confianza (&lt;STRONG&gt;Genova&lt;/STRONG&gt;, &lt;STRONG&gt;.NET Services&lt;/STRONG&gt;)... además de ir asumiendo los modelos de desarrollo y de negocio subyacentes, como desarrolladores, si no lo estamos, nos conviene ir familiarizándonos con la programación REST, el consumo de feeds, la gestión de identidades...&lt;/P&gt;
&lt;P&gt;Con &lt;STRONG&gt;OSLO&lt;/STRONG&gt;, &lt;STRONG&gt;Quadrant&lt;/STRONG&gt; y &lt;STRONG&gt;M&lt;/STRONG&gt;..vemos la importancia que se le está dando a las herramientas de Modelado, sabes lo que es un modelo? sabes lo que es Model Driven Development? no?&amp;nbsp; No te preocupes...aun no sale ni en la &lt;A href="http://en.wikipedia.org/wiki/Model_Driven_Development" mce_href="http://en.wikipedia.org/wiki/Model_Driven_Development"&gt;wikipedia&lt;/A&gt;....casi nadie se maneja en estos términos hoy en día... pero dentro de dos años parece que van a pegar fuerte :)&amp;nbsp; 2 años...tenemos tiempo para leer un par de artículos y ver si nos interesa, no?&lt;/P&gt;
&lt;P&gt;Muchas sesiones y peso en &lt;STRONG&gt;Visual Studio Team Foundation&lt;/STRONG&gt;... ¿qué extraemos? Que la calidad en el proceso de desarrollo de software interesa cada día más, y cuál es el Call To Action que debemos tener? Es sencillo, testing, testing, testing, testing... y metodologías, metodologías y metodologías. Si no haces pruebas en tu código ( ya no digo TDD...digo unas pruebas unitarias e tu código) ponte YA las pilas.&lt;/P&gt;
&lt;P&gt;Mejoras en los lenguajes, &lt;STRONG&gt;C#4&lt;/STRONG&gt; y &lt;STRONG&gt;VB10&lt;/STRONG&gt;. Puede que a más de uno le piten los oídos con lo que voy a decir y con la forma de simplificar los avances en el lenguaje...lo siento si es así, pero es lo que pienso sinceramente O=)&amp;nbsp; Para mi todo va en una dirección...normas un poco más laxas para centrarnos en los resultados y no en la forma.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Se añade un tipo de datos nuevo llamado &lt;STRONG&gt;dynamic&lt;/STRONG&gt;. Será como int, object, string... De modo que podremos declarar una variable para que su comportamiento sea dinámico. Por ejemplo, simplificará el código las operaciones con lenguajes dinámicos (Python, javascript, Ruby...) más detalles en otro post..&lt;/P&gt;
&lt;P&gt;Parámetros opcionales en las funciones. Esta es una funcionalidad nueva de C#. Se había pedido desde hace muuuuucho tiempo, por fin lo han incluido ;)&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;CoVarianza y ContraVarianza. Para simplificar las operaciones con tipos genéricos y que el compilador se comporte como nosotros esperamos en ciertas situaciones. Entraré más en detalle en el futuros posts.&lt;/P&gt;
&lt;P&gt;Mejora de la &lt;STRONG&gt;interoperabilidad con COM&lt;/STRONG&gt;. ¿Alguien dudaba de que COM seguía por ahí abajo? :) Se agradece que hayan retomado el tema win32 y que se hagan esfuerzos en mejorar la compatibilidad.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Hubo muchas sesiones sobre el nuevo &lt;STRONG&gt;Visual C++ 10&lt;/STRONG&gt;. De hecho una de ellas daba a entender una revolución en el mundo de los desarrolladores C++, igual fue simplemente un buen truco de marketing, pero me quedé con muchas ganas de ver "Microsoft Visual C++: 10 is the new 6" Lo tengo en tareas pendientes.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Windows 7&lt;/STRONG&gt; me sorprendió para bien, mejoras en cuanto a la usabilidad y experiencia de usuario en las tareas más habituales, sobre todo reduciendo el número de clicks para hacer lo que queremos hacer, reducir el número de notificaciones que nos aparecen por pantalla, etcétera... Se añaden características muy interesantes para el mundillo profesional, montar vhd's como discos duros en el storage manager, poder habilitar bitlocker en llaves USB y discos duros externos, trabajar con remote desktop en múltiples pantallas... Pero lo más importante en mi opinión, es que emantiene la compatibilidad con vista (mismos drivers y mismas aplicaciciones) de modo que si te funciona con Vista o con XP... te funcionará con Windows 7 y de hecho, por lo que vimos, te funcionará más rápido ;)&lt;/P&gt;
&lt;P&gt;Podríamos seguir poniendo nombres durante muchas páginas, pero creo que estos han sido los lanzamientos más importantes, como he dicho al principio... no os lancéis a aprender estas cosas todavía! leed entre líneas e &lt;STRONG&gt;id alineando vuestro trabajo/aprendizaje con la tendencia, no con el producto en concreto&lt;/STRONG&gt; ;)&lt;/P&gt;
&lt;P&gt;Si alguno tiene curiosidad por ver alguna sesión, hay muchas muy buenas, personalmente la que más me gustó fue la de &lt;STRONG&gt;Parallel programming for Managed developers de Daniel Moth&lt;/STRONG&gt;, espectacular.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.microsoftpdc.com/" mce_href="http://www.microsoftpdc.com"&gt;http://www.microsoftpdc.com&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Happy Videos!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9058434" width="1" height="1"&gt;</description></item><item><title>.NET Framework Client profile  ó  sku="client"</title><link>http://blogs.msdn.com/b/davidsalgado/archive/2008/09/18/net-framework-client-profile-sku-client.aspx</link><pubDate>Thu, 18 Sep 2008 14:18:36 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8957136</guid><dc:creator>DavidSalgado</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/davidsalgado/rsscomments.aspx?WeblogPostID=8957136</wfw:commentRss><comments>http://blogs.msdn.com/b/davidsalgado/archive/2008/09/18/net-framework-client-profile-sku-client.aspx#comments</comments><description>&lt;p&gt;Con la cantidad de caracter&amp;#237;sticas nuevas (y entretenidas) que trae el SP1 de .NET y Visual Studio 2008 no es de extra&amp;#241;ar que alguna de ellas nos pase desapercibidas. Seguro que la mayor&amp;#237;a de vosotros sab&amp;#233;is que el SP1 trae mejoras en el rendimiento de WPF, que viene Dynamic Data, Data Services (codename astoria), el entity framework, ASP.NETMVC... pero seguro que a alguno el &lt;strong&gt;client profile &lt;/strong&gt;le pilla por sorpresa :)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&amp;#191;En qu&amp;#233; consiste?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;El .NET Framework &lt;strong&gt;Client Profile&lt;/strong&gt; es una distribuci&amp;#243;n del framework optimizada para aplicaciones cliente. Es sencillo, no trae las librer&amp;#237;as orientadas a hacer trabajo en el servidor. Esta reducci&amp;#243;n hace que ocupe tan solo unos 26Mb y haga la instalaci&amp;#243;n, despliegue, etc&amp;#233;tera... m&amp;#225;s r&amp;#225;pido y sencillo.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&amp;#191;C&amp;#243;mo hago que mi aplicaci&amp;#243;n compile utilizando ese framework?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;F&amp;#225;cil, f&amp;#225;cil... vamos a probarlo. Crea una nueva aplicaci&amp;#243;n WPF, cuando est&amp;#233; creada, en el explorador de soluciones, abre las propiedades del proyecto reci&amp;#233;n creado y vete a la pesta&amp;#241;a de aplicaci&amp;#243;n&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/6dcb3.NETFrameworkClientprofileskuclient_BAFD/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/6dcb3.NETFrameworkClientprofileskuclient_BAFD/image_thumb.png" width="494" height="209" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#191;Ves el checkbox de &amp;quot;Client-only framework subset&amp;quot; ? Pues m&amp;#225;rcalo y listo. Est&amp;#225;s utilizando el .NET Framework Client Profile.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&amp;#191;Implicaciones?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;El compilador contrastar&amp;#225; los assemblies referenciados con una lista para ver si la aplicaci&amp;#243;n cumple con los requisitos del Client Profile. En caso de encontrar un assembly no presente en el Client Profile nos mostrar&amp;#225; un warning. Tanto en el explorador de soluciones...&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/6dcb3.NETFrameworkClientprofileskuclient_BAFD/image_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/6dcb3.NETFrameworkClientprofileskuclient_BAFD/image_thumb_2.png" width="243" height="145" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;como en la vista de errores...&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/6dcb3.NETFrameworkClientprofileskuclient_BAFD/image_8.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/6dcb3.NETFrameworkClientprofileskuclient_BAFD/image_thumb_3.png" width="498" height="147" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt; Adem&amp;#225;s habr&amp;#225; una modificaci&amp;#243;n en el archivo de configuraci&amp;#243;n de la aplicaci&amp;#243;n, incluir&amp;#225; la sigueinte l&amp;#237;nea&lt;/p&gt;  &lt;p&gt;&amp;lt;startup&amp;gt;&amp;lt;supportedRuntime version=&amp;quot;v2.0.50727&amp;quot; &lt;strong&gt;sku=&amp;quot;Client&amp;quot;&lt;/strong&gt;/&amp;gt;&amp;lt;/startup&amp;gt;&lt;/p&gt;  &lt;p&gt;En el caso de que la m&amp;#225;quina cliente NO tenga .net instalado, se le pedir&amp;#225; que instale la parte cliente (m&amp;#225;s ligera y r&amp;#225;pida de instalar para empezar a funcionar. Se actualizar&amp;#225; a la full m&amp;#225;s adelante como actualizaci&amp;#243;n de la m&amp;#225;quina). En caso de que este instalado .NET framework, ignorar&amp;#225; la parte de sku=&amp;quot;client&amp;quot;&lt;/p&gt;  &lt;p&gt;Aqu&amp;#237; ten&amp;#233;is el enlace a la lista completa de espacios de nombres que est&amp;#225;n presentes en el Client Profile&lt;/p&gt;  &lt;p&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/aa187917.aspx" href="http://msdn.microsoft.com/en-us/library/aa187917.aspx"&gt;http://msdn.microsoft.com/en-us/library/aa187917.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;OJO&lt;/strong&gt; yo puedo referenciar un assembly que NO este disponible en el Client Profile y luego asegurarme que esta en la m&amp;#225;quina cliente de uno u otro modo :)&lt;/p&gt;  &lt;p&gt;Happy Hacking!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Algunos Recursos&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt; Client Profile Q&amp;amp;A : &lt;a title="http://windowsclient.net/wpf/wpf35/wpf-35sp1-client-profile.aspx" href="http://windowsclient.net/wpf/wpf35/wpf-35sp1-client-profile.aspx"&gt;http://windowsclient.net/wpf/wpf35/wpf-35sp1-client-profile.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8957136" width="1" height="1"&gt;</description></item><item><title>Internet Explorer 8 : A grandes rasgos</title><link>http://blogs.msdn.com/b/davidsalgado/archive/2008/08/28/internet-explorer-8-a-grandes-rasgos.aspx</link><pubDate>Thu, 28 Aug 2008 12:26:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8903097</guid><dc:creator>DavidSalgado</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/davidsalgado/rsscomments.aspx?WeblogPostID=8903097</wfw:commentRss><comments>http://blogs.msdn.com/b/davidsalgado/archive/2008/08/28/internet-explorer-8-a-grandes-rasgos.aspx#comments</comments><description>&lt;P&gt;Aproximadamente a las 12am pst del 27/8/08 se lanzaba la beta 2 del Internet Explorer 8 :) Os enlazo al blog oficial donde lo han anunciado: &lt;A href="http://blogs.msdn.com/ie" mce_href="http://blogs.msdn.com/ie"&gt;http://blogs.msdn.com/ie&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Iremos viendo diferentes funcionalidades y en qué puede o no interesarnos cada una de ellas, pero en este post voy a intentar aclarar ese halo que acompaña al producto y al hecho (o no) de que algunas webs no se muestren correctamente si navegamos con IE8. Profundizaremos en los modos de compatibilidad más adelante. Este post esta orientado a las personas que han oido algo, pero que todavía no se han puesto con IE8.&lt;/P&gt;
&lt;P&gt;El grupo de IE8 ha hecho un gran trabajo a la hora de incorporar estándares dentro del producto (pasan el &lt;A href="http://en.wikipedia.org/wiki/Acid2" mce_href="http://en.wikipedia.org/wiki/Acid2"&gt;acid2&lt;/A&gt;, CSS 2.1, ARIA, UIA), al navegar con IE8, por defecto estaremos utilizando un modo de navegación que sigue a rajatabla el estándar a la hora de &lt;EM&gt;renderizar&lt;/EM&gt; una página web. &lt;/P&gt;
&lt;P&gt;La implicación directa para los desarrolladores web:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Si tu sitio web no esta desarrollado de acuerdo a los estándares puede que los usuarios que naveguen por tu web vean desplazados los bloques, imágenes... porque por defecto su IE8 va a analizar tu página de acuerdo con el estándar.&lt;/P&gt;
&lt;P&gt;Esta beta 2 de IE8 es el momento perfecto para empezar a hacer pruebas de cómo se presenta tu sitio web de acuerdo al estándar.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;HORROR!!!&lt;/STRONG&gt; todos hemos hecho alguna página que se ve 'mas ó menos' en ie y en ffx... qué va a ser de nosotros? %dios% haz que un batallón de duendes retoque todo mi markup para que sea acorde al estándar y no me tenga que poner a cambiarlo todo&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;RELAX&lt;/STRONG&gt;, obviamente, los del grupo de IE no iban a permitir que todo el mundo tenga que rehacer frontales, sería una barbaridad. De modo que si tu página no se &lt;EM&gt;renderiza&lt;/EM&gt; igual en ie8 que en ie7, no pasa nada, no saltes todavía por la ventana con la CPU al cuello. Hay mecanismos tanto del lado del servidor como del lado del cliente para emular la presentación ie7 y que el usuario final no perciba ningún efecto. Estos mecanismos son tan complicados como hacer click en un botón ó añadir una línea en el webconfig o en la cabecera del html :)&lt;/P&gt;
&lt;P&gt;Este tema de la navegación en modo estándar puede ser de lo más comentado, pero &lt;STRONG&gt;no es lo único nuevo que trae IE8&lt;/STRONG&gt;, hay numerosas funcionalidades nuevas, interesantes tanto para perfiles de desarrollo, como para perfiles de IT, como para usuarios finales. Por ejemplo:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;InPrivacy Browsing&lt;/STRONG&gt;... Mecanismos para poder realizar una navegación en modo privado. No se guarda el historial, las cookies... &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;InPrivacy Blocking&lt;/STRONG&gt;... Evita que sitios de terceros puedan perfilarnos en Internet sin nuestro consentimiento.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Accelerators&lt;/STRONG&gt;... Selecciona texto en una página web, y a través de un menú de contexto puedes escoger que ese texto sea el parámetro de un serviico web al que invocas. Seleccionas el texto y 'Buscar en Live' o 'buscar en google' ó 'definir en wikipedia' ó 'posicionar en un mapa' !! veréis en un post futuro lo fácil que es construir estos aceleradores&lt;/P&gt;
&lt;P&gt;y bastantes más: &lt;STRONG&gt;Web Slices,&lt;/STRONG&gt; &lt;STRONG&gt;Mejoras en rendimiento de Javascript, Herramientas integradas para desarrolladores, Domain Hjighlighting, SmartScreen, Nuevas clases para potenciar AJAX, soporte de ARIA e UIA&lt;/STRONG&gt;...&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Venga... a bajarlo y a probarlo todos! :)&amp;nbsp; Iré comentando por aqui algunas de esatas funcionalidades y cómo sacarles partido.&lt;/P&gt;
&lt;P&gt;happy browsing!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8903097" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/davidsalgado/archive/tags/IE8/">IE8</category></item><item><title>Cazadores de Mitos : Firefox desarrollará un plugin para tumbar IE</title><link>http://blogs.msdn.com/b/davidsalgado/archive/2008/08/20/cazadores-de-mitos-firefox-desarrollar-un-plugin-para-tumbar-ie.aspx</link><pubDate>Wed, 20 Aug 2008 16:43:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8881250</guid><dc:creator>DavidSalgado</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/davidsalgado/rsscomments.aspx?WeblogPostID=8881250</wfw:commentRss><comments>http://blogs.msdn.com/b/davidsalgado/archive/2008/08/20/cazadores-de-mitos-firefox-desarrollar-un-plugin-para-tumbar-ie.aspx#comments</comments><description>&lt;p&gt;Halaaaaaa... vengaaaaa.. qui&amp;#233;n da mas?&lt;/p&gt;  &lt;p&gt;Este tipo de comentarios que se ven &amp;#250;ltimamente en internet son el efecto bola de nieve en su m&amp;#225;xima expressi&amp;#243;n, en la medida en la que pueda intentar&amp;#233; ir matando alguno de esos mitos, el problema es que lleva muy poco tiempo postear el mito y agrandarlo, pero bastante el buscar las fuentes y contrastarlo :_) &lt;/p&gt;  &lt;p&gt;A lo que vamos.&lt;/p&gt;  &lt;p&gt;La especificaci&amp;#243;n de HTML 5 propone una serie de nuevos elementos dentro de HTML, entre ellos, el Canvas. Si bien el grupo de IE8 ha hecho grandes avances en cuanto a la adopci&amp;#243;n de est&amp;#225;ndares en internet, pasa el ACID2, ha subido 2524 nuevos casos de prueba adicionales para CSS2.1.. etc&amp;#233;tera...Por ahora el grupo de IE no ha hecho p&amp;#250;blico ning&amp;#250;n comentario sobre la adopci&amp;#243;n o no de este elemento. Est&amp;#225;n trabajando en la beta 2 de IE.&lt;/p&gt;  &lt;p&gt;Parece ser que hay un proyecto para adaptar la implementaci&amp;#243;n del Canvas de Mozilla y poder ejecutarlo en IE, &lt;a href="http://blog.vlad1.com/2008/07/30/no-browser-left-behind/"&gt;Vladimir Vukicevic&lt;/a&gt; [1] esta trabajando en ello. COmo comentario adicional, dice que aun teniendo la implementaci&amp;#243;n del Canvas, &amp;#233;ste es solo una pieza y que puede que algun sitio no funcione porque puede echar de menos otras piezas presentes en el mundo mozilla que no esten en IE.&lt;/p&gt;  &lt;p&gt;Para darle un contexto de ejecuci&amp;#243;n controlado al canvas y que no se encuentre &amp;quot;s&amp;#243;lo&amp;quot; hace referencia al proyecto &lt;a href="https://wiki.mozilla.org/Tamarin:ScreamingMonkey"&gt;&amp;quot;mono grit&amp;#243;n&amp;quot;&lt;/a&gt; [2] que consiste en integrar un motor de javascript diferente dentro de IE, este motor ser&amp;#237;a el del proyecto Tamarin [3]. Como v&amp;#233;is en los sitios (pq espero que no os est&amp;#233;is creyendo mi post y est&amp;#233;is contrastando fuentes) son proyectos en curso.&lt;/p&gt;  &lt;p&gt;Siguiendo con su idea/proyecto del canvas, Vladimir comenta tb que hay que trabajar en la forma de distribuci&amp;#243;n, que la experiencia de que sea un ActiveX con una infobar y que haya que aceptar no le parece adecuada.&lt;/p&gt;  &lt;p&gt;Y ahora la parte del bulo.. en un website (arstechnica.com) [0] el autor de la noticia comenta, que si adobe arrimase el hombro al proyecto de Vladimir, todo ser&amp;#237;a m&amp;#225;s f&amp;#225;cil porque podr&amp;#237;a ayudar con la distribuci&amp;#243;n... copio textualmente:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&amp;quot;...This is purely speculation&lt;/strong&gt;, but If Adobe decided to ship Screaming Monkey and the Canvas functionality as part of the next major iteration of the Flash plugin, it would rapidly accelerate adoption and get it onto lots of computers...&amp;quot;&lt;/p&gt;  &lt;p&gt;Os hab&amp;#233;is fijado en la parte de &amp;quot;this is purely speculation&amp;quot; ? :) si? perfecto entonces. Parece ser que por ahora Firefox y adobe no intentan tumbar a nadie.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Conclusi&amp;#243;n ( en mi opini&amp;#243;n personal e intransferible ):&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Me encanta que se desarrolle algo tan genial para IE, cualquiera de los dos proyectos, tanto el de canvas como el de poder meter otros motores de Javascript. Al fin de al cabo, lo que todos queremos como usuarios finales es que las cosas funcionen lo mejor posible,no?&lt;/p&gt;  &lt;p&gt;Ahora bien... con lo centrado que esta el equipo de IE8 actualmente en los est&amp;#225;ndares dudo que no tengan en proyecto la implemenaci&amp;#243;n de los elementos de HTML5.&lt;/p&gt;  &lt;p&gt;Algunos recursos:&lt;/p&gt;  &lt;p&gt;[0] &lt;a title="http://arstechnica.com/news.ars/post/20080819-mozilla-drags-ie-into-the-future-with-canvas-element-plugin.html" href="http://arstechnica.com/news.ars/post/20080819-mozilla-drags-ie-into-the-future-with-canvas-element-plugin.html"&gt;http://arstechnica.com/news.ars/post/20080819-mozilla-drags-ie-into-the-future-with-canvas-element-plugin.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;[1] &lt;a title="http://blog.vlad1.com/2008/07/30/no-browser-left-behind/" href="http://blog.vlad1.com/2008/07/30/no-browser-left-behind/"&gt;http://blog.vlad1.com/2008/07/30/no-browser-left-behind/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;[2] &lt;a title="https://wiki.mozilla.org/Tamarin:ScreamingMonkey" href="https://wiki.mozilla.org/Tamarin:ScreamingMonkey"&gt;https://wiki.mozilla.org/Tamarin:ScreamingMonkey&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;[3] &lt;a title="http://www.mozilla.org/projects/tamarin/" href="http://www.mozilla.org/projects/tamarin/"&gt;http://www.mozilla.org/projects/tamarin/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;(si... mis cuentas empiezan en 9)&lt;/p&gt;  &lt;p&gt;Happy Hunting!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8881250" width="1" height="1"&gt;</description></item><item><title>Las dichosas Cross Domain Calls</title><link>http://blogs.msdn.com/b/davidsalgado/archive/2008/08/20/las-dichosas-cross-domain-calls.aspx</link><pubDate>Wed, 20 Aug 2008 13:23:06 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8881046</guid><dc:creator>DavidSalgado</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/davidsalgado/rsscomments.aspx?WeblogPostID=8881046</wfw:commentRss><comments>http://blogs.msdn.com/b/davidsalgado/archive/2008/08/20/las-dichosas-cross-domain-calls.aspx#comments</comments><description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Si desarrollas para la web, seguro que alguna vez te has enfrentadoa&amp;#160; una Cross Domain Call :) En este post vamos a ver en que consisten, por qu&amp;#233; existen y si hay alg&amp;#250;n metodo para evitarlas.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&amp;#191;Qu&amp;#233; es una Cross Domain Call?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Es un mecanismo de seguridad de las comunicaciones en navegadores actuales. Evitan que un script (XMLHttpRequest de AJAX) o una aplicaci&amp;#243;n (Flash, Silverlight) de una p&amp;#225;gina web puedan acceder a un servidor web diferente del que residen.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&amp;#191;Por qu&amp;#233; existe?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Intentan ayudar a evitar dos formas habituales de sabotaje en internet, el (1) Cross Site Request Forgery (XSRF o session riding)&amp;#160; y el (2) Cross Site Scripting (XSS).&lt;/p&gt;  &lt;p&gt;(1) Un sitio web malicioso y con mala baba suplanta al usuario que esta navegando y accede a otra aplicaci&amp;#243;n en su nombre. Por ejemplo, yo navego a una p&amp;#225;gina malvada y &amp;#233;sta utiliza las cookies de mi navegador para acceder a mi flickr o banca online (o lo que sea) utilizando mis contexto ( &lt;a href="http://migaleria/borrar?photoId=3"&gt;http://migaleria/borrar?photoId=3&lt;/a&gt; ).&lt;/p&gt;  &lt;p&gt;(2) Un sitio web malicioso y prom&amp;#237;scuo me roba informaci&amp;#243;n y la env&amp;#237;a a un sitio de terceros. XSS Implica que tiene que haber una inyecci&amp;#243;n de Javascript.&amp;#160; Por ejemplo, abro un mensaje malicioso en la intranet y este lee informaci&amp;#243;n de mi contexto y la env&amp;#237;a a un tercero.&lt;/p&gt;  &lt;p&gt;De XSS sabe bastante PHPNuke, debido a la importancia que adquiri&amp;#243; el producto hace algunos a&amp;#241;os, todos los malotes de internet se dedicaron a intentar explotarlo para acceder a sitios en internet. Por desgracia le encontraron fallos de XSS y muchos sitios fueron comprometidos.... coders del mundo!!! que la seguridad no es un a&amp;#241;adido, que es un requisito!!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&amp;#191;Hay formas de evitarlas?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Bien es cierto que aunque sean un mecanismo de protecci&amp;#243;n para el usuario final, a los desarrolladores nos tocan un poquito las narices, no? Pero como dicen las canas... no nos&amp;#160; preocupemos, que menos la muerte, todo tiene soluci&amp;#243;n :) ( hay mashups por ahi, no? )&lt;/p&gt;  &lt;p&gt;Tenemos varias opciones para acceder a ese contenido alojado en otro servidor desde el browser donde se ejecuta nuestra aplicaci&amp;#243;n, veamos las m&amp;#225;s habituales:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Proxy&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;Hacemos que el script o la aplicaci&amp;#243;n llamen a un proxy del servicio remoto que hemos puesto en nuestro servidor web. De modo que si yo quiero informaci&amp;#243;n de twitter, en lugar de llamar desde Silverlight al servicio de twitter, lo que har&amp;#233; ser&amp;#225; llamar a un servicio web que est&amp;#233; en mi servidor y desde este servicio web alojado en el backend, llamar al servicio de twitter.&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;CrossDomain.xml&lt;/strong&gt;&amp;#160;&amp;#160; y &lt;strong&gt;ClientAccessPolicy.xml&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;Son archivos que van a indicar que el servidor ajeno a nuestra aplicaci&amp;#243;n conf&amp;#237;a en las llamadas. De modo que siguiendo con lo de twitter... si estos archivos est&amp;#225;n presentes en el sevidor de twitter, y permiten acceso a nuestro dominio, podremos acceder desde las aplicaciones cliente, por ejemplo&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;twitter.com/crossdomain.xml&amp;#160; - static.flickr.com/crossdomain.xml &lt;/p&gt;    &lt;p&gt;Para Silverlight en MSDN &lt;a title="How to- Make a Service Available Across Domain Boundaries" href="http://msdn.microsoft.com/en-us/library/cc197955(VS.95).aspx"&gt;How to- Make a Service Available Across Domain Boundaries&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;En otro post veremos ejemplos espec&amp;#237;ficos a Silverlight y ASP.NET AJAX :)&lt;/p&gt;  &lt;p&gt;M&amp;#225;s informaci&amp;#243;n sobre las Cross Domain Calls en MSDN ( Client Side Cross-Domain Security )&lt;/p&gt;  &lt;p&gt;&lt;a title="http://code.msdn.microsoft.com/xdsecuritywp/Release/ProjectReleases.aspx?ReleaseId=1157" href="http://code.msdn.microsoft.com/xdsecuritywp/Release/ProjectReleases.aspx?ReleaseId=1157"&gt;http://code.msdn.microsoft.com/xdsecuritywp/Release/ProjectReleases.aspx?ReleaseId=1157&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Hapy Hacking!!&lt;/p&gt;  &lt;p&gt;&amp;#160; Ds&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8881046" width="1" height="1"&gt;</description></item><item><title>Olimpiada de cursos online MSDN</title><link>http://blogs.msdn.com/b/davidsalgado/archive/2008/08/13/olimpiada-de-cursos-online-msdn.aspx</link><pubDate>Wed, 13 Aug 2008 13:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8857394</guid><dc:creator>DavidSalgado</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/davidsalgado/rsscomments.aspx?WeblogPostID=8857394</wfw:commentRss><comments>http://blogs.msdn.com/b/davidsalgado/archive/2008/08/13/olimpiada-de-cursos-online-msdn.aspx#comments</comments><description>&lt;P&gt;ok, si, de acuerdo, es un título horrible... pero por estas fechas algo hay que decir de los Juegos Olímpicos, no? x)&amp;nbsp; Me encantan y es una verdadera pena que sean cada tanto tiempo, aunque no creo que sea yo solo verdad?&amp;nbsp; o acaso,&amp;nbsp; a alguien lo le gusta ver los 100m lisos? o venga, que levante la mano el que no se quede embobado mirando a los de saltos sincronizados o a los gimnastas en las anillas.&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;Me pego verdaderas jornadas maratonianas viviendo los diferidos con toda la pasión del más puro directo, eso sí.. con la certeza de cómo están las medallas asignadas pero con la curiosidad de cómo se ha llegado a ese resultado ( habéis visto el españa china en blanoncesto??? ese último cuarto y esa prorroga? mira que sabía que ganábamos pero me estaba comiendo los dedos en el diferido ).&lt;/P&gt;
&lt;P&gt;Por otro lado, además del interés que nos pueda suscitar una u otra disciplina deportiva, hemos de reconocer que también es una manera de pasar el tiempo, no?&amp;nbsp; ( las pruebas de ciclismo en ruta, contrarreloj, marcha ... anda que no pasamos minutos embobados entre que pasa y no pasa algo)&amp;nbsp; Este tiempo invertido en los Juegos Olímpicos nos plantea un problema....qué haremos cuando se acaben? &lt;/P&gt;
&lt;P&gt;&amp;gt;&amp;gt;&amp;gt;Horror, pánico.... sudor frío... q será de nuestro tiempo libre?&lt;/P&gt;
&lt;P&gt;Pues yo os tengo una propuesta O=)&amp;nbsp; al igual que el año pasado, aprovecho esta temporada que para muchos es más relajada laboralmente hablando, para recordaros la disponibilidad de los &lt;B&gt;&lt;A href="http://www.microsoft.com/spanish/msdn/spain/cursosonline.mspx" target=_blank mce_href="http://www.microsoft.com/spanish/msdn/spain/cursosonline.mspx"&gt;cursos online gratuitos&lt;/A&gt; &lt;/B&gt;de formación en &lt;B&gt;MSDN&lt;/B&gt;. Seguro que encontráis alguno que os puede ayudar en vuestro día a día o en vuestro plan de carrera.&lt;/P&gt;
&lt;P&gt;Por ejemplo:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;A href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032379566&amp;amp;Culture=es-ES" mce_href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032379566&amp;amp;Culture=es-ES"&gt;Curso de Expression Web&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032378466&amp;amp;Culture=es-ES" mce_href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032378466&amp;amp;Culture=es-ES"&gt;Curso de Silverlight&lt;/A&gt; &lt;BR&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;A href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032379565&amp;amp;Culture=es-ES" mce_href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032379565&amp;amp;Culture=es-ES"&gt;Curso de Servicios Web&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.microsoft.com/spanish/msdn/spain/cursosonline.mspx" mce_href="http://www.microsoft.com/spanish/msdn/spain/cursosonline.mspx"&gt;... &lt;/A&gt;&lt;BR&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Veréis que hay algunos que estan con la versión 2005 de Visual Studio, estamos en proceso de actualizarlos a VS2008 y .NET 3.5 Iremos avisando por aquí de la disponibilidad de esos cursos.&lt;/P&gt;
&lt;P&gt;Os lo recuerdo... adoramos el feedback, es la única manera que tenemos de mejorar y de intentar ayudaros con lo que necesitéis, a si que hacednos llegar cualquier comentario de los cursos, esta habilitado el contacto en el blog para lo que necesitéis.&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;Espero que os sirvan de ayuda ;)&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;Disfrutad de las merecidas vacaciones, de los juegos, de la cerveza con limón y happy hacking!! &lt;BR&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8857394" width="1" height="1"&gt;</description></item><item><title>Estudiante y viviendo en Madrid ( España ) ???</title><link>http://blogs.msdn.com/b/davidsalgado/archive/2008/07/07/estudiante-y-viviendo-en-madrid-espa-a.aspx</link><pubDate>Mon, 07 Jul 2008 13:05:56 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8701268</guid><dc:creator>DavidSalgado</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/davidsalgado/rsscomments.aspx?WeblogPostID=8701268</wfw:commentRss><comments>http://blogs.msdn.com/b/davidsalgado/archive/2008/07/07/estudiante-y-viviendo-en-madrid-espa-a.aspx#comments</comments><description>&lt;p&gt;Al igual que el a&amp;#241;o pasado, volvemos a la carga para ver si alg&amp;#250;n estudiante se anima a venirse con nosotros de becari@ de comunidades t&amp;#233;cnicas&amp;#160; :)&lt;/p&gt;  &lt;p&gt;&amp;#191;Estudiante de qu&amp;#233;?&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Preferiblemente &lt;strong&gt;estudios Universitarios en carrera t&amp;#233;cnica&lt;/strong&gt;. Antes de que lo mencion&amp;#233;is en los comentarios, ya sabemos que no es lo m&amp;#225;s justo... hay otros estudios igual de v&amp;#225;lidos, hay personas que sin haber hecho estudios universitarios son muy v&amp;#225;lidos para el puesto y personas que acaban estudios de inform&amp;#225;tica sin haber tirado una l&amp;#237;nea o tocado un cable de red, pero las condiciones de la beca son esas y dependen de recursos humanos :_) Lo sentimos.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#191;Con qui&amp;#233;n trabajar&amp;#237;as?&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;El &lt;strong&gt;departamento de Desarrollo y Plataforma de Microsoft&lt;/strong&gt;. Somos unas 20 personas entre 'evangelistas', marketing, especialistas de producto y un par de managers :)&amp;#160; Algunos nombres que igual has le&amp;#237;do por inet o visto en presentaciones por ahi.... David Carmona, Aurelio Porras, Ethel Garc&amp;#237;a-Sim&amp;#243;n, Alfonso Rodriguez, Beatriz Ordo&amp;#241;ez, Milagros Moreno, Elisa Garcia, Isabel G&amp;#243;mez...&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#191;Qu&amp;#233; es lo que vas a hacer si te unes al equipo?&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Uf... puedes hacer &lt;strong&gt;de todo un poco y dependiendo del perfil que tengas&lt;/strong&gt;... desde &lt;strong&gt;tirar l&amp;#237;neas&lt;/strong&gt;, ayudar en una campa&amp;#241;a de &lt;strong&gt;marketing&lt;/strong&gt;, trabajar con contenido &lt;strong&gt;multimedia&lt;/strong&gt;, &lt;strong&gt;dise&amp;#241;ar&lt;/strong&gt;, trabajar con cosas de &lt;strong&gt;sistemas&lt;/strong&gt;, acompa&amp;#241;arnos a &lt;strong&gt;eventos&lt;/strong&gt; / reuniones... todo depende de una combinaci&amp;#243;n de lo que te apetezca hacer y lo que tengamos que hacer por gui&amp;#243;n. Nuestro departamento es un peque&amp;#241;o Microsoft en s&amp;#237; mismo y hacemos de todo un poco.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#191;Hay que ser un semidios de .net para unirse al equipo?&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;No hace falta ser un guru de tecnolog&amp;#237;a .NET / MS&lt;/strong&gt;, adem&amp;#225;s de que es un puesto para aprender (ninguno nacemos ense&amp;#241;ado) tambi&amp;#233;n hay que hacer trabajo en otras &amp;#225;reas: dise&amp;#241;o, multimedia, sistemas, desarrollo en otros entornos como php, java, ruby... no solo de programar en C# vive el hombre. T&amp;#250; cu&amp;#233;ntanos que es lo que sabes y que es lo que quieres aprender y vemos como cuadrarlo todo ;)&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#191;D&amp;#243;nde es la beca?&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Es una beca de media jornada en las oficinas de&lt;strong&gt; Microsoft en Pozuelo de Alarc&amp;#243;n en Madrid&lt;/strong&gt;. &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Si tienesn &lt;strong&gt;&lt;u&gt;cualquier&lt;/u&gt;&lt;/strong&gt; otra duda o quieres enviar el CV...&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/EstudianteyviviendoenMadridEspaa_AA15/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="22" alt="image" src="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/EstudianteyviviendoenMadridEspaa_AA15/image_thumb.png" width="182" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Happy Hacking!&lt;/p&gt;  &lt;p&gt;~DS&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8701268" width="1" height="1"&gt;</description></item><item><title>ASP.NET AJAX UpdatePanel vs ASP.NET PageMethod</title><link>http://blogs.msdn.com/b/davidsalgado/archive/2008/05/05/asp-net-ajax-updatepanel-vs-asp-net-pagemethod.aspx</link><pubDate>Mon, 05 May 2008 17:59:27 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8460643</guid><dc:creator>DavidSalgado</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/davidsalgado/rsscomments.aspx?WeblogPostID=8460643</wfw:commentRss><comments>http://blogs.msdn.com/b/davidsalgado/archive/2008/05/05/asp-net-ajax-updatepanel-vs-asp-net-pagemethod.aspx#comments</comments><description>&lt;p&gt;He de aclarar antes de empezar que este post no intenta ahuyentar a programadores que est&amp;#233;n trabajando o evaluando ASP.NET AJAX, simplemente pretende atraer atenci&amp;#243;n sobre el hecho de que hay que tener cuidado con lo que se hace con los UpdatePanels y no usarlos para todo ;)&lt;/p&gt;  &lt;p&gt;Pongamos una simple p&amp;#225;gina ASP.NET AJAX con un bot&amp;#243;n, al hacer click tendremos una llamada AJAX al servidor para actualizar la hora que se muestra en pantalla.&lt;/p&gt;  &lt;p&gt;&amp;#201;sta es la parte relevante del c&amp;#243;digo&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="588" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="586"&gt;&lt;font face="consolas"&gt;           &lt;p&gt;&amp;lt;asp:UpdatePanel ID=&amp;quot;up1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ContentTemplate&amp;gt;               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;asp:Label ID=&amp;quot;l1&amp;quot; runat=&amp;quot;server&amp;quot; /&amp;gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;asp:Button ID=&amp;quot;b1&amp;quot; runat=&amp;quot;server&amp;quot; OnClick=&amp;quot;actualizar&amp;quot; Text=&amp;quot;Actualizar&amp;quot;/&amp;gt;               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/ContentTemplate&amp;gt;               &lt;br /&gt;&amp;lt;/asp:UpdatePanel&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;            &lt;p&gt;... el .aspx.cs ...&lt;/p&gt;            &lt;p&gt;protected void actualizar(object sender, EventArgs ea)              &lt;br /&gt;{               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; l1.Text = System.DateTime.Now.ToLongTimeString();               &lt;br /&gt;} &lt;/p&gt;         &lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Cada vez que se pide la informaci&amp;#243;n al servidor estamos haciendo una petici&amp;#243;n de este tipo&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;ctl02=up1%7Cb1&amp;amp;__EVENTTARGET=&amp;amp;__EVENTARGUMENT=&amp;amp;__VIEWSTATE=%2FwEPDwULLTE1NzUzNjc2NjNkZPprXRC88qjwsppC6ijFSkTPpJOl &lt;/p&gt;    &lt;p&gt;&amp;amp;__EVENTVALIDATION=%2FwEWAgLmpKatCgK%2B7%2BbtDMzDEjpVzHzhiCikPAfrk6sPE4AT&amp;amp;b1=Actualizar&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;y recibiendo una respuesta como esta...&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;129|updatePanel|up1|      &lt;br /&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/strong&gt;&amp;lt;span id=&amp;quot;l1&amp;quot;&amp;gt;&lt;strong&gt;16:43:17&lt;/strong&gt;&amp;lt;/span&amp;gt;&amp;#160; &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;lt;input type=&amp;quot;submit&amp;quot; name=&amp;quot;b1&amp;quot; value=&amp;quot;Actualizar&amp;quot; id=&amp;quot;b1&amp;quot; /&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |112|hiddenField|__VIEWSTATE|/wEPDwULLTE1NzUzNjc2NjMPZBYCAgM       &lt;br /&gt;PZBYCAgMPZBYCZg9kFgICAQ8PFgIeBFRleHQFCDE2OjQzOjE3ZGRk+JnW9       &lt;br /&gt;BNv8dIcJmqvxt10mIGvh4w=|48|hiddenField|__EVENTVALIDATION|/wEW       &lt;br /&gt;AgL38IziBAK+7+btDLtfoq6BnTLgLznM9KGlIW/BK1GH|0|asyncPostBackControlIDs||       &lt;br /&gt;|0|postBackControlIDs|||4|updatePanelIDs||tup1|0|childUpdatePanelIDs|||3|       &lt;br /&gt;panelsToRefreshIDs||up1|2|asyncPostBackTimeout||90|12|formAction||Default.aspx       &lt;br /&gt;|27|pageTitle||Update Panel vs PageMethods|&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;...y teniendo en cuenta que s&amp;#243;lo nos importa la parte en negrita... pues... como que es bastante.... El resto de informaci&amp;#243;n es:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;En la petici&amp;#243;n... va la informaci&amp;#243;n del viewstate de la p&amp;#225;gina, para que desde el aspx.cs podamos acceder a los controles de servidor y tomar decisiones en base a los valores (adem&amp;#225;s de informaci&amp;#243;n de par&amp;#225;metros, eventos...)&lt;/p&gt;    &lt;p&gt;En la respuesta...va la informaci&amp;#243;n para reconstruir gr&amp;#225;ficamente la parte de la p&amp;#225;gina afectada por la operaci&amp;#243;n&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Pero adem&amp;#225;s de la sobrecarga de tr&amp;#225;fico generada, cuando el postback causado por la petici&amp;#243;n AJAX llega al servidor, con la informaci&amp;#243;n del viewstate se recrea la clase Page, se ejecutan los eventos de p&amp;#225;gina, etc&amp;#233;tera....lo cual es una sobrecarga para el servidor.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Esto no es malo&lt;/strong&gt;, siempre y cuando vayamos a trabajar con estado nos hace falta regenerar la clase para poder tomar decisiones en base a los controles y el estado en curso. Pero en el caso que nos ocupa (obtener una fecha/dato independiente) todo esto es excesivo :)&lt;/p&gt;  &lt;p&gt;Vamos a ver una alternativa que consume menos ancho de banda y menos recursos en el servidor&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;ASP.NET AJAX UpdatePanel vs PageMethods&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Pero... que es un &lt;strong&gt;PageMethod??? &lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Teniendo en cuenta que un aspx internamente es una clase System.web.&lt;strong&gt;Page&lt;/strong&gt;. Un PageMethod es un m&amp;#233;todo dentro de esa clase Page que cumple dos requisitos... es &lt;strong&gt;static&lt;/strong&gt; y esta decorado con el atributo &lt;strong&gt;WebMethod&lt;/strong&gt;. Lo que nos permiten es que podamos llamar desde javascript a un m&amp;#233;todo espec&amp;#237;fico de una p&amp;#225;gina web aspx.&lt;/p&gt;    &lt;p&gt;Si tenemos en cuenta que estamos obteniendo una funcionalidad concreta a trav&amp;#233;s de una llamada desde Javascript, podemos decir que es algo &amp;quot;&amp;quot;&amp;quot;parecido&amp;quot;&amp;quot;&amp;quot; a un webservice. &lt;/p&gt;    &lt;p&gt;La diferencia fundamental radica en que el PageMethod vive dentro de la p&amp;#225;gina y &amp;#233;sta es el &amp;#250;nico cliente que puede consumirlo, mientras que el webservice es una funcionalidad que reside en un servicio accesible desde cualquier cliente, es un concepto mucho m&amp;#225;s amplio :)&lt;/p&gt;    &lt;p&gt;En este ejemplo concreto podr&amp;#237;amos llamar a un WebService en lugar a un PageMethod, conceptualmente nos da igual.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Vamos al l&amp;#237;o....para llamar al pagemethod modificamos un poco el c&amp;#243;digo cliente&lt;/p&gt;  &lt;p&gt;Es necesario que habilitemos el trabajo con PageMethods estableciendo el valor de un flag del ScriptManager: &lt;font face="consolas"&gt;&amp;lt;asp:ScriptManager runat=&amp;quot;server&amp;quot; id=&amp;quot;s1&amp;quot; &lt;strong&gt;EnablePageMethods=&amp;quot;true&amp;quot; &lt;/strong&gt;/&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Esto va a crearnos un objeto Javascript que se llama &lt;strong&gt;PageMethods&lt;/strong&gt; y que nos va a dar acceso a los metodos &amp;quot;especiales&amp;quot; de la p&amp;#225;gina: &lt;/p&gt;  &lt;p&gt;&lt;font face="consolas"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; function actualizar()       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;PageMethods&lt;/strong&gt;.actualizar (actualizarOK, actualizarFAIL);&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; function actualizarOK(result)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; $get('l1').innerHTML = result;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="consolas"&gt;&amp;#160;&amp;#160;&amp;#160; function actualizarFAIL(error)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; $get('l1').innerHTML = &amp;quot;Intentelo mas tarde&amp;quot;;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;lt;/script&amp;gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Hab&amp;#233;is observado que es m&amp;#225;s inc&amp;#243;modo para el desarrollador que el UpdatePanel, dado que ahora somos nosotros los que tenemos que navegar por el DOM para actualizar la parte cliente.&lt;/p&gt;  &lt;p&gt;En el lado cliente s&amp;#243;lo nos falta modificar los controles ASP.NET para que apunten al Javascript&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="consolas"&gt;&amp;lt;asp:Label ID=&amp;quot;l1&amp;quot; runat=&amp;quot;server&amp;quot; /&amp;gt;&amp;#160; &lt;br /&gt;&amp;lt;input type=&amp;quot;button&amp;quot; id=&amp;quot;b1&amp;quot; &lt;strong&gt;onclick&lt;/strong&gt;=&amp;quot;actualizar();&amp;quot; value=&amp;quot;Actualizar&amp;quot;/&amp;gt;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;y el servidor... configurar el m&amp;#233;todo como PageMethod&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="conso"&gt;&lt;strong&gt;using System.Web.Services;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="conso"&gt;....&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="consolas"&gt;&lt;strong&gt;[WebMethod]          &lt;br /&gt;&lt;/strong&gt;public static string actualizar()         &lt;br /&gt;{         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; return System.DateTime.Now.ToLongTimeString();         &lt;br /&gt;}&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Lo ejecutamos.....y...vemos que se env&amp;#237;a menos informaci&amp;#243;n&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;( De hecho en el cuerpo no va nada... vemos que la petici&amp;#243;n al servidor es un post a &lt;a href="http://server/website/default.aspx/actualizar"&gt;http://server/website/default.aspx&lt;strong&gt;/actualizar&lt;/strong&gt;&lt;/a&gt; para invocar al servicio )&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;y definitivamente vuelve menos informaci&amp;#243;n&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;{&amp;quot;d&amp;quot;:&amp;quot;15:56:53&amp;quot;}&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Porqu&amp;#233; un PageMethod y no un WebService?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;A ojo de buen cubero...si dud&amp;#225;is... encapsulad esa informaci&amp;#243;n en un webservice, as&amp;#237; estar&amp;#225; accesible desde m&amp;#225;s puntos..obviamente habr&amp;#237;a que ver el caso concreto para ver si realmente no merece la pena tener un webservice, esto ser&amp;#237;a si la funcionalidad va a ser espec&amp;#237;fica a esa p&amp;#225;gina, en ese caso tirar&amp;#237;amos por un PageMethod&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Lo dicho al principio&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Este post no es para desanimar a nadie en el trabajo con UpdatePanels y AJAX, es para que pens&amp;#233;is un segundo antes de liaros la manta a la cabeza y poner updatepanels por todas partes. Funcionar....funcionar&amp;#225;, pero... a qu&amp;#233; coste? :)&amp;#160; &lt;/p&gt;  &lt;p&gt;Happy hacking!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;David Salgado&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8460643" width="1" height="1"&gt;</description></item><item><title>RIA y páginas con estado</title><link>http://blogs.msdn.com/b/davidsalgado/archive/2008/04/30/ria-y-p-ginas-con-estado.aspx</link><pubDate>Wed, 30 Apr 2008 13:09:02 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8442690</guid><dc:creator>DavidSalgado</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/davidsalgado/rsscomments.aspx?WeblogPostID=8442690</wfw:commentRss><comments>http://blogs.msdn.com/b/davidsalgado/archive/2008/04/30/ria-y-p-ginas-con-estado.aspx#comments</comments><description>&lt;p&gt;Como usuarios de internet tenemos patrones de comportamiento adquiridos... imagina que estas navegando por un sitio y has llegado a un punto que no te convence. Llegados a este punto tienes b&amp;#225;sicamente 3 opciones:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1 - Hacer click en el men&amp;#250; de navegaci&amp;#243;n e ir al paso anterior &lt;/p&gt;    &lt;p&gt;2 - Hacer click en el t&amp;#237;pico logo para volver hasta el principio y empezar de nuevo&lt;/p&gt;    &lt;p&gt;3 - Hacer click en el bot&amp;#243;n de atr&amp;#225;s del navegador&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Las dos primeras opciones est&amp;#225;n m&amp;#225;s trabajadas desde un punto de vista de desarrollo, pero desde un punto de vista de usabilidad, depende de c&amp;#243;mo hayas hecho esos enlaces y d&amp;#243;nde los hayas puesto para que el usuario los perciba o no. De accesibilidad hablaremos en otro post. La opci&amp;#243;n 3 estamos acostumbrados a que nunca falle... nos lleva a la p&amp;#225;gina anterior, que conlleva tradicionalmente el estado anterior y listo!&lt;/p&gt;  &lt;p&gt;Claro... que si estamos trabajando con aplicaciones p.ej AJAX... no esta tan claro que cada p&amp;#225;gina se corresponda con un estado en la navegaci&amp;#243;n por el sitio web. Al trabajar con Javascript, la parte cliente puede variar tanto como para poder considerar que ha pasado pro diferentes estados.&lt;/p&gt;  &lt;p&gt;Esto nos puede afectar tanto a nivel de navegaci&amp;#243;n, como a nivel de guardar un determinado estado en favoritos del navegador.&lt;/p&gt;  &lt;p&gt;Imaginemos que tenemos una galer&amp;#237;a de fotos en Javascript, al hacer click en una foto la mostramos mas grande. Podr&amp;#237;amos considerar que tenemos 2 estados diferentes, la galer&amp;#237;a y la vista detalle; pero al haber estado trabajando con Javascript, las acciones se han realizado en la misma p&amp;#225;gina, de modo que cuando estamos viendo la foto en detalle, no podemos dar atr&amp;#225;s en el navegador para ver la vista galer&amp;#237;a ni guardar la foto en favoritos. No hay un estado que podamos almacenar.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&amp;#191; Entonces ?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Bien, entonces lo que nos toca es ser capaces de serializar el estado de una p&amp;#225;gina y almacenarlo de alguna forma que podamos acceder a ella. Y teniendo en cuenta las diferencias que tenemos entre navegadores... f&amp;#225;cil, no?&amp;#160; x)&lt;/p&gt;  &lt;p&gt;Para ilustrar el post he creado una peque&amp;#241;a &lt;strong&gt;aplicaci&amp;#243;n de ejemplo &lt;/strong&gt;que os pod&amp;#233;is descargar en este &lt;a href="http://cid-900a2f609ed3bb79.skydrive.live.com/self.aspx/P%c3%bablico/DemoHistorialAJAX.zip"&gt;enlace&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Creando el estado&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;El estado pueden ser infinidad de cosas... c&amp;#243;mo se esta mostrando la p&amp;#225;gina, que valores tienen los controles... lo primero que debemos tener claro es &lt;strong&gt;qu&amp;#233; es un estado y qu&amp;#233; lo forma&lt;/strong&gt;. &lt;/p&gt;  &lt;p&gt; En el ejemplo que tenemos, el estado va a implicar una u otra foto en primer plano, de modo que lo que hemos de preservar es la direcci&amp;#243;n de la foto a mostrar.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;strong&gt;Almacenando el estado&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Aqui es donde la matan x)&amp;#160; Lo m&amp;#225;s f&amp;#225;cil a d&amp;#237;a de hoy para programadores .NET es utilizar las asp.net 3.5 extensions preview, el Microsoft.Ajax.js ha sido actualizado con unos prototipos para el manejo del estado. Tiene como ventaja que podemos trabajar con el estado tanto desde el cliente como desde el servidor.&lt;/p&gt;  &lt;p&gt;Si os hab&amp;#233;is descargado los laboratorios que comentaba en un &lt;a href="http://blogs.msdn.com/davidsalgado/archive/2008/04/21/net-3-5-enhancements-training-kit.aspx"&gt;post anterior&lt;/a&gt;, ten&amp;#233;is los siguientes proyectos para practicar y echarle un primer vistazo&lt;/p&gt;  &lt;p&gt;&lt;em&gt;NETFramework35Enhancements_TrainingKit\Labs\AspNetAjaxHistory&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Hoy... por ser mi&amp;#233;rcoles... vamos a hacerlo con la parte cliente de la librer&amp;#237;a.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Lo primero y muy importante ...&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;En el scriptmanager de la p&amp;#225;gina poned la propiedad EnableHistory a true&lt;/p&gt;  &lt;p&gt;&amp;lt;asp:ScriptManager ID=&amp;quot;ScriptManager1&amp;quot; runat=&amp;quot;server&amp;quot; &lt;strong&gt;EnableHistory=&amp;quot;true&amp;quot;&lt;/strong&gt; &amp;gt;&lt;/p&gt;  &lt;p&gt;Esto va a a&amp;#241;adir un iframe a la p&amp;#225;gina cliente para poder hacer los trucos Javascript que tendr&amp;#237;amos que hacer nosotros a mano, si echa&amp;#237;s un vistazo al fuente de la p&amp;#225;gina en el cliente...&lt;/p&gt;  &lt;p&gt;&amp;lt;iframe id=&amp;quot;__historyFrame&amp;quot; src=&amp;quot;/WebSite1/ScriptResource.axd?d=mfsa1_YluC_H6UGgoZq8xp82Y2Fwlt3V_nmPLNbI8rE1&amp;quot; style=&amp;quot;display:none;&amp;quot;&amp;gt;&lt;/p&gt;  &lt;p&gt;;)&lt;/p&gt;  &lt;p&gt;Una vez hemos habilitado el iframe, vamos a trabajar con los nuevos objetos en javascript para manejar el historial. Primero vamos a subscribirnos al evento de navegaci&amp;#243;n, as&amp;#237; tendremos control sobre lo que pasa cuando el usuario navega&lt;/p&gt;  &lt;p&gt;function pageLoad()   &lt;br /&gt;{    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Sys.Application.&lt;strong&gt;add_navigate&lt;/strong&gt;(onNavegar);    &lt;br /&gt;} &lt;/p&gt;  &lt;p&gt;function onNavegar(sender ,e)   &lt;br /&gt;{    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; if (userNavigated)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; restaurarEstado(e.get_state());    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;}&lt;/p&gt;  &lt;p&gt;La variable &lt;strong&gt;userNavigated&lt;/strong&gt; nos va a ayudar a discernir entre una navegaci&amp;#243;n provocada por el usuario o una provocada por nosotros desde desarrollo. Tras implementar estas funciones, sabemos que cuando el usuario navegue se va a llamar a nuestra funci&amp;#243;n &lt;strong&gt;restaurarEstado&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Como hemos dicho antes, en esta aplicaci&amp;#243;n sencilla el estado va a consistir en la direcci&amp;#243;n de la imagen a mostrar, de modo que para restaurar el estado s&amp;#243;lo hay que recuperar la imagen guardada y mostrarla&lt;/p&gt;  &lt;p&gt;function restaurarEstado ( &lt;strong&gt;estado&lt;/strong&gt; )    &lt;br /&gt;{    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; var RutaImagen = &lt;strong&gt;estado&lt;/strong&gt;.RutaImagen;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; if ( RutaImagen == null || RutaImagen == &amp;quot;&amp;quot;)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; RutaImagen = ImagenXDefecto;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; $get(&amp;quot;fotoGrande&amp;quot;).src = RutaImagen;    &lt;br /&gt;}&lt;/p&gt;  &lt;p&gt;La variable estado la cargamos y la almacenamos nosotros cada vez que queramos almacenar un estado nuevo.&lt;/p&gt;  &lt;p&gt;Llegados a este punto ya tenemos una aplicaci&amp;#243;n que es capaz de recuperar un estado grabado y mostrarlo en la p&amp;#225;gina. Lo &amp;#250;nico que nos falta es saber c&amp;#243;mo almacenar el estado. Si miramos el c&amp;#243;digo HTML, vemos que cada vez que se hace click se llama a un m&amp;#233;todo que muestra la foto&lt;/p&gt;  &lt;p&gt;&amp;lt;li&amp;gt;&amp;lt;img src=&amp;quot;imgs/VisitaBilbao01.JPG&amp;quot; alt=&amp;quot;Vacas&amp;quot; id=&amp;quot;i1&amp;quot; onclick=&amp;quot;&lt;strong&gt;MostrarFoto&lt;/strong&gt;(1)&amp;quot;/&amp;gt;&amp;lt;/li&amp;gt;&lt;/p&gt;  &lt;p&gt;Dada la naturaleza de la aplicaci&amp;#243;n de ejemplo, esta es la acci&amp;#243;n que va a implicar que queramos almacenar un nuevo estado, porque as&amp;#237; el usuario podr&amp;#225; navegar atr&amp;#225;s y adelante por las fotos con los botones del navegador. Vamos a ver la implementaci&amp;#243;n&lt;/p&gt;  &lt;p&gt;function MostrarFoto(id)   &lt;br /&gt;{    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; var img = &amp;quot;imgs/&amp;quot; + fotos[--id];    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; $get(&amp;quot;fotoGrande&amp;quot;).src = img;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;almacenarEstado&lt;/strong&gt;(img);    &lt;br /&gt;}&lt;/p&gt;  &lt;p&gt;function &lt;strong&gt;almacenarEstado&lt;/strong&gt;( img )    &lt;br /&gt;{    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; var pageState = { &amp;quot;RutaImagen&amp;quot; : img };    &lt;br /&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160; Sys.Application.addHistoryPoint(pageState,img);     &lt;br /&gt;&lt;/strong&gt;&amp;#160;&amp;#160;&amp;#160; userNavigated = true;    &lt;br /&gt;}&lt;/p&gt;  &lt;p&gt;Es muy sencillo, creamos un objeto con el estado de la p&amp;#225;gina (pageState) y se lo pasamos como par&amp;#225;metro a Sys.Application.addHistoryPoint. El segundo par&amp;#225;metro que recibe es el nombre con el que se va a almacenar ese estado en el historial. El echo de a&amp;#241;adir un nuevo estado, internamente va a trabajar contra el iframe y va a provocar una navegaci&amp;#243;n, para diferenciar esta navegaci&amp;#243;n de una iniciada por el usuario, marcamos el userNavigated a true.&lt;/p&gt;  &lt;p&gt;y listo :)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Otras opciones&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Como comentaba m&amp;#225;s arriba, pod&amp;#233;is utilizar infinidad de frameworks javascript o controles descargados de internet para que os gestionen el estado, de hecho si os anim&amp;#225;is pod&amp;#233;is programaros el vuestro propio... &lt;/p&gt;  &lt;p&gt;&amp;lt;&lt;em&gt;bricomania&lt;/em&gt;&amp;gt; manten&amp;#233;is un hashtable indice/estado, cada vez que haya un nuevo estado, se marca la url con el &amp;#237;ndice nuevo y se a&amp;#241;ade el nuevo estado al hashtable. Cuando el indice de la url no se corresponda con el indice actual, recuper&amp;#225;is del hashtable con el &amp;#237;ndice de la url como base y establec&amp;#233;is el nuevo estado en la p&amp;#225;gina.... &amp;lt;/&lt;em&gt;bricomania&lt;/em&gt;&amp;gt;&lt;/p&gt;  &lt;p&gt;...bien.. no es tan f&amp;#225;cil... hay que lidiar con las diferencias entre navegadores, ver cu&amp;#225;ndo cambia la url y en base a qu&amp;#233;, tener en cuenta navegaci&amp;#243;n hacia atr&amp;#225;s y hacia adelante... realmente un framework os ahorrar&amp;#225; bastante tiempo :)&lt;/p&gt;  &lt;p&gt; Happy Hacking&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Ds&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Lectura interesante sobre el tema de almacenar y recuperar estado&lt;/p&gt;  &lt;p&gt;&lt;a href="http://yuiblog.com/blog/2007/02/21/browser-history-manager/"&gt;http://yuiblog.com/blog/2007/02/21/browser-history-manager/&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://weblogs.asp.net/bleroy/archive/2007/09/07/how-to-build-a-cross-browser-history-management-system.aspx"&gt;http://weblogs.asp.net/bleroy/archive/2007/09/07/how-to-build-a-cross-browser-history-management-system.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8442690" width="1" height="1"&gt;</description></item><item><title>Un poco de windbg aplicado...</title><link>http://blogs.msdn.com/b/davidsalgado/archive/2008/04/24/un-poco-de-windbg-aplicado.aspx</link><pubDate>Thu, 24 Apr 2008 17:09:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8421661</guid><dc:creator>DavidSalgado</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.msdn.com/b/davidsalgado/rsscomments.aspx?WeblogPostID=8421661</wfw:commentRss><comments>http://blogs.msdn.com/b/davidsalgado/archive/2008/04/24/un-poco-de-windbg-aplicado.aspx#comments</comments><description>&lt;P&gt;Ayer Rodrigo planteó un problema curioso en su &lt;A href="http://geeks.ms/blogs/rcorral/archive/2008/04/23/fugando-memoria-con-net.aspx" mce_href="http://geeks.ms/blogs/rcorral/archive/2008/04/23/fugando-memoria-con-net.aspx"&gt;blog&lt;/A&gt;, dios que rabia me dio no tener las herramientas instaladas en el portatil que tenía en casa!!!&amp;nbsp; sólo tenía ie y una tarjeta 3G para navegar por la red, a si que ni si quiera pude bajármelas :_)&lt;/P&gt;
&lt;P&gt;Pero esta mañana me he puesto con ello en cuanto he llegado a la oficina :P&lt;/P&gt;
&lt;P&gt;Ahí va la aproximación que yo he seguido para intentar atajar el problema.&lt;/P&gt;
&lt;P&gt;(&lt;STRONG&gt;Nota:&lt;/STRONG&gt; Por si alguien lo intenta resolver... tened en cuenta que las direcciones de memoria vana&amp;nbsp; variar siempre y tenéis que buscar las que os apliquen a vosotros)&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Empezando con el problema&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Como es Rodrigo quien dice que la aplicación pierde memoria, pues me lo creo y listo, así que asumo que una vez la ejecute va a empezar a crecer la memoria. Hay un montón de herramientas para ver cómo crece la memoria, que tipo de memoria es la que crece, etcétera... una de las alternativas es adjuntar un depurador al proceso y pararlo cada X tiempo para ver como esta la memoria del proceso.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Herramientas&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Como depurador he utilizado el WinDBG, diponible en las &lt;A href="http://www.microsoft.com/whdc/devtools/debugging/" mce_href="http://www.microsoft.com/whdc/devtools/debugging/"&gt;debugging tools for windows&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Depurando el proceso&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Compilamos y ejecutamos el ejemplo que nos pone Rodrigo.&lt;/P&gt;
&lt;P&gt;Arrancamos WinDBG y Vamos a File .. Attach To Process y escogemos el proceso que acabamos de arrancar (buscad el pid adecuado). &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/RetoIdeRodrigoCorralD_ABBC/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/RetoIdeRodrigoCorralD_ABBC/image_2.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=146 alt=image src="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/RetoIdeRodrigoCorralD_ABBC/image_thumb.png" width=244 border=0 mce_src="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/RetoIdeRodrigoCorralD_ABBC/image_thumb.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;En la ventana de command del depurador vemos información del proceso, esta parado esperando a que introduzcamos alguna orden. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/RetoIdeRodrigoCorralD_ABBC/image_4.png" mce_href="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/RetoIdeRodrigoCorralD_ABBC/image_4.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=136 alt=image src="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/RetoIdeRodrigoCorralD_ABBC/image_thumb_1.png" width=492 border=0 mce_src="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/RetoIdeRodrigoCorralD_ABBC/image_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Por ahora no vamos a hacer nada... vamos a volver a activar el proceso para que siga corriendo un rato y empiece a cargarse la memoria, de modo que en la ventana de comandos, introducimos el comando &lt;STRONG&gt;g&lt;/STRONG&gt; y damos a intro&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/RetoIdeRodrigoCorralD_ABBC/image_6.png" mce_href="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/RetoIdeRodrigoCorralD_ABBC/image_6.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=37 alt=image src="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/RetoIdeRodrigoCorralD_ABBC/image_thumb_2.png" width=475 border=0 mce_src="http://blogs.msdn.com/blogfiles/davidsalgado/WindowsLiveWriter/RetoIdeRodrigoCorralD_ABBC/image_thumb_2.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Al de un minuto (por ejemplo) pulsamos ctrl + break ... asi pararemos el proceso e inspeccionaremos su estado actual. Dado que Rodrigo nos ha dicho que es un problema de memory leak... vamos a tiro hecho y buscamos información sobre objetos que se acumulan en el managed heap (normalmente no es tan fácil y hay que invertir tiempo en determinar a que tipo de problema de memoria te enfrentas)&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Obteniendo la información de referencia&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Lo primero que vamos a hacer es cargar la SOS.dll. Esta librería es una extensión del depurador que nos va a permitir movernos por estructuras de datos manejadas por el CLR, de modo que nos facilita la depuración de código .net. Para cargarla ejecutamos este comando&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;.loadby sos mscorwks&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Una vez esta cargada la extensión podemos usar sus comandos. Vamos a ver cuales son los objetos que hay en el managed heap&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;!dumpheap -stat&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;De la salida del comando nos quedamos con las últimas líneas (mayor número de objetos en memoria) y guardamos los números para poder compararlos en la próxima parada&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face=Consolas&gt;790fd8c4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5632&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;345980&lt;/STRONG&gt; System.&lt;STRONG&gt;String&lt;/STRONG&gt; &lt;BR&gt;003ec570&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 18&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4064392&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Free &lt;BR&gt;7912d8f8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2514&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;4291592&lt;/STRONG&gt; System.&lt;STRONG&gt;Object[]&lt;/STRONG&gt; &lt;BR&gt;79104c38&amp;nbsp;&amp;nbsp; 771803&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;12348848&lt;/STRONG&gt; System.&lt;STRONG&gt;WeakReference&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Una vez apuntado, volvemos a ejecutar el comando &lt;STRONG&gt;g&lt;/STRONG&gt; y dejamos que el proceso corra durante otro rato, para ver si varían los números.&lt;/P&gt;
&lt;P&gt;.... ( minutos musicales mientras el proceso corre ) ... &lt;/P&gt;
&lt;P&gt;Volvemos a pararlo de nuevo con ctrl + break y volvemos a mostrar los objetos en el managed heap como antes&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face=Consolas&gt;&lt;STRONG&gt;790fd8c4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5632&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 345980 System.String &lt;BR&gt;003ec570&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 19&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8258724&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Free &lt;BR&gt;7912d8f8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3678&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8516160 System.Object[] &lt;BR&gt;79104c38&amp;nbsp; 1308060&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20928960 System.WeakReference&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Vemos que los Strings se han conservado, pero las WeakReferences han crecido ( &lt;STRONG&gt;12348848&lt;/STRONG&gt; vs &lt;STRONG&gt;20928960&lt;/STRONG&gt; ). Es recomendable hacer este proceso unas cuantas veces para tener mas muestras y poder establecer una tendencia :)&lt;/P&gt;
&lt;P&gt;Una vez vemos que las weakreferences crecen, hemos de saber porqué.... a si que entramos en modo diagnostico diferencial de house...&lt;/P&gt;
&lt;P&gt;house&amp;gt; ¿por qué no se liberan?&lt;/P&gt;
&lt;P&gt;chase&amp;gt; será lupus?&lt;/P&gt;
&lt;P&gt;cameron&amp;gt; no creo.. puede ser que alguien mantenga una referencia a ellos y por eso no los recoja el GC&lt;/P&gt;
&lt;P&gt;house&amp;gt; ok.. analitica completa, TAC, rajadlo y mira las referencias que apuntan a los objetos weakreference&lt;/P&gt;
&lt;P&gt;Para mirar las referencias, primero necesitamos saber la dirección en memoria de los objetos. Tomemos la salida del comando !dumpheap -stat, si nos fijamos en la fila relativa a las wekreferences&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face=Consolas&gt;&lt;STRONG&gt;79104c38&lt;/STRONG&gt;&amp;nbsp; 1308060&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;20928960&lt;/STRONG&gt; System.&lt;STRONG&gt;WeakReference&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;El primer valor es la MethodTable del tipo, ahora que la conocemos, podemos ejecutar un comando que vuelca todos los objetos de una determinada method table&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face=consolas&gt;!dumpheap -mt&amp;nbsp; &lt;STRONG&gt;79104c38&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;(el resultado hara scroll en pantalla varias veces, podéis pararlo con Ctr+break) Ahí tenemos todos los objetos del tipo, vamos a ver quién les esta referenciando y manteniéndolos vivos. La salida del comando tiene el siguiente formato: Dir.Objeto Dir.MethodTable Tamaño&lt;/P&gt;
&lt;P&gt;Tomamos unas cuantas direcciones de objeto y ejecutamos el siguiente comando sobre ellas&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT face=consolas size=2&gt;!GCRoot dir del Objeto&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Nos muestra la relación de referencias que mantienen vivo al objeto. Vemos al volcar unas cuantas que hay &lt;STRONG&gt;System.Collections.Generic.List&lt;/STRONG&gt; que las referencia&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Consolas size=2&gt;0:003&amp;gt; !GCRoot 02497570 &lt;BR&gt;Note: Roots found on stacks may be false positives. Run "!help gcroot" for &lt;BR&gt;more info. &lt;BR&gt;Scan Thread 0 OSTHread 179c &lt;BR&gt;Scan Thread 2 OSTHread 1624 &lt;BR&gt;DOMAIN(003E4AC0):HANDLE(Pinned):a13f0:Root:02df3030(System.Object[])-&amp;gt; &lt;BR&gt;&lt;STRONG&gt;01df4300&lt;/STRONG&gt;(&lt;STRONG&gt;System.Collections.Generic.List`1[[System.WeakReference, mscorlib]]&lt;/STRONG&gt;)-&amp;gt; &lt;BR&gt;035d52e0(&lt;STRONG&gt;System.Object[])-&amp;gt;&lt;/STRONG&gt; &lt;BR&gt;02497570(&lt;STRONG&gt;System.WeakReference&lt;/STRONG&gt;)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=tahoma size=2&gt;Para seguir asegurando...&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=tahoma size=2&gt;Volcamos la genericList y vemos su tamaño&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Consolas size=2&gt;!do &lt;STRONG&gt;01df4300&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;79102290&amp;nbsp; 40009c8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Int32&amp;nbsp; 1 instance&amp;nbsp; &lt;STRONG&gt;1308060&lt;/STRONG&gt; _size&lt;/P&gt;
&lt;P&gt;dejamos correr un rato al proceso ( &lt;STRONG&gt;g &lt;/STRONG&gt;) y volvemos a comprobar el tamaño del objeto ( ejecutamos el mismo comando )&lt;/P&gt;
&lt;P&gt;79102290&amp;nbsp; 40009c8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Int32&amp;nbsp; 1 instance&amp;nbsp; &lt;STRONG&gt;1524568&lt;/STRONG&gt; _size&lt;/P&gt;
&lt;P&gt;BINGO!!!&amp;nbsp; va creciendo woooooohoooooo&lt;/P&gt;
&lt;P&gt;Si estuviésemos en un proyecto grande habría que localizar el assembly y volcar el código para ver que pasa.... como estamos en un ejemplo pequeño es fácil... no hay ningun array en nuestro código.. a si que con ayuda de reflector miramos la clase TraceSwitch... que nos lleva a Switch... y al siguiente código (resumido)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; lock (switches)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; switches.Add(new WeakReference(this));&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;El array switches crece indefinidamente y no se liberan las weakReferences (se liberan los strings a los que apuntan las weakreferences pero no estas en sí)&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;y ahora qué?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Pues he estado mirando por la web y no puedo decir aun si es un bug o si hay alguna consideración que nos hayamos saltado a la hora de trabajar con el TraceSwitch, en cuanto lo sepa os lo cuento&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;lt;update 28/4/08&amp;gt;&lt;/STRONG&gt;&lt;BR&gt;Tenemos respuesta del grupo de producto, es un bug corregido para la próxima major relase de .net :)&lt;BR&gt;&lt;STRONG&gt;&amp;lt;/update 28/4/08&amp;gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Happy Hacking!&lt;/P&gt;
&lt;P&gt;David Salgado&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8421661" width="1" height="1"&gt;</description></item></channel></rss>

