Compartir a través de


Páginas web de ASP.NET

Introducción a WebMatrix

Clark Sell

Descargar el ejemplo de código

En la actualidad, no existe escasez de herramientas disponibles en el mercado para un desarrollador web. De hecho, es muy probable que ya pase gran parte del día en Visual Studio. Si ha oído sobre Microsoft WebMatrix, es posible que se pregunte qué es y qué significa su existencia... e incluso que se pregunte por qué debiera ser importante.

En este artículo exploraré esas y otras preguntas. Comenzaré explorando algunos de los cambios recientes en la pila de ASP.NET. Luego explicaré cómo configurar WebMatrix y crear una aplicación “Hello Web”. Luego profundizaré en algunos de los accesorios adicionales, como diseño, aplicaciones auxiliares, acceso a datos, generación de informes y, por supuesto, la implementación. Antes de todo eso, comenzaré con la definición de WebMatrix.

WebMatrix es un nuevo editor de sitios web todo en uno para páginas web de ASP.NET. Apunta a un desarrollador web distinto y a una parte de ASP.NET diferente de lo usual para un producto de Microsoft. WebMatrix no representa una competencia para Visual Studio; es más bien un complemento, con cierta superposición de elementos entre ambos.

Descubrirá que la instalación de WebMatrix es rápida y sencilla. Esto se debe a que todo el paquete y sus dependencias pesan menos de 50 MB. El paquete incluye un editor de texto, un servidor web, un motor de base de datos y el marco subyacente; básicamente, todo lo que necesita para crear e implementar un sitio web. Lo que podría sorprenderle es que no se limita solo a ASP.NET. WebMatrix también es compatible con PHP y MySQL. Este artículo se centrará específicamente en las características .NET de WebMatrix.

La nueva pila de ASP.NET

Durante los últimos años, la pila ASP.NET ha pasado por varias transformaciones. En abril de 2009, se lanzó ASP.NET MVC como una nueva opción para el desarrollo de aplicaciones web en ASP.NET. El patrón Controlador de vista de modelo (MVC) no era ninguna novedad, pero sí lo era su implementación sobre ASP.NET. Además, los formularios web y MVC pueden coexistir en el mismo sitio en perfecta armonía.

Para habilitar adecuadamente su introducción en ASP.NET, se realizó una sutil refactorización del marco para que las piezas de LEGO pudieran ajustarse fácilmente de la manera que se eligió. Avancemos rápidamente hasta la actualidad, cuando Microsoft ha lanzado recién ASP.NET MVC 3 y WebMatrix. Estos representan lanzamientos importantes que incluyen diversas adiciones y mejoras nuevas. Hay tres notables adiciones nuevas al marco: el motor de vistas y análisis Razor, o simplemente Razor; las páginas web de ASP.NET e IIS Express. La figura 1 ilustra las relaciones entre todas las partes asociadas del marco de ASP.NET.

image: The Web Stack

Figura 1 La pila web

En la figura 1, puede haber notado que Razor, IIS Express, SQL Compact y Web Deploy son opciones válidas para otras áreas del desarrollo web de ASP.NET. Además, con el lanzamiento de ASP.NET MVC 3, Razor es ahora el motor de vistas predeterminado. Me centraré más profundamente en Razor más adelante.

A la inversa, las páginas web de ASP.NET se presentan como par de los formularios web y de MVC. El modelo de página web es un modelo de ejecución centrado en páginas, similar a PHP. Tanto el marcado como el código están contenidos en la página misma, con aplicaciones auxiliares que se usan para mantener el código breve. Puede escribir estas páginas en Razor ya sea en Visual Basic o en C#.

introducción

Comenzar a usar WebMatrix es simple. La instalación es distribuida gracias al Instalador de plataforma web de Microsoft versión 3.0, o WebPI. Es un programa de lado cliente que hace que operaciones como la instalación de SQL Express o de ASP.NET MVC sean muy rápidas y simples. Para obtener más información acerca de WebPI, visite microsoft.com/web/downloads/platform.aspx. Para instalarlo rápidamente, visite web.ms/webmatrix y haga clic en el botón Download Now (Descargar ahora). Con esto no solo se instalará WebPI, sino que también WebMatrix. Una vez finalizada la instalación, tendrá instalados los siguientes elementos:

  • Microsoft WebMatrix (editor)
  • Páginas web de ASP.NET con sintaxis Razor (motor y marco)
  • SQL Compact (base de datos)
  • IIS Express (servidor web de desarrollo)

