<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://windowstecnico.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Windows Técnico : Windows 7, Windows Vista, Desarrollo</title><link>http://windowstecnico.com/archive/tags/Windows+7/Windows+Vista/Desarrollo/default.aspx</link><description>Etiquetas: Windows 7, Windows Vista, Desarrollo</description><dc:language /><generator>CommunityServer 2008.5 (Build: 30929.2835)</generator><item><title>Desarrollo de un gadget para Windows 7 para visualizar un mapa con las visitas a tu blog</title><link>http://windowstecnico.com/archive/2010/04/15/desarrollo-de-un-gadget-para-windows-7-para-visualizar-un-mapa-con-las-visitas-a-tu-blog.aspx</link><pubDate>Wed, 14 Apr 2010 23:30:00 GMT</pubDate><guid isPermaLink="false">f5fee4ed-c2ed-43f2-a57e-69c2e2dfbdde:2225</guid><dc:creator>Juan Antonio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://windowstecnico.com/rsscomments.aspx?PostID=2225</wfw:commentRss><comments>http://windowstecnico.com/archive/2010/04/15/desarrollo-de-un-gadget-para-windows-7-para-visualizar-un-mapa-con-las-visitas-a-tu-blog.aspx#comments</comments><description>&lt;p align="justify"&gt;Buenas a todos,&amp;nbsp; hoy me gustar&amp;iacute;a explicaros como desarrollar un peque&amp;ntilde;o y sencillo gadget para Windows 7 que incluir&amp;aacute; un mapa de ClustrMaps, que como sabr&amp;eacute;is es un servicio que nos permite tras registrarnos incorporar un peque&amp;ntilde;o mapa en nuestro blog, a trav&amp;eacute;s de un peque&amp;ntilde;o c&amp;oacute;digo javascript, donde nos pintar&amp;aacute; en un mapa mundi los lugares desde los que nos visitan.&lt;/p&gt;
&lt;p align="justify"&gt;El desarrollo de gadgets los trat&amp;eacute; a fondo en el siguiente post hace varios meses por lo que no me extender&amp;eacute; mucho en el tema, pero a&amp;uacute;n as&amp;iacute; os recordar&amp;eacute; por encima los elementos de los que se compone un gadget.&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://elblogdecalles.blogspot.com/2009/06/creacion-e-instalacion-de-un-gadget.html" title="http://elblogdecalles.blogspot.com/2009/06/creacion-e-instalacion-de-un-gadget.html"&gt;&lt;/a&gt;&lt;a href="http://192.168.0.247:4443/archive/2009/04/05/creaci-243-n-de-un-gadget-para-la-sidebar-de-windows.aspx" title="http://www.windowstecnico.com/archive/2009/04/05/creaci-243-n-de-un-gadget-para-la-sidebar-de-windows.aspx"&gt;http://www.windowstecnico.com/archive/2009/04/05/creaci-243-n-de-un-gadget-para-la-sidebar-de-windows.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://elblogdecalles.blogspot.com/2009/06/creacion-de-un-gadget-para-la-sidebar.html" title="http://elblogdecalles.blogspot.com/2009/06/creacion-de-un-gadget-para-la-sidebar.html"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;La estructura de un gadget se basa en:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div align="justify"&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;Documento XML de manifiesto&lt;/span&gt;&lt;/strong&gt;&lt;span style="text-decoration:underline;"&gt;:&lt;/span&gt; En este archivo es donde se definen las propiedades de nuestro gadget: nombre, icono, autor, descripci&amp;oacute;n de la utilidad del gadget, etc.&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;Documento HTML&lt;/span&gt;&lt;/strong&gt;&lt;span style="text-decoration:underline;"&gt;:&lt;/span&gt; En &amp;eacute;l se programar&amp;aacute; toda la funcionalidad de la interfaz gr&amp;aacute;fica de nuestro gadget.&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;Documento HTML de configuraci&amp;oacute;n:&lt;/span&gt;&lt;/strong&gt; En caso de que nuestra aplicaci&amp;oacute;n sea muy compleja y tenga varios par&amp;aacute;metros configurables, deberemos crear este documento (opcionalmente) para que el usuario pueda interactuar directamente con el gadget. Para nuestro proyecto actual lo omitiremos.&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;Im&amp;aacute;genes&lt;/span&gt;: &lt;/strong&gt;Necesitaremos tres im&amp;aacute;genes diferentes para nuestro gadget c&amp;oacute;mo m&amp;iacute;nimo, aunque esta parte es opcional tambi&amp;eacute;n, una de ellas definir&amp;aacute; el icono del men&amp;uacute; de la sidebar para agregar nuevos gadget, otra de las im&amp;aacute;genes, ser&amp;aacute; la que se mostrar&amp;aacute; junto con los datos del autor, y la &amp;uacute;ltima imagen, definir&amp;aacute; el fondo de nuestro gadget, en caso de no poner esta &amp;uacute;ltima, el fondo de nuestro gadget adquirir&amp;aacute; el color de fondo que indiquemos en el fichero HTML.&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;BLOCKED SCRIPT&lt;/span&gt; &lt;/strong&gt;El c&amp;oacute;digo JavaScript de nuestra aplicaci&amp;oacute;n puede ir embebido en el propio HTML, o bien encontrarse en un fichero aparte y ser llamado desde el c&amp;oacute;digo HTML. JavaScript junto con HTML ser&amp;aacute;n los encargados de proporcionar al gadget toda su funcionalidad.&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;Hojas de Estilo CSS&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;:&lt;/span&gt;&lt;/strong&gt; Las Hojas de estilo se utilizan para dar el comportamiento gr&amp;aacute;fico de la interfaz HTML de nuestra aplicaci&amp;oacute;n. Sin ella el gadget se encontrar&amp;iacute;a totalmente descuadrado de la SideBar, y carecer&amp;iacute;a de imagen de fondo.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p align="justify"&gt;Los c&amp;oacute;digos del gadget que hoy hemos desarrollado son los siguientes:&lt;/p&gt;
&lt;h4&gt;Style.css&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;Body      &lt;br /&gt;{       &lt;br /&gt;width:158px;       &lt;br /&gt;height:105px;       &lt;br /&gt;margin-left: 0px;       &lt;br /&gt;margin-top: 0px;       &lt;br /&gt;margin-right: 0px;       &lt;br /&gt;margin-bottom: 0px;       &lt;br /&gt;background-image:url(&amp;#39;../rss.gif&amp;#39;);       &lt;br /&gt;}&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4&gt;Gadget.xml&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;lt;gadget&amp;gt;      &lt;br /&gt;&amp;lt;name&amp;gt;Mapa de Visitas&amp;lt;/name&amp;gt;       &lt;br /&gt;&amp;lt;namespace&amp;gt;Namespace.Ejemplo&amp;lt;/namespace&amp;gt;       &lt;br /&gt;&amp;lt;version&amp;gt;1.0&amp;lt;/version&amp;gt;       &lt;br /&gt;&amp;lt;author name=&amp;quot;jacalles&amp;quot;&amp;gt;       &lt;br /&gt;&amp;lt;info url=&amp;quot;&lt;a href="http://elblogdecalles.blogspot.com&amp;quot;"&gt;http://elblogdecalles.blogspot.com&amp;quot;&lt;/a&gt; /&amp;gt;       &lt;br /&gt;&amp;lt;logo src=&amp;quot;wallpaper.png&amp;quot;/&amp;gt;       &lt;br /&gt;&amp;lt;/author&amp;gt;       &lt;br /&gt;&amp;lt;copyright&amp;gt;2010&amp;lt;/copyright&amp;gt;       &lt;br /&gt;&amp;lt;description&amp;gt;Gadget que muestra el Mapa de Visitas de elblogdecalles.blogspot.com&amp;lt;/description&amp;gt;       &lt;br /&gt;&amp;lt;icons&amp;gt;       &lt;br /&gt;&amp;lt;icon height=&amp;quot;48&amp;quot; width=&amp;quot;48&amp;quot; src=&amp;quot;wallpaper.png&amp;quot; /&amp;gt;       &lt;br /&gt;&amp;lt;/icons&amp;gt;       &lt;br /&gt;&amp;lt;hosts&amp;gt;       &lt;br /&gt;&amp;lt;host name=&amp;quot;sidebar&amp;quot;&amp;gt;       &lt;br /&gt;&amp;lt;base type=&amp;quot;HTML&amp;quot; src=&amp;quot;rss.html&amp;quot; /&amp;gt;       &lt;br /&gt;&amp;lt;permissions&amp;gt;full&amp;lt;/permissions&amp;gt;       &lt;br /&gt;&amp;lt;platform minPlatformVersion=&amp;quot;1.0&amp;quot; /&amp;gt;       &lt;br /&gt;&amp;lt;defaultImage src=&amp;quot;wallpaper.png&amp;quot; /&amp;gt;       &lt;br /&gt;&amp;lt;/host&amp;gt;       &lt;br /&gt;&amp;lt;/hosts&amp;gt;       &lt;br /&gt;&amp;lt;/gadget&amp;gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4&gt;C&amp;oacute;digo HTML&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;lt;html&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;head&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;title&amp;gt;Mapa&amp;lt;/title&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;css/style.css&amp;quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;center&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;a href=&amp;quot;&lt;a href="http://www3.clustrmaps.com/counter/maps.php?url=http://elblogdecalles.blogspot.com&amp;quot;"&gt;http://www3.clustrmaps.com/counter/maps.php?url=http://elblogdecalles.blogspot.com&amp;quot;&lt;/a&gt; id=&amp;quot;clustrMapsLink&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;&lt;a href="http://www3.clustrmaps.com/counter/index2.php?url=http://elblogdecalles.blogspot.com&amp;quot;"&gt;http://www3.clustrmaps.com/counter/index2.php?url=http://elblogdecalles.blogspot.com&amp;quot;&lt;/a&gt; style=&amp;#39;border:0px;&amp;#39; alt=&amp;#39;Locations of visitors to this page&amp;#39; title=&amp;#39;Locations of visitors to this page&amp;#39; id=&amp;#39;clustrMapsImg&amp;#39; onerror=&amp;#39;this.onerror=null; this.src=&amp;amp;#39;&lt;a href="http://www2.clustrmaps.com/images/clustrmaps-back-soon.jpg&amp;amp;#39;;"&gt;http://www2.clustrmaps.com/images/clustrmaps-back-soon.jpg&amp;amp;#39;;&lt;/a&gt; document.getElementById(&amp;amp;#39;clustrMapsLink&amp;amp;#39;).href=&amp;amp;#39;&lt;a href="http://www2.clustrmaps.com&amp;amp;#39;;&amp;quot;"&gt;http://www2.clustrmaps.com&amp;amp;#39;;&amp;quot;&lt;/a&gt; /&amp;gt;&amp;lt;/a&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/center&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;/head&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;body&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/body&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/html&amp;gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;El resultado final lo pod&amp;eacute;is ver a continuaci&amp;oacute;n:&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_299023E3.png"&gt;&lt;img height="283" width="622" src="http://192.168.0.247:4443/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_thumb_5F00_7ED9DA74.png" alt="image" border="0" title="image" style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_17026632.png"&gt;&lt;img height="555" width="631" src="http://192.168.0.247:4443/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_thumb_5F00_6AC7AE57.png" alt="image" border="0" title="image" 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;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_221525FF.png"&gt;&lt;img height="531" width="360" src="http://192.168.0.247:4443/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_thumb_5F00_4931B44B.png" alt="image" border="0" title="image" 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;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p align="justify"&gt;Espero seguiros animando en el desarrollo de gadgets para Windows Vista y 7, son bastante sencillos si se tiene alg&amp;uacute;n conocimiento de programaci&amp;oacute;n, y muy polivalentes para tener ciertos elementos de uso cotidiano a mano.&lt;/p&gt;
&lt;p align="justify"&gt;saludos!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowstecnico.com/aggbug.aspx?PostID=2225" width="1" height="1"&gt;</description><category domain="http://windowstecnico.com/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://windowstecnico.com/archive/tags/Windows+Vista/default.aspx">Windows Vista</category><category domain="http://windowstecnico.com/archive/tags/Desarrollo/default.aspx">Desarrollo</category><category domain="http://windowstecnico.com/archive/tags/Sidebar/default.aspx">Sidebar</category><category domain="http://windowstecnico.com/archive/tags/Gadget/default.aspx">Gadget</category></item><item><title>Creación e instalación de módulos para Internet Information Services 7 (parte II)</title><link>http://windowstecnico.com/archive/2009/10/30/creaci-243-n-e-instalaci-243-n-de-m-243-dulos-para-internet-information-services-7-parte-ii.aspx</link><pubDate>Fri, 30 Oct 2009 12:24:00 GMT</pubDate><guid isPermaLink="false">f5fee4ed-c2ed-43f2-a57e-69c2e2dfbdde:1158</guid><dc:creator>Juan Antonio</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://windowstecnico.com/rsscomments.aspx?PostID=1158</wfw:commentRss><comments>http://windowstecnico.com/archive/2009/10/30/creaci-243-n-e-instalaci-243-n-de-m-243-dulos-para-internet-information-services-7-parte-ii.aspx#comments</comments><description>&lt;p align="justify"&gt;En el post de hoy vamos a continuar con la cadena de post en los que voy a explicaros los aspectos b&amp;aacute;sicos sobre la programaci&amp;oacute;n de m&amp;oacute;dulos para IIS7, que comenzamos el pasado d&amp;iacute;a explicando que era IIS7 y comentando el lenguaje y el entorno de programaci&amp;oacute;n necesarios para el desarrollo:&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://www.windowstecnico.com/archive/2009/10/27/creaci-243-n-e-instalaci-243-n-de-m-243-dulos-para-internet-information-services-7-parte-i.aspx"&gt;http://www.windowstecnico.com/archive/2009/10/27/creaci-243-n-e-instalaci-243-n-de-m-243-dulos-para-internet-information-services-7-parte-i.aspx&lt;/a&gt;&lt;a href="http://elblogdecalles.blogspot.com/2009/06/programacion-de-modulos-para-iis7-i-de.html"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;Tras conocer un poco mas sobre el entorno, el siguiente paso ser&amp;aacute; plantearnos: &amp;iquest;Qu&amp;eacute; queremos hacer con un m&amp;oacute;dulo en el IIS?. Para aclararos un poco mas esta pregunta os voy a describir los dos tipos de m&amp;oacute;dulos que podemos programar en IIS7:&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;M&amp;oacute;dulos de IIS7&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;En IIS7 podremos instalar 2 tipos de m&amp;oacute;dulos programados por nosotros, en primer lugar podremos crear m&amp;oacute;dulos gr&amp;aacute;ficos, que cuentan con una interfaz gr&amp;aacute;fica para realizar configuraciones en el IIS y en segundo lugar podremos programar m&amp;oacute;dulos manejadores, que crean un manejador que se encuentra en todo momento escuchando todas las peticiones que llegan al servidor y cuando interceptan una nos permiten acceder a dicha petici&amp;oacute;n y modificarla. &lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;Creaci&amp;oacute;n e instalaci&amp;oacute;n de un m&amp;oacute;dulo filtrador de peticiones para IIS7&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Hoy os voy ha ense&amp;ntilde;ar a programar el 2&amp;ordm; de los m&amp;oacute;dulos que antes comentamos, el m&amp;oacute;dulo manejador, y crearemos el ejemplo mas sencillo de m&amp;oacute;dulo, que simplemente interceptar&amp;aacute; una petici&amp;oacute;n web, y le devolver&amp;aacute; al cliente que la realiz&amp;oacute; la p&amp;aacute;gina solicitada pero con una cadena de texto al final.&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;b&gt;&lt;span style="text-decoration:underline;"&gt;Instalaciones necesarias:&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Para la implementaci&amp;oacute;n necesitaremos los siguientes elementos:&lt;/p&gt;
&lt;p align="justify"&gt;1. Microsoft Server 2008, Microsoft Server 2008 R2, Windows Vista o Windows 7&lt;/p&gt;
&lt;p align="justify"&gt;2. Visual Studio 2005-2008&lt;/p&gt;
&lt;p align="justify"&gt;3. IIS 7&lt;/p&gt;
&lt;p align="justify"&gt;4. Asistente para creaci&amp;oacute;n de m&amp;oacute;dulos: IIS7 Managed Module Starter Kit que ha producido el &lt;a href="http://www.iis.net/downloads/IISTeam/FindProfile.ashx"&gt;IISTeam&lt;/a&gt;, y que proporcionar&amp;aacute; el esqueleto del m&amp;oacute;dulo para el IIS, se puede descargar desde:&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://www.iis.net/downloads/default.aspx?tabid=34&amp;amp;i=1302&amp;amp;g=6"&gt;http://www.iis.net/downloads/default.aspx?tabid=34&amp;amp;i=1302&amp;amp;g=6&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;b&gt;&lt;span style="text-decoration:underline;"&gt;Construcci&amp;oacute;n del m&amp;oacute;dulo:&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Tras haber instalado el IIS7 Managed Module Starter Kit, cuando se crea un nuevo proyecto se puede ver como se ha a&amp;ntilde;adido una nueva opci&amp;oacute;n:&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/_c6EYhkUKGik/SiwoBuQoK0I/AAAAAAAAB-s/FzbpviDgBKU/s1600-h/image%5B4%5D.png"&gt;&lt;img border="0" width="599" src="http://lh6.ggpht.com/_c6EYhkUKGik/SiwoC7VCtCI/AAAAAAAAB-w/nlfvl-FNRII/image_thumb%5B2%5D.png?imgmax=800" alt="image" height="433" style="display:block;float:none;margin-left:auto;margin-right:auto;" title="image" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;La seleccionamos, le damos un nombre, una ubicaci&amp;oacute;n y aceptamos. Inmediatamente despu&amp;eacute;s se nos abrir&amp;aacute; una ventana donde nos resumen el contenido del asistente. Hacemos doble clic en el explorador de soluciones en el fichero MyModule.cs, que modificaremos dependiendo de las necesidades que tengamos en nuestro m&amp;oacute;dulo. Se nos abrir&amp;aacute; la ventana con el c&amp;oacute;digo del fichero, si expandimos las partes de c&amp;oacute;digo minimizadas, nos aparecer&amp;aacute; lo siguiente:&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p align="justify"&gt;using System;&lt;/p&gt;
&lt;p align="justify"&gt;using System.Collections.Generic;&lt;/p&gt;
&lt;p align="justify"&gt;using System.Text;&lt;/p&gt;
&lt;p align="justify"&gt;using System.Web;&lt;/p&gt;
&lt;p align="justify"&gt;namespace MyIIS7Modules&lt;/p&gt;
&lt;p align="justify"&gt;{&lt;/p&gt;
&lt;p align="justify"&gt;/// &amp;lt;summary&amp;gt;&lt;/p&gt;
&lt;p align="justify"&gt;/// The module class.&lt;/p&gt;
&lt;p align="justify"&gt;/// &amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p align="justify"&gt;public class MyModule : IHttpModule&lt;/p&gt;
&lt;p align="justify"&gt;{&lt;/p&gt;
&lt;p align="justify"&gt;#region IHttpModule Members&lt;/p&gt;
&lt;p align="justify"&gt;/// &amp;lt;summary&amp;gt;&lt;/p&gt;
&lt;p align="justify"&gt;/// Initializes the module, and registers for application events.&lt;/p&gt;
&lt;p align="justify"&gt;/// &amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p align="justify"&gt;/// &amp;lt;param name=&amp;quot;application&amp;quot;&amp;gt;&lt;/p&gt;
&lt;p align="justify"&gt;/// The System.Web.HttpApplication instance exposing application events.&lt;/p&gt;
&lt;p align="justify"&gt;/// &amp;lt;/param&amp;gt;&lt;/p&gt;
&lt;p align="justify"&gt;public void Init(HttpApplication application)&lt;/p&gt;
&lt;p align="justify"&gt;{&lt;/p&gt;
&lt;p align="justify"&gt;// register for the PreRequestHandlerExecute event:&lt;/p&gt;
&lt;p align="justify"&gt;application.PreRequestHandlerExecute += new EventHandler(OnPreRequestHandlerExecute);&lt;/p&gt;
&lt;p align="justify"&gt;// TODO: add additional application event handlers here&lt;/p&gt;
&lt;p align="justify"&gt;}&lt;/p&gt;
&lt;p align="justify"&gt;/// &amp;lt;summary&amp;gt;&lt;/p&gt;
&lt;p align="justify"&gt;/// Disposes of the resources (other than memory) used by the module.&lt;/p&gt;
&lt;p align="justify"&gt;/// &amp;lt;/summary&amp;gt;&lt;/p&gt;
&lt;p align="justify"&gt;public void Dispose()&lt;/p&gt;
&lt;p align="justify"&gt;{&lt;/p&gt;
&lt;p align="justify"&gt;}&lt;/p&gt;
&lt;p align="justify"&gt;#endregion&lt;/p&gt;
&lt;p align="justify"&gt;#region Module Event Handlers&lt;/p&gt;
&lt;p align="justify"&gt;public void OnPreRequestHandlerExecute(Object source, EventArgs e)&lt;/p&gt;
&lt;p align="justify"&gt;{&lt;/p&gt;
&lt;p align="justify"&gt;HttpApplication app = (HttpApplication)source;&lt;/p&gt;
&lt;p align="justify"&gt;HttpContext context = app.Context;&lt;/p&gt;
&lt;p align="justify"&gt;// TODO: implement module functionality here&lt;/p&gt;
&lt;p align="justify"&gt;}&lt;/p&gt;
&lt;p align="justify"&gt;#endregion&lt;/p&gt;
&lt;p align="justify"&gt;}&lt;/p&gt;
&lt;p align="justify"&gt;}&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;b&gt;&lt;span style="text-decoration:underline;"&gt;&lt;/span&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;/b&gt;&lt;/p&gt;
&lt;p align="justify"&gt;En este fichero debemos hacer 3 modificaciones:&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;1. Vaciamos todo el contenido de la funci&amp;oacute;n &amp;ldquo;Init&amp;rdquo;, y a&amp;ntilde;adimos la siguiente l&amp;iacute;nea que nos a&amp;ntilde;adir&amp;aacute; el evento manejador:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p align="justify"&gt;&lt;i&gt;application.EndRequest += new EventHandler(application_EndRequest);&lt;/i&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p align="justify"&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p align="justify"&gt;2. Eliminamos la siguiente funci&amp;oacute;n, que no necesitamos para nuestro m&amp;oacute;dulo:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p align="justify"&gt;&lt;i&gt;&lt;/i&gt;&lt;i&gt;public&lt;/i&gt;&lt;i&gt; void OnPreRequestHandlerExecute(Object source, EventArgs e)&lt;/i&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;i&gt;{&lt;/i&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;i&gt;HttpApplication app = (HttpApplication)source;&lt;/i&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;i&gt;HttpContext context = app.Context;&lt;/i&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;i&gt;// TODO: implement module functionality here&lt;/i&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;i&gt;}&lt;/i&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p align="justify"&gt;&lt;em&gt;&lt;/em&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;b&gt;&lt;span style="text-decoration:underline;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p align="justify"&gt;3. A&amp;ntilde;adimos la siguiente funci&amp;oacute;n. En la parte comentada que pone &amp;ldquo;A&amp;Ntilde;ADIMOS NUESTRO C&amp;Oacute;DIGO&amp;rdquo; es donde deberemos programar las acciones que realizar&amp;aacute; nuestro m&amp;oacute;dulo, por ejemplo, a&amp;ntilde;adir una l&amp;iacute;nea nueva a todas las peticiones HTML que le llegan al servidor, filtrar su contenido, borrado de comentarios&amp;hellip; Para este ejemplo, vamos a a&amp;ntilde;adir una nueva l&amp;iacute;nea de texto, que salga en todas las p&amp;aacute;ginas web que devuelva nuestro servidor a los usuarios. Para ello simplemente llamamos al objeto context y le indicamos que en la respuesta a&amp;ntilde;adiremos un bloque de texto:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p align="justify"&gt;&lt;i&gt;void&lt;/i&gt;&lt;i&gt; application_EndRequest(object sender, EventArgs e)&lt;/i&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;i&gt;{&lt;/i&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;i&gt;HttpApplication application = (HttpApplication)sender;&lt;/i&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;i&gt;HttpContext context = application.Context;&lt;/i&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;i&gt;&lt;/i&gt;&lt;b&gt;//A&amp;Ntilde;ADIMOS NUESTRO C&amp;Oacute;DIGO&lt;/b&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;i&gt;&lt;/i&gt;context.Response.Write(&amp;ldquo;P&amp;aacute;gina modificada por &lt;a href="http://www.windowstecnico.com/"&gt;www.windowstecnico.com&lt;/a&gt;&amp;rdquo;);&lt;/p&gt;
&lt;p align="justify"&gt;&lt;i&gt;}&lt;/i&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p align="justify"&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Una vez construido nuestro m&amp;oacute;dulo debemos hacer 2 cosas:&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;1.) Tenemos que firmar nuestra librer&amp;iacute;a .dll que hemos generado, para ello hacemos doble clic en el explorador de soluciones en la etiqueta &amp;ldquo;properties&amp;rdquo; y nos vamos a la pesta&amp;ntilde;a &amp;ldquo;firma&amp;rdquo;, marcamos la casilla &amp;ldquo;firmar el ensamblado&amp;rdquo; y en seleccionar un archivo de clave de nombre seguro le damos a :&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://lh6.ggpht.com/_c6EYhkUKGik/SiwoEMoF_YI/AAAAAAAAB-0/grFmEqP1oYo/s1600-h/image%5B9%5D.png"&gt;&lt;img border="0" width="613" src="http://lh4.ggpht.com/_c6EYhkUKGik/SiwoFYgyyoI/AAAAAAAAB-4/23a8yWFVcRU/image_thumb%5B5%5D.png?imgmax=800" alt="image" height="439" style="display:block;float:none;margin-left:auto;margin-right:auto;" title="image" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;Le asignamos un nombre, por ejemplo, key.snk y desmarcamos la casilla de proteger con contrase&amp;ntilde;a. Con esto ya tenemos nuestra .dll firmada:&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/_c6EYhkUKGik/SiwoGeY-JfI/AAAAAAAAB-8/RbHMKQKbDBM/s1600-h/image%5B13%5D.png"&gt;&lt;img border="0" width="490" src="http://lh6.ggpht.com/_c6EYhkUKGik/SiwoHtA_8oI/AAAAAAAAB_A/j-WD2vBvKX0/image_thumb%5B7%5D.png?imgmax=800" alt="image" height="339" style="display:block;float:none;margin-left:auto;margin-right:auto;" title="image" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;2.) Tenemos que a&amp;ntilde;adir un peque&amp;ntilde;o script, que nos enviar&amp;aacute; nuestra .dll firmada a la carpeta de ensamblados que se encuentra en la ruta C:\Windows\assembly, desde donde el IIS la recoger&amp;aacute; para poder agregarla finalmente c&amp;oacute;mo modulo. Para ello, sin salirnos de la ventana &amp;ldquo;properties&amp;rdquo; nos vamos a la pesta&amp;ntilde;a &amp;ldquo;Eventos de generaci&amp;oacute;n&amp;rdquo;, y en el cuadro &amp;ldquo;l&amp;iacute;nea de comandos del evento posterior a la generaci&amp;oacute;n&amp;rdquo; incluimos el siguiente script si est&amp;aacute;is usando Visual Studio 2005:&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p align="justify"&gt;CALL &amp;quot;%VS80COMNTOOLS%\vsvars32.bat&amp;quot; &amp;gt; NULL&lt;/p&gt;
&lt;p align="justify"&gt;gacutil.exe /if &amp;quot;$(TargetPath)&amp;quot;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p align="justify"&gt;&amp;oacute; el siguiente si se est&amp;aacute; usando Visual Studio 2008:&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p align="justify"&gt;CALL &amp;quot;%VS90COMNTOOLS%\vsvars32.bat&amp;quot; &amp;gt; NULL&lt;/p&gt;
&lt;p align="justify"&gt;gacutil.exe /if &amp;quot;$(TargetPath)&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;Quedando finalmente lo siguiente:&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://lh6.ggpht.com/_c6EYhkUKGik/SiwoIgGb-TI/AAAAAAAAB_E/v7iKhfZaoWE/s1600-h/image%5B17%5D.png"&gt;&lt;img border="0" width="649" src="http://lh6.ggpht.com/_c6EYhkUKGik/SiwoKJeRcpI/AAAAAAAAB_I/qQ5dwYP2QCM/image_thumb%5B9%5D.png?imgmax=800" alt="image" height="337" style="display:block;float:none;margin-left:auto;margin-right:auto;" title="image" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;b&gt;&lt;span style="text-decoration:underline;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;b&gt;&lt;span style="text-decoration:underline;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;b&gt;&lt;span style="text-decoration:underline;"&gt;Configuraci&amp;oacute;n del IIS:&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p align="justify"&gt;1. Tras ejecutarse los scripts ya tendremos nuestra .dll firmada en la carpeta C:\Windows\assembly y lista para agregarla como modulo (en caso de tener la .dll aparte, bien porque la hemos generado desde otro PC o porque estamos probando una que no hemos generado nosotros, nos bastar&amp;aacute; con copiar la .dll a esta misma carpeta, seguramente tengamos que aumentar las permisos de esta carpeta antes). Tras esto nos vamos al Administrador de Internet Information Services y hacemos doble clic en el icono &amp;ldquo;m&amp;oacute;dulos&amp;rdquo;:&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://lh5.ggpht.com/_c6EYhkUKGik/SiwoLOC8TgI/AAAAAAAAB_M/TGaDyEtXbTw/s1600-h/image%5B21%5D.png"&gt;&lt;img border="0" width="642" src="http://lh5.ggpht.com/_c6EYhkUKGik/SiwoMWhDh9I/AAAAAAAAB_Q/-kSjvcvRSPk/image_thumb%5B11%5D.png?imgmax=800" alt="image" height="423" style="display:block;float:none;margin-left:auto;margin-right:auto;" title="image" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;Vamos a la opci&amp;oacute;n &amp;ldquo;agregar modulo administrado&amp;rdquo;:&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://lh6.ggpht.com/_c6EYhkUKGik/SiwoN39qOOI/AAAAAAAAB_U/earEkxRehuQ/s1600-h/image%5B25%5D.png"&gt;&lt;img border="0" width="658" src="http://lh6.ggpht.com/_c6EYhkUKGik/SiwoQ5tS31I/AAAAAAAAB_Y/ZDOmRvm-zn0/image_thumb%5B13%5D.png?imgmax=800" alt="image" height="526" style="display:block;float:none;margin-left:auto;margin-right:auto;" title="image" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;En tipo, en el desplegable, seleccionamos nuestro m&amp;oacute;dulo, y le damos un nombre cualquiera:&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://lh5.ggpht.com/_c6EYhkUKGik/SiwoSA7cpeI/AAAAAAAAB_c/uDO3d1OBtB8/s1600-h/image%5B29%5D.png"&gt;&lt;img border="0" width="454" src="http://lh5.ggpht.com/_c6EYhkUKGik/SiwoTbTfT4I/AAAAAAAAB_g/SlAiCXbfOsE/image_thumb%5B15%5D.png?imgmax=800" alt="image" height="327" style="display:block;float:none;margin-left:auto;margin-right:auto;" title="image" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;Una vez hecho esto, si abrimos un sitio web alojado en el IIS, deber&amp;iacute;a estar funcionando nuestro m&amp;oacute;dulo y mostrarnos en las p&amp;aacute;ginas web la l&amp;iacute;nea de texto que le indicamos:&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_4FA89E76.png"&gt;&lt;img border="0" width="474" src="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_thumb_5F00_1142DAC3.png" alt="image" height="282" style="border-right:0px;border-top:0px;display:block;float:none;margin-left:auto;border-left:0px;margin-right:auto;border-bottom:0px;" title="image" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;Espero que os haya gustado el post y que os anim&amp;eacute;is a programar vuestros propios m&amp;oacute;dulos, y recordad que lo mas importante es tener una buena idea y pensar que todo es programable, solo hacen falta las fuentes de informaci&amp;oacute;n adecuadas :), el pr&amp;oacute;ximo d&amp;iacute;a os hablar&amp;eacute; sobre la programaci&amp;oacute;n de m&amp;oacute;dulos con interfaz gr&amp;aacute;fica.&lt;/p&gt;
&lt;p&gt;saludos!!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowstecnico.com/aggbug.aspx?PostID=1158" width="1" height="1"&gt;</description><category domain="http://windowstecnico.com/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://windowstecnico.com/archive/tags/Windows+Vista/default.aspx">Windows Vista</category><category domain="http://windowstecnico.com/archive/tags/Windows+Server+2008/default.aspx">Windows Server 2008</category><category domain="http://windowstecnico.com/archive/tags/Internet/default.aspx">Internet</category><category domain="http://windowstecnico.com/archive/tags/Desarrollo/default.aspx">Desarrollo</category><category domain="http://windowstecnico.com/archive/tags/IIS/default.aspx">IIS</category><category domain="http://windowstecnico.com/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://windowstecnico.com/archive/tags/.Net/default.aspx">.Net</category></item><item><title>Creación e instalación de módulos para Internet Information Services 7 (parte I)</title><link>http://windowstecnico.com/archive/2009/10/27/creaci-243-n-e-instalaci-243-n-de-m-243-dulos-para-internet-information-services-7-parte-i.aspx</link><pubDate>Tue, 27 Oct 2009 08:07:00 GMT</pubDate><guid isPermaLink="false">f5fee4ed-c2ed-43f2-a57e-69c2e2dfbdde:1016</guid><dc:creator>Juan Antonio</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://windowstecnico.com/rsscomments.aspx?PostID=1016</wfw:commentRss><comments>http://windowstecnico.com/archive/2009/10/27/creaci-243-n-e-instalaci-243-n-de-m-243-dulos-para-internet-information-services-7-parte-i.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://seekdotnethosting.files.wordpress.com/2009/03/iis7.jpg"&gt;&lt;img border="0" width="498" src="http://192.168.0.247:4443/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image001_5F00_446DA684.jpg" alt="clip_image001" height="476" style="border-right:0px;border-top:0px;display:block;float:none;margin-left:auto;border-left:0px;margin-right:auto;border-bottom:0px;" title="clip_image001" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;En el post de hoy vamos a comenzar una cadena de posts sobre IIS7, en concreto me gustar&amp;iacute;a hablaros sobre donde se prolongan sus l&amp;iacute;mites mediante programaci&amp;oacute;n.&lt;/p&gt;
&lt;p align="justify"&gt;Este ser&amp;aacute; el primero de tres post, en los que comentar&amp;eacute; desde el principio hasta el final como implementar un nuevo m&amp;oacute;dulo para IIS7 desde 0, que haga lo que vosotros quer&amp;aacute;is, desde captar una simple petici&amp;oacute;n web que haga alg&amp;uacute;n usuario al servidor, y modificarla a vuestro antojo, a sustitu&amp;iacute;rsela por otro documento, a&amp;ntilde;adirle scripts, lo que vosotros quer&amp;aacute;is, la imaginaci&amp;oacute;n pondr&amp;aacute; el l&amp;iacute;mite en esta tarea.&lt;/p&gt;
&lt;p align="justify"&gt;En este, que ser&amp;aacute; el primer post, os voy a introducir en la materia y daros un poco de informaci&amp;oacute;n sobre el tema empezando por el principio de los tiempos.&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&amp;iquest;Que es &lt;/strong&gt;&lt;a href="http://www.iis.net/"&gt;&lt;strong&gt;IIS7&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;?&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;IIS7 es el servidor que llevan incorporadas las &amp;uacute;ltimas versiones de los sistemas operativos Windows, en concreto IIS 7.0 en las versiones de Windows Vista y Microsoft Server 2008 e IIS 7.5 en su nueva versi&amp;oacute;n para Windows 7 y Microsoft Server 2008 R2. Para los expertos en el tema sabr&amp;eacute;is que IIS7 se ha visto mejorado con respecto a IIS6 en numerosos aspectos, entre los que destaca la seguridad y sobre todo su aspecto y simplicidad, y es en este &amp;uacute;ltimo en el que Microsoft puede estar bien orgullosa, porque navegar por el men&amp;uacute; gr&amp;aacute;fico del IIS7 es un verdadero placer:&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image003_5F00_1A23900B.jpg"&gt;&lt;img border="0" width="428" src="http://192.168.0.247:4443/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image003_5F00_thumb_5F00_1E306E8E.jpg" alt="clip_image003" height="508" style="border-right:0px;border-top:0px;display:block;float:none;margin-left:auto;border-left:0px;margin-right:auto;border-bottom:0px;" title="clip_image003" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;IIS7 tambi&amp;eacute;n destaca por su sencillez de configuraci&amp;oacute;n, en gran parte conseguido por su interface. &lt;/p&gt;
&lt;p align="justify"&gt;Adem&amp;aacute;s, IIS7 ha sido dise&amp;ntilde;ado pensando en los desarrolladores, facilit&amp;aacute;ndoles Starters Kits para la implementaci&amp;oacute;n de extensiones para a&amp;ntilde;adirles m&amp;aacute;s caracter&amp;iacute;sticas. Para estos &amp;uacute;ltimos tambi&amp;eacute;n posee un sistema de diagn&amp;oacute;stico en tiempo de ejecuci&amp;oacute;n, muy &amp;uacute;til a la hora de depurar, que ofrece informaci&amp;oacute;n sobre que peticiones est&amp;aacute;n ejecut&amp;aacute;ndose actualmente, cu&amp;aacute;nto tiempo llevan ejecut&amp;aacute;ndose, que URLs est&amp;aacute;n siendo invocadas, que cliente las invoca, y cu&amp;aacute;l es su estado actual. Un verdadero gustazo.&lt;/p&gt;
&lt;p align="justify"&gt;Ahora que ya sab&amp;eacute;is un poco m&amp;aacute;s sobre IIS7, a instalarlo!, ten&amp;eacute;is un sencillo manual sobre su instalaci&amp;oacute;n en el siguiente link:&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://learn.iis.net/page.aspx/28/installing-iis-70-on-windows-vista/"&gt;http://learn.iis.net/page.aspx/28/installing-iis-70-on-windows-vista/&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&amp;iquest;En qu&amp;eacute; lenguaje programaremos los m&amp;oacute;dulos para IIS7?&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Una vez instalado IIS7, y nos hayamos familiarizado con el entorno, comenzaremos a programar nuestro primer m&amp;oacute;dulo. Los m&amp;oacute;dulos para IIS7 los programaremos en C#, en .NET por supuesto :), as&amp;iacute; que ir preparando el Visual Studio (2005 o 2008), que el pr&amp;oacute;ximo d&amp;iacute;a daremos ca&amp;ntilde;a al compilador.&lt;/p&gt;
&lt;p align="justify"&gt;En el pr&amp;oacute;ximo post, os comentar&amp;eacute; como programar vuestro primer m&amp;oacute;dulo, en &amp;eacute;l, os ense&amp;ntilde;ar&amp;eacute; a crear una extensi&amp;oacute;n para el servidor que capture todas las peticiones web que realicen los usuarios al servidor y a modificarles las p&amp;aacute;ginas solicitadas, a&amp;ntilde;adi&amp;eacute;ndoles una l&amp;iacute;nea de texto al final de la p&amp;aacute;gina antes de devolv&amp;eacute;rsela al usuario. Un ejemplo muy sencillo, pero con el que ver&amp;eacute;is claramente, que se puede hacer casi cualquier cosa en el servidor desde un simple m&amp;oacute;dulo del IIS.&lt;/p&gt;
&lt;p align="justify"&gt;Saludos!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowstecnico.com/aggbug.aspx?PostID=1016" width="1" height="1"&gt;</description><category domain="http://windowstecnico.com/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://windowstecnico.com/archive/tags/Windows+Vista/default.aspx">Windows Vista</category><category domain="http://windowstecnico.com/archive/tags/Windows+Server+2008/default.aspx">Windows Server 2008</category><category domain="http://windowstecnico.com/archive/tags/Desarrollo/default.aspx">Desarrollo</category><category domain="http://windowstecnico.com/archive/tags/IIS/default.aspx">IIS</category><category domain="http://windowstecnico.com/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://windowstecnico.com/archive/tags/Programacion/default.aspx">Programacion</category><category domain="http://windowstecnico.com/archive/tags/.Net/default.aspx">.Net</category></item><item><title>Creación de un gadget para la Sidebar de Windows II</title><link>http://windowstecnico.com/archive/2009/06/30/creaci-243-n-de-un-gadget-para-la-sidebar-de-windows-ii.aspx</link><pubDate>Tue, 30 Jun 2009 13:20:00 GMT</pubDate><guid isPermaLink="false">f5fee4ed-c2ed-43f2-a57e-69c2e2dfbdde:382</guid><dc:creator>Juan Antonio</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://windowstecnico.com/rsscomments.aspx?PostID=382</wfw:commentRss><comments>http://windowstecnico.com/archive/2009/06/30/creaci-243-n-de-un-gadget-para-la-sidebar-de-windows-ii.aspx#comments</comments><description>&lt;p align="justify"&gt;Hace unos meses publiqu&amp;eacute; un post en el que expliqu&amp;eacute; como programar e instalar un gadget para la Sidebar de Windows Vista. Dado el &amp;eacute;xito que tuvo, he decidido realizar otro post, programando otro gadget, pero esta vez para Windows 7:&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://192.168.0.247:4443/archive/2009/04/05/creaci-243-n-de-un-gadget-para-la-sidebar-de-windows.aspx"&gt;http://www.windowstecnico.com/archive/2009/04/05/creaci-243-n-de-un-gadget-para-la-sidebar-de-windows.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;&amp;iquest;Qu&amp;eacute; diferencias hay entre programar un gadget para Vista o 7?&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;En la etapa de programaci&amp;oacute;n no hay ninguna diferencia. El &amp;uacute;nico punto donde var&amp;iacute;a el proceso es durante la instalaci&amp;oacute;n, ya que como sabr&amp;aacute;n los usuarios que han tenido la oportunidad de probar las betas de Windows 7, en el nuevo sistema operativo no hay una sidebar como tal, sino que los gadgets podr&amp;aacute;n ser colocados por el escritorio en cualquier lugar. A&amp;uacute;n as&amp;iacute; la tarea es bastante sencilla.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;Creaci&amp;oacute;n del gadget&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Como antes coment&amp;eacute; el proceso de programaci&amp;oacute;n del gadget para Windows 7 es exactamente el mismo que para Vista y se basa en la estructura que ten&amp;eacute;is en el post anterior:&lt;/p&gt;
&lt;p align="justify"&gt;&amp;middot; Documento XML de manifiesto&lt;/p&gt;
&lt;p align="justify"&gt;&amp;middot; Documento HTML&lt;/p&gt;
&lt;p align="justify"&gt;&amp;middot; Documento HTML de configuraci&amp;oacute;n&lt;/p&gt;
&lt;p align="justify"&gt;&amp;middot; Im&amp;aacute;genes&lt;/p&gt;
&lt;p align="justify"&gt;&amp;middot; Fichero js&lt;/p&gt;
&lt;p align="justify"&gt;&amp;middot; Hojas de Estilo CSS&lt;/p&gt;
&lt;p align="justify"&gt;Para el nuevo gadget he decidido realizar un peque&amp;ntilde;o programa que convierta un s&amp;iacute;mbolo a su equivalente ASCII, al igual que le ocurrir&amp;aacute; a muchos desarrolladores o usuarios como a m&amp;iacute;, de vez en cuando nos toca buscar por internet una tabla ASCII para ver un s&amp;iacute;mbolo concreto, por lo que nunca est&amp;aacute; de m&amp;aacute;s tener un convertidor a mano.&lt;/p&gt;
&lt;p align="justify"&gt;Ya que el proceso completo lo ten&amp;eacute;is indicado en el primer post, voy a omitir toda la parte com&amp;uacute;n y voy a ir directo al apartado de la generaci&amp;oacute;n del fichero HTML, que es el que ejecutar&amp;aacute; y contendr&amp;aacute; los elementos de nuestro programa:&lt;/p&gt;
&lt;p align="justify"&gt;&amp;lt;html&amp;gt;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;lt;head&amp;gt;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;lt;title&amp;gt;ascii&amp;lt;/title&amp;gt;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;css/style.css&amp;quot;&amp;gt;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;lt;/head&amp;gt;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;lt;body text=&amp;quot;white&amp;quot;&amp;gt;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;lt;center&amp;gt;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;lt;form name=&amp;quot;box&amp;quot;&amp;gt;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;lt;input name=&amp;quot;box2&amp;quot; style=&amp;#39;background:blue;color:white&amp;#39; size=&amp;#39;1&amp;#39; type=&amp;#39;text&amp;#39;/&amp;gt;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;lt;input type=&amp;quot;button&amp;quot; style=&amp;#39;background:transparent;color:white&amp;#39; onclick=&amp;#39;ascii()&amp;#39; value=&amp;#39;Go&amp;#39; &amp;gt;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;lt;/form&amp;gt;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;lt;script&amp;gt;&lt;/p&gt;
&lt;p align="justify"&gt;function ascii()&lt;/p&gt;
&lt;p align="justify"&gt;{&lt;/p&gt;
&lt;p align="justify"&gt;var x = document.box.box2.value;&lt;/p&gt;
&lt;p align="justify"&gt;document.box.box2.value = x.charCodeAt(0);&lt;/p&gt;
&lt;p align="justify"&gt;}&lt;/p&gt;
&lt;p align="justify"&gt;&amp;lt;/script&amp;gt;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;lt;/center&amp;gt;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;lt;/body&amp;gt;&lt;/p&gt;
&lt;p align="justify"&gt;&amp;lt;/html&amp;gt;&lt;/p&gt;
&lt;p align="justify"&gt;C&amp;oacute;mo veis el c&amp;oacute;digo es bastante sencillo, simplemente tendremos un cuadro de texto, en el que escribiremos un s&amp;iacute;mbolo, y un bot&amp;oacute;n, que cada vez que sea pulsado ejecutar&amp;aacute; la funci&amp;oacute;n &amp;ldquo;ascii&amp;rdquo;, que se encargar&amp;aacute; de sustituir el s&amp;iacute;mbolo inicial en el cuadro por su equivalente ascii.&lt;/p&gt;
&lt;p align="justify"&gt;Para modificarle el aspecto visual, he creado un nuevo fondo de pantalla con un editor de im&amp;aacute;genes.&lt;/p&gt;
&lt;p align="justify"&gt;Tras finalizar el proceso, deber&amp;iacute;ais tener lo siguiente:&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image002_5F00_4A07C5F2.jpg"&gt;&lt;img border="0" width="572" src="http://192.168.0.247:4443/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image002_5F00_thumb_5F00_3272A930.jpg" alt="clip_image002" height="366" style="border-top-width:0px;display:block;border-left-width:0px;float:none;border-bottom-width:0px;margin-left:auto;margin-right:auto;border-right-width:0px;" title="clip_image002" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Al igual que en Windows Vista, en Windows 7 los gadget se almacenan en la ruta:&lt;/p&gt;
&lt;p align="justify"&gt;C:\Program Files\Windows Sidebar\Gadgets&lt;/p&gt;
&lt;p align="justify"&gt;Por lo que en ese lugar ser&amp;aacute; donde deb&amp;eacute;is dejar la carpeta ra&amp;iacute;z del gadget con todos los elementos que la contienen.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image004_5F00_142A82EB.jpg"&gt;&lt;img border="0" width="586" src="http://192.168.0.247:4443/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image004_5F00_thumb_5F00_5EB45176.jpg" alt="clip_image004" height="328" style="border-top-width:0px;display:block;border-left-width:0px;float:none;border-bottom-width:0px;margin-left:auto;margin-right:auto;border-right-width:0px;" title="clip_image004" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Una vez agregada la carpeta iremos al escritorio. Haremos click derecho con el rat&amp;oacute;n y pulsaremos en la opci&amp;oacute;n &amp;ldquo;gadget&amp;rdquo;. Se nos abrir&amp;aacute; la siguiente ventana, en la que podremos ver nuestro nuevo gadget con la descripci&amp;oacute;n que escribimos en el fichero XML de configuraci&amp;oacute;n. &lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image006_5F00_09231345.gif"&gt;&lt;img border="0" width="593" src="http://192.168.0.247:4443/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image006_5F00_thumb_5F00_1CD51E3B.gif" alt="clip_image006" height="379" style="border-top-width:0px;display:block;border-left-width:0px;float:none;border-bottom-width:0px;margin-left:auto;margin-right:auto;border-right-width:0px;" title="clip_image006" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image007_5F00_0391C656.gif"&gt;&lt;img border="0" width="482" src="http://192.168.0.247:4443/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image007_5F00_thumb_5F00_25138696.gif" alt="clip_image007" height="550" style="border-top-width:0px;display:block;border-left-width:0px;float:none;border-bottom-width:0px;margin-left:auto;margin-right:auto;border-right-width:0px;" title="clip_image007" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Si hacemos doble click sobre el icono del gadget, nos aparecer&amp;aacute; en el escritorio, donde podremos colocarlo en cualquier lugar:&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image011_5F00_1EF15B5D.jpg"&gt;&lt;img border="0" width="244" src="http://192.168.0.247:4443/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image011_5F00_thumb_5F00_69E75CDD.jpg" alt="clip_image011" height="216" style="border-top-width:0px;display:block;border-left-width:0px;float:none;border-bottom-width:0px;margin-left:auto;margin-right:auto;border-right-width:0px;" title="clip_image011" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image009_5F00_596EEBE2.gif"&gt;&lt;img border="0" width="537" src="http://192.168.0.247:4443/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image009_5F00_thumb_5F00_1EAC646E.gif" alt="clip_image009" height="344" style="border-top-width:0px;display:block;border-left-width:0px;float:none;border-bottom-width:0px;margin-left:auto;margin-right:auto;border-right-width:0px;" title="clip_image009" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a href="http://blogserver.informatica64.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image011_5F00_1EF15B5D.jpg"&gt;&amp;nbsp;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowstecnico.com/aggbug.aspx?PostID=382" width="1" height="1"&gt;</description><category domain="http://windowstecnico.com/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://windowstecnico.com/archive/tags/Windows+Vista/default.aspx">Windows Vista</category><category domain="http://windowstecnico.com/archive/tags/Desarrollo/default.aspx">Desarrollo</category><category domain="http://windowstecnico.com/archive/tags/Sidebar/default.aspx">Sidebar</category><category domain="http://windowstecnico.com/archive/tags/Usabilidad/default.aspx">Usabilidad</category></item><item><title>Crear gadget para la Sidebar de Windows 7</title><link>http://windowstecnico.com/archive/2009/04/05/creaci-243-n-de-un-gadget-para-la-sidebar-de-windows.aspx</link><pubDate>Sun, 05 Apr 2009 05:18:00 GMT</pubDate><guid isPermaLink="false">f5fee4ed-c2ed-43f2-a57e-69c2e2dfbdde:160</guid><dc:creator>Juan Antonio</dc:creator><slash:comments>12</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://windowstecnico.com/rsscomments.aspx?PostID=160</wfw:commentRss><comments>http://windowstecnico.com/archive/2009/04/05/creaci-243-n-de-un-gadget-para-la-sidebar-de-windows.aspx#comments</comments><description>&lt;p&gt;En la pasada entrada sobre la tecnolog&amp;iacute;a SideShow de Microsoft os comentaba el poder que ten&amp;iacute;an los gadget como elemento de comunicaci&amp;oacute;n con el PC, pero lo que no os coment&amp;eacute; es que estos gadget adem&amp;aacute;s de ser descargables gratuitamente desde la p&amp;aacute;gina de Microsoft habilitada al uso, tambi&amp;eacute;n pueden ser creados por cualquier usuario con unos conocimientos m&amp;iacute;nimos de programaci&amp;oacute;n web, consiguiendo de esta manera romper los l&amp;iacute;mites que pudiese tener esta tecnolog&amp;iacute;a.&lt;/p&gt;
&lt;p align="justify"&gt;C&amp;oacute;mo pod&amp;eacute;is imaginar, los gadget de SideShow y de la SideBar, la barra lateral del escritorio de Windows Vista, son muy semejantes, de hecho, hoy vamos a hacer una demo de c&amp;oacute;mo programar nuestro primer gadget para la SideBar.&lt;/p&gt;
&lt;p align="justify"&gt;Para poder programar un gadget no necesitaremos ser verdaderos expertos en programaci&amp;oacute;n web, simplemente nos bastar&amp;aacute; con saber un poco sobre los siguientes lenguajes y tecnolog&amp;iacute;as:&lt;/p&gt;
&lt;p align="justify"&gt;&amp;middot; HTML&lt;/p&gt;
&lt;p align="justify"&gt;&amp;middot; JavaScript &amp;oacute; VBScript&lt;/p&gt;
&lt;p align="justify"&gt;&amp;middot; CSS&lt;/p&gt;
&lt;p align="justify"&gt;&amp;middot; XML&lt;/p&gt;
&lt;p align="justify"&gt;Por si no os ha quedado claro a&amp;uacute;n que son los gadget, son una serie de miniaplicaciones que se pueden instalar en la barra lateral del Windows Vista, en el nuevo Windows 7 y en los hardware que soporten la tecnolog&amp;iacute;a SideShow, que nos permiten explotar al m&amp;aacute;ximo todas las posibilidades de nuestro Windows y la conectividad a diferentes recursos de internet como por ejemplo uno de los m&amp;aacute;s conocidos, el RSS.&lt;/p&gt;
&lt;p align="justify"&gt;Para mostrar la SideBar, deber&amp;eacute;is ir al Men&amp;uacute; de inicio &amp;gt; Programas &amp;gt; Accesorios &amp;gt; Windows Sidebar.&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;Demo: creci&amp;oacute;n de gadget para la Sidebar&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Lo primero que deberemos hacer para crearnos nuestro propio gadget es ir a la ruta donde est&amp;aacute;n instalados los gadget de la Sidebar, tanto los que vienen instalados por defecto en Windows, como los que hemos ido instalando posteriormente. Por defecto los gadget se encuentran en la ruta: C:\Program Files\Windows Sidebar\Gadgets.&lt;/p&gt;
&lt;p align="justify"&gt;Una vez hayamos ido a la ruta anterior, visualizaremos todos nuestros gadget:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.46/sidebar-2.jpg" alt="" /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;Si sois un poco curiosos y mir&amp;aacute;is el contenido de cada gadget os dar&amp;eacute;is cuenta de que todos se basan en una estructura com&amp;uacute;n:&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;Documento XML de manifiesto&lt;/span&gt;&lt;/strong&gt;&lt;span style="text-decoration:underline;"&gt;:&lt;/span&gt; En este archivo es donde se definen las propiedades de nuestro gadget: nombre, icono, autor, descripci&amp;oacute;n de la utilidad del gadget, etc.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;Documento HTML&lt;/span&gt;&lt;/strong&gt;&lt;span style="text-decoration:underline;"&gt;:&lt;/span&gt; En &amp;eacute;l se programar&amp;aacute; toda la funcionalidad de la interfaz gr&amp;aacute;fica de nuestro gadget.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;Documento HTML de configuraci&amp;oacute;n:&lt;/span&gt;&lt;/strong&gt; En caso de que nuestra aplicaci&amp;oacute;n sea muy compleja y tenga varios par&amp;aacute;metros configurables, deberemos crear este documento (opcionalmente) para que el usuario pueda interactuar directamente con el gadget.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;Im&amp;aacute;genes&lt;/span&gt;: &lt;/strong&gt;Necesitaremos tres im&amp;aacute;genes diferentes para nuestro gadget c&amp;oacute;mo m&amp;iacute;nimo, aunque esta parte es opcional tambi&amp;eacute;n, una de ellas definir&amp;aacute; el icono del men&amp;uacute; de la sidebar para agregar nuevos gadget, otra de las im&amp;aacute;genes, ser&amp;aacute; la que se mostrar&amp;aacute; junto con los datos del autor, y la &amp;uacute;ltima imagen, definir&amp;aacute; el fondo de nuestro gadget, en caso de no poner esta &amp;uacute;ltima, el fondo de nuestro gadget adquirir&amp;aacute; el color de fondo que indiquemos en el fichero HTML, si queremos que nuestro gadget destaque visualmente, os recomiendo que hag&amp;aacute;is un fondo transparente con bordes suaves y redondeados, c&amp;oacute;mo hemos hecho nosotros con un programa de retoque fotogr&amp;aacute;fico.&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;Fichero js:&lt;/span&gt; &lt;/strong&gt;El c&amp;oacute;digo JavaScript de nuestra aplicaci&amp;oacute;n puede ir embebido en el propio HTML, o bien encontrarse en un fichero aparte y ser llamado desde el c&amp;oacute;digo HTML. JavaScript junto con HTML ser&amp;aacute;n los encargados de proporcionar al gadget toda su funcionalidad.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;Hojas de Estilo CSS&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;:&lt;/span&gt;&lt;/strong&gt; Las Hojas de estilo se utilizan para dar el comportamiento gr&amp;aacute;fico de la interfaz HTML de nuestra aplicaci&amp;oacute;n. Sin ella el gadget se encontrar&amp;iacute;a totalmente descuadrado de la SideBar, y carecer&amp;iacute;a de imagen de fondo.&lt;/p&gt;
&lt;p align="justify"&gt;Una vez explicada la estructura de un gadget vamos a comenzar a programarnos nuestra primera miniaplicaci&amp;oacute;n para la Sidebar. Para la demo, hemos decidido hacer un sencillo reloj digital con el logotipo de nuestra empresa.&lt;/p&gt;
&lt;p align="justify"&gt;Lo primero que deb&amp;eacute;is hacer es crearos en la ruta: &lt;i&gt;C:\Program Files\Windows Sidebar\Gadgets,&lt;/i&gt; una carpeta con el nombre: &lt;i&gt;i64clock.gadget&lt;/i&gt;, donde i64clock lo deber&amp;eacute;is sustituir por el nombre que le quer&amp;aacute;is dar a vuestro &lt;i&gt;gadget&lt;/i&gt;, es muy importante que la carpeta acabe con la extensi&amp;oacute;n &lt;i&gt;.gadget&lt;/i&gt;, en caso contrario no ser&amp;aacute; reconocida por la Sidebar.&lt;/p&gt;
&lt;p align="justify"&gt;Una vez creada la carpeta, tenemos que crear dentro los siguientes elementos:&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;Fichero HTML:&lt;/span&gt;&lt;/strong&gt; con el nombre i64clock.html, de nuevo deber&amp;eacute;is sustituir i64clock, por el nombre de vuestro gadget.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;Fichero XML:&lt;/span&gt;&lt;/strong&gt; con el nombre gadget.xml, es muy importante que este fichero se llame de esta manera exactamente para ser reconocido por la sidebar, su contenido que comentaremos m&amp;aacute;s tarde, es una estructura com&amp;uacute;n en todos los ficheros del resto de gadget, por lo que no necesitaremos programar directamente en XML, simplemente modificarlo m&amp;iacute;nimamente.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;Im&amp;aacute;genes:&lt;/span&gt;&lt;/strong&gt; agregaremos a la carpeta toda las im&amp;aacute;genes, en caso de que queramos tener todo m&amp;aacute;s ordenado, podremos crearnos una carpeta interna donde almacenarlas, pero tenemos que tener en cuenta que a la hora de enlazarlas en el fichero XML, ya no estar&amp;aacute;n en la carpeta Ra&amp;iacute;z, y por tanto deberemos definirle la ruta de la subcarpeta.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="text-decoration:underline;"&gt;Fichero de estilo CSS:&lt;/span&gt;&lt;/strong&gt; finalmente crearemos el fichero style.css, con el mismo nombre indicado, nosotros hemos decidido alojarlo en una subcarpeta a la que hemos llamado CSS.&lt;/p&gt;
&lt;p align="justify"&gt;Una vez creados todos los ficheros tendr&amp;eacute;is algo c&amp;oacute;mo lo siguiente:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.46/sidebar-3.jpg" alt="" /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;Ahora procederemos a rellenar los ficheros HTML, XML y CSS.&lt;/p&gt;
&lt;p align="justify"&gt;En primer lugar vamos a definir las caracter&amp;iacute;sticas de nuestro gadget desde el fichero XML, para ello deber&amp;eacute;is copiar el siguiente c&amp;oacute;digo tal cual, y modificar las partes seleccionadas por vuestros datos y los de vuestro gadget:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;table cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;gadget&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;name&amp;gt;&lt;strong&gt;i64 Clock&lt;/strong&gt;&amp;lt;/name&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;namespace&amp;gt;Namespace.Ejemplo&amp;lt;/namespace&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;version&amp;gt;1.0&amp;lt;/version&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;author name=&amp;quot;&lt;strong&gt;jacalles&lt;/strong&gt;&amp;quot;&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;info url=&amp;quot;&lt;strong&gt;http://www.informatica64.com&lt;/strong&gt;&amp;quot; /&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;logo src=&amp;quot;&lt;strong&gt;i64.bmp&lt;/strong&gt;&amp;quot;/&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;/author&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;copyright&amp;gt;&amp;amp;#169; 2009&amp;lt;/copyright&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;description&amp;gt;&lt;strong&gt;El gadget i64clock muestra un reloj digital en la Sidebar&lt;/strong&gt;&amp;lt;/description&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;icons&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;icon height=&amp;quot;48&amp;quot; width=&amp;quot;48&amp;quot; src=&amp;quot;&lt;strong&gt;i64.png&lt;/strong&gt;&amp;quot; /&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;/icons&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;hosts&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;host name=&amp;quot;sidebar&amp;quot;&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;base type=&amp;quot;HTML&amp;quot; src=&amp;quot;&lt;strong&gt;i64clock.html&lt;/strong&gt;&amp;quot; /&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;permissions&amp;gt;full&amp;lt;/permissions&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;platform minPlatformVersion=&amp;quot;1.0&amp;quot; /&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;defaultImage src=&amp;quot;&lt;strong&gt;i64.png&lt;/strong&gt;&amp;quot; /&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;/host&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;/hosts&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;/gadget&amp;gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;C&amp;oacute;mo veis en el fichero, en primer lugar deberemos definir el nombre de nuestro gadget:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;table cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&amp;lt;name&amp;gt;&lt;strong&gt;i64 Clock&lt;/strong&gt;&amp;lt;/name&amp;gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Despu&amp;eacute;s agregaremos informaci&amp;oacute;n del autor: nombre, web y logo.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;table cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&amp;lt;author name=&amp;quot;&lt;strong&gt;jacalles&lt;/strong&gt;&amp;quot;&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;info url=&amp;quot;&lt;strong&gt;http://www.informatica64.com&lt;/strong&gt;&amp;quot; /&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;logo src=&amp;quot;&lt;strong&gt;i64.bmp&lt;/strong&gt;&amp;quot;/&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;/author&amp;gt; &lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Tras ello a&amp;ntilde;adimos la frase que se mostrar&amp;aacute; en el men&amp;uacute; de instalaci&amp;oacute;n de los gadget en la que contaremos la utilidad de nuestro gadget y el icono que lo representar&amp;aacute;:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;table cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&amp;lt;description&amp;gt;&lt;strong&gt;El gadget i64clock muestra un reloj digital en la Sidebar&lt;/strong&gt;&amp;lt;/description&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;icon height=&amp;quot;48&amp;quot; width=&amp;quot;48&amp;quot; src=&amp;quot;&lt;strong&gt;i64.png&lt;/strong&gt;&amp;quot; /&amp;gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Finalmente le enlazamos el fichero HTML donde tenemos toda la funcionalidad de nuestro gadget y la imagen que utilizar&amp;aacute; c&amp;oacute;mo fondo:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;table cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&amp;lt;host name=&amp;quot;sidebar&amp;quot;&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;base type=&amp;quot;HTML&amp;quot; src=&amp;quot;&lt;strong&gt;i64clock.html&lt;/strong&gt;&amp;quot; /&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;permissions&amp;gt;full&amp;lt;/permissions&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;platform minPlatformVersion=&amp;quot;1.0&amp;quot; /&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;defaultImage src=&amp;quot;&lt;strong&gt;i64.png&lt;/strong&gt;&amp;quot; /&amp;gt; &lt;/p&gt;
&lt;p&gt;&amp;lt;/host&amp;gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;El resultado cuando accedemos al men&amp;uacute; de inserci&amp;oacute;n de gadget ser&amp;aacute; el siguiente:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.46/i64clock.jpg" alt="" /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Una vez definido el fichero XML, vamos a configurar la hoja de estilo CSS, para ello abrimos el fichero style.css, y a&amp;ntilde;adimos el siguiente c&amp;oacute;digo:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;table cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Body&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt;width:135px;&lt;/p&gt;
&lt;p&gt;height:100px;&lt;/p&gt;
&lt;p&gt;margin-left: 0px;&lt;/p&gt;
&lt;p&gt;margin-top: 0px;&lt;/p&gt;
&lt;p&gt;margin-right: 0px;&lt;/p&gt;
&lt;p&gt;margin-bottom: 0px;&lt;/p&gt;
&lt;p&gt;background-image:url(&amp;#39;../i64.gif&amp;#39;);&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;En este punto definiremos los tama&amp;ntilde;os, m&amp;aacute;rgenes y fondo principal de nuestro gadget, es muy importante que teng&amp;aacute;is en cuenta que el ancho de vuestro gadget debe ser c&amp;oacute;mo m&amp;aacute;ximo el de la sidebar. Adem&amp;aacute;s le hemos dado margen 0 en todos sus lados para aprovechar al m&amp;aacute;ximo el tama&amp;ntilde;o del gadget.&lt;/p&gt;
&lt;p align="justify"&gt;Finalmente nos queda programar la funcionalidad del gadget en el fichero HTML, y opcionalmente en caso de que queramos sacar las funciones JavaScript fuera del propio fichero HTML, en un fichero JavaScript.&lt;/p&gt;
&lt;p align="justify"&gt;En este punto es muy importante echarle imaginaci&amp;oacute;n, ya que las posibilidades de programaci&amp;oacute;n de gadgets son infinitas, para el caso de que quer&amp;aacute;is hacer un reloj digital como nosotros, deb&amp;eacute;is copiar el siguiente c&amp;oacute;digo:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;table cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&amp;lt;html&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;head&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;title&amp;gt;i64 clock&amp;lt;/title&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;css/style.css&amp;quot;&amp;gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/head&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;body text=&amp;quot;white&amp;quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;center&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;br/&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;form name=&amp;quot;time&amp;quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;input name=&amp;quot;time2&amp;quot; style=&amp;quot;font-size:29;background:transparent;border:none&amp;quot; size=&amp;quot;5&amp;quot; type=&amp;quot;text&amp;quot;/&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/form&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;script&amp;gt;&lt;/p&gt;
&lt;p&gt;function func_reloj()&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt;var d=new Date()&lt;/p&gt;
&lt;p&gt;var hours=d.getHours()&lt;/p&gt;
&lt;p&gt;var minutes=d.getMinutes()&lt;/p&gt;
&lt;p&gt;var seconds=d.getSeconds()&lt;/p&gt;
&lt;p&gt;if (hours&amp;gt;=12)&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt;if (hours&amp;gt;=13)&lt;/p&gt;
&lt;p&gt;hours-=12&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;if (minutes&amp;lt;10)&lt;/p&gt;
&lt;p&gt;minutes=&amp;quot;0&amp;quot;+minutes&lt;/p&gt;
&lt;p&gt;if (seconds&amp;lt;10)&lt;/p&gt;
&lt;p&gt;seconds=&amp;quot;0&amp;quot;+seconds&lt;/p&gt;
&lt;p&gt;var t&lt;/p&gt;
&lt;p&gt;if (hours&amp;lt;10)&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt;t=&amp;quot;0&amp;quot;+hours+&amp;quot;:&amp;quot;+minutes+&amp;quot;:&amp;quot;+seconds&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;else&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt;t=hours+&amp;quot;:&amp;quot;+minutes+&amp;quot;:&amp;quot;+seconds&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;document.time.time2.value=t&lt;/p&gt;
&lt;p&gt;setTimeout(&amp;quot;func_reloj()&amp;quot;,1000)&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;func_reloj()&lt;/p&gt;
&lt;p&gt;&amp;lt;/script&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/center&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/body&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;Es muy importante que a&amp;ntilde;ad&amp;aacute;is en vuestro fichero HTML la l&amp;iacute;nea siguiente (que hemos destacado en el c&amp;oacute;digo), ya que ser&amp;aacute; la llamada al fichero style.css donde antes le indicamos el tama&amp;ntilde;o y forma de nuestro gadget:&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;css/style.css&amp;quot;&amp;gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p align="justify"&gt;C&amp;oacute;mo pod&amp;eacute;is ver nuestro c&amp;oacute;digo HTML se basa en una sencilla funci&amp;oacute;n JavaScript automatizada cada segundo, que llama peri&amp;oacute;dicamente a las funciones getMinutes, getHours y getSeconds, para obtener la hora actual, y la muestra por pantalla en un input al que le hemos dado un fondo transparente para que se pueda ver solo la hora sobre el fondo de nuestro gadget. El resultado es el siguiente:&lt;/p&gt;
&lt;p align="justify"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.46/gadget.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;B&amp;aacute;sicamente, esto es todo lo que necesitareis saber para iniciaros en el mundo de la programaci&amp;oacute;n de gadget para Windows, si os interesa este mundillo, Microsoft tiene un foro y una p&amp;aacute;gina donde cuentan un poco sobre el desarrollo de gadget, y desde la que podr&amp;eacute;is compartir vuestros propios gadget con el resto de usuarios, la web es la siguiente:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://gallery.live.com/devcenter.aspx"&gt;&lt;span style="color:#669966;"&gt;http://gallery.live.com/devcenter.aspx&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a&gt;&lt;img src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.46/sidebar-5.jpg" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="justify"&gt;Ahora solo queda animaros, echarle imaginaci&amp;oacute;n y comenzar a programaros vuestros propios gadget, espero que os haya gustado el post y os anim&amp;eacute;is a compartir vuestras aplicaciones para la Sidebar con el resto de usuarios, para dar ejemplo aqu&amp;iacute; os dejo la captura de un segundo gadget que he programado, y que consta de una calculadora decimal cuya interfaz se complementa con la de nuestro reloj:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;img src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.46/sidebar-6.jpg" alt="" /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;&lt;span&gt;Si quieres aprender mucho m&amp;aacute;s sobre los secretos de lo sistemas Microsoft Windows, os recomendamos leer el libro de&amp;nbsp;&lt;/span&gt;&lt;i&gt;&lt;strong&gt;Sergio de los Santos&amp;nbsp;&lt;/strong&gt;&lt;/i&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;a title="Seguridad en Windows" href="http://www.informatica64.com/libros.aspx?id=mswindows"&gt;M&amp;aacute;xima Seguridad en Windows: Secretos T&amp;eacute;cnicos&lt;/a&gt;&lt;span&gt;&amp;quot; y, por &amp;uacute;ltimo, te recordamos que si te ha gustado el art&amp;iacute;culo puedes suscribirte al&amp;nbsp;&lt;/span&gt;&lt;a href="http://feeds2.feedburner.com/WindowsTecnico"&gt;Canal RSS de Windows T&amp;eacute;cnico&lt;/a&gt;&lt;span&gt;&amp;nbsp;para estar al d&amp;iacute;a de las novedades e informaci&amp;oacute;n t&amp;eacute;cnica de inter&amp;eacute;s.&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowstecnico.com/aggbug.aspx?PostID=160" width="1" height="1"&gt;</description><category domain="http://windowstecnico.com/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://windowstecnico.com/archive/tags/Windows+Vista/default.aspx">Windows Vista</category><category domain="http://windowstecnico.com/archive/tags/Desarrollo/default.aspx">Desarrollo</category><category domain="http://windowstecnico.com/archive/tags/Usabilidad/default.aspx">Usabilidad</category></item><item><title>SUA - Subsystem for Unix-Based Applications en WIndows</title><link>http://windowstecnico.com/archive/2009/03/26/sua-subsystem-for-unix-based-applications.aspx</link><pubDate>Thu, 26 Mar 2009 09:54:00 GMT</pubDate><guid isPermaLink="false">f5fee4ed-c2ed-43f2-a57e-69c2e2dfbdde:136</guid><dc:creator>Manuel Fernandez</dc:creator><slash:comments>8</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://windowstecnico.com/rsscomments.aspx?PostID=136</wfw:commentRss><comments>http://windowstecnico.com/archive/2009/03/26/sua-subsystem-for-unix-based-applications.aspx#comments</comments><description>&lt;p class="MsoNormal"&gt;&amp;iquest;Que es SUA?, Se trata de una caracter&amp;iacute;stica poco conocida pero
realmente importante y &amp;uacute;til para los administradores y desarrolladores unix.
Consiste en un subsistema para la compilaci&amp;oacute;n y ejecuci&amp;oacute;n de aplicaciones
basadas en Unix, de manera totalmente interoperable con Windows.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Es la evoluci&amp;oacute;n de Interix (un subsistema que
se inclu&amp;iacute;a anteriormente con &amp;quot;windows services for unix 3.5&amp;quot;).&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span&gt;Una de las ventajas que ofrece SUA frente a otros emuladores como
Cygwin, es que este interact&amp;uacute;a directamente con el kernel de Windows, por lo que
es mucho m&amp;aacute;s rapido que otros emuladores. Esto hace que SUA se convierta en una
excelente plataforma a la hora de migrar aplicaciones a Windows.&amp;nbsp;&lt;/span&gt;La instalaci&amp;oacute;n es sencilla, unicamente hay que activar la caracter&amp;iacute;stica
de &amp;quot;Subsystem for Unix-Based Applications&amp;quot;, accediendo desde
&amp;quot;Panel de control -&amp;gt; agregar programas o quitar programas -&amp;gt;
Activar/Desactivar caracter&amp;iacute;sticas de Windows&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.44.sua/1.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span&gt;Una vez activado, nos pedir&amp;aacute; que descargemos el SDK y algunas utilidades
para el subsistema. Tiene un tama&amp;ntilde;o aproximado de 470Mb, y puede ser descargado
desde &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=93ff2201-325e-487f-a398-efde5758c47f&amp;amp;displaylang=en"&gt;&lt;span&gt;http://www.microsoft.com/downloads/details.aspx?familyid=93ff2201-325e-487f-a398-efde5758c47f&amp;amp;displaylang=en&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span&gt;Los componentes que incorpora son los siguientes:&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;-
Utilidades base&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;- Utilidades SVR-5&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;- Base SDK &lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;- GNU SDK &lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;- Utilidades GNU&lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;- UNIX Perl &lt;br /&gt;
&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;- Debugger Visual Studio&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span&gt;Una vez instalado, podemos acceder a dos tipos de shell, Korn
(ejecutando posix.exe /u /c /bin/ksh -l) y C shell (ejecutando posix.exe /u /c
/bin/csh -l).&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;img src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.44.sua/2.png" alt="" /&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;img src="http://www.windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.44.sua/3.png" alt="" /&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span&gt;Como hemos visto, tenemos ante nosotros una potente herramienta, la cual
podremos usar para la migraci&amp;oacute;n de aplicaciones, desarrollo de aplicaciones, o
cualquier otro uso.&amp;nbsp;&lt;/span&gt;&lt;span&gt;Si quieres aprender mucho m&amp;aacute;s sobre los secretos de lo sistemas Microsoft Windows, deber&amp;iacute;as leer el libro de&amp;nbsp;&lt;/span&gt;&lt;i&gt;&lt;strong&gt;Sergio de los Santos&amp;nbsp;&lt;/strong&gt;&lt;/i&gt;&lt;span&gt;&amp;quot;&lt;/span&gt;&lt;a href="http://www.informatica64.com/libros.aspx?id=mswindows" title="Seguridad en Windows"&gt;M&amp;aacute;xima Seguridad en Windows: Secretos T&amp;eacute;cnicos&lt;/a&gt;&lt;span&gt;&amp;quot; y, p&lt;/span&gt;&lt;span&gt;or &amp;uacute;ltimo, te recordamos que si te ha gustado el art&amp;iacute;culo puedes suscribirte al&amp;nbsp;&lt;/span&gt;&lt;a href="http://feeds2.feedburner.com/WindowsTecnico"&gt;Canal RSS de Windows T&amp;eacute;cnico&lt;/a&gt;&lt;span&gt;&amp;nbsp;para estar al d&amp;iacute;a de las novedades e informaci&amp;oacute;n t&amp;eacute;cnica de inter&amp;eacute;s.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span&gt;Un saludo&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowstecnico.com/aggbug.aspx?PostID=136" width="1" height="1"&gt;</description><category domain="http://windowstecnico.com/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://windowstecnico.com/archive/tags/Windows+Vista/default.aspx">Windows Vista</category><category domain="http://windowstecnico.com/archive/tags/Windows+Server+2008/default.aspx">Windows Server 2008</category><category domain="http://windowstecnico.com/archive/tags/Desarrollo/default.aspx">Desarrollo</category><category domain="http://windowstecnico.com/archive/tags/Configuraci_26002300_243_3B00_n/default.aspx">Configuraci&amp;#243;n</category></item></channel></rss>