# Microsoft Visual Web Developer

Microsoft Visual Web Developer es un entorno de desarrollo liviano pensado para el desarrollo y aprendizaje. Está formado por un conjunto de herramientas y utilidades para la creación de sitios Web y sus aplicaciones Web con ASP.NET 2.0. Visual Web Developer sigue ofreciendo las ventajas de productividad del Entorno de Desarrollo Integrado (IDE en inglés) a la vez que introduce cambios con la intención de mejorarlo.

## Características

Algunas de las características más importantes son:
* Diseño de páginas Web: Un editor de páginas Web que incluye la edición WYSIWYG y el modo de edición HTML con IntelliSense y validación.
* Características del diseño de páginas: La disposición de sitios uniforme con páginas principales y apariencia de páginas uniforme con temas y máscaras.
* Edición de código: Un editor de código que permite escribir código para las páginas Web dinámicas en Visual Basic.NET o C#. El editor de código incluye coloración para la sintaxis e IntelliSense.
* Desarrollo para sitios alojados: Herramientas para publicar sitios en los sitios de alojamiento, incluido un servidor Web local para efectuar pruebas.
* Depuración: Un depurador que busca errores en la programación.
* Controles: Un conjunto extenso de controles de servidor Web de ASP.NET que incorpora mucha de la funcionalidad necesaria para crear sitios Web.
* Acceso a datos: Compatibilidad para mostrar y editar datos en las páginas Web, ya sea bases de datos o archivos XML. En muchos casos, puede agregarse la posibilidad de ver los datos y editarlos en las páginas Web sin necesidad de escribir código.
* Otras: Servicios de aplicaciones integradas que permite agregar suscripciones para la seguridad de inicio de sesión en el sitio, propiedades de perfiles para mantener la información específica de los usuarios y otras características, la mayoría de las cuales no requiere código.

## Historia

Visual Web Developer 2005 Express forma parte de la familia de Visual Studio 2005, que es un entorno de desarrollo de Microsoft para crear aplicaciones Web; así como aplicaciones cliente (Windows), servicios de Windows, componentes, controles y otros tipos de aplicaciones. Visual Web Developer, en cambio, presenta una interfaz modernizada que trata de proporcionar las herramientas necesarias para crear aplicaciones Web. Por consiguiente, Visual Web Developer pretende ser más compacto y fácil de utilizar que Visual Studio.
Todas las características de Visual Web Developer están también disponibles en Visual Studio 2005 y los sitios Web que se pueden crear con Visual Web Developer deberían ser compatibles con Visual Studio 2005. Se pueden compartir páginas y sitios Web entre ambos sin pérdias en principio.

## Diseñador de páginas Web

Se pueden crear y editar páginas Web (tanto páginas HTML como páginas Web ASP.NET) utilizando el diseñador de páginas de Visual Web Developer. El diseñador proporciona dos vistas de la página: Vista Diseño, que muestra la página de forma similar a como aparecerá en el explorador, y Vista Código fuente, que muestra el marcado (como HTML) para la página. Otras aplicaciones, como el Dreamweaver de Adobe muestras una tercera donde se visualiza el código y al mismo tiempo la representación de lo que hace dicho código.

### Vista Diseño

La Vista Diseño proporciona un editor .Se puede escribir directamente el texto en el editor y darle formato utilizando los comandos de menú y de la barra de herramientas. También se pueden arrastrar elementos desde el cuadro de herramientas y, colocarlos bidimensionalmente utilizando las coordenadas x e y.
Los controles de servidor ASP.NET muestran un menú de etiqueta inteligente que proporciona acceso a la configuración y a las acciones que se usan más frecuentemente para configurar el control. De manera predeterminada, el menú de etiquetas inteligentes se muestra cuando se arrastra por primera vez un control a la página del Cuadro de herramientas. Este menú se puede mostrar y ocultar.

### Vista Código fuente