Anteriormente, mencioné que WebMatrix también es compatible con el desarrollo de PHP. A pesar de que el paquete es compatible con el desarrollo estándar, necesitará instalar el tiempo de ejecución de PHP si va a crear un sitio PHP desde cero.

Hello World Web

Prácticamente todos los libros técnicos existentes tienen el clásico ejemplo de “Hello World”, por lo que vamos a crear un sitio de “Hello Web” con WebMatrix. Cuando abra WebMatrix por primera vez, verá un cuadro de diálogo con cuatro opciones. Cada una de estas opciones representa un punto de inicio distinto:

  • My Sites (Mis sitios)
  • Site From Folder (Sitio desde carpeta)
  • Site From Template (Sitio desde plantilla)
  • Site From Web Gallery (Sitio desde galería web)

Mis sitios simplemente incluye los sitios anteriores en los que ha trabajo. Sitio desde carpeta abrirá cualquier carpeta como la raíz de un sitio. Todo lo que esté en esa carpeta aparecerá como parte de los activos del sitio. También puede hacer clic con el botón secundario en una carpeta y seleccionar Open as a Web Site with Microsoft WebMatrix (Abrir como sitio web con Microsoft WebMatrix), que tiene el mismo comportamiento que la opción Sitio desde carpeta.

WebMatrix incluye diversas plantillas web generadas previamente para dar un impulso a la creación de sitios. Si selecciona Sitio desde carpeta se definirá la estructura de carpeta con todo el código fuente que se necesita para tener un sitio basado en esa plantilla. En el momento de escribir este artículo, existen cinco plantillas: Empty Site, Starter Site, Bakery, Photo Gallery y Calendar. Habrá más disponibles en el futuro.

Sitio de galería podría resultar la opción más interesante. Durante varios años hasta ahora, podía usar WebPI y descargar aplicaciones como Umbraco o WordPress, personalizarlas a voluntad e implementarlas en su proveedor de hospedaje. Desafortunadamente, no hubo realmente una historia integrada de extremo a extremo. Ahora, desde dentro de WebMatrix, puede empezar realmente el desarrollo desde una aplicación existente como Umbraco. WebMatrix y WebPI configurarán todos los elementos necesarios para comenzar el sitio desde una de las aplicaciones que aparecen en la galería. Una vez que WebMatrix configura los elementos, puede personalizarlos según sea necesario y usar las capacidades de implementación de WebMatrix para implementar en el proveedor de hospedaje.

Para crear nuestra demostración de Hello Web, comencemos por abrir WebMatrix y seleccionemos Start from Template (Comenzar desde plantilla). Seleccione la plantilla Empty Site (sitio vacío) y póngale nombre al sitio; en este caso, “HelloWeb”. WebMatrix creará una carpeta vacía con el nombre elegido. Ahora seleccione la pestaña Files (Archivos) y luego Add a file to your site (Agregar un archivo al sitio) desde esa ventana principal. Lo primero que debe notar es la nueva extensión de archivo. Las páginas web de ASP.NET tienen dos formatos de archivo nuevos: CSHTML y VBHTML. Las dos primeras letras de la extensión indica el idioma que el analizador Razor debe usar para analizar código: C# y Visual Basic, respectivamente. Seleccionaré un archivo CSHMTL y le pondré el nombre HelloWeb.cshtml. Con esto se abrirá automáticamente ese archivo rellenado previamente con algún HTML predeterminado.

Agregar el texto Hello Web al elemento de cuerpo existente finalizará el Hello Web. WebMatrix detectará automáticamente todos los exploradores web que tiene instalados. Puede ejecutar el sitio en cualquiera de ellos, o en todos, con un simple clic en un botón. Si hace clic en Run (Ejecutar) en la cinta de opciones, se iniciará el explorador predeterminado y se abrirá y presentará la página en que se ha centrado. Por supuesto, en el caso de Hello Web, verá las palabras “Hello Web”.

Codificación en Razor

Tal como indiqué anteriormente, Razor es un motor de plantillas de código y marcado. Lo que realmente significa es que escribe una sintaxis que, posteriormente, se interpreta y se envía al solicitante. A continuación aparece el HTML para nuestra página web simple, con un pequeño código que llama a @DateTime.Now:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
     <title>Hello World</title>
  </head>
  <body>
    Hello Web it's @DateTime.Now
  </body>
</html>

