You are on page 1of 12

Analizando el

entorno de
WebMatrix
José María Aguilar
ANALIZANDO EL ENTORNO WEBMATRIX
Nivel: Iniciación
por José María Aguilar

Microsoft acaba de presentar, inesperadamente, una nueva solución integrada para


desarrollo web llamada WebMatrix. Su principal objetivo es facilitar mucho el acceso al
desarrollo de aplicaciones Web con tecnologías Microsoft al desarrollador novel o
procedente de otras plataformas (ASP 3.0 clásico, PHP…).

WebMatrix es un producto gratuito que se puede descargar desde este enlace. La instalación
se realiza en unos minutos. Una vez completado el proceso, no requiere ningún tipo de
registro del usuario, ni obtención de claves: simplemente funciona.

¿Y qué vamos a encontrar tras la instalación? En primer lugar, hay que destacar que
WebMatrix no es sólo una herramienta de desarrollo; podríamos decir que es un pack que
incluye tanto las herramientas como las plataformas necesarias para desarrollar, probar y
desplegar aplicaciones para la web: IDE, repositorio de proyectos open source de partida,
motor de datos, servidor web, y un nuevo framework de desarrollo sobre ASP.NET. Y todo ello
integrado de forma muy elegante.

Veamos con mayor detalle cada uno de estos elementos.

El entorno WebMatrix
Una vez instalado el paquete, en nuestro menú de aplicaciones encontraremos un acceso
directo a WebMatrix, que actuará como centro de control para el resto de sistemas
integrados en el paquete, y también como nuestro entorno de desarrollo.
Una vez iniciado, a la hora de crear proyectos, podemos hacerlo desde cero o hacerlo desde
distintos puntos de partida:

 Partiendo de plantillas suministradas con WebMatrix, entre las que se encuentran un


directorio de enlaces, un catálogo simple de productos o una galería fotográfica, entre
otros.

 Crearlas partiendo de algún software existente en una galería de software libre, la


misma utilizada por Web Platform Installer. Para ello, sin salir del entorno, podremos
seleccionar la plataforma deseada, y será descargada e instalada automáticamente. Es
destacable que, además de la aplicación elegida, se instalarán también las
dependencias requeridas (por ejemplo PHP, o el motor MySQL).
Ya sobre un proyecto abierto, el uso de WebMatrix se estructura en torno a cuatro espacios
de trabajo: Site, Files, Databases y Reports, que se describen a continuación:

 Site, desde el que se pueden consultar y modificar aspectos generales sobre el


proyecto, y acceder a herramientas como el gestor de datos, el generador de informes
del sitio web, un visor de peticiones, o aspectos relativos al despliegue. Incluso es
posible acceder a ofertas de alojamiento de nuestros sitios Web.
 Files, que da acceso a la estructura de carpetas y a los archivos de nuestro proyecto, y
desde donde es posible crear, editar y añadir contenidos. En la siguiente captura se
muestran algunos tipos propuestos al añadir un nuevo fichero al proyecto:

Como editor de código el entorno se queda bastante corto, y desde luego no tiene
nada que ver con cualquiera de las ediciones de Visual Studio. De hecho, salvo el
coloreado de código (disponible para HTML, CSS, Javascript, PHP, y ASP.NET), poco
tiene que envidiarle el block de notas de toda la vida: nada de ayudas,
autocompletado, Intellisense o similares, dado que la orientación de WebMatrix es
distinta, bastante más simple en este aspecto, a entornos de desarrollo profesionales.
Por tanto, para desarrollar en serio debes pasarte a Visual Studio, incluso en su versión
Express, que superarán en mucho a esta herramienta.

Sin embargo, puede ser suficiente para desarrolladores que simplemente deseen
retocar aplicaciones basadas en las plantillas suministradas, o software libre, que
puede ser descargado directamente desde la herramienta, o usuarios que estén
iniciándose en esta tecnología.

 Databases, desde donde es posible gestionar las bases de datos utilizadas por el
proyecto. En este momento dispone de soporte completo para SQL Server, MySQL y,
otra gran novedad en WebMatrix, la nueva edición de SQL Server Compact Edition,
que se comentará un poco más adelante.
 Reports, una herramienta que nos permite generar informes SEO sobre el sitio Web,
capaz de analizar el sitio web de la misma forma que lo hace el toolkit SEO para IIS,
para indicarnos errores y aspectos mejorables con vistas a la optimización en
buscadores.
IIS Express
IIS Express es un intento de mezclar la potencia del servidor Web empresarial de Microsoft,
Internet Information Server 7.5, y la facilidad de uso de los servidores de desarrollo que
estamos acostumbrados a utilizar desde Visual Studio. Lo mejor de los dos mundos.

Y aquí lo tenemos. Los sitios web abiertos desde WebMatrix son ejecutables directamente a
través de este servidor, que se iniciará al abrir el proyecto y quedará minimizado en el área de
notificaciones de Windows:

