Introducción a IIS Express

Hoy en día los desarrolladores crean y testean aplicaciones ASP.NET usando uno de estos dos servidores web:

  • El servidor ASP.NET que viene integrado con Visual Studio
  • IIS Server que viene integrado con Windows.

Ambas opciones tienen sus pros y sus contras, y muchos desarrolladores de ASP.NET nos han dicho: "Me gustaría tener la facilidad de usar el servidor web de Visual Studio pero con la potencia de IIS". Hoy me complace anunciar una nueva y gratuita opción que vamos a publicar -IIS Express- que combina las mejores características de las dos opciones anteriores, y que hace más sencillo crear y ejecutar aplicaciones ASP.NET

IIS Express estará disponible tanto para VS 2010 como para Visual Web Developer 2010 Express, funcionará en Windows XP y superiores, no requiere una cuenta de administrador, y no requiere ningun cambio de código para usarlo. Podremos ser capaces de usarlo con cualquier aplicacion ASP.NET, y podemos usar todas las c aracterísticas de IIS 7.x.

Cómo funcionan las cosas hoy.

 Ántes de ver los detalles de IIS Express, vamos a ver un resumen de cómo funcionan el servidor de asp.net y el IIS:

Servidor de desarrollo de ASP.NET:

Visual Studio incluye un servidor de desarrollo para ASP.NET (llamado "Cassini") y tiene la ventaja de no consumir mucho procesador y se ejecuta rápidamente. No escucha en puertos remotos (por lo que se puede usar en casi cualquier red corporativa), funciona aunque no esté ejecutándose en una cuenta que no sea administrador, y tampoco necesita instalarse a parte.

El hecho de que sea tan fácil usarlo es muy positivo - y la razón por la que es el servidor por defecto en el que se ejecutan nuestras aplicaciones web cuando le damos a F5:

Como contrapartida, este servidor web no soporta un conjunto completo de caracterísitcas de servidor. Por ejemplo, no soporta SSL, reglas de rutado URL (como las reglas de SEO de las que hablé aquí), Opciones personalizadas de seguridad, y otras caractarísticas que si soporta IIS7.

IIS:

IIS es la otra opción para los desarrolladores cuando ejecutan y prueban sus aplicaciones con Visual Studio. Podéis configurar que un proyecto web use IIS en Visual Studio haciendo clic derecho en el proyecto y ver sus propiedades (y ahora nos vamos al tab Web):

Usar IIS como nuestro servidor de desarrollo nos permite aprovechar todas sus características (SSL, reglas de rutado URL, etc). IIS es un servidor web completo, con lo que obtendremos una experiencia más cercana a cómo se ejecutará la aplicación cuando se despliegue en un entorno en producción.

La contrapartida de usar IIS de esta manera, es que algunas empresas no permiten que se instalen servidores web completos en máquinas de desarrollo. IIS también requiere una cuenta de administrador para instalar y depurar proyectos. Diferentes versiones de Windows también soportan diferentes versiones de IIS. Por ejemplo, si estamos en Windows XP tendremos IIS5.1 - que no soporta todas las características de IIS 7.x. Configurar un proyecto web en VS para que use IIS también requiere algunos pasos de instalación y configuración previos.

IIS Express - Lo mejor de las dos opciones.

Hemos estado trabajando en un nuevo sabor de IIS 7.x optimizado para escenarios de desarrollo que hemos llamado "IIS Express". Pensamos que combina la facilidad de uso de Cassini y todo el poder de IIS. Concretamente:

  • Es muy ligero y fácil de instalar (sólo 10MB y se instala con un clic).
  • NO requiere una cuenta de administrador para ejectuar/depurar aplicaciones con Visual Studio.
  • Ofrece todas las características de servidor web - incluyendo SSL, URL rewrite, soporte de Media, y todos los módulos de IIS 7.x
  • Soporta y permite el mismo modelo de extensibilidad de las opciones del archivo web.config que IIS 7.x
  • Puede  instalarse junto a IIS 7 y con Cassini (no hay conflicto alguno).
  • Funciona en Windows XP y superiores - dando todas las características de desarrollo de IIS 7 en todas las plataformas.

IIS Expres (como Cassini) puede ser lanzado para que ejecute un sitio desde un directorio. No requiere ningun registro/configuración. Hace realmente fácil la ejecución en escenarios de desarrollo.