Ese código hace una llamada al método Now de la clase System.DateTime de .NET. El resultado es una página que se podría presentar tal como ve en la figura 2.

image: Hello Web in the Browser

Figura 2 Hello Web en el explorador

También podemos ponernos un poco más complicados. Creemos algunas propiedades, ejecutemos un bucle, mezclemos algo de HTML y combinémoslo todo, por pura diversión. La figura 3 es justamente eso, solo que omitimos algo de HTML válido para abreviar un poco. Y la figura 4 muestra los resultados presentados.

Figura 3 CodingRazor.cshtml

@{
  var cars = new string [] { "Camaro", "Avalanche", "Honda"};
  var emailAddress = "cars@something.com";
}
 
<ul>
  @foreach ( var car in cars ) {
    <li>
      <a href="http://@(@car).something.com">@car</a>
            
      @if ( car == "Camaro" ) {
        @: Is my favorite!  
        }
    </li>
  }
</ul>

To comment on this list of cars e-mail us at @emailAddress.

image: The Cars Code Rendered in a Browser

Figura 4 Los códigos de automóviles presentados en un explorador

Echemos un vistazo un poco más de cerca al código que aparece en la figura 3. Comencemos con el hipervínculo “http://@(@car).something.com”. Ahí ve “@(@car)”. Necesito indicar explícitamente a Razor que @car es la variable, porque está incrustada en la dirección URL. El siguiente fragmento de código es el bloque de contenido definido por “@:”. Dentro del bucle, hay una instrucción If que contiene el contenido de texto “Is my favorite!”. Si quita “@:”, Razor no podría realizar la compilación porque el contenido de texto no está incluido en HTML. Finalmente, llamamos a @emailAddress, pero finalizamos la instrucción con un punto. Razor fue lo suficientemente inteligente como para saber que @emailAddress era una variable y no una clase. Lo bueno no termina aquí. Al ver el código fuente de esa página, verá que se presentó HTML puro en el explorador, tal como se muestra aquí:

<ul>
  <li><a href="http://Camaro.something.com">Camaro</a> Is my favorite! </li>
  <li><a href="http://Avalanche.something.com">Avalanche</a> </li>
  <li><a href="http://Honda.something.com">Honda</a> </li>
</ul>

To comment on this list of cars e-mail us at cars@something.com

Diseño

Razor presenta una nueva manera de estructurar el contenido del sitio de forma reutilizable. Si está familiarizado con la expresión páginas maestras en formularios web de ASP.NET, Razor usa diseño para lograr exactamente lo mismo, pero con un enfoque distinto. Una observación tangencial: es importante destacar que los dos enfoques de diseño no funcionan juntos, lo que significa que no es posible usar las páginas maestras como motor de diseño para Razor ni viceversa.

Para comenzar con el diseño, voy a crear una página que comience con un carácter de subrayado, por ejemplo, _MasterLayout.cshtml. Las páginas con carácter de subrayado no se pueden presentar directamente en el explorador y deben ser se debe hacer referencia a ellas mediante otras páginas públicas. De cierto modo, una página con carácter subrayado es similar a una clase en un ensamblado marcada como internal. En esa página, estructuraré cómo y dónde distintas partes de la página se insertarán mediante referencias de nivel inferior. Hay tres clases principales que puede usar para estructurar las cosas: RenderSection, RenderPage y RenderBody. La figura 5 muestra una página de diseño maestra simple que usa las tres.

Figura 5 Las clases RenderSection, RenderPage y RenderBody

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <title></title>
    @RenderSection("ClientScripts", required: false)
  </head>
  <body>
    @RenderPage("~/layout/shared/_header.cshtml")
    @RenderBody()
    @RenderPage("~/layout/shared/_footer.cshtml")
  </body>
</html>

Esta página maestra no deberá ser referida por ninguna página secundaria que desee heredar su diseño definido. Tal como se ve aquí, la primera línea hace exactamente eso:

@{ Layout = "~/layout/shared/_MasterLayout.cshtml"; }
    
@section ClientScripts {
  Custom Script Here </br>
}
 
Some body content

En mi página de diseño, definí una sección opcional (@RenderSection) en la sección de encabezado de nuestra página. Como era opcional, una página secundaria tiene la opción de implementarla si así lo desea. Para implementar una sección, use “@section” seguido del nombre que especificó en la llamada a “@RenderSection”. Se supone que el resto de la página (en este ejemplo) es el contenido. Será empleado por el “@RenderBody”. Consulte el código fuente en línea que acompaña este artículo para obtener un ejemplo más detallado.