La Vista de Código fuente muestra el marcado (texto, elementos HTML y elementos de control) de la página, que se puede editar directamente. En esta vista, el diseñador proporciona las siguientes funciones:
* Validación: Todos los editores de código fuente del diseñador de páginas Web, incluida la vista Código fuente para páginas Web, comprueban automáticamente la sintaxis del documento y marcan las etiquetas, los atributos y los valores que no son válidos. La validación cubre casi todos los tipos de marcado, incluso HTML, controles de servidor y directivas de página. La validación también puede comprobar si son válidas las referencias a recursos externos como archivos de imagen.
* IntelliSense: Como hacen otros programas similares, caso del ya citado Dreamweaver, la herramienta ofrece opciones para el contexto según se va picando el código. Por ejemplo, si se está escribiendo una etiqueta HTML, el diseñador ofrece la lista de atributos para esa etiqueta. Esto lo hace para los controles de servidor ASP.NET, marcado, directivas de página, hoja de estilos en cascada y estilos en línea y secuencia de comandos de cliente. Esta ayuda solo está disponible para los atributos que sean válidos en el momento de fabricarse la herramienta.
* Esquematización: Se pueden marcar secciones de la página como regiones y, a continuación, contraerlas y expandirlas. Por ejemplo, si hay un elemento table muy largo en la página, se puede marcar como una región y contraerlo cuando no se esté trabajando con él.
* Formato de etiquetas: Se pueden establecer opciones para el modo en que el editor da formato al marcado mientras se escribe y cuando se cambia el formato del documento.

### Cambios en los editores y diseñadores de páginas Web

* Preservación de formato: El diseñador de páginas Web conserva el formato cuando cambia entre vista Diseño y vista Código fuente. Según el fabricante se respetan los espacios, retornos de carro y cualquier otro código añadido por el usuario. Si edita los elementos en la vista Diseño, el editor realiza el cambio de formato mínimo necesario para reflejar el cambio. Actitud está seguida por otros editores de código existentes en el mercado.
* Páginas XHTML: De manera predeterminada, cuando crea una nueva página web en Visual Web Developer, la página incluye marcado de esqueleto que cumple los estándares de XHTML. El contenido que genera el editor HTML también cumple los estándares de XHTML.
* Desplazamiento: En el diseñador de páginas Web, el Esquema de documento muestra el elemento actual, junto con la jerarquía de etiquetas primarias a las que pertenece. Se puede utilizar el Esquema del documento para determinar qué elemento tiene el foco y para desplazarse entre los elementos. Además, en la vista Código fuente, el explorador de etiquetas muestra la etiqueta actual en su contexto inmediato, permitiendo el desplazamiento y edición de las etiquetas, como es habitual en este tipo de programas.

## Mejoras en Páginas Web de ASP.NET

Siguiendo el concepto de página dimámica, cuando alguien solicita una página web de ASP.NET (archivo .aspx), la página se ejecuta como un programa en el servidor Web. Mientras la página se está ejecutando, se puede realizar cualquier tarea que requiera el sitio web, incluido el cálculo de valores, la lectura o escritura de información de base de datos o la llamada a otros programas. Como resultado, la página genera dinámicamente elementos en HTML u otro lenguaje de marcado y envía este resultado dinámico al explorador.
Se realizaron cambios a las páginas Web ASP.NET en la versión 2.0, como el proporcionar más opciones con el fin de controlar el aspecto de las páginas Web y sus funciones.

### Aspecto de las páginas

* Páginas principales: se puede crear un diseño coherente para varias páginas mediante la creación de una página principal y páginas de contenido individuales. En la página principal, se define el diseño, la exploración y los controles que se desee compartir en las páginas de la aplicación Web. La página principal también puede contener código que se aplique a todas las páginas. Se pueden definir páginas de contenido que hagan referencia a la página principal y combinen su contenido con la página principal en tiempo de ejecución.
* Temas: ahora se pueden utilizar temas de ASP.NET para aplicar un estilo a las páginas Web. Un tema es una colección de opciones de propiedades de control (a las que se conoce como máscaras), hojas de estilo y gráficos que se puede aplicar como unidad a una página o sitio web. Los temas permiten definir un estilo que se puede aplicar a un conjunto de páginas y cambiar como grupo.

### Comportamiento de las páginas

