Académique Documents
Professionnel Documents
Culture Documents
NET
ASP.NET
ASP.NET
Desarrollador
Microsoft
[1]
http:/ / www. asp. net/
Informacin general
ltima versin estable 4.0
12 de Abril de 2010
Gnero
Framework
Programado en
.NET
Sistema operativo
Microsoft Windows
Licencia
EULA
En espaol
ASP.NET es un framework para aplicaciones web desarrollado y comercializado por Microsoft. Es usado por
programadores para construir sitios web dinmicos, aplicaciones web y servicios web XML. Apareci en enero de
2002 con la versin 1.0 del .NET Framework, y es la tecnologa sucesora de la tecnologa Active Server Pages
(ASP). ASP.NET esta construido sobre el Common Language Runtime, permitiendo a los programadores escribir
cdigo ASP.NET usando cualquier lenguaje admitido por el .NET Framework.
Cualquier persona que esta familiarizada con el desarrollo de aplicaciones web sabr que el desarrollo web no es una
tarea simple. Ya que mientras que un modelo de programacin para aplicaciones de uso comn est muy bien
establecido y soportado por un gran nmero de lenguajes, herramientas de desarrollo, la programacin web es una
mezcla de varios lenguajes de etiquetas, un gran uso de lenguajes de script y plataformas de servidor. Para el
programador de nivel intermedio, el conocimiento y las habilidades que se necesitan para desarrollar aplicaciones
web requieren de un mayor conocimiento tanto de lenguajes de programacin, etiquetado y formato, como de
diversas tecnologas de software relativas al desarrollo distribuido y concurrente, de las que son necesarias en el
desarrollo tradicional de aplicaciones.
Historia
Microsoft introdujo la tecnologa llamada Active Server Pages en diciembre de 1996. Es parte del Internet
Information Server (IIS) desde la versin 3.0 y es una tecnologa de pginas activas que permite el uso de diferentes
scripts y componentes en conjunto con el tradicional HTML para mostrar pginas generadas dinmicamente. La
definicin contextual de Microsoft es que "Las Active Server Pages son un ambiente de aplicacin abierto y gratuito
en el que se puede combinar cdigo HTML, scripts y componentes ActiveX del servidor para crear soluciones
dinmicas y poderosas para el web".
Despus del lanzamiento del Internet Information Services 4.0 en 1997, Microsoft comenz a investigar las
posibilidades para un nuevo modelo de aplicaciones web que pudiera resolver las quejas comunes sobre ASP,
especialmente aquellas con respecto a la separacin de la presentacin y el contenido y ser capaz de escribir cdigo
"limpio".[2] A Mark Anders, un administrador del equipo de IIS y Scott Guthrie, quien se haba unido a Microsoft en
1997 despus de graduarse de la Universidad Duke, se les dio la tarea de determinar como debera ser ese modelo. El
diseo inicial fue desarrollado en el curso de dos meses por Anders y Guthrie, y Guthrie codific los prototipos
inciales durante las celebraciones navideas de 1997.[3]
ASP.NET
2
El prototipo inicial fue llamado "XSP"; Guthrie explic en una
entrevista en el ao 2007 que,
"People would always ask what the X stood for. At the time it
really didn't stand for anything. XML started with that; XSLT
started with that. Everything cool seemed to start with an X,
[2]
so that's what we originally named it".
El desarrollo inicial de XSP fue hecho usando Java,[4] pero pronto se decidi construir una nueva plataforma sobre el
Common Language Runtime (CLR), pues ofreca un ambiente orientado a objetos, recoleccin de basura y otras
caractersticas que fueron vistas como caractersticas deseables. Guthrie describi esta decisin como un "alto
riesgo", pues el xito de su nueva plataforma de desarrollo web estara atado al xito del CLR, que, como XSP, an
estaba en etapas tempranas de desarrollo, tanto as que el equipo XSP fue el primer equipo en Microsoft en enfocarse
en el CLR.
Con el cambio al Common Language Runtime, XSP fue implementado en C# (conocido internamente como "Project
Cool" pero mantenido en secreto para el pblico), y fue renombrado a ASP+, en este punto la nueva plataforma fue
vista como el sucesor de Active Server Pages, y la intencin fue proporcionar un medio fcil de migracin para los
desarrolladores ASP.[5]
La primera demostracin publica y la liberacin de la primera beta de ASP+ (y el resto del .NET Framework) se
realiz en el Microsoft's Professional Developers Conference (PDC) el 11 de julio de 2000 en Orlando, Florida.
Durante la presentacin de Bill Gates, Fujitsu demostr ASP+ usado en conjuncin con COBOL,[6] y el soporte para
una variedad de otros lenguajes fue anunciada, incluyendo los nuevos lenguajes de Microsoft, Visual Basic .NET y
C#, as como tambin el soporte por medio de herramientas de interoperabilidad para Python y Perl creadas por la
empresa canadiense ActiveState.[7]
Una vez que la marca ".NET" fue seleccionada en la segunda mitad del 2000. se cambi el nombre de ASP+ a
ASP.NET. Mark Anders explic en una aparicin en The MSDN Show en ese ao,
ASP.NET
Despus de cuatro aos de desarrollo, y una serie de versiones de evaluacin en los aos 2000 y 2001, ASP.NET 1.0
fue liberado el 5 de enero de 2002 como parte de la versin 1.0 del .NET Framework. Incluso antes de su liberacin,
docenas de libros haban sido escritos sobre ASP.NET[8]
Caractersticas
Pginas
Las pginas de ASP.NET, conocidas oficialmente como "web forms" (formularios web), son el principal medio de
construccin para el desarrollo de aplicaciones web.[9] Los formularios web estn contenidos en archivos con una
extensin ASPX; en jerga de programacin, estos archivos tpicamente contienen etiquetas HTML o XHTML
esttico, y tambin etiquetas definiendo Controles Web que se procesan del lado del servidor y Controles de Usuario
donde los desarrolladores colocan todo el cdigo esttico y dinmico requerido por la pgina web. Adicionalmente,
el cdigo dinmico que se ejecuta en el servidor puede ser colocado en una pgina dentro de un bloque <% -cdigo dinmico -- %> que es muy similar a otras tecnologas de desarrollo como PHP, JSP y ASP, pero
esta prctica es, generalmente, desaconsejada excepto para propsitos de enlace de datos pues requiere ms llamadas
cuando se genera la pgina.
ASP.NET slo funciona sobre el servidor de Microsoft IIS, lo que supone una desventaja respecto a otros lenguajes
del lado de servidor, ejecutables sobre otros servidores ms populares como Apache. Ejemplos de esto son PHP, Perl
o Python.
Formulario web de ejemplo
Este es un ejemplo que utiliza cdigo "en lnea", opuesto al cdigo independiente (code-behind).
<%@ 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>Pgina de Ejemplo</title>
</head>
<body>
ASP.NET
4
<form id="form1" runat="server">
<div>
<asp:Label runat="server" id="Label1" />
</div>
</form>
</body>
</html>
El modelo Code-behind
Microsoft recomienda que para realizar programacin dinmica se use el modelo code-behind, o de respaldo, que
coloca el cdigo en un archivo separado o en una etiqueta de script especialmente diseada. Los nombres de los
archivos code-behind estn basados en el nombre del archivo ASPX tales como MiPagina.aspx.cs o
MiPagina.aspx.vb (esta prctica se realiza automticamente en Microsoft Visual Studio y otros entornos de
desarrollo). Cuando se usa este estilo de programacin, el desarrollador escribe el cdigo correspondiente a
diferentes eventos, como la carga de la pgina, o el clic en un control, en vez de un recorrido lineal a travs del
documento.
El modelo code-behind de ASP.NET marca la separacin del ASP clsico y alienta a los desarrolladores a construir
aplicaciones con la idea de presentacin y contenido separados en mente. En teora, esto permite a un diseador web,
por ejemplo, enfocarse en la creacin del diseo con menos posibilidades de alterar el cdigo de programacin
mientras lo hace. Esto es similar a la separacin en el Modelo Vista Controlador
Ejemplo
<%@ Page Language="C#" CodeFile="EjemploCodeBehind.aspx.cs" Inherits="SitioWeb.EjemploCodeBehind"
AutoEventWireup="true" %>
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 cdigo code-behind mientras que la propiedad Inherits especifica la
clase de la cual deriva la pgina. En este ejemplo, la directiva @ Page est incluida en EjemploCodeBehind.aspx y el
archivo EjemploCodeBehind.aspx.cs contendr el cdigo para esta pgina:
using System;
namespace SitioWeb
{
public partial class EjemploCodeBehind: System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
}
En este caso, el mtodo Page_Load() ser llamado cada vez que la pgina ASPX sea solicitada al servidor. El
programador puede implementar manejadores de eventos en varias etapas del proceso de ejecucin de la pgina..
ASP.NET
Controles de usuario
ASP.NET permite la creacin de componentes reutilizables a travs de la creacin de Controles de Usuario (User
Controls). Un control de usuario sigue la misma estructura que un formulario web, excepto que los controles derivan
de la clase System.Web.UI.UserControl, y son almacenados en archivos ASCX. Como los archivos ASPX,
un ASCX contiene etiquetas HTML o XHTML, adems de etiquetas para definir controles web y otros controles de
usuario. Tambin pueden usar el modelo code-behind.
Los programadores pueden agregar sus propias propiedades y mtodos,[10] y manejadores de eventos.[11] Un
mecanismo de eventos en burbuja proporciona la capacidad de pasar un evento disparado por un control de usuario a
la pgina que lo contiene .
ASP.NET
Estado de la vista
El estado de la vista (View state) se refiere al mecanismo de administracin de estado a nivel de pgina, que es
utilizado por las pginas HTML generadas por las aplicaciones ASP.NET para mantener el estado de los controles de
los formularios web y los widgets. El estado de los controles es codificado y mandado al servidor en cada envo del
formulario en un campo oculto conocido como __VIEWSTATE. El servidor enva de regreso las variables para que
cuando la pgina sea renderizada de nuevo, los controles volvern a su ltimo estado. Del lado del servidor, la
aplicacin puede cambiar el estado de la vista, si los resultados del procesamiento actualizan el estado de cualquier
control. El estado de los controles individuales son decodificados en el servidor, y estn disponibles para su uso en
ASP.NET usando la coleccin ViewState.[13] [14]
Motor de plantillas
Al ser liberado, ASP.NET careca de un motor de plantillas. Debido a que el .NET framework es orientado a objetos
y permite la herencia, muchos desarrolladores podran definir una nueva clase que herede desde "System.Web.
UI.Page", escribir mtodos en ella que renderizen HTML, y entonces hacer las pginas en su aplicacin que hereden
de esta nueva clase. Mientras esto permite que los elementos comunes sean dentro de un sitio, agrega complejidad y
mezcla cdigo fuente con lenguaje de marcado. Adems, este mtodo puede ser visto solamente al ejecutar la
aplicacin, no mientras se est diseando. Otros desarrolladores han usado archivos incluidos y otros trucos para
evitar la implementacin de enlaces de navegacin y otros elementos en cada pgina.
ASP.NET 2.0 present el concepto de pgina maestra (Master Page), que permite el desarrollo de pginas basado en
plantillas web. Una aplicacin web puede tener una o ms pginas maestras, las cuales pueden ser anidadas.[15] Las
plantillas maestras contienen controles contenedores, llamados ContentPlaceHolders para indicar donde ir el
contenido dinmico, adems de HTML y JavaScript que ser compartido a travs de las pginas hijas.
Las pginas hijas tambin usan esos controles ContentPlaceHolder, que deben ser relacionados con el
ContentPlaceHolder de la pgina maestra que contiene a esta pgina hija. El resto de la pgina est definido por las
partes compartidas de la pgina maestra. Todo el lenguaje de marcado y controles de servidor en la pgina de
contenido deben ser colocadas dentro del control ContentPlaceHolder.
Cuando una solicitud es hecha por una pgina de contenido, ASP.NET mezcla la salida de la pgina de contenido
con la salida de la pgina maestra, y enva el resultado al usuario.
La pgina maestra permanece completamente accesible a la pgina del contenido. Esto significa que la pgina de
contenidos puede manipular los encabezados, cambiar el ttulo, configurar la cache, etc. Si la pgina maestra expone
propiedades pblicas o mtodos, el contenido de la pgina puede utilizar estos tambin.
Hoy en da con el nuevo producto de Microsoft WebMatrix, se dio a conocer el nuevo motor de plantillas conocido
como Razor, ya antes el IDE de Visual Studio incluia otros motores. Facilitando a las paginas ASP.NET MVC.
Otros archivos
Otras extensiones de archivo asociadas con las diferentes versiones de ASP.NET incluyen:
ASP.NET
Extensin
Versin
requerida
Descripcin
[16]
asax
1.0
ascx
1.0
Controles de usuario web: Controles personalizados para ser colocados en pginas web
ashx
1.0
asmx
1.0
axd
1.0
Cuando est habilitado en el web.config la solicitud de trace.axd genera trazas de salida a nivel de aplicacin. Tambin es
usado para el manejador especial webresource.axd que permite a los desarrolladores de controles/componentes empacar
un control/componente con imgenes, script, CSS, etc. para el desarrollo de un archivo nico (un 'ensamblado')
browser
2.0
Archivos de capacidades del navegador almacenadas en formato XML; introducido en la versin 2.0. ASP.NET incluye
muchos de estos por defecto, para admitir a los navegadores web comunes. Estos especifican que navegadores tienen que
capacidades, as que ASP.NET 2 puede automticamente personalizar y optimizar su salida de acuerdo al navegador. Los
archivos especiales .browser estn disponibles en descarga libre para manejar, por ejemplo, el validador de la W3C.
Reemplaza la seccin BrowserCaps que se encontraba en el archivo machine.config en ASP.NET 1.x
config
1.0
web.config es el nico archivo en una aplicacin web especifica que usa esta extensin por defecto (machine.config tiene
efectos similares en un servidor web y todas las aplicaciones en el), sin embargo ASP.NET proporciona la facilidad de
crear y utilizar otros archivos config. Son almacenados en formato XML
cs/vb
1.0
Archivos de cdigo fuente (cs indica C#, vb indica Visual Basic). Los archivos code-behind predominantemente tienen la
extensin ".aspx.cs" o ".aspx.vb" para los dos lenguajes ms comunes. Otros archivos de cdigo (que frecuentemente
contienen bibliotecas de clases) pueden tambin existir en las carpetas web con las extensiones cs/vb. En ASP.NET 2
estos deberan estar colocados dentro de la carpeta App_Code donde son dinmicamente compilados y estn disponibles
para toda la aplicacin
dbml
3.5
master
2.0
resx
1.0
Archivos de recursos para localizacin y globalizacin. Los archivos de recursos pueden ser globales (por ejemplo,
mensajes) o locales, que estn hechos especficamente para un solo archivo aspx o ascx.
sitemap
2.0
skin
2.0
Archivos de temas
svc
3.0
Estructura de directorios
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 nmero de directorios.
La estructura es tpicamente reflejada directamente en las urls.
Los nombres de directorios especiales (a partir de ASP.NET 2.0 son):[17]
App_Browsers
Contiene archivos de definicin especficos para navegadores.
App_Code
Es un directorio para cdigos. El servidor ASP.NET automticamente compilar los archivos (y
subdirectorios) en esta carpeta en un ensamblado que es accesible desde cualquier pgina del sitio. App_Code
es tpicamente usada para cdigo de acceso a datos, cdigo de modelo o cdigo de negocios. Tambin
cualquier manejador http especifico para el sitio e implementacin de mdulos y servicios web van este
directorio. Como alternativa a utilizar App_Code el desarrollador puede optar por proporcionar un ensamblado
independiente con cdigo precompilado.
ASP.NET
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 aplicacin.
App_LocalResources
Contiene archivos de recursos localizados para pginas individuales del sitio.
App_GlobalResources
Contiene archivos resx con recursos localizados disponibles para cada pgina del sitio. Este es donde el
desarrollador ASP.NET tpicamente almacenara mensajes que sern usados en ms de una pgina.
App_Themes
usado para temas alternativos del sitio.
App_WebReferences
Usado para archivos de descubrimiento y archivos WSDL para referencias a servicios web para ser
consumidos en el sitio.
Bin
Contiene cdigo compilado (archivos .dll) para controles, componentes, y otro cdigo que pueda ser
referenciado por la aplicacin. Cualquier clase representada por cdigo en la carpeta Bin es automticamente
referenciada en la aplicacin. Son archivos o librerias que tienen como principal accin ejecutar una funcion
cuando estas son llamadas o se invocan.
ASP.NET
construccin de reportes, y esto incluyen medios automticos para exportarlos a XLS o PDF, y de igual forma
incluye CristalReport. Adems permite separar completamente la interfaz de la lgica de negocio. Excelente para
desarrollo de aplicaciones multicapas.
Es muy sencilla la creacin de pginas con AJAX, slo incluyendo unos controles, as como descargar
gratuitamente el ToolKit de ASP.Net Ajax.
Extensiones
ASP.NET AJAX
ASP.NET AJAX, anteriormente llamado Atlas, es un conjunto de extensiones para ASP.NET desarrollado por
Microsoft para implementar la funcionalidad de Ajax.
ASP.NET AJAX fue liberado en enero de 2007 despus de un largo periodo de pruebas. Fue subsecuentemente
incluido con la versin 3.5 del .NET Framework, que fue liberada junto con Visual Studio 2008 en noviembre de
2007.
ASP.NET
Referencias
[1] http:/ / www. asp. net/
[2] Microsoft (ed.): Architecture Journal Profile: Scott Guthrie (http:/ / msdn2. microsoft. com/ en-us/ library/ bb266332. aspx) (en ingls).
The Architecture Journal (Enero de 2007). Consultado el 20-04-2008.
[3] Michiel van Otegem (24 de Julio de 2007). Interview with Scott Guthrie, creator of ASP.NET (http:/ / www. vanotegem. nl/
PermaLink,guid,d9826145-408c-4fb9-8939-79d7e6a19218. aspx) (en ingls). Consultado el 20-04-2008.
[4] Tim Anderson (30 de Octubre de 2007). The Register (ed.): How ASP.NET began in Java (http:/ / www. regdeveloper. co. uk/ 2007/ 10/ 30/
asp_net_java_project_cool/ ) (en ingls). Consultado el 20-04-2008.
[5] Microsoft (ed.): Show #9 - ASP.NET (http:/ / msdn. microsoft. com/ archive/ default. asp?url=/ archive/ en-us/ theshow/ Episode009/
default. asp) (en ingls). The MSDN Show (20 de Diciembre de 2000). Consultado el 20-04-2008.
[6] Microsoft (ed.): Bill Gates speech transcript - Professional Developers Conference 2000 (http:/ / www. microsoft. com/ presspass/ exec/
billg/ speeches/ 2000/ 07-12pdc. aspx) (11 de Julio de 2000). Consultado el 20-04-2008.
[7] Business Wire (ed.): ActiveState Supports Microsoft .NET Framework; Perl .NET & Python .NET Cross-Language Interoperability (http:/ /
findarticles. com/ p/ articles/ mi_m0EIN/ is_2000_July_11/ ai_63287204) (en ingls) (11 de Julio de 2000). Consultado el 20-04-2008.
[8] Microsoft (ed.): S! from the PDC (http:/ / msdn. microsoft. com/ library/ shared/ deeptree/ asp/ rightframe. asp?dtcfg=/ archive/
deeptreeconfig. xml& url=/ archive/ en-us/ theshow/ Episode019/ default. asp). The MSDN Show (15 de Noviembre de 2001). Consultado el
20-04-2008.
[9] (MacDonald y Szpuszta, 2005, p.63)
[10] http:/ / msdn2. microsoft. com/ en-us/ library/ ms972975. aspx#usercontrols_topic6 Adding Properties and Methods to a User Control
[11] http:/ / msdn2. microsoft. com/ en-us/ library/ ms972975. aspx#usercontrols_topic9 Creating and Raising a Custom Event
[12] INFO: ASP.NET State Management Overview (http:/ / support. microsoft. com/ kb/ 307598) (en ingls).
[13]
[14]
[15]
[16]
[17]
ViewState in ASP.NET (http:/ / www. extremeexperts. com/ Net/ Articles/ ViewState. aspx).
ASP.Net ViewState Overview (http:/ / www. dotnetrobert. com/ dotnet/ Home/ tabid/ 37/ Default. aspx) (en ingls).
ASP.NET Master Pages Overview (Microsoft Developer Network) (http:/ / msdn2. microsoft. com/ en-us/ library/ wtxbf3hh. aspx)
Global.asax Syntax (http:/ / msdn2. microsoft. com/ en-us/ library/ 2027ewzw. aspx)
http:/ / msdn2. microsoft. com/ en-us/ library/ ex526337. aspx ASP.NET Web Site Layout from MSDN
Enlaces externos
ASP.NET Tutorial (http://www.asp.net) - Web en Ingls y Espaol? de tecnologa ASP.NET
ASP.NET Tutoriales (http://www.vb-mundo.com/) - Portal en castellano sobre tecnologas.NET.
10
Licencia
Creative Commons Attribution-Share Alike 3.0 Unported
//creativecommons.org/licenses/by-sa/3.0/
11