Ejecutar default.cshtml (en la carpeta denominada “layout” (origen) en la descarga de código fuente) producirá el resultado que aparece en la figura 6. Todas las secciones se presentaron correctamente y se emitieron como HTML puro en el explorador.

Figura 6 Resultado de la ejecución de default.cshtml

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8" />
  <title></title>
  Custom Script Here </br>
</head>
<body>
  <p>this was rendered from ~/layout/shared/_header.cshtml</p>
  Some body content
  <p>this was rendered from ~/layout/shared/_footer.cshtml</p>
</body>
</html>

Ayúdeme a ayudarle

Se escucha a cada momento en la industria de software: reutilización. WebMatrix presenta un concepto similar al modelo de complemento que se usa en WordPress o en jQuery. En WebMatrix, estos complementos se conocen como aplicaciones auxiliares. El concepto es similar: son paquetes publicados de funcionalidad reutilizable, o pequeños fragmentos de código de .NET construidos y empaquetados a propósito para su fácil distribución y uso. El mismo paquete auxiliar es un paquete NuGet (consulte nuget.codeplex.com). Si es un desarrollador de .NET que crea y usa aplicaciones auxiliares, no sentirá ninguna diferencia respecto del uso de cualquier clase .NET estándar, porque es precisamente eso.

Las aplicaciones auxiliares se almacenan y recuperar desde una fuente NuGet basada en la nube. ¿Cómo se encuentran entonces estas aplicaciones auxiliares evasivas? Después de abrir el sitio en WebMatrix, haga clic en Run (Ejecutar). Con eso se abre el sitio en el explorador, por ejemplo: http://localhost:53655/default.cshtml. Luego navegue a http://localhost:53655/_admin. Esta es la única página con carácter subrayado que se presentará y solo lo hará en su máquina local. En este punto se le pedirá que cree una contraseña, después de lo cual se le dirigirá al Administrador de paquetes (consulte la Figura 7).

image: ASP.NET Web Pages Administration Package Manager

Figura 7 Administrador de paquetes de administración de páginas web de ASP.NET

Puede ver aplicaciones auxiliares en una de tres categorías: Instaladas, En línea y Actualizaciones. También puede verlas según el origen del cual surgen. Ese origen es una fuente NuGet. La fuente predeterminada es el directorio oficial de aplicaciones auxiliares de WebMatrix, pero también podría agregar otros orígenes.

Ahora que tenemos la lista de paquetes, instalemos uno. A modo de demostración, instalemos y exploremos una aplicación auxiliar llamada Url Shortener Helper (consulte UrlShortenerHelper.CodePlex.com). Esta es una aplicación auxiliar que construí para ayudar a abreviar las direcciones URL, usando un proveedor como bit.ly. El concepto es sencillo: tome una dirección URL y acórtela, ocultando la interacción con el proveedor elegido para lograrlo. Ahora cambiemos a Online (En línea) y seleccionemos Install (Instalar) para UrlShortener. Con esto, la aplicación auxiliar se descargará, instalará y configurará en el sitio.

Actualmente las aplicaciones auxiliares se escriben de dos maneras: ya sea directamente en Razor o en un ensamblado compilado. ¿Cuál de estas dos opciones debería elegir? Eso depende, por supuesto. En el caso de mi Url Shortener, el código no es más que una interacción con una API de proveedor externo; no emite ningún HTML. En mi escenario, por lo tanto, la aplicación auxiliar se ajustaba mejor a ser empaquetada en un ensamblado. Por otro lado, la aplicación auxiliar de Facebook emite una gran cantidad de marcado y, como tal, se escribe como una aplicación auxiliar CSHTML. En el caso de las aplicaciones auxiliares que necesitan incluir llamadas a API y emitir marcado, también existe un enfoque híbrido en el que puede realizar ambas acciones y tener cierta funcionalidad en Razor y en un ensamblado.

Podrá ver un ejemplo de esto en UserVoiceHelper si visita UserVoiceHelper.codeplex.com.

Si volvemos a mirar nuestro sitio, ahora verá algunos activos nuevos. Debajo de la raíz del sitio, ahora hay una carpeta /bin con dos nuevos ensamblados. Esto ocurrió como resultado de la instalación de nuestro paquete a través de NuGet. También habrá un archivo ReadMe.UrlShortener.txt en la raíz con instrucciones sobre cómo usar la aplicación auxiliar. Otras aplicaciones auxiliares, como la de Facebook, en realidad agregarán sus propias carpetas y código a la carpeta App_Code.