Desde este icono podemos consultar las aplicaciones actualmente en funcionamiento en el


servidor, consultar información básica sobre ellas, como la ruta desde la que se está sirviendo,
resetearlas, y algunas cosas más.

El comportamiento de las aplicaciones sobre IIS Express es idéntico a como sería en los
servidores de producción con el correspondiente IIS 7.5, puesto que internamente se utiliza el
mismo motor, evitándonos así la necesidad de contar con permisos de administrador, tener
el servicio corriendo continuamente, o el engorro de configurar cada aplicación (permisos,
pool de aplicaciones, etc.).

Desde el entorno de WebMatrix también podemos iniciar, parar, o resetear el servidor Web,
así como, y esto es un detalle de lo más interesante, consultar en tiempo real las peticiones
que se están produciendo a nuestra aplicación, muy útil en depuración:
SQL Server Compact Edition 4
Otra de las grandes novedades introducidas en WebMatrix fue también presentada hace unos
días por el mismo Scott Guthrie: SQL Server Compact Edition (SQL CE), una versión reducida
del motor de bases de datos de Microsoft diseñada para funcionar en el interior de
aplicaciones ASP.NET.

SQL CE es un motor ideado para ser la forma más fácil de incluir bases de datos en
aplicaciones, eliminando los altos requisitos asociados a ello: es gratuito, y no requiere ningún
servicio en el servidor, lo cual reduce los costes finales de alojamiento.

¿Y cómo es posible esto? Pues en primer lugar, haciendo que el motor sea basado en archivo;
para mover datos entre un sitio y otro bastará con copiar el fichero de datos, como si se
tratara de un Access. Asimismo, el motor se distribuye con la aplicación, y se ejecuta en
memoria junto con ésta. De hecho, para desplegar un proyecto que use esta solución como
repositorio de datos bastará con copiar unas DLLs en el directorio de binarios de la aplicación,
y lo tendremos todo listo.

Como consecuencia, nada que instalar en servidor, ni se requieren privilegios especiales para
ejecutarlo.

En lo que respecta a la programación es compatible con las API de acceso a datos de .NET, lo
que quiere decir que no debemos encontrar problemas para utilizar tecnologías de mayor nivel
como Entity Framework u otros ORMs. Sus únicas limitaciones vienen dadas por el tamaño de
fichero máximo admitido (en estos momentos 4GB, aunque se prevé subir esta cifra) y por la
ausencia de determinadas características como los procedimientos almacenados, o triggers,
entre otros.

Y aunque está claro que el rendimiento no será comparable al de otras ediciones de SQL
Server, y que no podrá aguantar una gran carga de usuarios, es posible actualizarla a SQL
Server Express (también gratuito), a SQL Server o incluso a SQL Azure sin tocar una línea de
código. De hecho, desde el propio entorno de WebMatrix se dispone de herramientas para
realizar la migración:
En WebMatrix existe una integración total con este nuevo motor de datos. Sin salir del entorno
es posible agregar bases de datos al proyecto, editar su estructura, acceder a los datos, o
manipular su diseño y propiedades:

Esta base de datos embebida es realmente interesante para la mayor parte de las aplicaciones
que se pueden hacer en una PYME y, sin embargo, es una gran desconocida. Si tienes interés
en aprender más sobre SQL Server Compact no te olvides de que en Krasis Press tenemos el
libro más completo del mercado.
ASP.NET Web Pages & Razor
ASP.NET Web Pages es un nuevo framework de desarrollo, presentado con WebMatrix,
destinado a la creación de aplicaciones sencillas para la Web. Y con “framework nuevo”, me
refiero a eso precisamente… es diferente a WebForms, y también diferente a ASP.NET MVC 2.

 No soporta controles de servidor


 No mantiene el estado de la vista (ViewState)
 No hay eventos
 No hay code-behind
 No hay separación de capas arquitectural, como en MVC
 No hay convenciones de nombrado o localización
 No hay tabla de rutas...

Lo único que hay es la página, como en los viejos tiempos.

De hecho, al echarle un vistazo, no se puede evitar la sensación de estar ante algo con cierto
aire retro, muy parecido a la programación con ASP clásico (sin .NET), PHP, JSP u otros
lenguajes basados en el concepto de “todo está en la página”, aunque, eso sí, apoyado en el
framework .NET, con las ventajas que ello conlleva.

ASP.NET Web Pages Dispone de un API propio, con un gran número de funciones y helpers,
algunos de ellos muy potentes, para facilitarnos el desarrollo. Por citar sólo algunos ejemplos,
tendremos acceso a funcionalidades de alto nivel de Twitter o Facebook, inclusión directa de
vídeos, validaciones con ReCaptcha, o manipulación de imágenes, utilizando helpers dentro
de la propia página.
Por defecto utiliza el motor de vistas Razor, uno de los previsibles grandes cambios del
próximo ASP.NET MVC 3, donde también será el ViewEngine por defecto.

