sitios web, webforms y config
TRANSCRIPT
8/3/2019 Sitios Web, WebForms y Config
http://slidepdf.com/reader/full/sitios-web-webforms-y-config 1/18
Sitios y Aplicaciones WebVisual Studio 2010
WebExpression
8/3/2019 Sitios Web, WebForms y Config
http://slidepdf.com/reader/full/sitios-web-webforms-y-config 2/18
Tabla de contenido
Sitios y Aplicaciones Web. Configuración. .................................................................................... 2
Sitios Web y Aplicaciones Web. ................................................................................................ 2
Escenarios .............................................................................................................................. 2
Resumen de las diferencias ................................................................................................... 3
Ciclo de vida. ............................................................................................................................. 4
Estructura de Directorios ASP.NET ............................................................................................ 5
Paginas ...................................................................................................................................... 6
Ciclo de vida de una Página ................................................................................................... 7
El modelo Code-Behind ....................................................................................................... 10
Tipos de archivos administrados por ASP.NET ........................................................................ 11
Rutas de acceso a sitios Web ASP.NET .................................................................................... 14
Elementos de Cliente .......................................................................................................... 14
Controles de Servidor .......................................................................................................... 14
Configuración de la Web ......................................................................................................... 15
Jerarquía de Configuración ................................................................................................. 15
Esquema del Archivo de Configuración .............................................................................. 16
Herramienta de Administración .......................................................................................... 16
API de Configuración ........................................................................................................... 17
8/3/2019 Sitios Web, WebForms y Config
http://slidepdf.com/reader/full/sitios-web-webforms-y-config 3/18
Sitios y Aplicaciones Web. Configuración.
Sitios Web y Aplicaciones Web.
En Visual Studio se pueden crear proyectos de aplicación web o proyectos de sitio web.
Cada uno de estos tipos tiene ventajas e inconvenientes y el usuario debe entender las
diferencias entre ellos para seleccionar el tipo más adecuado. Es importante seleccionar el tipo
de proyecto adecuado antes de crear un proyecto, dado que la conversión de un tipo a otro no
es una tarea fácil.
NOTA: En algunos casos, no tiene elección. Por ejemplo, si desea crear una aplicación ASP.NET
MVC, debe usar un proyecto de aplicación web.
Escenarios
El factor principal a la hora de seleccionar entre un proyecto de aplicación web y un proyectode sitio web es la forma en que piensa implementar el proyecto y cómo desea mantenerlo una
vez implementado.
Entre los escenarios en los que es preferible usar proyectos de aplicación web se incluyen los
siguientes:
Desea usar MSBuild para compilar el proyecto. Por ejemplo, puede que desee agregar
pasos anteriores y posteriores a la compilación.
Desea que el compilador cree un ensamblado único para todo el sitio.
Desea controlar el nombre del ensamblado y número de versión que se generan para
el sitio.
Desea hacer referencia a las clases de código subyacente de las páginas y los controles
de usuario desde las clases independientes.
Desea establecer dependencias de proyecto entre varios proyectos web.
Entre los escenarios en los que es preferible usar proyectos de sitio web se incluyen los
siguientes:
Desea poder actualizar los archivos individuales en producción con solo copiar las
nuevas versiones en el servidor de producción o editar los archivos directamente en
dicho servidor.
No desea compilar el proyecto de forma explícita en la configuración de lanzamiento
para implementarlo.
Desea que el compilador cree varios ensamblados para el sitio, lo que puede incluir un
ensamblado por página o control de usuario o bien uno o más ensamblados por
carpeta.
8/3/2019 Sitios Web, WebForms y Config
http://slidepdf.com/reader/full/sitios-web-webforms-y-config 4/18
Resumen de las diferencias
Área Proyectos de aplicación web Proyectos de sitio web
Estructura del
archivo deproyecto
Un archivo de proyecto de Visual
Studio (.csproj o .vbproj) almacenainformación sobre el proyecto,
como la lista de archivos incluidos
en este y cualquier referencia
entre proyectos.
No hay ningún archivo de proyecto
(.csproj o .vbproj). Todos los archivosde una estructura de carpetas se
incluyen automáticamente en el sitio.
Compilación El código fuente se compila
explícitamente en el equipo que se
usa para el desarrollo o el control
de código fuente.
De forma predeterminada, la
compilación de los archivos de
código (a excepción de los
archivos .aspx y .ascx) genera un
ensamblado único.
Normalmente, ASP.NET compila el
código fuente de forma dinámica
(automáticamente) en el servidor la
primera vez que se recibe una solicitud
después de haberse instalado oactualizado el sitio.
Puede precompilar el sitio (compilarlo
previamente en un equipo de
desarrollo o en el servidor).
De forma predeterminada, la
compilación genera múltiples
ensamblados.
Espacios de
nombres
Los espacios de nombres explícitos
se agregan a las páginas, los
controles y las clases de forma
predeterminada.
Los espacios de nombres explícitos no
se agregan a las páginas, los controles
y las clases de forma predeterminada,
pero se pueden agregar manualmente.
Implementación Copie el ensamblado en un
servidor. El ensamblado se genera
al compilar la aplicación.
Visual Studio proporcionaherramientas que se integran con
la herramienta de implementación
web de IIS para automatizar
muchas de las tareas de
implementación.
Copie los archivos de código fuente de
la aplicación en un equipo que tenga
instalado IIS.
Si el sitio se precompila en un equipode desarrollo, copie los ensamblados
generados por la compilación en el
servidor IIS.
Visual Studio proporciona
herramientas para la implementación,
pero estas no automatizan tantas
tareas de implementación como las
herramientas disponibles para los
proyectos de aplicación web.
8/3/2019 Sitios Web, WebForms y Config
http://slidepdf.com/reader/full/sitios-web-webforms-y-config 5/18
Ciclo de vida.
Evento o
método
Descripción
Application_Start Se le llama cuando se solicita el primer recurso (por ejemplo, una página) en una
aplicación ASP.NET. Sólo se llama una vez al método Application_Start durante el
ciclo de vida de una aplicación. Puede utilizar este método para realizar las tareas de
inicio, como cargar datos en la caché e inicializar los valores estáticos.
Durante el inicio de la aplicación, sólo debería establecer datos estáticos. No
establezca datos de instancia, dado que sólo estarán disponibles para la primera
instancia de la clase HttpApplication que se cree.
Application_
event
Se produce en el momento adecuado del ciclo de vida de la aplicación, tal y como se
muestra en la tabla de ciclo de vida de la aplicación incluida al principio de este
tema.
8/3/2019 Sitios Web, WebForms y Config
http://slidepdf.com/reader/full/sitios-web-webforms-y-config 6/18
Application_Error se puede provocar en cualquier fase del ciclo de vida de la
aplicación.
Application_EndRequest es el único evento cuya ejecución se garantiza en cada
solicitud, dado que ésta se puede cortocircuitar. Por ejemplo, si dos módulos
controlan el evento Application_BeginRequest y el primero produce una excepción,no se llamará al evento Application_BeginRequest para el segundo módulo. Sin
embargo, siempre se llama al método Application_EndRequest para que la
aplicación pueda limpiar los recursos.
Init Se le llama una vez para cada instancia de la clase HttpApplication una vez que se
han creado todos los módulos.
Dispose Se le llama antes de que se destruya la instancia de aplicación. Puede utilizar este
método para liberar manualmente cualquier recurso no administrado. Para obtener
más información, vea Limpiar recursos no administrados.
Application_End Se le llama una vez durante el período de duración de la aplicación antes de que ésta
se descargue.
Estructura de Directorios ASP.NET
En general, la estructura de directorios de ASP.NET puede ser determinada por las preferencias
del desarrollador. Aparte de unos pocos nombres de directorios reservados, el sitio puede
expandirse a cualquier número de directorios. La estructura es típicamente reflejada
directamente en las urls.
Los nombres de directorios especiales (a partir de ASP.NET 2.0 son):
App_Browsers: Contiene archivos de definición específicos para navegadores.
App_Code: Es un directorio para códigos. El servidor ASP.NET automáticamente
compilará los archivos (y subdirectorios) en esta carpeta en un ensamblado que es
accesible desde cualquier página del sitio. App_Code es típicamente usada para código
de acceso a datos, código de modelo o código de negocios. También cualquier
manejador http especifico para el sitio e implementación de módulos y servicios web
van este directorio. Como alternativa a utilizar App_Code el desarrollador puede optar
por proporcionar un ensamblado independiente con código precompilado.
App_Data: Directorio por defecto para las base de datos, tales como archivos mdb de
Microsoft Access y archivos mdf de Microsoft SQL Server. Este directorio es
usualmente el único con permisos de escritura en la aplicación.
App_LocalResources: Contiene archivos de recursos localizados para páginas
individuales del sitio.
App_GlobalResources: Contiene archivos resx con recursos localizados disponibles
para cada página del sitio. Este es donde el desarrollador ASP.NET típicamente
almacenara mensajes que serán usados en más de una página. App_Themes: Usado para temas alternativos del sitio.
8/3/2019 Sitios Web, WebForms y Config
http://slidepdf.com/reader/full/sitios-web-webforms-y-config 7/18
App_WebReferences: Usado para archivos de descubrimiento y archivos WSDL para
referencias a servicios web para ser consumidos en el sitio.
Bin: Contiene código compilado (archivos .dll) para controles, componentes, y otro
código que pueda ser referenciado por la aplicación. Cualquier clase representada por
código en la carpeta Bin es automáticamente referenciada en la aplicación.
Paginas
Las páginas de ASP.NET, conocidas oficialmente como "web forms" (formularios web), son el
principal medio de construcción para el desarrollo de aplicaciones web.
Los formularios web están contenidos en archivos con una extensión ASPX; en jerga de
programación, estos archivos típicamente contienen etiquetas HTML o XHTML estático, y
también etiquetas definiendo Controles Web que se procesan del lado del servidor y Controles
de Usuario donde los desarrolladores colocan todo el código estático y dinámico requerido por
la página web.
Adicionalmente, el código dinámico que se ejecuta en el servidor puede ser colocado en una
página dentro de un bloque <% -- código dinámico -- %> que es muy similar a otras tecnologías
de desarrollo como PHP, JSP y ASP, pero esta práctica es, generalmente, desaconsejada
excepto para propósitos de enlace de datos pues requiere más llamadas cuando se genera la
página.
ASP.NET sólo funciona sobre el servidor de Microsoft IIS, lo que supone una desventaja
respecto a otros lenguajes del lado de servidor, ejecutables sobre otros servidores más
populares como Apache. Ejemplos de esto son PHP, Perl o Python.
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Page_Load(object sender, EventArgs e){
Label1.Text = DateTime.Now.ToLongDateString();}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" ><head runat="server">
<title>Página de Ejemplo</title></head><body>
<form id="form1" runat="server"><div>
<asp:Label runat="server" id="Label1" /></div></form>
</body></html>
8/3/2019 Sitios Web, WebForms y Config
http://slidepdf.com/reader/full/sitios-web-webforms-y-config 8/18
Ciclo de vida de una Página
Fase Descripción
Solicitud de página La solicitud de página se produce antes de que comience el ciclo de vida de la
página. Cuando un usuario solicita la página, ASP.NET determina si ésta se debe
analizar y compilar (a fin de que comience el ciclo de vida de la página) o si se
puede enviar una versión en caché de la página como respuesta sin ejecutar la
página.
Inicio En el paso de inicio, se establecen las propiedades de la página, como Request y
Response. En esta fase, la página también determina si la solicitud es una
devolución de datos o una nueva solicitud, y establece la propiedad IsPostBack .
Además, durante esta fase se establece la propiedad UICulture de la página.
Inicialización depágina
Durante la inicialización de la página, los controles incluidos en ella estándisponibles y se establece la propiedad UniqueID de cada uno de ellos. Además,
se aplican los temas correspondientes a la página. Si la solicitud actual es una
devolución de datos, los datos de devolución aún no se han cargado y los valores
de las propiedades del control no se han restaurado a los valores del estado de
vista.
Carga Durante la carga, si la solicitud actual es una devolución de datos, las propiedades
del control se cargan con información recuperada del estado de vista y del estado
del control.
Validación Durante la validación, se llama al método Validate de todos los controles de
validación, que establece la propiedad IsValid de cada uno de los controles de
validación y de la página.
Control de eventos
de devolución de
datos
Si la solicitud es una devolución de datos, se llama a los controladores de eventos.
Representación Antes de representar los datos, se guarda el estado de vista de la página y de
todos los controles. Durante la fase de representación, la página llama al método
Render para cada control, proporcionando un escritor de texto que escribe su
resultado en OutputStream de la propiedad Response de la página.
Descarga Se llama a la descarga cuando la página se ha representado completamente, se ha
enviado al cliente y está lista para ser descartada. Llegado este momento, se
descargan las propiedades de la página, como Response y Request, y se llevan a
cabo las operaciones de limpieza correspondientes.
8/3/2019 Sitios Web, WebForms y Config
http://slidepdf.com/reader/full/sitios-web-webforms-y-config 9/18
Evento de página Uso típico
PreInit Utilice este evento para lo siguiente:
Examine la propiedad IsPostBack para determinar si es la primera vez que
se procesa la página.
Crear o volver a crear controles dinámicos.
Establecer una página maestra de forma dinámica.
Establecer la propiedad Theme de forma dinámica.
Leer o establecer los valores de las propiedades de perfil.
Init Se provoca cuando todos los controles se han inicializado y se aplicado la
configuración de máscara. Utilice este evento para leer o inicializar las propiedades
del control.
InitComplete Lo provoca el objeto Page. Utilice este evento para tareas de procesamiento que
requieran que todo el proceso de inicialización haya finalizado.
PreLoad Utilice este evento si necesita realizar tareas de procesamiento en su página o
control antes de que se provoque el evento Load.
Después de que Page provoca este evento, carga su estado de vista y el de todos los
controles y, después, procesa todos los datos de devolución incluidos con la
instancia de Request.
Load Page llama al método del evento OnLoad, realiza la misma operación de forma
recursiva para cada control secundario, los cuales realizan la misma operación para
cada uno de sus controles secundarios hasta que se cargan la página y todos los
controles.
Utilice el método del evento OnLoad para establecer las propiedades de los
controles y establecer las conexiones a bases de datos.
Eventos de control Utilice estos eventos para controlar eventos de control específicos, como un evento
Click del control Button o un evento TextChanged del control TextBox.
8/3/2019 Sitios Web, WebForms y Config
http://slidepdf.com/reader/full/sitios-web-webforms-y-config 10/18
LoadComplete Utilice este evento para las tareas que requieran que se carguen todos los demás
controles en la página.
PreRender Antes de que se produzca este evento:
El objeto Page llama a EnsureChildControls para cada control y para la página.
Cada control enlazado a datos cuya propiedad DataSourceID esté establecida llama
a su método DataBind.
El evento PreRender se produce para cada control de la página. Utilice el evento
para realizar cambios finales en el contenido de la página o en sus controles.
SaveStateComplete Antes de que se produzca este evento, ViewState se ha guardado para la página y
para todos los controles. Se omitirán todos los cambios que se realicen en este
momento en la página o en los controles.
Utilice este evento para realizar tareas que requieran guardar el estado de vista,
pero que no efectúen cambios en los controles.
Render Éste no es un evento; en esta fase del procesamiento, el objeto Page llama a este
método en cada control. Todos los controles de servidor Web de ASP.NET tienen un
método Render que escribe el marcado del control que se envía al explorador.
Si crea un control personalizado, normalmente reemplazará este método para
generar el marcado del control. Sin embargo, si el control personalizado sólo
incorpora controles de servidor Web de ASP.NET estándar y ningún marcado
personalizado, no necesita reemplazar el método Render.
Un control de usuario (un archivo .ascx) incorpora automáticamente la
representación, por lo que no necesita representar explícitamente el control en el
código.
Unload Este evento se produce para cada control y después para la página. En los controles,
utilice este evento para realizar tareas finales de limpieza en controles específicos,
como cerrar las conexiones a bases de datos específicas del control.
Para la propia página, utilice este evento para hacer un último trabajo de limpieza,
como cerrar archivos abiertos y conexiones a bases de datos, finalizar el registro uotras tareas específicas de la solicitud.
8/3/2019 Sitios Web, WebForms y Config
http://slidepdf.com/reader/full/sitios-web-webforms-y-config 11/18
El modelo Code-Behind
Microsoft recomienda que para realizar programación dinámica se use el modelo code-behind,
o de respaldo, que coloca el código en un archivo separado o en una etiqueta de script
especialmente diseñada. Los nombres de los archivos code-behind están basados en el
nombre del archivo ASPX tales como MiPagina.aspx.cs o MiPagina.aspx.vb (esta práctica se
realiza automáticamente en Microsoft Visual Studio y otras interfaces de desarrollo). Cuando
se usa este estilo de programación, el desarrollador escribe el código correspondiente a
diferentes eventos, como la carga de la página, o el clic en un control, en vez de un recorrido
lineal a través del documento.
El modelo code-behind de ASP.NET marca la separación del ASP clásico y alienta a los
desarrolladores a construir aplicaciones con la idea de presentación y contenido separados en
mente. En teoría, esto permite a un diseñador web, por ejemplo, enfocarse en la creación del
diseño con menos posibilidades de alterar el código de programación mientras lo hace. Esto es
similar a la separación en el Modelo Vista Controlador .
La etiqueta superior es colocada al inicio del archivo ASPX. La propiedad CodeFile de la
directiva @Page especifica qué archivo (.cs o .vb) contiene el código code-behind mientras
que la propiedad Inherits especifica la clase de la cual deriva la página.
En este ejemplo, la directiva @Page está incluida en EjemploCodeBehind.aspx y el archivo
EjemploCodeBehind.aspx.cs contendrá el código para esta página:
En este caso, el método Page_Load() será llamado cada vez que la página ASPX sea solicitada
al servidor.
<%@Page Language="C#" CodeFile="EjemploCodeBehind.aspx.cs"Inherits="SitioWeb.EjemploCodeBehind"AutoEventWireup="true" %>
using System;using System.Web.UI;
namespace SitioWeb{
public partial class EjemploCodeBehind : Page{
protected void Page_Load(object sender, EventArgs e){
}}
}
8/3/2019 Sitios Web, WebForms y Config
http://slidepdf.com/reader/full/sitios-web-webforms-y-config 12/18
Tipos de archivos administrados por ASP.NET
Los tipos de archivos que administra ASP.NET están asignados a Aspnet_isapi.dll en Internet
Information Services.
Tipo de archivo Ubicación Descripción
.asax Raíz de la aplicación. Normalmente, un archivo Global.asax que contiene
código que se deriva de la clase HttpApplication. Este
archivo representa la aplicación y contiene métodos
opcionales que se ejecutan al principio o al final del
ciclo de vida de la aplicación.
.ascx Raíz de la aplicación o
un subdirectorio.
Archivo de control de usuario Web que define un
control reutilizable y personalizado.
.ashx Raíz de la aplicación o
un subdirectorio.
Archivo de controlador genérico que contiene código
que implementa la interfaz IHttpHandler.
.asmx Raíz de la aplicación o
un subdirectorio.
Archivo de servicios Web XML que contiene las clases
y métodos que están disponibles para otras
aplicaciones Web mediante SOAP.
.aspx Raíz de la aplicación o
un subdirectorio.
Archivo (página) de Web Forms de ASP.NET que
puede contener controles y presentación Web, y
lógica empresarial.
.axd Raíz de la aplicación. Archivo de controlador utilizado para administrar
solicitudes de administración de sitios Web,
normalmente Trace.axd.
.browser Subdirectorio
App_Browsers.
Archivo de definición del explorador utilizado para
identificar las características de los exploradores
cliente.
.cd Raíz de la aplicación o
un subdirectorio.
Un archivo de diagrama de clase.
.compile Subdirectorio Bin. Archivo de código auxiliar precompilado que señala a
un ensamblado que representa un archivo de sitio
Web compilado. Los tipos de archivos ejecutables
(.aspx, ascx, .master, archivos de tema) se
precompilan y se colocan el subdirectorio Bin.
8/3/2019 Sitios Web, WebForms y Config
http://slidepdf.com/reader/full/sitios-web-webforms-y-config 13/18
.config Raíz de la aplicación o
un subdirectorio.
Archivo de configuración (normalmente Web.config)
que contiene elementos XML que representan la
configuración de características de ASP.NET.
.cs, .jsl, .vb SubdirectorioApp_Code o en el
caso de un archivo de
código subyacente
para una página
ASP.NET, en el mismo
directorio que la
página Web.
Archivo de código fuente de clase que se compila entiempo de ejecución.
La clase puede ser un módulo HTTP, un controlador
HTTP, un archivo de código subyacente para una
página de ASP.NET o un archivo de clases
independiente que contiene lógica de la aplicación.
.csproj,
.vbproj, vjsproj
Directorio del
proyecto de Visual
Studio.
Un archivo de proyecto para un proyecto de
aplicación de cliente de Visual Studio.
.disco, .vsdisco Subdirectorio
App_WebReferences.
Archivo de descubrimiento de servicios Web XML que
se utiliza para ayudar a buscar servicios Web
disponibles.
.dsdgm,
.dsprototype
Raíz de la aplicación o
un subdirectorio.
Un diagrama de servicios distribuidos (DSD) que se
puede agregar a cualquier solución de Visual Studio
que proporcione o utilice servicios Web para
ingeniería inversa de una vista de arquitectura de las
interacciones de servicios Web.
.dll Subdirectorio Bin. Archivo de biblioteca de clases compilado
(ensamblado). Tenga en cuenta que en lugar de
colocar los ensamblados compilados en el
subdirectorio Bin, puede colocar el código fuente de
las clases en el subdirectorio App_Code.
.licx, .webinfo Raíz de la aplicación o
un subdirectorio.
Un archivo de licencia. Las licencias permiten a los
creadores de controles ayudar a proteger la
propiedad intelectual; para ello, se comprueba si el
usuario está autorizado a utilizar el control.
.master Raíz de la aplicación o
subdirectorio.
Página principal que define el diseño de otras páginas
Web de la aplicación.
8/3/2019 Sitios Web, WebForms y Config
http://slidepdf.com/reader/full/sitios-web-webforms-y-config 14/18
.mdb, .ldb Subdirectorio
App_Data.
Un archivo de base de datos de Access.
.mdf Subdirectorio
App_Data.
Archivo de base de datos SQL para su uso con SQL
Server Express.
.msgx, .svc Raíz de la aplicación o
un subdirectorio.
Un archivo de servicios de Indigo Messaging
Framework (MFx).
.rem Raíz de la aplicación o
un subdirectorio.
Un archivo de controlador remoto.
.resources,
.resx
Subdirectorio
App_GlobalResources
oApp_LocalResources.
Un archivo de recursos que contiene cadenas de
recursos que hacen referencia a imágenes, texto
localizable u otros datos.
.sdm,
.sdmDocument
Raíz de la aplicación o
un subdirectorio.
Un archivo del modelo de definición del sistema
(SDM).
.sitemap Raíz de la aplicación. Un archivo del mapa del sitio que contiene la
estructura del sitio Web.
ASP.NET viene con un proveedor del mapa del sitio
predeterminado que utiliza archivos del mapa del
sitio para mostrar fácilmente un control de
exploración en una página Web.
.skin Subdirectorio
App_Themes.
Archivo de máscara que contiene los valores de
propiedades que se aplican a los controles Web para
proporcionar un formato coherente.
.sln Directorio del
proyecto de Visual
Web Developer.
Un archivo de solución para un proyecto de Visual
Studio.
.soap Raíz de la aplicación o
un subdirectorio.
Un archivo de extensión SOAP.
8/3/2019 Sitios Web, WebForms y Config
http://slidepdf.com/reader/full/sitios-web-webforms-y-config 15/18
Rutas de acceso a sitios Web ASP.NET
Elementos de Cliente
Los elementos que no son controles de servidor Web en una página (elementos de cliente) se
pasan tal cual al explorador.
Por consiguiente, al hacer referencia a un recurso desde un elemento de cliente, se construyen
las rutas de acceso según las reglas estándar para las direcciones URL en HTML. Puede utilizar
una ruta de acceso URL completa (denominada también absoluta) o varios tipos de rutas de
acceso relativas. Por ejemplo:
Una ruta de acceso URL absoluta. Una ruta de acceso URL absoluta es útil si se hace
referencia a recursos en otra ubicación, como un sitio Web externo.
Una ruta de acceso relativa a la raíz del sitio, que se resuelve a partir de la raíz del sitio(y no a partir de la raíz de la aplicación). Las rutas de acceso relativas a la raíz del sitio
son útiles si dispone de recursos compartidos por varias aplicaciones, como imágenes
o archivos de secuencia de comandos del cliente, en una carpeta situada bajo la raíz
del sitio Web. En esta ruta de acceso de ejemplo se asume que hay una carpeta Images
situada bajo la raíz del sitio Web.
Si su sitio Web fuera http://www.contoso.com, la ruta de acceso se resolvería de la
forma siguiente.
Una ruta de acceso relativa que se resuelve a partir de la ruta de acceso de la página
actual.
Una ruta de acceso relativa que se resuelve como homóloga de la ruta de acceso de la
página actual.
Controles de Servidor
En los controles de servidor ASP.NET que hacen referencia a recursos, puede utilizar rutas de
acceso absolutas o relativas de la misma manera que en los elementos de cliente.
ASP.NET incluye el operador raíz de aplicación Web (~), que se puede utilizar al especificar una
ruta de acceso en los controles de servidor:
<img src="http://www.contoso.com/MyApplication/Images/SampleImage.jpg" />
<img src="/Images/SampleImage.jpg" />
http://www.contoso.com/Images/SampleImage.jpg
<img src="Images/SampleImage.jpg" />
<img src="../Images/SampleImage.jpg" />
<asp:Image runat="server" id="Image1" ImageUrl="~/Images/SampleImage.jpg" />
8/3/2019 Sitios Web, WebForms y Config
http://slidepdf.com/reader/full/sitios-web-webforms-y-config 16/18
Configuración de la Web
El Framework de .NET define una API basada en XML para acceder a los archivos de
configuración para de esta manera forzar a los desarrolladores a adoptar un lenguaje y una
estructura común para almacenar los datos de configuración.
Los archivos de configuración suelen ser creados Offline durante el proceso de desarrolloalmacenando datos que luego puedan ser modificados fácilmente por los administradores de
la aplicación.
El espacio de nombres dónde podemos encontrar todos los métodos para el manejo de estos
archivos es: System.Configuration.
Jerarquía de Configuración
El sistema de configuración de ASP.NET soporta dos tipos de ficheros de configuración:
Configuración del Servidor: La configuración del servidor se almacena en un fichero
llamado machine.config. Éste fichero va a representar la configuración por defecto de
todas las aplicaciones que albergue dicho servidor. Se almacena en:
[windows]\Microsoft .NET\Framework\[version]\config.
Configuración de la aplicación: La información relativa a configuración de una
aplicación específica se almacena en el fichero web.config. Un servidor web puede
contener varios ficheros web.config, cada uno de ellos dentro del directorio rais de
cada una de las aplicaciones que se hallen alojadas en él.
La información del web.config sustituye a la información del fichero machine.config.
Al estar basada la configuración en archivos XML y no depender de la metabase de IIS,
obtenemos las siguientes ventajas:
Valores de configuración en formato reconocible
Actualizaciones inmediatas: No es necesario reiniciar la aplicación y mucho menos el
servidor.
No es necesario el acceso local al servidor.
Fácilmente repetibles
8/3/2019 Sitios Web, WebForms y Config
http://slidepdf.com/reader/full/sitios-web-webforms-y-config 17/18
Esquema del Archivo de Configuración
Todos los elementos de configuración deberán estar contenidos dentro de un elemento
principal <configuration>, en su interior podremos encontrar los siguientes elementos para la
configuración de las distintas secciones del aplicativo:
Elemento Descripción<appSettings> Contiene los elementos personalizados
<configSections> Si existe debe ser el primer elementodespués del principal y describe las seccionespara los elementos personalizados.
<connectionStrings> Contiene las cadenas de conexión a datos
<configProtectedData> Contiene datos cifrados para la encriptaciónde secciones.
<runtime> Contiene elementos de configuración de losensamblados
<startup> Contiene la versión usada del CLR
<system.diagnostics> Describe elementos de diagnóstico: Trazas…
<system.net> Describe elementos de conexión a Internet
<system.runtime.remoting> Configuración del .NET Remoting
<system.serviceModel> Configuración del los servicios WCF
<system.web> Configuración especifica de ASP.NET
<system.web.extensions> Configuración de ASP.NET AJAX
<system.webServer> Configuración para el IIS 7
Herramienta de Administración
Desde la versión 2.0 del .NET Framework contamos con una herramienta para la configuraciónde los sitios y aplicaciones ASP.NET. Para acceder a esta herramienta web debemos pulsar
sobre el icono “Configuracion ASP.NET ” que podemos encontrar en el explorador de
soluciones o en el menú proyecto.
Esta herramienta nos ayuda a modificar algunas secciones de nuestro web.config de una forma
más intuitiva y rápida. Las secciones son: Seguridad (Usuarios,Roles…), Aplicación
(AppSettings…) y proveedores (Membership, Roles…)
8/3/2019 Sitios Web, WebForms y Config
http://slidepdf.com/reader/full/sitios-web-webforms-y-config 18/18
API de Configuración
Mediante la API de configuración podemos desde nuestro código acceder a la información
contenida en el web.config de una forma rápida y sencilla.
La clase WebConfigurationManager: Nos permite acceder y modificar la sección
<system.web> del fichero de configuración.o El método OpenWebConfiguration: Nos devuelve una instancia en formato
objeto del archivo de configuración permitiéndonos utilizar todas las ventajas
de POO para el manejo de éste.
La clase ConfigurationManager: Nos da acceso a las demás secciones del fichero de
configuración como puedan ser las Configuraciones personalizadas (AppSettings).
Ésta API también nos brinda la posibilidad de encriptar secciones de nuestros archivos de
configuración para poder privatizar determinada información en nuestros archivos de
configuración. Por ejemplo, para encriptar la cadena de conexión con el proveedor por defecto
de encriptación debemos ejecutar el siguiente comando:
Igualmente podemos realizar esta misma acción mediante código C# por medio del método
ProtectSection() provisto por la API.
Aspnet_regiis.exe –pe connectionStrings –app /[Application]