Datos

Resulta muy difícil tener un sitio web sin tener un almacén de datos . WebMatrix incluye una versión nueva de SQL Compact Server Compact Edition 4, o SQL Compact. Es un motor de base de datos incrustado gratuito que no admite instalación ni implementaciones con xcopy. Como SQL Compact es una versión del mismo SQL Serve, siempre puede actualizar a versiones más avanzadas de SQL Server sin mucho trabajo. WebMatrix incluso incluye una herramienta que le ayudará a actualizar la base de datos de SQL Compact a SQL Server.

WebMatrix tiene compatibilidad de editor integrada para sus necesidades de base de datos. Desde la creación de tablas a la creación de datos, puede hacerlo todo desde los confines confortables de WebMatrix. Una vez que haya creado la base de datos y todos los activos necesarios, todo estará contenido en un archivo de base de datos con extensión SDF. La figura 8 es una llamada de acceso a datos simple. 

Figura 8 Consulta de datos de Cars.cshtml

@{ 
  var db = Database.Open("Cars");
  var selectQueryString = "SELECT * FROM Models ORDER BY Year";
}
<!DOCTYPE html>
<html lang="en">
  ... 
    <tbody>
      @foreach (var row in db.Query(selectQueryString))
      {
        <tr>
          <td>@row.Year</td>
          <td>@row.Maker</td>
          <td>@row.Model</td>
        </tr>
      }
    </tbody>
  ...
</html>

Comienzo por abrir la base de datos de los automóviles y luego consultar dicha conexión en un bucle Foreach. En el bucle, muestro un resultado por fila. Después de presentar la página, envíela a la vista de origen y nuevamente encontrará HTML puro. Por motivos de espacio se omitieron partes de este ejemplo, pero están disponibles en el código fuente en línea en un archivo denominado DataAccess.cshtml.

Puesta en servicio del sitio

El sitio web básicamente es inútil si no hace algo para ponerlo en servicio. En la plataforma Windows, eso siempre significó el uso de IIS. Para obtener más información sobre IIS, visite iis.net. IIS históricamente ha sido una característica del SO de Windows y algo que el proveedor de hospedaje o los profesionales de TI debieran configurar y usar. Los desarrolladores web en Windows normalmente usaban IIS o el servidor web integrado de Visual Studio, llamado Cassini. Con el lanzamiento de WebMatrix y Visual Studio 2010 SP1, ahora tenemos IIS Express como opción adicional. IIS Express representa lo mejor de ambos mundos: el poder de IIS y la simplicidad de Cassini.

IIS Express se instala de manera predeterminada con WebMatrix, pero puede descargarlo por separado con WebPI. A diferencia de la versión completa de IIS, IIS Express se instala tal como cualquier otro programa en modo de usuario. Podrá encontrarlo en C:\Program Files (x86)\IIS Express. Consta de dos programas, iisexpress.exe e iisexpresstray.exe. El primero es justamente IIS Express, e iisexpresstray es la bandeja visual que se ejecuta en el área de notificaciones del sistema Windows.

El inicio de IIS Express normalmente se realiza en la línea de comandos (cmd.exe). Existen diversas opciones que puede introducir, como path (ruta de acceso), port (puerto), name (nombre), framework version (versión de Framework), etc. Para todos los comandos, escriba: > iisexpress.exe /? Si deseara iniciar un servidor web para mi nuevo sitio de WebMatrix fuera de WebMatrix mismo, simplemente debería escribir lo siguiente:

> iisexpress.exe /path:"c:\MySite" /port:81

 Luego podría abrir su explorador de Internet favorito y navegar a http://localhost:81, con lo que se pondrá en servicio su sitio ubicado en C:\MySite.

WebMatrix le oculta todo esto, pero ese poder está ahí si lo desea. Después de hacer clic en Run (Ejecutar), WebMatrix iniciará IIS Express en la bandeja del sistema y lo configurará en su nombre. Cuando cierre WebMatrix, también se cerrará IIS.

Relevancia de la búsqueda

Ahora la relevancia de la búsqueda es más importante que nunca. No puede esperar que Bing o Google le califiquen como relevante. Para ayudarle en la búsqueda de la relevancia, WebMatrix tiene una característica de generación de informes llamada Optimización de motores de búsqueda (SEO).

