sitios web, webforms y config

18
 Sitios y Aplicaciones Web Visual Studio 2010 WebExpression

Upload: juan-manuel-sanchez-fernandez

Post on 06-Apr-2018

231 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sitios Web, WebForms y Config

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

Page 2: Sitios Web, WebForms y Config

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

Page 3: Sitios Web, WebForms y Config

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.

Page 4: Sitios Web, WebForms y Config

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.

Page 5: Sitios Web, WebForms y Config

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.

Page 6: Sitios Web, WebForms y Config

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.

Page 7: Sitios Web, WebForms y Config

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>

Page 8: Sitios Web, WebForms y Config

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.

Page 9: Sitios Web, WebForms y Config

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.

Page 10: Sitios Web, WebForms y Config

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.

Page 11: Sitios Web, WebForms y Config

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){

}}

}

Page 12: Sitios Web, WebForms y Config

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.

Page 13: Sitios Web, WebForms y Config

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.

Page 14: Sitios Web, WebForms y Config

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.

Page 15: Sitios Web, WebForms y Config

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" />

Page 16: Sitios Web, WebForms y Config

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

Page 17: Sitios Web, WebForms y Config

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…) 

Page 18: Sitios Web, WebForms y Config

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]