Integración con VS 2010

Estamos habilitando IIS Express para que sea fácilmente usable desde VS 2010. Podréis configurar VS 2010 para que use IIS Express como el servidor web por defecto en proyectos ASP.NET. Como Cassini, no tendréis que registrar ningún sitio ni directorio virtual para usarlo. Soporta el mismo modelo de uso que Casinni - solo que con más características.

Cuando presionamos F5 para ejecutar un proyecto ASP.NET, Visual Studio puede lanzar automáticamente IIS Express y usarlo para ejecutar/depurar la aplicación (no hace falta ninguna configuración). Como Cassini, IIS Express se mostrará en el task-bar mientras se esté ejecutando:

Podéis hacer clic derecho y luego en "exit" en el icono para parar IIS Express. También podeis hacer clic derecho y ver la lista de sitios que se están ejecutando, así como el directorio y la versión .NET con la que se están ejecutando:

Dos cosas chulas:

  1. El sitio "Test Site" que estamos ejecutando, así como el propio IIS Express, están en el directorio c:users[nombreUsuario]. Esto permite que un usuario no administrador use IIS Express - y permite un montón de escenarios que no son posibles con IIS hoy (incluyendo la habilidad de ejecutar IIS Express en entornos empresariales cerrados).
  2. El sitio "Test Site" que estamos ejecutando soporta el acceso tanto HTTP como HTTPS. IIS Express instala automáticamente un certificado firmado por sí mismo y permite ACLs y certificados SSL para puertos para que los desarrolladores (ejecutando cuentas no administradores) puedan usar SSL sin necesidad de elevar sus cuentas o hacer ninguna configuración. Esto nos permite configurar páginas seguras en nuestra aplicación (como en formularios de Logon) para SSL y ejecutar/testear las aplicaciones en tiempo de desarrollo como si estuvieran en un entorno real.

Características de IIS 7.x

IIS Express es tan fácil de ejecutar y usar como Cassini. Pero como IIS Express se basa en el código fuente de IIS 7.x, tenemos disponibles todas las características de éste. Con lo que podemos compilar y ejecutar nuestras aplicaciones como si estuviesen en un entorno de producción. ADemás de soportar escenarios como SSL, podemos aprovechar el módulo de URL Rewriter de IIS 7, Extensiones multimedia, Compresión dinámica, loggin avanzado, seguridad personalizada y otros módulos también disponibles.

ADemás de soportar ASP.NET, IIS Express también soporta las clásicas páginas ASP y otros tipos de archivos también soportados por IIS - lo que lo hace ideal para sitios que combinan varias tecnologías.

Resúmen

Creemos que IIS Express hace más sencillo crear, ejecutar y testear aplicaciones web. Funciona con todas las versiones de ASP.NET y soporta todos los tipos de aplicaciones ASP.NET (incluyendo ASP.NET Web Forms y ASP.NET MVC). Lo mejor de todo - no tenemos que cambiar nada de código para usarlo. Podremos usarlo con todos los proyectos actuales que tengamos entre manos.

Vamos a publicar una beta pública próximamente. Con la beta podemos hacer clic derecho en un directorio y lanzarlo como un sitio web con IIS Express en ese directorio. También vamos a publicar un parche para VS 2010 y Visual Web Developer 2010 Express que nos permitan lanzar automáticamente IIS Express y usarlo en lugar de Cassini. Próximas versiones de Visual Studio ya vendrán con esta funcionalidad integrada.

Espero que sirva,

Scott.

P/D: Podéis seguir a Scott en twitter:twitter.com/scottgu

Traducido por: Juan María Laó Ramos.

Artículo original.

5 pensamientos en “Introducción a IIS Express

  1. Pingback: Soporte de bases de datos embebidas en ASP.NET « Thinking in .NET

  2. Pedro Moreno

    Me puede explicar cuales son los requerimientos o los pasos para ejecutar mis aplicaciones hechas en visual web developed 2008 express con IIS, tengo un servidor con windows server 2008 con IIS 7.0..

    No me corre las paginas en aspx.

    Me pueden escribir a pedro.moreno@fcipty.com

    Saludos cordiales,

    Pedro Moreno.

    Responder
  3. Pingback: VS 2010 SP1 (Beta) y IIS Express « Thinking in .NET

Deja un comentario