Razor está diseñado para integrarse de forma más natural en el código de las páginas, siendo
más conciso y expresivo que el motor utilizado hasta ahora. Pero sin duda, lo más destacable
de este motor de vistas es que cambia la forma en la que incluimos código en el interior del
marcado de una página: los clásicos bloques <% … %> que usamos desde hace muchos años y
que contribuyen a dificultar la lectura son sustituidos por una nueva estructura, que se apoya
en un parser mucho más inteligente y sensible al contexto, y que nos permite introducir código
como el siguiente:

Estas dos tecnologías, ASP.NET Web Pages y Razor, aunque pueda parecer lo contrario, son
totalmente independientes entre sí, aunque se combinen por defecto en WebMatrix. De
hecho, existirán otros motores de vistas para Web Pages, y Razor podrá ser utilizado en otros
contextos, como el framework MVC.

Destaca también el hecho de que Razor ni siquiera depende del contexto Web para funcionar,
lo que deja la puerta abierta a su inclusión en otros tipos de aplicaciones, o incluso a la
realización de pruebas unitarias sobre la vista.

Conclusiones
El concepto WebMatrix, como suma de plataformas y herramientas que ofrecen una vía rápida
para la creación o personalización de aplicaciones, sobre todo si están basadas en paquetes
existentes como software libre, me parece muy interesante.

Como entorno de codificación es obvio que se queda muy corto. Pero claro, tampoco habría
tenido sentido para Microsoft crear un nuevo IDE, ya que dispone de Visual Studio y su
magnífica versión Express, que también es gratuita. Como comentaba anteriormente, este
entorno sirve para los casos en los que también te podría valer el Bloc de Notas, poco más o
menos.

Sin embargo, sí me ha parecido muy correcta la integración en el entorno de las herramientas


de gestión de bases de datos, el servidor web integrado, el sistema de despliegue y el
analizador SEO, así como la pasmosa facilidad de instalación y uso del conjunto. Realmente, en
sólo unos minutos puedes descargar un software Open Source, probarlo en local y subirlo a tu
ISP, casi sin conocer lo que hay por detrás.

Para programadores noveles o ajenos a tecnologías de Microsoft es una vía interesante para
acceder a ella, aunque sea a través de un camino que no existía hasta ahora, y con un destino
distinto a los conocidos hasta el momento, y que tendrá que demostrar su validez en la
práctica. Lo que es seguro es que la sencillez de la propuesta hará que la curva de aprendizaje
sea relativamente suave.

También lo considero interesante para los que ya llevamos algunos años en esto, pues
materializa la posibilidad de dar un vistazo a varias novedades de calado que ya se venían
comentando desde hace algún tiempo, como Razor, IIS Express, o SQL CE, y que seguro que
entrarán en breve a formar parte de nuestras herramientas de uso habitual.

Respecto a ASP.NET Web Pages, en cierto sentido puede entenderse como un paso atrás…
siempre que estés delante, claro ;-). Hay muchos desarrolladores que todavía luchan a diario
con ASP clásico o cualquier otra plataforma de las mismas características, a los que saltar a
esta tecnología seguro que costará menos trabajo que pasar a Webforms, pues las
diferencias son mucho menores.

Enlaces de interés

 Scott Guthrie:
o Introducing WebMatrix
o New Embedded Database Support with ASP.NET
o Introducing IIS Express
o Introducing “Razor” – a new view engine for ASP.NET
 Scott Hanselman: Microsoft WebMatrix in Context and Deploying Your First Site
 David Ebbo: How WebMatrix, Razor, ASP.NET Web Pages and MVC fit together
 ASP.NET Web Pages API Quick Reference
 WebMatrix Home
 WebMatrix Beta Tutorials
 Download WebMatrix
 Sql Server Compact 2008 SP1 Referencia Completa

Acerca del autor


José María Aguilar es ingeniero informático y lleva más de quince años trabajando en el mundo del
desarrollo de software, principalmente con tecnologías Microsoft. Ha trabajado como programador,
analista, responsable de informática en el sector de la consultoría estratégica, y director técnico de una
empresa de desarrollo. Escribe regularmente artículos sobre ASP.NET MVC y otros temas relacionados
con el desarrollo de software en su blog, www.variablenotfound.com.

Acerca de campusMVP
CampusMVP te ofrece la mejor formación en tecnología Microsoft a través de nuestros cursos online y
nuestros libros especializados, impartidos y escritos por conocidos MVP de Microsoft. Visita nuestra
página y prueba nuestros cursos y libros gratuitamente. www-campusmvp.com

Reconocimiento - NoComercial - CompartirIgual (by-nc-sa): No se permite un uso comercial de


este documento ni de las posibles obras derivadas, la distribución de las cuales se debe hacer con
una licencia igual a la que regula esta obra original. Se debe citar la fuente.