Diferencia entre revisiones de «ASP.NET»

Contenido eliminado Contenido añadido
Página reemplazada por «HO CS COMO ETSAS».
Diegusjaimes (discusión · contribs.)
m Revertidos los cambios de 189.139.34.20 a la última edición de BOT-Superzerocool
Línea 1:
'''ASP.NET''' es un [[framework para aplicaciones web]] desarrollado y comercializado por [[Microsoft]]. Es usado por programadores para construir [[Sitio web|sitios web]] dinámicos, [[Aplicación web|aplicaciones web]] y [[Servicio Web|servicios web]] [[XML]]. Apareció en enero de 2002 con la versión 1.0 del [[.NET Framework]], y es la tecnología sucesora de la tecnología [[Active Server Pages]] (ASP). ASP.NET esta construido sobre el [[Common Language Runtime]], permitiendo a los programadores escribir código ASP.NET usando cualquier lenguaje admitido por el [[.NET Framework]].
HO CS COMO ETSAS
 
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 programación para aplicaciones de uso común está muy bien establecido y soportado por un gran número de lenguajes, herramientas de desarrollo, la programación web es una mezcla de varios lenguajes de etiquetas, un gran uso de lenguajes de ''[[script]]'' y plataformas de [[servidor]]. Por desgracia para el programador de nivel intermedio, el conocimiento y habilidades que se necesitan para desarrollar aplicaciones web tienen muy poco en común con las que son necesarias en el desarrollo tradicional de aplicaciones.
 
== Historia ==
Microsoft introdujo la tecnología llamada Active Server Pages en diciembre de [[1996]]. Es parte del [[Internet Information Server]] ([[IIS]]) desde la versión 3.0 y es una tecnología de páginas activas que permite el uso de diferentes scripts y componentes en conjunto con el tradicional [[HTML]] para mostrar páginas generadas dinámicamente. La definición contextual de Microsoft es que "''Las Active Server Pages son un ambiente de aplicación abierto y gratuito en el que se puede combinar código HTML, scripts y componentes [[ActiveX]] del servidor para crear soluciones dinámicas y poderosas para el web''".
 
Después 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 separación de las presentación y el contenido y ser capaz de escribir código "limpio".<ref name="architecturejournal">{{cita web
| url=http://msdn2.microsoft.com/en-us/library/bb266332.aspx
| título=Architecture Journal Profile: Scott Guthrie
| fecha=Enero de 2007
| fechaacceso=20-04-2008
| obra=The Architecture Journal
| editor=[[Microsoft]]
| idioma=inglés
}}</ref> A Mark Anders, un administrador del equipo de IIS y [[Scott Guthrie]], quien se había unido a Microsoft en 1997 después de graduarse de la Universidad Duke, se les dio la tarea de determinar como debería ser ese modelo. El diseño inicial fue desarrollado en el curso de dos meses por Anders y Guthrie, y Guthrie codificó los prototipos iníciales durante las celebraciones navideñas de 1997.<ref name="otegem">{{cita web
| url=http://www.vanotegem.nl/PermaLink,guid,d9826145-408c-4fb9-8939-79d7e6a19218.aspx
| título=Interview with Scott Guthrie, creator of ASP.NET
| autor=Michiel van Otegem
| fecha=24 de Julio de 2007
| fechaacceso=20-04-2008
| idioma=inglés
}}</ref>
[[Archivo:MIX Keynote-Scott Guthrie 09 MS 05 2007.jpg|left|thumb|portrait|[[Scott Guthrie]] en 2007.]]
El prototipo inicial fue llamado "XSP"; Guthrie explicó en una entrevista en el año 2007 que,
{{cita|"''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, so that's what we originally named it".<ref name="architecturejournal" />
|col2=
"La gente siempre se preguntaba qué significaba la X. En ese momento, realmente no significaba nada. El XML comenzó así, al igual que el XSLT. Todo lo mejor parece empezar con una X, así que ese es el motivo por el que originalmente lo llamamos así."''}}
 
