VS 2010 SP1 (Beta) y IIS Express

El mes pasado publicamos VS 2010 Service Pack 1(SP1) beta. Podéis aprender más de VS 2010 SP1 Beta de los dos post de Jason Zander, y del post de Scott Hanselman que cubre algunas de las nuevas capacidades que se le han añadido.

Podéis descargar e instalar VS 2010 SP1 beta aquí.

IIS Express

Este verano posteé sobre IIS Express. IIS Expresss es una versión gratuita de IIS 7.5 que está optimizada para escenarios de desarrollo. Pensamos que combina la facilidad de uso del servidor web de ASP.NET (aka Cassini) que viene integrado en VS con el poder de IIS. En concreto:

  • Es muy ligero y fácil de instalar (menos de 5 Megas de descarga y de fácil instalación).
  • No requiere una cuenta de administrador para ejecutar/depurar aplicaciones desde Visual Studio.
  • Permite un conjunto de características de servidor web completo - incluyendo SSL, URL Rewrite, y otros módulos de IIS 7.x
  • Soporta el mismo modelo de extensión y opciones del web.config que IIS 7.x
  • Puede instalarse al lado de un IIS completo así como con el servidor de desarrollo de ASP.NET (sin ningún conflicto entre ellos).
  • Funciona desde Windows XP y en versiones posteriores - dándonos todas las características de IIS 7.x en todas las plataformas Windows.

IIS Express (Como el servidor de desarrollo de ASP.NET) puede lanzarse rápidamente para ejecutar un sitio que esté en un directorio. No requiere ningun paso de registro/configuración. Esto hace realmente fácil lanzar y ejectuar aplicaciones en entornos de desarrollo.

Visual STudio 2010 Sp! añade el soporte para IIS Express - y podémos empezar a aaprovechar sus caracterísitcas con esta Beta.

Descargar e instalar IIS Express

IIS Express no está incluido como parte de VS 2010 SP1 Beta. Es una descarga separada de más o menos 4 Megas que podéis descargar e instalar en este enlace (usa WbPl para instalarse).

Una vez instalado, VS 2010 SP1 habilitará algunos comandos adicioneales a IIS Express y opciones de diálogo que nos permitirán usarlo fácilmente.

Habilitando IIS Express en proyectos Existentes.

Visual Studio usa por defecto el servidor de desarrollo de ASP.NET (aka Cassini) cuando ejecuta proyectos ASP.NET:

Convertir nuestros proyectos existentes para que usen IIS Express es muy fácil. Podemos hacerlo abriendo las propiedades del proyecto, y nos vamos al tab "web" seleccionando el check box "Use IIS Express".

Incluso más fácil, hacemos clic derecho en nuestro proyecto y seleccionamos el comando "Use IIS Express ...":

Y ahora cuando ejecutemos o depuremos nuestro proyecto veremos que ahora se arranca IIS Express y se ejecuta automáticamente como nuestro servidor web:

Podemos hacer clic derecho en el icono de IIS Express para ver/navegar sobre los sitios y aplicaciones que está ejecutando:

Fijáos que si queremos volver a usar el servidor de desarrollo de ASP.NET podemos hacerlo haciendo clic derecho en el proyecto otra vez y seleccionamos la opción "Use Visual Studio Development Server" ( o en las propiedades del proyecto, en el tab Web, desmarcamos la opción IIS Express). ESto revertirá el uso del servidor de desarrollo de ASP.NET la próxima vez que ejecutemos el proyecto.

Propiedades de IIS Express.

Visual Studio 2010 Sp1 expone nuevas opciones de configuración de IIS Express que no podíamos configurar ántes en el servidor de desarrollo de ASP.NET. Algunas de ellas se exponen en el grid de propiedades del proyecto (seleccionamos el nodo del proyecto en el explorador de soluciones y las camibamos a traves de la ventana de propiedades):

Por ejemplo, habilitando algo como el soporte de SSL (que no era posible en el servidor de ASP.NET) ahora lo podemos hacer simplemente cambiando la propiedad "SSL Enabled" a true.

Una vez hecho esto IIS Express expondrá un endpoint HTTP y HTTPS para el proyecto:

Certificados SSL auto-firmados

IIS Express biene con un certificado autofirmado de SSL que se instala como parte de la instalación - eliminando la necesidad de instalar nuestro propio certificado SSL para usar SSL durante el desarrollo. Una vez cambiado el desplegable anterior, podremos navegar a nuestro sitio con la urrl https:// y conectarnos vía SSL.

Una advertencia con los certificados autofirmados, e sque los navegadores (como IE) nos avisarán de que no son certificados de confianza:

Podemos marcar el certificado como de confianza y evitar ver este tipo de mensajes - o mantener el certificado como de no confianza y darle al botón de continuar cuando el navegadors nos avise.

Opciones adicionales de IIS

IIS Express usa su porpio ApplicationHost.config por usuario para configurar el comportamiento por defecto del servidor. Como es por usuario, puede configurarse por los desarrolladores que no tienen credenciales de administrador - al contrario que en IIS full. Podemos personalizar todas las características de IIS y sus opciones si queremos una personalización extrema del servidor (por ejemplo: usar nuestro propio certificado en lugar de los autofirmados).

Recomendamos guardar todas las configuracioens de IIS y ASP.NET  en el web.config del proyecto - ya que hace el desarrollo más sencillo (ya que estas opcioens pueden copiarse con la aplicación). IIS (desde IIS 7) no usa una metabase, sino que usa los mismos web.config que ASP.NET siempre ha soportado - lo que hace que el desarrollo basado en xcopy/ftp se aún más fácil.

Haciendo IIS Express el servidor web por defecto.

Hemos visto cómo podemos convertir nuestros sitios existentes para que usen IIS Express en lugar del servidor de ASP.NET.

Podemos configurar Visual Studio para que use IIS Express como el servidor por defecto para todos los proyectos nuevos haciendo clic en Tools->Options y abriendo el nodo Projects and Solutions-> Web Projects:

Haciendo clic en "Use IIS Express for new file-based web sites and projects" hará que Visual Studio lo use para todos los nuevos sitios y proyectos.

Resúmen

Pensamos que IIS Express hace más fácil aún desarrollar, ejecutar y testear aplicaciones web. Funciona con todas las versiones de ASP.NET y soporta todos los tipos de aplicaciones (obviamente de ASP.NET Web Forms y ASP.NET MVC). Como IIS Express está basado en el código fuente de IIS 7.5, tendremos un conjunto completo de características de servidor web. Esto significa que podemos crear y ejecutar nuestras aplicaciones como si estuviesen en un servidor web de producción. Además de soportar ASP.NET, IIS Express soporta también las clásicas páginas ASP, y cualquier tipo de archivos que soporta IIS - lo que lo hace ideal para sitios en los que se convinan distintas tecnologías.

Lo mejor de todo - no tenemos que cambiar ningún código para usarlo. Como hemos visto, actualizar proyectos web para que lo use es trivial. Podéis empezar a aprovechar todas las ventajas de IIS Express hoy usando VS 2010 Sp1 Beta.

Espero que sirva.

Scott.

Traducido por: Juan María Laó Ramos.

Artículo original.