<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Rubén Hinojosa Chapel - Blog personal &#187; Desarrollo web</title>
	<atom:link href="http://www.hinojosachapel.com/category/desarrollo-web/feed" rel="self" type="application/rss+xml" />
	<link>http://www.hinojosachapel.com</link>
	<description>Consultoria empresarial, Tecnologias .NET, Desarrollo web y Comunicacion digital. Investigacion y Desarrollo en Musica Algoritmica.</description>
	<lastBuildDate>Fri, 16 Jul 2010 17:39:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Pesadilla en una tarde de verano: IIS7 y los módulos HTTP</title>
		<link>http://www.hinojosachapel.com/2010/07/pesadilla-en-una-tarde-de-verano-iis7-y-los-modulos-http.aspx</link>
		<comments>http://www.hinojosachapel.com/2010/07/pesadilla-en-una-tarde-de-verano-iis7-y-los-modulos-http.aspx#comments</comments>
		<pubDate>Fri, 16 Jul 2010 07:17:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Desarrollo web]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Tecnologías .NET]]></category>

		<guid isPermaLink="false">http://www.hinojosachapel.com/?p=702</guid>
		<description><![CDATA[Tienes una aplicación web ASP.NET que lleva tiempo funcionando sin problemas. La desarrollaste en Windows XP con Visual Studio 2005. Hacías las pruebas en local con la versión 5 del IIS, la que viene con el XP Professional, o con el servidor de desarrollo de Visual Studio (Cassini), y en producción tenías un Windows Server [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.hinojosachapel.com/wp-content/uploads/2010/07/iis7.jpg"><img class="aligncenter size-full wp-image-703" title="Internet Information Services 7" src="http://www.hinojosachapel.com/wp-content/uploads/2010/07/iis7.jpg" alt="Internet Information Services 7" width="480" height="359" /></a></p>
<p>Tienes una aplicación web ASP.NET que lleva tiempo funcionando sin problemas. La desarrollaste en Windows XP con Visual Studio 2005. Hacías las pruebas en local con la versión 5 del IIS, la que viene con el XP Professional, o con el servidor de desarrollo de Visual Studio (<strong>Cassini</strong>), y en producción tenías un Windows Server 2003 con la versión 6 del IIS. Todo iba como la seda.</p>
<p>Salió el Visual Studio 2008 y, a la primera oportunidad, te subiste al carro de la modernidad. Y, luego de algunos pequeños ajustes, como adaptar el proyecto a la nueva versión de Crystal Reports, todo seguía como la seda.<br />
 <br />
Pero como en esta vida también hace falta emoción y suspense, la seda dejó de ser lo que era. Los Reyes Magos te trajeron un nuevo ordenador con Vista o Windows 7, o cambiaste el plan de alojamiento del sitio web y ahora tienes Windows Server 2008 en producción. Ambas situaciones tienen un factor común: se llama <strong>Internet Information Services 7</strong>.<br />
 <br />
De pronto la aplicación dejó de funcionar. La que cambió su entorno de ejecución de IIS5/6 a IIS7. Si el problema lo tienes en local, quizás dispones de un tiempo generoso para solucionarlo, pero si el problema surgió con el cambio de plan de alojamiento, ahora el tiempo es tu mayor enemigo. Bueno, el tiempo y el dueño de la web caída.<br />
 <br />
La pregunta es trivial, pero no deja de martillarte tu masa encefálica: ¿qué ha pasado con la web? Miras el código, analizas la arquitectura, ejecutas la aplicación repetidamente&#8230; y por fin descubres que el servidor no entiende las URLs que le escribes porque el responsable de procesarlas, el <a title="URL Rewriting in ASP.NET" href="http://msdn.microsoft.com/en-us/library/ms972974.aspx" target="_blank">módulo HTTP de reescritura de URLs</a>, ha muerto, ha dejado de existir.</p>
<p>¿Qué ha pasado? Que el IIS7 ha cambiado muchas cosas en su modo de trabajar en relación con versiones anteriores. Mantiene, por compatibilidad hacia atrás, la manera de trabajar antigua, ahora conocida como <strong>Modo Clásico</strong>, e incorpora una nueva forma de hacer las cosas, que han denominado <strong>Modo Integrado</strong>. Cuando configuras un nuevo sitio web, el modo de trabajo por defecto es el Integrado. Y si este nuevo sitio web es en realidad una web antigua de ASP.NET, es muy probable que algunas cosas dejen de funcionar, como, por ejemplo, los módulos HTTP.</p>
<p>En el Modo Integrado se ha modificado la manera de registrar los módulos HTTP mediante el archivo web.config. En versiones anteriores del IIS, estos módulos se registraban en la sección &lt;system.web&gt;/&lt;httpModules&gt;. En el Modo Integrado de la versión 7 se registran en la sección &lt;system.webServer&gt;/&lt;modules&gt; del archivo web.config.</p>
<p>Por ejemplo, si has programado el módulo &#8220;<strong>MiModulo</strong>&#8220;, el archivo web.config quedaría así:</p>
<p><strong>En versiones anteriores del IIS</strong></p>
<p>&lt;configuration&gt;<br />
  &lt;system.web&gt;<br />
    &lt;httpModules&gt;<br />
      &lt;add name=&#8221;MiModulo&#8221; type=&#8221;MiModulo&#8221;/&gt;<br />
     &lt;/httpModules&gt;<br />
  &lt;/system.web&gt;<br />
&lt;/configuration&gt;</p>
<p><strong>En el Modo Integrado del IIS7</strong></p>
<p>&lt;configuration&gt;<br />
  &lt;system.webServer&gt;<br />
    &lt;modules&gt;<br />
      &lt;add name=&#8221;MiModulo&#8221; type=&#8221;MiModulo&#8221;/&gt;<br />
    &lt;/modules&gt;<br />
  &lt;/system.webServer&gt;<br />
&lt;/configuration&gt;</p>
<p>Tienes la opción de dejar las cosas como estaban, y configurar el sitio web para que se ejecute en el Modo Clásico, pero de esta manera estarías renunciando a las <a title="Explore el servidor web de Windows Vista y más allá" href="http://msdn.microsoft.com/es-es/magazine/cc163453.aspx" target="_blank">nuevas posibilidades</a> que aporta la última versión del IIS.</p>
<p>Por otra parte, si desarrollas sobre WIndows XP y necesitas un IIS7 local para hacer las pruebas y empezar a utilizar los nuevos recursos, <a title="How to Install IIS7 on Windows XP" href="http://blogs.iis.net/bills/archive/2010/07/12/how-to-install-iis7-on-windows-xp.aspx" target="_blank">ya es posible hacerlo</a>. Microsoft acaba de lanzar una nueva versión del Internet Information Server llamada <a title="Introducing IIS Express" href="http://weblogs.asp.net/scottgu/archive/2010/06/28/introducing-iis-express.aspx" target="_blank">IIS Developer Express</a>, que forma parte de  <a title="Announcing WebMatrix – a small, simple and seamless stack for Web developers" href="http://blogs.iis.net/bills/archive/2010/07/06/announcing-webmatrix-a-small-simple-and-seamless-stack-for-web-developers.aspx" target="_blank">WebMatrix</a>. Este nuevo servidor trabaja con VS2010 y Visual Web Developer 2010 Express, se ejecuta sobre Windows XP y sistemas superiores, y no necesita una cuenta de administrador. <strong>IIS Developer Express</strong> mantiene las mejores características de Cassini (el servidor de desarrollo de Visual Studio) y del IIS7.  Además, es gratis. <img src='http://www.hinojosachapel.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p><strong>Enlaces de interés:</strong></p>
<p><strong>Tutorial: Crear y registrar un módulo HTTP personalizado<br />
</strong><a title="Tutorial: Crear y registrar un módulo HTTP personalizado" href="http://msdn.microsoft.com/es-es/library/ms227673.aspx  " target="_blank">http://msdn.microsoft.com/es-es/library/ms227673.aspx <br />
</a> <br />
<strong>HttpModule and HttpHandler sections in IIS 7 web.config files<br />
</strong><a title="HttpModule and HttpHandler sections in IIS 7 web.config files" href="http://www.west-wind.com/Weblog/posts/168221.aspx" target="_blank">http://www.west-wind.com/Weblog/posts/168221.aspx</a> <br />
 <br />
<strong>ASP.NET Integration With IIS 7<br />
</strong><a title="ASP.NET Integration With IIS 7" href="http://learn.iis.net/page.aspx/243/aspnet-integration-with-iis-7/" target="_blank">http://learn.iis.net/page.aspx/243/aspnet-integration-with-iis-7/</a></p>
<p><strong>Registering Custom HttpModule in IIS7 Web.config</strong><br />
<a title="Registering Custom HttpModule in IIS7 Web.config" href="http://elijahmanor.com/webdevdotnet/post/Registering-Custom-HttpModule-in-IIS7-Webconfig.aspx" target="_blank">http://elijahmanor.com/webdevdotnet/post/Registering-Custom-HttpModule-in-IIS7-Webconfig.aspx</a><br />
 <br />
<strong>ASP.NET 2.0 Breaking Changes on IIS 7.0</strong><br />
<a title="ASP.NET 2.0 Breaking Changes on IIS 7.0" href="http://learn.iis.net/page.aspx/381/aspnet-20-breaking-changes-on-iis-70/" target="_blank">http://learn.iis.net/page.aspx/381/aspnet-20-breaking-changes-on-iis-70/</a> <br />
 <br />
<strong>URL Rewriting in ASP.NET<br />
</strong><a title="URL Rewriting in ASP.NET" href="http://msdn.microsoft.com/en-us/library/ms972974.aspx" target="_blank">http://msdn.microsoft.com/en-us/library/ms972974.aspx</a><br />
 <br />
<strong>Introducing IIS Express<br />
</strong><a title="Introducing IIS Express" href="http://weblogs.asp.net/scottgu/archive/2010/06/28/introducing-iis-express.aspx" target="_blank">http://weblogs.asp.net/scottgu/archive/2010/06/28/introducing-iis-express.aspx</a></p>
<p><strong>Explore el servidor web de Windows Vista y más allá<br />
</strong><a title="Explore el servidor web de Windows Vista y más allá" href="http://msdn.microsoft.com/es-es/magazine/cc163453.aspx" target="_blank">http://msdn.microsoft.com/es-es/magazine/cc163453.aspx</a></p>
<p><strong>Introducción a IIS 7.0<br />
</strong><a title="Introducción a IIS 7.0" href="http://technet.microsoft.com/es-es/magazine/2008.03.iis7.aspx" target="_blank">http://technet.microsoft.com/es-es/magazine/2008.03.iis7.aspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hinojosachapel.com/2010/07/pesadilla-en-una-tarde-de-verano-iis7-y-los-modulos-http.aspx/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cómo hacer una simple ventana modal con HTML y Javascript</title>
		<link>http://www.hinojosachapel.com/2008/11/como-hacer-una-simple-ventana-modal-con-html-y-javascript.aspx</link>
		<comments>http://www.hinojosachapel.com/2008/11/como-hacer-una-simple-ventana-modal-con-html-y-javascript.aspx#comments</comments>
		<pubDate>Tue, 11 Nov 2008 23:30:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Desarrollo web]]></category>

		<guid isPermaLink="false">http://www.hinojosachapel.com/?p=462</guid>
		<description><![CDATA[Según se afirma en la Wikipedia, la aparición de Lightbox animó a otros desarrolladores a crear proyectos similares, como el popular Thickbox, basado en jQuery. Lightbox y sus descendientes son aplicaciones escritas en Javascript que hacen un uso intensivo del DOM para mostrar contenido web de forma modal y visualmente atractiva. Andrés Nieto ha recopilado [...]]]></description>
			<content:encoded><![CDATA[<p><script type="text/javascript"><!--
function mostrarVentana()
{
    var ventana = document.getElementById('miVentana'); // Accedemos al contenedor
    ventana.style.marginTop = "100px"; // Definimos su posición vertical
    ventana.style.marginLeft = ((document.body.clientWidth-350) / 2) +  "px"; // Definimos su posición horizontal
    ventana.style.display = 'block'; // Y lo hacemos visible
}
function ocultarVentana()
{
    var ventana = document.getElementById('miVentana'); // Accedemos al contenedor
    ventana.style.display = 'none'; // Y lo hacemos invisible
}
// --></script>Según se afirma en la <a href="http://en.wikipedia.org/wiki/Lightbox_(JavaScript)" target="_blank">Wikipedia</a>, la aparición de <a href="http://www.lokeshdhakar.com/projects/lightbox2/" target="_blank">Lightbox</a> animó a otros desarrolladores a crear proyectos similares, como el popular <a href="http://jquery.com/demo/thickbox/" target="_blank">Thickbox</a>, basado en <a href="http://jquery.com/" target="_blank">jQuery</a>. Lightbox y sus descendientes son aplicaciones escritas en Javascript que hacen un uso intensivo del <a href="http://es.wikipedia.org/wiki/Document_Object_Model" target="_blank">DOM</a> para mostrar contenido web de forma modal y visualmente atractiva. Andrés Nieto ha <a href="http://www.anieto2k.com/2007/09/19/coleccion-de-clones-de-lightbox-para-todos/" target="_blank">recopilado</a> en su página más de veinte de esos proyectos.</p>
<p>Si bien es cierto que no hay que estar inventando la rueda todos los días, porque ya alguien lo hizo por nosotros, hay circunstancias en las que necesitamos una rueda hecha a medida. Por eso, saber cómo se han hecho otras ruedas puede sernos útil para hacer la nuestra.</p>
<p>A continuación explicaré los elementos básicos que necesitamos para hacer una rueda, perdón, una simple ventana modal con HTML y Javascript&#8230; <img src='http://www.hinojosachapel.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
<span id="more-462"></span><br />
Primero necesitamos un contenedor, un espacio donde ubicar el contenido web que deseamos mostrar. Normalmente ésto se hace con la etiqueta DIV. Este contenedor formará parte de la página web, pero no se mostrará cuando se visualice la página: será un elemento invisible. Luego necesitamos alguna manera de mostrar el contenedor, y su contenido, cuando nos haga falta. Y por último, necesitaremos también alguna forma de ocultar el contenedor. ¡Manos a la obra!</p>
<p>Pega al final de la sección <em>body</em> de tu página web el siguiente código:</p>
<p>&lt;div id=&#8221;miVentana&#8221; style=&#8221;position: fixed; width: 350px; height: 190px; top: 0; left: 0; font-family:Verdana, Arial, Helvetica, sans-serif; font-size: 12px; font-weight: normal; border: #333333 3px solid; background-color: #FAFAFA; color: #000000; display:none;&#8221;&gt;<br />
Aquí pones tu contenido web<br />
&lt;/div&gt;</p>
<p>Los propiedades más importantes de este DIV son:</p>
<p><strong>id</strong>: el identificador del elemento, que nos permitirá recuperarlo y acceder a él a través del DOM.<br />
<strong>display</strong>: le indicamos al navegador que no muestre este elemento (<em>none</em>).</p>
<p>Dentro del DIV deberás colocar el contenido web que deseas mostrar. ¡Procura que quepa dentro del contenedor!</p>
<p>Luego crea un elemento de script en tu código HTML e inserta las siguientes líneas:</p>
<p>function mostrarVentana()<br />
{<br />
    var ventana = document.getElementById(&#8216;miVentana&#8217;);<br />
    ventana.style.marginTop = &#8220;100px&#8221;;<br />
    ventana.style.left = ((document.body.clientWidth-350) / 2) +  &#8220;px&#8221;;<br />
    ventana.style.display = &#8216;block&#8217;;<br />
}</p>
<p>Esta función Javascript obtiene una referencia al contenedor a través de su <em>id</em>, lo coloca en el centro del documento mostrado en el navegador, y lo hace visible.</p>
<p>Por último, agrega éstas líneas de código:</p>
<p>function ocultarVentana()<br />
{<br />
    var ventana = document.getElementById(&#8216;miVentana&#8217;);<br />
    ventana.style.display = &#8216;none&#8217;;<br />
}</p>
<p>Esta función obtiene una referencia al contenedor a través de su <em>id</em>, y lo hace invisible.</p>
<p>Y ya &#8216;tá. <img src='http://www.hinojosachapel.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Con ésto tenenemos todos los elementos básicos para hacer una simple ventana modal con HTML y Javascript. A partir de aquí puedes mejorar el proyecto con todo lo que se te ocurra, o simplemente con las funcionalidades que requiera tu proyecto web.</p>
<p>He probado este ejemplo con <em>Internet Explorer 7</em> y <em>Firefox 3</em>. Con otros navegadores quizás no funcione correctamente (<em>IE6</em>) ya que, en busca de la mayor simplicidad, no implementé ninguna técnica de detección de navegadores.</p>
<p><strong>Enlaces de interés:</strong><br />
<a href="javascript:mostrarVentana();">El proyecto descrito en acción</a><br />
<a href="http://www.hinojosachapel.com/wp-content/uploads/2008/11/miventana.zip">Código completo del ejemplo</a></p>
<div id="miVentana" style="display: none; font-weight: normal; font-size: 12px; left: 0px; width: 350px; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; position: fixed; top: 0px; height: 190px; background-color: #fafafa; border: #333333 3px solid;">
<div style="font-weight: bold; text-align: left; color: #FFFFFF; padding: 5px; background-color:#006394">Título de la ventana</div>
<p style="padding: 5px; text-align: justify; line-height:normal">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vestibulum a est. Suspendisse vehicula, nisl vitae molestie pulvinar, eros nunc volutpat neque, sit amet ultricies nulla sem at ipsum.</p>
<div style="padding: 10px; background-color: #F0F0F0; text-align: center; margin-top: 30px;">
<input id="btnAceptar" onclick="ocultarVentana();" name="btnAceptar" size="20" type="button" value="Aceptar" /></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.hinojosachapel.com/2008/11/como-hacer-una-simple-ventana-modal-con-html-y-javascript.aspx/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