El desarrollo inicial de XSP fue hecho usando [[Java]],<ref name="anderselreg">{{cita web
| url=http://www.regdeveloper.co.uk/2007/10/30/asp_net_java_project_cool/
| título=How ASP.NET began in Java
| autor=Tim Anderson
| fecha=30 de Octubre de 2007
| fechaacceso=20-04-2008
| editor=The Register
| idioma=inglés
}}</ref> pero pronto se decidió construir una nueva plataforma sobre el [[Common Language Runtime]](CLR), pues ofrecía un [[Programación orientada a objetos|ambiente orientado a objetos]], [[recolección de basura]] y otras características que fueron vistas como características deseables. Guthrie describió esta decisión como un "alto riesgo", pues el éxito de su nueva plataforma de desarrollo web estaría atado al éxito del CLR, que, como XSP, aún 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 Sharp|C#]] (conocido internamente como "Project Cool" pero mantenido en secreto para el público), y fue renombrado a ASP+, para este punto la nueva plataforma fue vista como el sucesor de Active Server Pages, y la intención fue proporcionar un medio fácil de migración para los desarrolladores ASP.<ref name="msdnshow9">{{cita web
| url=http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/theshow/Episode009/default.asp
| título=Show #9 - ASP.NET
| fecha=20 de Diciembre de 2000
| fechaacceso=20-04-2008
| obra=The MSDN Show
| editor=[[Microsoft]]
| idioma=inglés
}}</ref>
 
La primera demostración publica y la liberación de la primera [[versión beta|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 presentación de [[Bill Gates]], [[Fujitsu]] demostró ASP+ usado en conjunción con [[COBOL]],<ref>{{cita web
| url = http://www.microsoft.com/presspass/exec/billg/speeches/2000/07-12pdc.aspx
| título = Bill Gates speech transcript - Professional Developers Conference 2000
| fecha = 11 de Julio de 2000
| fechaacceso = 20-04-2008
| editor = [[Microsoft]]
}}</ref> y el soporte para una variedad de otros lenguajes fue anunciada, incluyendo los nuevos lenguajes de Microsoft, [[Visual Basic .NET]] y C#, así como también el soporte por medio de herramientas de interoperabilidad para [[Python]] y [[Perl]] creadas por la empresa canadiense [[ActiveState]].<ref>{{cita web
| url = http://findarticles.com/p/articles/mi_m0EIN/is_2000_July_11/ai_63287204
| título = ActiveState Supports Microsoft .NET Framework; Perl .NET & Python .NET Cross-Language Interoperability
| fecha = 11 de Julio de 2000
| fechaacceso=20-04-2008
| editor = Business Wire
| idioma = inglés
}}</ref>
 
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 aparición en ''The MSDN Show'' en ese año, {{cita|"''The .NET initiative is really about a number of factors, it’s about delivering software as a service, it's about XML and web services and really enhancing the Internet in terms of what it can do .... we really wanted to bring its name more in line with the rest of the platform pieces that make up the .NET framework.''"<ref name="msdnshow9" />|col2="''La iniciativa .NET comprende un número de factores, trata sobre la entrega de software como servicio, sobre XML y servicios web y la mejora real del Internet en terminos de que puede hacer... de verdad queremos llevar su nombre (de ASP+) mas alineado con el resto de las piezas de la plataforma que componen el .NET framework''"}}
 
Después de cuatro años de desarrollo, y una serie de versiones de evaluación en los años 2000 y 2001, ASP.NET 1.0 fue liberado el 5 de enero de 2002 como parte de la versión 1.0 del [[.NET Framework]]. Incluso antes de su liberación, docenas de libros habían sido escritos sobre ASP.NET<ref>{{cita web
| url=http://msdn.microsoft.com/library/shared/deeptree/asp/rightframe.asp?dtcfg=/archive/deeptreeconfig.xml&url=/archive/en-us/theshow/Episode019/default.asp
| título=Show #19 - LIVE! from the PDC
| fecha=15 de Noviembre de 2001
| fechaacceso=20-04-2008
| obra=The MSDN Show
| editor=[[Microsoft]]
| idioma=inglés
}}</ref> y Microsoft lo promocionó fuertemente como parte de su plataforma para servicios web. Guthrie se convirtió en administrador de producto para ASP.NET y su desarrollo continuó rápidamente, con la versión 1.1 siendo liberada el 24 de abril de 2003 como parte del [[Windows Server 2003]]. Esta liberación se enfocó en mejorar el soporte de ASP.NET a dispositivos móviles.
 