Al hacer clic en la pestaña de generación de informes que aparece en la esquina inferior izquierda de WebMatrix se le presentará la capacidad de crear un nuevo informe de SEO. Al hacerlo, WebMatrix rastrea el sitio y busca áreas potenciales en las que el sitio podría resultar más relevante frente a los motores de búsqueda. Una vez que WebMatrix finaliza el rastreo del sitio, le presentará una lista detallada de las infracciones, además de las recomendaciones sobre cómo resolverlas. En la figura 9 puede ver un ejemplo de informe de SEO que se ejecutó con el código de demostración usado en este artículo.

image: SEO Reporting

Figura 9 Informes de SEO

Implementación

Ha pasado innumerables horas perfeccionando el sitio. Ahora es el momento de implementarlo. WebMatrix lo hace en solo dos pasos: configuración e implementación. En la cinta de opciones de WebMatrix habrá un botón Publish (Publicar). Por supuesto, la configuración de los ajustes de la implementación depende del proveedor de hospedaje y de lo que se ha habilitado. La figura 10 muestra el cuadro de diálogo de configuración de publicación. De manera predeterminada, WebMatrix es compatible tanto con FTP como con WebDeploy. Escriba la configuración adecuada y haga clic en Publish (Publicar).

image: Publishing Settings

Figura 10 Configuración de publicación

¿No cuenta con un proveedor de hospedaje? Haga clic en Find Hosting Provider (Encontrar proveedor de hospedaje). Con esto, irá a asp.net/webmatrix/hosts, donde puede elegir un proveedor de hospedaje ya configurado y certificado para trabajar junto con WebMatrix. Si ya tenía un sitio, WebMatrix también se hace cargo de eso. En el mismo menú Publicar, encontrará Download Published Site (Descargar sitio publicado). No es más que el orden inverso de la implementación. Usa los mismos ajustes que configuró para la implementación. Una vez que configure los ajustes de publicación, podrá descargar el sitio actual localmente para editarlo. Una vez realizadas las ediciones, simplemente vuelva a implementar.

Crecimiento

¿No sería genial saber si el marco de trabajo que elige sea capaz de escalar al mismo tiempo que usted cuando sus necesidades y complejidad aumentan? Con los años, ASP.NET ha creado las piezas de LEGO para hacer exactamente eso. Hoy tenemos todo un conjunto de esas piezas y podemos ajustarlas y unirlas según lo exijan nuestras necesidades. En la figura 1 vio como todo está creado sobre ASP.NET y, además, .NET. Esto significa que tomar la aplicación WebMatrix y migrarla a Visual Studio es, de hecho, posible. Solo debe hacer clic en un botón.

Si miramos con más detención la cinta de opciones de WebMatrix, veremos un botón para abrir en Visual Studio en la esquina superior derecha. Esto abrirá el sitio como un proyecto de sitio web de ASP.NET en Visual Studio. Pero no se detiene en el sitio web principal. Es posible que también tenga una base de datos. Puede transportar cualquier base de datos de SQL Compact a niveles superiores de SQL Server. WebMatrix también le ayudará en este proceso de migración a través del uso del botón Migration (Migración) en los menús de la base de datos.

En resumen, WebMatrix está diseñado como una herramienta para todos y se complementa muy bien con Visual Studio. Cómo use WebMatrix va a depender de la tarea en cuestión pero, de todos modos, es una herramienta que tiene en su cuadro de herramientas. Hace que elegir qué elemento de ASP.NET puede usar sea simple, y también hace que migrar a Visual Studio y SQL Server sea sencillo. La llegada de las aplicaciones auxiliares y el nuevo subsistema de diseño hacen que la reutilización sea una realidad. Si crear un sitio desde cero no era algo atractivo, con WebMatrix puede comenzar desde una aplicación probada listada en WebPI, como Umbraco o WordPress e implementar directamente en el proveedor de hospedaje.

Desafortunadamente, existen muchas otras características que no pude detallar en este artículo, incluido el almacenamiento en caché, el enrutamiento y la depuración. Puede encontrar todos los vínculos que se usaron en este artículo en bit.ly/IntroToWebMatrix.

Clark Sell trabaja como experto desarrollador senior para Microsoft fuera de Chicago. Mantiene un blog en csell.net, sus podcasts en DeveloperSmackdown.com y puede seguirlo en twitter.com/csell5.

Gracias a los siguientes expertos técnicos por su ayuda en la revisión de este artículo: Erik Porter,Mark Nichols y Brandon Satrom