* Nuevo modelo de código subyacente: ASP.NET sigue admitiendo el modelo de un solo archivo, en el que el código está incrustado en un bloque script de la página .aspx. Además, se ha introducido un nuevo modelo basado en clases parciales, que permiten definir parte de una clase (por ejemplo, los controladores de eventos) y mantener el código en un archivo separado. El archivo de clase parcial se compila como parte de la página .aspx. De una forma muy similar a cómo funcionaban y funcionan los includers.
* Estado de vista y estado de control: en la versión 1.1 de ASP.NET, el estado de vista se utilizaba para almacenar la información de estado de control, el contenido de los controles y los datos de la aplicación. Algunos desarrolladores prefieren deshabilitar el estado de vista para reducir la cantidad de datos enviados durante una acción de ida y vuelta. Sin embargo, en ASP.NET 1.1, deshabilitar el estado de vista hace que algunos controles dejen de funcionar correctamente. En la versión 2.0 de ASP.NET, se puede deshabilitar el estado de vista sin interrumpir el comportamiento del control. Los controles que requieren la permanencia del estado entre devoluciones de datos almacenan sus propios datos en un almacén privado denominado estado de control. Este estado no almacena todo el contenido del control, en su lugar, el estado solo se utiliza para almacenar la información mínima necesaria para que el control funcione entre las devoluciones de datos, por lo que se reduce el tamaño de la página.
* Administrar el tamaño de estado de vista: de forma predeterminada, toda la información del estado de vista se almacena en un único campo oculto de la página. Si el tamaño de un campo oculto llega a ser demasiado grande, algunos servidores proxy y firewalls impedirán el envío de la página. Para evitar este problema, se puede especificar el volumen de datos máximo que se debe almacenar en un campo oculto del estado de vista. Si la información del estado de vista sobrepasa el límite especificado, la página crea automáticamente campos ocultos adicionales del estado de vista y divide la información en estos campos. La página realiza la división y el reensamble de los campos de estado de vista de forma automática.
* Envío a través de páginas: como en las versiones anteriores de ASP.NET, las páginas Web se devuelven datos a sí mismas cuando los usuarios hacen clic en un botón o en otro control que tenga capacidad de respuesta. Ahora es posible configurar páginas para realizar envíos a otras páginas Web ASP.NET, lo que es útil para crear formularios de varias páginas. En la página de destino, se puede obtener información de la página de origen.

## Tipos de Sitios Web en Visual Web Developer
### Sitios Web de IIS (Internet Information Server) locales

Se utiliza cuando se desea crear páginas Web en un equipo local que tiene una copia de IIS instalada en el equipo. Cuando se crea un sitio web de IIS local, las páginas y carpetas del sitio se almacenan en una carpeta situada en la carpeta de IIS predeterminada.
De forma alternativa, se puede crear un directorio virtual de IIS. En este caso, las páginas y carpetas para el sitio web pueden estar en cualquier carpeta a la que tengan acceso los usuarios, y un directorio virtual en la copia local de IIS debe señalar a la ubicación del archivo. Visual Web Developer crea también una configuración de IIS para que IIS reconozca el sitio web como una aplicación.

### Sitios Web del sistema de archivos

En un sitio web del sistema de archivos, se puede crear y editar archivos de la carpeta que desee, ya sea que se encuentren en el equipo local o en una carpeta de otro equipo al que se tiene acceso a través de un recurso compartido de red. No se exige que ejecute IIS en su equipo. En su lugar, se pueden probar las páginas utilizando el servidor de desarrollo de ASP.NET.
En un sitio web del sistema de archivos, los archivos estáticos, como imágenes y hojas de estilos, están sujetos a las reglas de autorización de ASP.NET. Por ejemplo, los archivos estáticos de un sitio web del sistema de archivos no atenderán a un usuario anónimo cuando se deshabilite el acceso anónimo a esos archivos. Sin embargo, cuando se crea un proyecto de sitio web en una ubicación HTTP, IIS atiende los archivos estáticos sin utilizar reglas de autorización.

### Sitios Web implementados en FTP

Visual Web Developer permite abrir y editar sitios Web que están disponibles en un servidor FTP. Este es un escenario típico si el sitio web se encuentra en un sitio de alojamiento. Se puede conectar con cualquier servidor FTP en el que tenga permisos de lectura/escritura y puede crear y editar páginas Web en dicho servidor. Si el servidor FTP está configurado con ASP.NET y una raíz virtual de IIS señala al directorio FTP, puede ejecutar también las páginas desde el servidor para probarlas.

### Sitios Web remotos

Un sitio web remoto es un sitio que utiliza IIS pero está en otro equipo al que se puede tener acceso a través de una red de área local. El equipo remoto debe tener IIS instalado y estar configurado con Extensiones de servidor de FrontPage 2002 de Microsoft. Cuando se crea un sitio web remoto, las páginas y carpetas del sitio se almacenan en la carpeta de IIS predeterminada del equipo remoto. Cuando se ejecutan las páginas, estas se proporcionan utilizando IIS en el equipo remoto.