== Características ==
=== Páginas ===
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.<ref name="macdonald63">{{harv|MacDonald|Szpuszta|2005|p=63}}</ref> 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 '''<code><nowiki><% -- código dinámico -- %></nowiki></code>''' que es muy similar a otras tecnologías de desarrollo como [[PHP]], [[Java Server Pages|JSP]] y [[Active Server Pages|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.
 
==== Formulario web de ejemplo ====
Este es una ejemplo que utiliza código "en línea", opuesto al código independiente (Code-behind).
 
<source lang="csharp">
<%@ 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>
</source>
 
=== 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 [[Guión (informática)|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 [[Integrated development environment|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]]
 
==== Ejemplo ====
<source lang="asp">
<%@ Page Language="C#" CodeFile="EjemploCodeBehind.aspx.cs" Inherits="SitioWeb.EjemploCodeBehind"
AutoEventWireup="true" %>
</source>
 
La etiqueta superior es colocada al inicio del archivo ASPX. La propiedad ''CodeFile'' de la directiva ''@ Page'' especifica que 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:
 
<source lang="csharp">
using System;
 
namespace SitioWeb
{
public partial class EjemploCodeBehind: System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
 
}
}
}
</source>
 
En este caso, el método Page_Load() será llamado cada vez que la página ASPX sea solicitada al servidor. El programador puede implementar manejadores de eventos en varias etapas del proceso de ejecución de la página.
 
=== Controles de usuario ===
ASP.NET permite la creación de componentes reutilizables a través de la creación 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 <code>System.Web.UI.UserControl</code>, y son almacenados en archivos '''ASCX'''. Como los archivos ASPX, un ASCX contiene etiquetas HTML o XHTML, además de etiquetas para definir controles web y otros controles de usuario. También pueden usar el modelo code-behind.
 
Los programadores pueden agregar sus propias propiedades y métodos,<ref>http://msdn2.microsoft.com/en-us/library/ms972975.aspx#usercontrols_topic6 Adding Properties and Methods to a User Control
</ref> y manejadores de eventos.<ref>http://msdn2.microsoft.com/en-us/library/ms972975.aspx#usercontrols_topic9 Creating and Raising a Custom Event</ref> Un mecanismo de eventos en burbuja proporciona la capacidad de pasar un evento disparado por un control de usuario a la página que lo contiene.
 
=== Administración del estado ===
Las aplicaciones ASP.NET son alojadas en un [[servidor web]] y se tiene acceso a ellas mediante el protocolo sin estado [[HTTP]], que no guarda ninguna información sobre conexiones anteriores. Por lo tanto, si la aplicación requiere interacción entre conexiones, tiene que implementar su propia administración del estado. ASP.NET proporciona varias maneras de administrar el estado de las aplicaciones ASP.NET.
 
==== Estado de la aplicación ====
El estado de la aplicación (Application state) es una colección de variables definidas por el usuario que son compartidas por todas las invocaciones de una aplicación ASP.NET. Estos son establecidas e inicializadas cuando el evento <code>Application_OnStart</code> se dispara en la carga de la primera instancia de las aplicaciones y están disponible hasta que la última instancia termina. Las variables de estado de la aplicación son identificadas por nombres.<ref name="state">{{cita web | url = http://support.microsoft.com/kb/307598 | título= INFO: ASP.NET State Management Overview | fechadeacceso= 23-10-2007| idioma = inglés}}</ref>
 
==== Estado de la sesión ====
El estado de la sesión (Session state) es una colección de variables definidas por el usuario, las cuales persisten durante la sesión de un usuario. Estas variables son únicas para diferentes instancias de una sesión de usuario, y son accedidas usando la colección <code>Session</code>. Las variables de sesión pueden ser preparadas para ser automáticamente destruidas después de un determinado tiempo de inactividad, incluso si la sesión no ha terminado. Del lado del cliente, una sesión de usuario es identificada por una [[cookie]] o codificando el ID de la sesión en la misma URL.<ref name="state" />
 
ASP.NET proporciona tres modos de persistencia para variables de sesión:<ref name="state" />
 
;InProc: Las variables de sesión son mantenidas dentro del [[proceso|Proceso (informática)]]. Sin embargo, en este modo, las variables son destruidas cuando el proceso ASP.NET es reciclado o terminado.
;StateServer: En este modo, ASP.NET ejecuta un servicio de Windows separado que mantiene las variables de estado. Como esta administración de estado ocurre fuera del proceso ASP.NET, tiene un impacto negativo en el rendimiento, pero permite a múltiples instancias de ASP.NET compartir el mismo estado del servidor, permitiendo que una aplicación ASP.NET pueda tener su carga balanceada y escalada en múltiples servidores. También, como el servicio de administración del estado se ejecuta independiente de ASP.NET, las variables pueden persistir a través de las finalizaciones del proceso ASP.NET.
;SqlServer: En este modo, las variables de estado son almacenadas en un [[servidor de base de datos]], accesible usando [[SQL]]. Las variables de sesión pueden persistir a través de finalizaciones de procesos también en este modo.
 
==== Estado de la vista ====
El estado de la vista (View state) se refiere al mecanismo de administración de estado a nivel de página, que es utilizado por las páginas HTML generadas por las aplicaciones ASP.NET para mantener el estado de los controles de los formularios web y los [[widget]]s. El estado de los controles es codificado y mandado al servidor en cada envío del formulario en un campo oculto conocido como <code>__VIEWSTATE</code>. El servidor envía de regreso las variables para que cuando la página sea renderizada de nuevo, los controles volverán a su último estado. Del lado del servidor, la aplicación 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 están disponibles para su uso en ASP.NET usando la colección <code>ViewState</code>.<ref>{{cita web | url = http://www.extremeexperts.com/Net/Articles/ViewState.aspx | título= ViewState in ASP.NET | fechadeacceso= 23-10-2007}}</ref>
<ref>{{cita web | url = http://www.dotnetrobert.com/dotnet/Home/tabid/37/Default.aspx| título= ASP.Net ViewState Overview | idioma = inglés}}</ref>
 
=== Motor de plantillas ===
Al ser liberado, ASP.NET carecía de un [[motor de plantillas]]. Debido a que el [[.NET framework]] es [[orientado a objetos]] y permite la [[herencia (programación orientada a objetos)|herencia]], muchos desarrolladores podrían definir una nueva clase que herede desde "System.Web. UI.Page", escribir [[método (programación orientada a objetos)|métodos]] en ella que renderizen HTML, y entonces hacer las páginas en su aplicación que hereden de esta nueva clase. Mientras esto permite que los elementos comunes sean dentro de un sitio, agrega complejidad y mezcla [[código fuente]] con [[lenguaje de marcado]]. Además, este método puede ser visto solamente al ejecutar la aplicación, no mientras se está diseñando. Otros desarrolladores han usado [[archivos incluidos]] y otros trucos para evitar la implementación de enlaces de navegación y otros elementos en cada página.
 
ASP.NET 2.0 presento el concepto de ''página maestra''(Master Page), que permiten el desarrollo de páginas basado en [[plantillas web]]. Una aplicación web puede tener una o más páginas maestras, las cuales pueden ser anidadas.<ref>[http://msdn2.microsoft.com/en-us/library/wtxbf3hh.aspx ASP.NET Master Pages Overview (Microsoft Developer Network)]</ref> Las plantillas maestras contienen controles contenedores, llamados ''ContentPlaceHolders'' para indicar donde ira el contenido dinámico, además de [[HTML]] y [[JavaScript]] que será compartido a través de las páginas hijas.
 
Las páginas hijas también usan esos controles ContentPlaceHolder, que deben ser relacionados con el ContentPlaceHolder de la página maestra que contiene a esta página hija. El resto de la página está definido por las partes compartidas de la página maestra. Todo el lenguaje de marcado y controles de [[servidor]] en la página de contenido deben ser colocadas dentro del control ContentPlaceHolder.
 
Cuando una solicitud es hecha por una página de contenido, ASP.NET mezcla la salida de la página de contenido con la salida de la página maestra, y envía el resultado al usuario.
 
La página maestra permanece completamente accesible a la página del contenido. Esto significa que la página de contenidos puede manipular los encabezados, cambiar el título, configurar la cache, etc. Si la página maestra expone propiedades públicas o métodos, el contenido de la página puede utilizar estos también.
 
=== Otros archivos ===
Otras extensiones de archivo asociadas con las diferentes versiones de ASP.NET incluyen:
 
{| class="wikitable"
|-
! Extensión !! Versión requerida !! Descripción
|-
| asax || 1.0 || [[Global.asax]], usada para la logica a nivel de aplicación<ref>[http://msdn2.microsoft.com/en-us/library/2027ewzw.aspx Global.asax Syntax]</ref>
|-
| ascx || 1.0 || Controles de usuario web: [[Widget|Controles]] personalizados para ser colocados en páginas web
|-
| ashx || 1.0 || Manejadores [[Hypertext Transfer Protocol|HTTP]] personalizados
|-
| asmx || 1.0 || Páginas de [[Servicio web|servicios web]]
|-
| axd || 1.0 || Cuando está habilitado en el [[web.config]] la solicitud de trace.axd genera trazas de salida a nivel de aplicación. También es usado para el manejador especial webresource.axd que permite a los desarrolladores de controles/componentes empacar un control/componente con imágenes, 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 versión 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 automáticamente personalizar y optimizar su salida de acuerdo al navegador. Los archivos especiales .browser están disponibles en descarga libre para manejar, por ejemplo, el validador de la W3C. Reemplaza la sección 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 aplicación web especifica que usa esta extensión 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 código fuente (cs indica [[C Sharp|C#]], vb indica [[Visual Basic]]). Los archivos code-behind predominantemente tienen la extensión ".aspx.cs" o ".aspx.vb" para los dos lenguajes más comunes. Otros archivos de código (que frecuentemente contienen bibliotecas de clases) pueden también existir en las carpetas web con las extensiones cs/vb. En ASP.NET 2 estos deberían estar colocados dentro de la carpeta App_Code donde son dinámicamente compilados y están disponibles para toda la aplicación
|-
| dbml || 3.5 || Archivo de clases de datos [[Language Integrated Query|LINQ a SQL]]
|-
| master || 2.0 || Archivo de página maestra
|-
| resx || 1.0 || Archivos de recursos para localización y globalización. Los archivos de recursos pueden ser globales (por ejemplo, mensajes) o locales, que están hechos específicamente para un solo archivo aspx o ascx.
|-
| sitemap || 2.0 || Archivos de configuración sitemap
|-
| skin || 2.0 || Archivos de pieles de temas
|-
| svc || 3.0 || Archivos de servicio de [[Windows Communication Foundation]]
|}
 
=== 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 número de directorios. La estructura es típicamente reflejada directamente en las [[Localizador Uniforme de Recursos|urls]].
 
Los nombres de directorios especiales (a partir de ASP.NET 2.0 son):<ref>http://msdn2.microsoft.com/en-us/library/ex526337.aspx ASP.NET Web Site Layout from MSDN</ref>
 
; 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 compilara 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.
; App_WebReferences : Usado para archivos de descubrimiento y archivos [[WSDL]] para referencias a [[servicio web|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.
 
== Evolución respecto al ASP clásico ==
En el modelo de desarrollo web basado en páginas activas, la programación ASP actual tiene diversas limitaciones:
 
*Para que todo ocurra en una página web, es habitual escribir una gran cantidad de código para resolver necesidades sencillas. ASP.NET incorpora un modelo declarativo a la programación web: los controles de servidor funcionan en una página Web simplemente declarándolos. Cuando se carga la página ASP.NET, se instancian los controles listados en la página ASP y es responsabilidad del control emitir código HTML que el navegador pueda entender.
 
*ASP clásico es un tanto desorganizado. En una página ASP podemos incluir casi todo: HTML plano, código script, objetos [[COM]] y texto. No hay una distinción formal entre el contenido de una página y su comportamiento: simplemente, insertamos código en la página, y a ver qué pasa. ASP.NET impone un cierto orden sobre el modelo de programación estándar ASP. En cierto modo, esta "desorganización" puede evitarse fácilmente usando el sentido común y algunas de las nuevas tecnologías. Por ejemplo, podemos escribir en nuestras páginas ASP únicamente código VBScript. Dicho código generaría un mensaje [[XML]], que luego seria interpretado por un archivo [[XSLT]]. De esta forma conseguimos evitar el llamado "código spaguetti", aumentando la claridad del código y la velocidad de ejecución de las páginas ASP.
 
*La tercera limitación en el desarrollo con ASP es que con el tradicional utilizamos lenguajes de scripting no tipados como [[VBScript]] o [[JScript]]. Podemos instalar otros motores de scripting que impongan verificación de tipos; sin embargo, no son universalmente conocidos o utilizados como los anteriores. ASP.NET claramente separa la porción basada en script de una página web de su contenido.
 
* ASP.Net, puede decirse que en nuevo nivel de abstracción en la construcción de sitios web, por que se pueden crear rápidamente aplicaciones web, basándose en los controles incluidos en el ''frameWork'' o muchos gratuitos que hay en la red, ocultando el código de mucho Ej: Puedes crear fácilmente un ''grid'' o tabla, y ésta se auto-ordena, página, etc, obteniendo sus datos desde cualquier base de datos. Incluye una gran herramienta para la construcción de reportes, y esto incluyen medios automáticos para exportarlos a XLS o PDF, y de igual forma incluye CristalReport. Además permite separar completamente la interfaz de la lógica de negocio. Excelente para desarrollo de aplicaciones multicapas.
 
* Es muy sencilla la creación de páginas con [[AJAX]], sólo incluyendo unos controles, así como descargar gratuitamente el ToolKit de ASP.Net Ajax.
 
== Uso actual del lenguaje ==
En la actualidad una aplicación ASP.NET puede ejecutarse de dos formas distintas:
 
'''Aplicaciones cliente/servidor''':
Estas aplicaciones están típicamente en formato de [[ejecutable]]s [[código compilado|compilados]]. Estos pueden integrar toda la riqueza de una interfaz de usuario, tal es el caso de las aplicaciones de desempeño y productividad, pero no se reúne la lógica de negocio como un recurso que se pueda reutilizar. Además acostumbran ser menos gestionables y escalables que las demás aplicaciones.
 
'''Aplicaciones que utilizan el navegador''':
Dichas aplicaciones están caracterizadas por contar con una interfaz de web rica y muy útil. La interfaz gráfica integra varias tecnologías, las cuales son el HTML, [[XHTML]], scripting, etc; siempre y cuando el navegador que se esté utilizando soporte estas tecnologías.
 
== Referencias ==
{{Listaref}}
 
== Enlaces externos ==
* [http://www.es-asp.net/ es-ASP.NET] - Comunidad de ASP.NET en castellano
* [http://www.vb-mundo.com/ ASP.NET Tutoriales] - Portal en castellano sobre tecnologías.NET.
* [http://www.asp.net ASP.NET Tutorial] - Web en Inglés y Español de tecnología ASP.NET
* [http://www.solowindows.com ASP.NET ] - Web en Inglés y Español de Hosting ASP.NET
* [http://perrucapuntonet.blogspot.com ASP.NET ] - Web en Español para el uso diario de ASP.NET
* [http://www.negox.com/es/about/article.aspx Artículos en ASP.NET]
*[http://www.bitarray.info BitArray.info]: Código de ASP .Net.
 
[[Categoría:Internet]]
[[Categoría:Plataforma .NET]]
[[Categoría:Frameworks para aplicaciones web]]
 
[[ar:أسب دوت نت]]
[[ca:ASP.NET]]
[[cs:ASP.NET]]
[[da:ASP.NET]]
[[de:ASP.NET]]
[[en:ASP.NET]]
[[fa:ای‌اس‌پی‌دات‌نت]]
[[fr:ASP.NET]]
[[gl:ASP.NET]]
[[he:ASP.NET]]
[[id:Active Server Pages .NET]]
[[is:ASP.NET]]
[[it:ASP.NET]]
[[ja:ASP.NET]]
[[lt:ASP.NET]]
[[ms:ASP.NET]]
[[nl:ASP.NET]]
[[no:ASP.NET]]
[[pl:ASP.NET]]
[[pt:ASP.NET]]
[[ro:ASP.NET]]
[[ru:ASP.NET]]
[[sk:ASP.NET]]
[[sq:ASP.NET]]
[[sv:ASP.NET]]
[[th:เอเอสพีดอตเน็ต]]
[[tr:ASP.NET]]
[[vi:ASP.NET]]
[[zh:ASP.NET]]
[[zh-min-nan:ASP.NET]]