## Acceso a datos en ASP.NET

Las aplicaciones Web obtienen acceso normalmente a los orígenes de datos para el almacenamiento y la recuperación de datos dinámicos. Se puede escribir código para el acceso a los datos utilizando clases del espacio de nombres System.Data (normalmente denominado ADO.NET) y del espacio de nombres System.Xml. Este enfoque era normal en versiones anteriores de ASP.NET. Sin embargo, ASP.NET también permite realizar el enlace de datos mediante declaración. Este proceso no requiere la existencia de código para los escenarios de datos más comunes, entre los que se incluyen:
* Seleccionar y mostrar datos.
* Ordenar, paginar y almacenar datos en memoria caché.
* Actualizar, insertar y eliminar datos.
* Filtrar datos utilizando parámetros en tiempo de ejecución.
* Crear escenarios de detalles maestros utilizando parámetros.
ASP.NET incluye dos tipos de controles de servidor que participan en el modelo de enlace de datos declarativo: controles de origen de datos y controles enlazados a datos. Los primeros administran las tareas de conexión a un origen de datos y de lectura y escritura de datos. Los controles de origen de datos no representan ninguna interfaz de usuario, sino que actúan como intermediarios entre un almacén de datos en particular (como una base de datos, un objeto comercial o un archivo XML) y los demás controles de la página web ASP.NET. Los controles de origen de datos habilitan un amplio conjunto de funciones para recuperar y modificar datos, entre las que se incluyen la consulta, la ordenación, la paginación, el filtrado, la actualización, la eliminación y la inserción. Los controles enlazados a datos representan datos como marcado al explorador que realizó la solicitud. Un control enlazado a datos se puede enlazar a un control de origen de datos y buscar datos automáticamente en el momento apropiado del ciclo de vida de la solicitud de página. Los controles enlazados a datos pueden aprovechar las ventajas de las funciones proporcionadas por un control de origen de datos entre las que se incluyen la ordenación, la paginación, el almacenamiento en caché, el filtrado, la actualización, la eliminación y la inserción. Un control enlazado a datos establece una conexión con un control de origen de datos a través de su propiedad DataSourceID.

## Depuración y solución de problemas en ASP.NET

El código de aplicación puede contener distintos tipos de errores. La mayoría de los errores de sintaxis se detectan durante la compilación. Sin embargo, otros tipos de errores requieren la depuración del código; es decir, examinar el código mientras se ejecuta para validar que la ruta de ejecución y los datos son los que deberían ser. Se incluye una herramienta denominada Visual Debugger que permite examinar una aplicación mientras se está ejecutando.

### Visual Debugger

Permite examinar el código mientras se está ejecutando e incluye características que ayudan a depurar aplicaciones, entre las que se incluyen las siguientes:
* Puntos de interrupción: Los puntos de interrupción son lugares del código en los que el depurador detendrá la aplicación, lo que le permite ver el estado de datos actual de la aplicación y, después, recorrer paso a paso cada línea de código.
* Recorrer paso a paso: Una vez que se ha detenido en un punto de interrupción, puede ejecutar el código línea a línea (lo que se conoce como recorrer paso a paso el código). Visual Debugger incluye una serie de características que ayudan a recorrer el código, como iteradores que permiten especificar cuántas veces hay que recorrer un bucle antes de volver a detenerse.
* Vista de datos: Visual Debugger ofrece muchas opciones diferentes para ver y hacer un seguimiento de los datos mientras la aplicación está en ejecución. El depurador permite modificar los datos mientras la aplicación está detenida en modo de interrupción y, después, seguir ejecutando la aplicación con los datos modificados.

### Seguimiento en páginas Web ASP.NET

ASP.NET permite ver información de diagnóstico acerca de una solicitud para una página ASP.NET. Asimismo, la función de seguimiento permite escribir instrucciones de depuración directamente en el código, sin necesidad de quitarlas de la aplicación cuando se implemente en los servidores de producción. Se pueden escribir variables o estructuras en una página, determinar si se cumple una condición o, simplemente, observar el flujo de ejecución de la página o aplicación. Es posible ver la información de seguimiento anexada al final de una página, en un visor de seguimiento independiente o de ambas maneras.

## Implementación de sitios Web

Tras desarrollar un sitio web, se puede implementarlo en un servidor Web para probarlo (un servidor provisional) o en un servidor donde los usuarios puedan trabajar con el sitio (un servidor de producción). Visual Web Developer proporciona las opciones siguientes para implementar el sitio:
* La herramienta Copiar sitio web, que copia el sitio web actual directamente en el servidor de destino.
* La utilidad Publicar sitio web, que compila el sitio web en un conjunto de archivos ejecutables. Se pueden copiar luego los archivos utilizando el método que se prefiera en el servidor de destino.
Además de crear el sitio web e implementarlo en un servidor de destino, se puede crear igualmente un sitio web de Protocolo de transferencia de archivos (FTP). En este caso, se pueden crear y editar los archivos directamente en el servidor de destino, ya que es una forma cómoda de trabajar con un sitio web en un servidor alojado.

### Herramienta Copiar sitio Web

La herramienta Copiar sitio web es similar a una utilidad FTP, se puede abrir una carpeta en un servidor de destino y, a continuación, cargar y descargar archivos entre el sitio web actual y el de destino. La herramienta Copiar sitio web admite igualmente la función de sincronización que examina los archivos de ambos sitios Web y comprueba automáticamente que los dos sitios tengan versiones actualizadas de los archivos.

### Utilidad Publicar sitio Web

La utilidad Publicar sitio web precompila el contenido del sitio web, incluso las páginas Web (archivos .aspx) y el código, y copia el resultado en el directorio o ubicación de servidor que especifique. Se puede publicar directamente como parte del proceso de precompilación o precompilar localmente y luego copiar los archivos. La utilidad Publicar sitio web compila el sitio web, quita el código fuente de los archivos y deja sololos archivos de código auxiliar para las páginas y ensamblados compilados. Cuando los usuarios solicitan páginas, ASP.NET cumple la solicitud a partir de los ensamblados precompilados.

## Referencias Web

Para simplificar el desarrollo de aplicaciones de cliente de servicios Web XML, Visual Web Developer proporciona el concepto de referencias Web. Las referencias Web son distintas de los componentes y de las referencias tradicionales; en lugar de hacer referencia a un componente o a una biblioteca de clases instalados en el equipo local, una referencia Web proporciona acceso a un recurso que está disponible mediante la utilización de un protocolo de Internet, como SOAP o HTTP. En la práctica, una referencia Web es una clase de proxy generada que representa de forma local la funcionalidad expuesta de un servicio Web XML. La clase de proxy define métodos que representan los métodos reales expuestos por un servicio Web XML. Cuando su aplicación crea una instancia de la clase de proxy, esta puede llamar a los métodos del servicio Web XML como si el servicio Web XML fuera un componente disponible de forma local.

## Seguridad de aplicaciones Web en tiempo de ejecución

El desarrollo de una aplicación exige trabajar con un conjunto de cuestiones de seguridad. El otro conjunto de cuestiones (que suelen ser las más destacadas en cualquier comentario acerca de la seguridad Web) se refieren a la seguridad de la aplicación una vez implementada y en ejecución. Las aplicaciones Web, por definición, permiten el acceso de usuarios a recursos centrales, el servidor Web y, a través de este, a otros como los servidores de base de datos. Proceso de seguridad en ASP.NET IIS proporciona muchas opciones de seguridad para los sitios Web. Sin embargo, los mecanismos de seguridad de IIS son muy genéricos, ya que se utilizan los mismos mecanismos para todas las aplicaciones. Además, es posible que las opciones de seguridad de IIS, por ejemplo, la seguridad integrada de Windows, no siempre sean adecuadas para su aplicación. Por lo tanto, para proporcionar acceso a partes específicas de la aplicación, se puede utilizar seguridad de ASP.NET. La seguridad de ASP.NET funciona junto con la seguridad IIS pero la amplía para que pueda personalizar características, como por ejemplo, la obtención de credenciales de usuario. IIS recibe en primer lugar solicitudes de los clientes, y efectúa las comprobaciones de seguridad establecidas para la aplicación mediante las herramientas de administración de IIS. Por ejemplo, si la aplicación se ha configurado en IIS de forma que permita el acceso anónimo, IIS no efectúa comprobación de credenciales. Una vez efectuada la comprobación inicial de autenticación, IIS envía una solicitud a ASP.NET, que puede llevar a cabo un segundo nivel de comprobación. ASP.NET permite especificar restricciones de acceso a la aplicación mediante diversos criterios: se puede restringir el acceso a páginas específicas, a usuarios específicos, etc.
* Datos: Q6013485