Introducción Al Net y ASP.net

download Introducción Al Net y ASP.net

of 28

description

introduccion al net y asp.net

Transcript of Introducción Al Net y ASP.net

Introduccin al .NET FrameworkCada cierto tiempo se produce una revolucin en la tecnologa empleada en el desarrollo de aplicaciones. El primer gran cambio que vivimos, por lo menos yo, fue el paso de la programacin en MSDOS a la programacin Windows (Win16), ms tarde con la evolucin de los sistemas operativos, el segundo cambio, las aplicaciones Win32, y ahora estamos viviendo la tercera de las revoluciones, lo que Microsoft llama .NET Framework o ms comnmente .NET.Microsoft lanza esta nueva tecnologa como respuesta a tecnologa Java de Sun. El Framework .NET tiene grandes similitudes con la plataforma Java, por eso todos aquellos que estn familiarizados con Java comprendern en seguida el funcionamiento de .NET.Centrndonos en el concepto Framework .NET, como el trmino en ingls dice (Framework = Armazn) es un marco en donde nuestras aplicaciones corrern. Nuestras aplicaciones ya no corren directamente bajo el sistema operativo si no que corren bajo este armazn o marco.Elementos principales .NET Framework: CLR (Common Language Runtime) El conjunto de clases del .NET Framework ASP.NET Los servicios Web Remoting Windows FormsElCLRes el motor de ejecucin de las aplicaciones .NET, lo que en Java sera la mquina virtual de Java, este motor se encarga de ejecutar todo el cdigo .NET para ello a de ser en dicho lenguaje. El CLR es el encargado de convertir este lenguaje intermedio en leguaje mquina del procesador, esto normalmente se hace en tiempo real por un compilador JIT (Just-In-Time) que lleva incorporado el CLR.Elconjunto de clases del .NET Frameworkes la piedra angular de cualquier desarrollador de .NET, es un rico conjunto de clases, interfaces, tipos que simplifican y optimizan el desarrollo de aplicaciones .NET adems de proporcionar acceso a la funcionalidad del sistema. Como desarrolladores el dominio de este conjunto de clases es vital para un buen desarrollo en .NET.ASP.NETes la parte del .NET Framework dedicada al desarrollo web. A travs del servidor web (IIS) nuestras aplicaciones ASP.NET se ejecutarn bajo el CLR y podremos usar el conjunto de clases del .NET Framework para desarrollarlas, obteniendo as una versatilidad y una potencia nunca antes conseguida en las aplicaciones ASP.Tambin son destacables losservicios web, que nos permitirn comunicarnos a travs de Internet entre diferentes ordenadores, incluso entre distintos sistemas. As como .NETRemotingque nos permite tener objetos en mquinas remotas e invocarlos desde otras mquinas. Y lasWindows Forms, parte del .NET Framework que permite crear aplicaciones en el ms clsico de los sentidos.Definicin El Microsoft .NET Framework, es uncomponentede software que puede ser o es incluido en lossistemas operativosMicrosoft Windows. Provee soluciones pre-codificadas para requerimientos comunes de los programas y gestiona laejecucinde programas escritos especficamente paraesteframework.

Microsoft desea que todas lasaplicacionescreadas para la plataforma Windows, sean basadas en el .NET Framework. Su objetivo escrearun marco dedesarrollode softwaresencillo, reduciendo las vulnerabilidades y aumentando laseguridadde los programas desarrollados.

Las soluciones pre-codificadas que forman labiblioteca.NET, cubren un granrangode necesidades de laprogramacinde programas. Losprogramadoreslas emplean y combinan con sus propioscdigosen sus programas. El framework incluye soluciones en reas como: lainterfazde usuario, acceso a datos, conectividad a bases de datos,criptografa,desarrollode aplicaciones web, algoritmos numricos ycomunicacinde redes.

Con esta plataforma Microsoft incursiona de lleno en elcampode losservicios weby establece alXMLcomonorma en el transporte de informacin en sus productos y lo promocionacomotal en los sistemas desarrollados utilizando sus herramientas.Microsoft .NET(Redirigido desde.NET Framework)Para el dominio de Internet, vase.net.Para la televisin pblica de Grecia, vaseNET (Grecia).Este artculo o seccin necesitareferenciasque aparezcan en unapublicacin acreditada, como revistas especializadas, monografas, prensa diaria o pginas de Internetfidedignas.Puedes aadirlasaso avisaral autor principal del artculoen su pgina de discusin pegando:{{subst:Aviso referencias|Microsoft .NET}} ~~~~

Microsoft .NET

Desarrollador

MicrosoftMicrosoft .NET Framework

Informacin general

Lanzamiento inicial13 de febrerode2002

ltima versin estable4.0.30319.112 de abril de 2010; hace 4 meses

GneroFramework

Sistema operativoMicrosoft Windows

LicenciaPropietario, comercial

En espaol

.NETes unframeworkdeMicrosoftque hace un nfasis en la transparencia deredes, con independencia de plataforma dehardwarey que permita un rpido desarrollo deaplicaciones. Basado en ella, la empresa intenta desarrollar una estrategia horizontal que integre todos sus productos, desde elsistema operativohasta las herramientas de mercado..NET podra considerarse una respuesta de Microsoft al creciente mercado de los negocios en entornosWeb, como competencia a laplataforma JavadeSun Microsystemsy a los diversosframeworkde desarrollo web basados enPHP. Su propuesta es ofrecer una manera rpida y econmica, a la vez que segura y robusta, de desarrollar aplicaciones o como la misma plataforma las denomina, soluciones permitiendo una integracin ms rpida y gil entre empresas y un acceso ms simple y universal a todo tipo de informacin desde cualquier tipo de dispositivo.Contenido[ocultar] 1Consideraciones 2Componentes 3Common Language Runtime (CLR) 3.1Caractersticas 4Estandarizacin y licenciamiento 5El futuro de .NET 6Biblioteca de Clases Base de .NET 7Ensamblados 8Versiones 9Vase tambin 10Referencias 11Enlaces externos

]ConsideracionesLa plataforma .NET deMicrosoftes un componente desoftwareque puede ser aadido alsistema operativoWindows. Provee un extenso conjunto de soluciones predefinidas para necesidades generales de laprogramacinde aplicaciones, y administra la ejecucin de los programas escritos especficamente con la plataforma. Esta solucin es el producto principal en la oferta de Microsoft, y pretende ser utilizada por la mayora de las aplicaciones creadas para la plataforma Windows..NET Framework se incluye enWindows Server 2008,Windows VistayWindows 7. De igual manera, la versin actual de dicho componente puede ser instalada enWindows XP, y en la familia de sistemas operativosWindows Server 2003. Una versin "reducida" de .NET Framework est disponible para la plataformaWindows Mobile, incluyendotelfonos inteligentes.La norma (incluido en ECMA-335, ISO/IEC 23271) que define el conjunto de funciones que debe implementar la biblioteca de clases base (BCL por sus siglas en ingls, tal vez el ms importante de los componentes de la plataforma), define un conjunto funcional mnimo que debe implementarse para que el marco de trabajo sea soportado por un sistema operativo. AunqueMicrosoftimplement esta norma para susistema operativoWindows, la publicacin de la norma abre la posibilidad de que sea implementada para cualquier otro sistema operativo existente o futuro, permitiendo que las aplicaciones corran sobre la plataforma independientemente del sistema operativo para el cual haya sido implementada. ElProyecto Monoemprendido porXimianpretende realizar la implementacin de la norma para varios sistemas operativos adicionales bajo el marco del cdigo abierto.[editar]ComponentesLos principales componentes del marco de trabajo son: El conjunto delenguajes de programacin LaBiblioteca de Clases BaseoBCL ElEntorno Comn de Ejecucin para LenguajesoCLRpor sus siglas en ingls.Debido a la publicacin de la norma para lainfraestructura comn de lenguajes(CLIpor sus siglas en ingls), el desarrollo de lenguajes se facilita, por lo que el marco de trabajo .NET soporta ya ms de 20 lenguajes de programacin y es posible desarrollar cualquiera de los tipos de aplicaciones soportados en la plataforma con cualquiera de ellos, lo que elimina las diferencias que existan entre lo que era posible hacer con uno u otro lenguaje.Algunos de los lenguajes desarrollados para elmarco de trabajo .NETson:C#,Visual Basic,Delphi(Object Pascal),C++,J#,Perl,Python,Fortran,Prolog(existen al menos dos implementaciones, elP#1y elProlog.NET2),CobolyPowerBuilder.[editar]Common Language Runtime (CLR)Artculo principal:Common Language Runtime

Estructura interna del entorno de ejecucin en lenguaje comn(CLRpor sus siglas en ingls).Este es el lenguaje insignia de .NET Framework(marco de trabajo .NET)y pretende reunir las ventajas de lenguajes comoC,C++yVisual Basicen uno solo. El CLR es el verdadero ncleo del framework de .NET, entorno de ejecucin en el que se cargan las aplicaciones desarrolladas en los distintos lenguajes, ampliando el conjunto de servicios del sistema operativo (W2k y W2003).La herramienta de desarrollo compila el cdigo fuente de cualquiera de los lenguajes soportados por .NET en un cdigo intermedio, elMSIL(Microsoft Intermediate Language), similar al BYTECODE de Java. Para generarlo, el compilador se basa en la especificacinCLS(Common Language Specification)que determina las reglas necesarias para crear el cdigo MSIL compatible con el CLR.Para ejecutarse se necesita un segundo paso, un compiladorJIT(Just-In-Time)es el que genera elcdigo mquinareal que se ejecuta en la plataforma del cliente. De esta forma se consigue con .NET independencia de la plataforma de hardware. La compilacin JIT la realiza el CLR a medida que el programa invoca mtodos. El cdigo ejecutable obtenido se almacena en la memoria cach del ordenador, siendo recompilado de nuevo slo en el caso de producirse algn cambio en el cdigo fuente.[editar]CaractersticasEs el encargado de proveer lo que se llama cdigo administrado, es decir, un entorno que provee servicios automticos al cdigo que se ejecuta. Los servicios son variados: Cargador de clases: permite cargar en memoria las clases. Compilador MSIL a nativo: transforma cdigo intermedio de alto nivel independiente del hardware que lo ejecuta a cdigo de mquina propio del dispositivo que lo ejecuta. Administrador de cdigo: coordina toda la operacin de los distintos subsistemas del Common Language Runtime. Recolector de basura: elimina de memoria objetos no utilizados. Motor de seguridad: administra la seguridad del cdigo que se ejecuta. Motor de depuracin: permite hacer un seguimiento de la ejecucin del cdigo aun cuando se utilicen lenguajes distintos. Verificador de tipos: controla que las variables de la aplicacin usen el rea de memoria que tienen asignado. Administrador de excepciones: maneja los errores que se producen durante la ejecucin del cdigo. Soporte demultiproceso(hilos): permite ejecutar todo el cdigo en forma paralela. Empaquetador de COM: coordina la comunicacin con los componentes COM para que puedan ser usados por el .NET Framework. Soporte de la Biblioteca de Clases Base: interfaz con las clases base del .NET Framework. Esto quiere decir que existen tipos de estructuras como es la de java y la .NET[editar]Estandarizacin y licenciamientoEnagosto de 2000, Microsoft, Hewlett-Packard e Intel trabajaron conjuntamente para estandarizar el lenguaje de programacin C# y una Infraestructura de Lenguaje Comn (CLI por sus siglas en ingls). Para Diciembre de 2001, ambos fueron ratificados por los estndares Internacionales ECMA.34ISO tambin sigui los pasos paraabril de 2003.Mientras Microsoft y sus socios de negocios ganaban patentes para los lenguajesCLIyC#,ECMAeISOsolicitaron que era esencial que la implementacin estuviera disponible bajo trminos no discriminatorios. Adems de alcanzar estos trminos, las compaas tambin accedan a dejar estas patentes disponibles. Sin embargo, esto no aplic para la parte del .NET Framework, que no est cubierto por los estndares ECMA/ISO. Esto incluyeWindows Forms,ADO.NetyASP.Net.Enoctubre de 2007, Microsoft anunciaba la liberacin de su cdigo fuente para la Biblioteca de Clases Base del .NET Framework (incluidos ASP.Net, ADO.Net y Windows Presentation Foundation) esto con el lanzamiento de su nueva versin:Visual Studio 2008.[editar]El futuro de .NETA largo plazoMicrosoftpretende reemplazar elAPIWin32oWindows APIcon la plataforma .NET. Esto debido a que elAPIWin32oWindows APIfue desarrollada sobre la marcha, careciendo de documentacin detallada, uniformidad y cohesin entre sus distintos componentes, provocando mltiples problemas en el desarrollo de aplicaciones para elsistema operativoWindows. La plataforma .NET pretende solventar la mayora de estos problemas proveyendo un conjunto nico y expandible con facilidad, de bloques interconectados, diseados de forma uniforme y bien documentados, que permitan a los desarrolladores tener a mano todo lo que necesitan para producir aplicaciones slidas.Debido a las ventajas que la disponibilidad de una plataforma de este tipo puede darle a las empresas de tecnologa y al pblico en general, muchas otras empresas e instituciones se han unido aMicrosoften el desarrollo y fortalecimiento de la plataforma .NET, ya sea por medio de la implementacin de la plataforma para otrossistemas operativosaparte deWindows(Proyecto MonodeXimian/NovellparaLinux/MacOS X/BSD/Solaris), el desarrollo delenguajes de programacinadicionales para la plataforma (Lexicopara hispanoparlantes,ANSI Cde laUniversidad de Princeton,NetCOBOLdeFujitsu,DelphideBorland,PowerBuilderdeSybaseentre otros) o la creacin de bloques adicionales para la plataforma (como controles, componentes y bibliotecas de clases adicionales); siendo algunas de ellassoftware libre, distribuibles bajo la licenciaGPL.Con estaplataforma,Microsoftincursiona de lleno en el campo de losServicios Weby establece elXMLcomo norma en el transporte de informacin en sus productos y lo promociona como tal en los sistemas desarrollados utilizando sus herramientas.[editar]Biblioteca de Clases Base de .NET

Diagrama bsico de la Biblioteca de Clases Base.LaBiblioteca de Clases Base(BCLpor sus siglas eningls) maneja la mayora de las operaciones bsicas que se encuentran involucradas en el desarrollo de aplicaciones, incluyendo entre otras: Interaccin con losdispositivos perifricos Manejo de datos (ADO.NET) Administracin de memoria Cifrado de datos Transmisin y recepcin de datos por distintos medios (XML,TCP/IP) Administracin de componentesWebque corren tanto en el servidor como en el cliente (ASP.NET) Manejo y administracin de excepciones Manejo del sistema de ventanas Herramientas de despliegue de grficos (GDI+) Herramientas de seguridad e integracin con la seguridad delsistema operativo Manejo de tipos de datos unificado Interaccin con otras aplicaciones Manejo decadenas de caracteresyexpresiones regulares Operaciones aritmticas Manipulacin de fechas, zonas horarias y periodos de tiempo Manejo dearreglos de datosy colecciones Manipulacin de archivos de imgenes Aleatoriedad Generacin de cdigo Manejo de idiomas Auto descripcin de cdigo Interaccin con elAPIWin32oWindows API. Compilacinde cdigoEsta funcionalidad se encuentra organizada por medio de espacios de nombres jerrquicos.La Biblioteca de Clases Base se clasifica, en cuatro grupos clave: ASP.NET yServicios WebXML Windows Forms ADO.NET .NET[editar]EnsambladosArtculo principal:Ensamblado (Microsoft .NET)

Diagrama interno de unEnsamble .NET.Un ensamblado es un compiladoEXEoDLLque contiene cdigoCILque se genera desde los diferentes lenguajes.NET, y que es ejecutado por elCLR. Puede contener una o varias clases al igual que uno o varios namespaces.5Los ensamblados pueden tener diferentes decoradores que definen el entorno de ejecucin de los mismos COM+, DCOM, Remoting, etc.[editar]VersionesNombre de la VersinNmero de VersinLanzamiento

Pre-beta1.0.00000.00000julio2000

1.0 Beta 11.0.????.0Noviembre2000

1.0 Beta 21.0.2914.020/6/2001

1.0 RTM1.0.3705.005-01-2002

1.0 SP11.0.3705.20919-03-2002

1.0 SP21.0.3705.28807-08-2002

1.0 SP31.0.3705.601831-08-2004

1.1 RTM1.1.4322.57301-04-2003

1.1 SP11.1.4322.203230-08-2004

1.1 SP1 (W2k3)1.1.4322.230030-03-2005

2.0 RTM2.0.50727.4207-11-2005

2.0 RTM (Vista)2.0.50727.31230-01-2007

2.0 (KB928365)2.0.50727.83210-07-2007

2.0 SP12.0.50727.143319-11-2007

2.0 SP22.2.30729?

3.0 RTM3.0.4506.3006-11-2006

3.0 RTM (Vista)3.0.4506.2630-01-2007

3.0 SP13.0.4506.64819-11-2007

3.0 SP23.2.30729?

3.5 RTM3.5.21022.819-11-2007

3.5 SP13.5.30729.0111-08-2008

4 Beta 24.0.2100617-10-2009

ASP.NETASP.NETes unframework para aplicaciones webdesarrollado y comercializado porMicrosoft. Es usado por programadores para construirsitios webdinmicos,aplicaciones webyservicios webXML. Apareci en enero de 2002 con la versin 1.0 del.NET Framework, y es la tecnologa sucesora de la tecnologaActive Server Pages(ASP). ASP.NET esta construido sobre elCommon 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 descripty plataformas deservidor. Por desgracia para el programador de nivel intermedio, el conocimiento y habilidades que se necesitan para desarrollar aplicaciones web tienen muy poco en comn con las que son necesarias en el desarrollo tradicional de aplicaciones.Contenido[ocultar] 1Historia 2Caractersticas 2.1Pginas 2.1.1Formulario web de ejemplo 2.2El modelo Code-behind 2.2.1Ejemplo 2.3Controles de usuario 2.4Administracin del estado 2.4.1Estado de la aplicacin 2.4.2Estado de la sesin 2.4.3Estado de la vista 2.5Motor de plantillas 2.6Otros archivos 2.7Estructura de directorios 3Evolucin respecto al ASP clsico 4Uso actual del lenguaje 5Referencias 6Enlaces externos

[editar]HistoriaMicrosoft introdujo la tecnologa llamada Active Server Pages en diciembre de1996. Es parte delInternet 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 tradicionalHTMLpara 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 componentesActiveXdel 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".1A Mark Anders, un administrador del equipo de IIS yScott 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.2

Scott Guthrieen 2007.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, so that's what we originally named it".1"La gente siempre se preguntaba qu significaba la X. En ese momento, realmente no significaba nada. XML comenzaba as, al igual que XSLT. Todo lo novedoso pareca empezar con una X, as que ese es el motivo por el que originalmente lo llamamos as."

El desarrollo inicial de XSP fue hecho usandoJava,3pero pronto se decidi construir una nueva plataforma sobre elCommon Language Runtime(CLR), pues ofreca unambiente orientado a objetos,recoleccin de basuray 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 enC#(conocido internamente como "Project Cool" pero mantenido en secreto para el pblico), y fue renombrado a ASP+, para 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.4La primera demostracin publica y la liberacin de la primerabetade ASP+ (y el resto del .NET Framework) se realiz en el Microsoft'sProfessional Developers Conference(PDC) el 11 de julio de 2000 enOrlando, Florida. Durante la presentacin deBill Gates,Fujitsudemostr ASP+ usado en conjuncin conCOBOL,5y el soporte para una variedad de otros lenguajes fue anunciada, incluyendo los nuevos lenguajes de Microsoft,Visual Basic .NETy C#, as como tambin el soporte por medio de herramientas de interoperabilidad paraPythonyPerlcreadas por la empresa canadienseActiveState.6Una 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 enThe MSDN Showen ese ao,"The .NET initiative is really about a number of factors, its 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."4"La iniciativa .NET comprende un nmero 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"

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.NET7y 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 rpidamente, con la versin 1.1 siendo liberada el 24 de abril de 2003 como parte delWindows Server 2003. Esta liberacin se enfoc en mejorar el soporte de ASP.NET a dispositivos mviles.[editar]Caractersticas[editar]PginasLas pginas de ASP.NET, conocidas oficialmente como "web forms" (formularios web), son el principal medio de construccin para el desarrollo de aplicaciones web.8Los formularios web estn contenidos en archivos con una extensinASPX; en jerga de programacin, estos archivos tpicamente contienen etiquetasHTMLoXHTMLesttico, y tambin etiquetas definiendoControles Webque se procesan del lado del servidor yControles de Usuariodonde 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 bloqueque es muy similar a otras tecnologas de desarrollo comoPHP,JSPyASP, pero esta prctica es, generalmente, desaconsejada excepto para propsitos de enlace de datos pues requiere ms llamadas cuando se genera la pgina.

ASP.NET Es limitado a solo funcionar conIIS, por lo que su uso es cuestionado por la mayora de los programadores web quienes prefieren otros lenguajes de programacin del lado del servidor como por ejemploPHP,Perl,JavaEtc.[editar]Formulario web de ejemploEste es un ejemplo que utiliza cdigo "en lnea", opuesto al cdigo independiente (code-behind).

protected void Page_Load(object sender, EventArgs e) { Label1.Text = DateTime.Now.ToLongDateString(); }

Pgina de Ejemplo

[editar]El modelo Code-behindMicrosoft recomienda que para realizar programacin dinmica se use el modelocode-behind, o de respaldo, que coloca el cdigo en un archivo separado o en una etiqueta descriptespecialmente diseada. Los nombres de los archivoscode-behindestn basados en el nombre del archivo ASPX tales comoMiPagina.aspx.csoMiPagina.aspx.vb(esta prctica se realiza automticamente enMicrosoft Visual Studioy otrasinterfaces 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 modelocode-behindde 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 elModelo Vista Controlador[editar]Ejemplo

La etiqueta superior es colocada al inicio del archivo ASPX. La propiedadCodeFilede la directiva@ Pageespecifica que archivo (.cs o .vb) contiene el cdigo code-behind mientras que la propiedadInheritsespecifica la clase de la cual deriva la pgina. En este ejemplo, la directiva@ Pageest 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..[editar]Controles de usuarioASP.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 claseSystem.Web.UI.UserControl, y son almacenados en archivosASCX. 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,9y manejadores de eventos.10Un mecanismo de eventos en burbuja proporciona la capacidad de pasar un evento disparado por un control de usuario a la pgina que lo contiene.[editar]Administracin del estadoLas aplicaciones ASP.NET son alojadas en unservidor weby se tiene acceso a ellas mediante el protocolo sin estadoHTTP, que no guarda ninguna informacin sobre conexiones anteriores. Por lo tanto, si la aplicacin requiere interaccin entre conexiones, tiene que implementar su propia administracin del estado. ASP.NET proporciona varias maneras de administrar el estado de las aplicaciones ASP.NET.[editar]Estado de la aplicacinEl estado de la aplicacin (Application state) es una coleccin de variables definidas por el usuario que son compartidas por todas las invocaciones de una aplicacin ASP.NET. Estos son establecidas e inicializadas cuando el eventoApplication_OnStartse dispara en la carga de la primera instancia de las aplicaciones y estn disponible hasta que la ltima instancia termina. Las variables de estado de la aplicacin son identificadas por nombres.11[editar]Estado de la sesinEl estado de la sesin (Session state) es una coleccin de variables definidas por el usuario, las cuales persisten durante la sesin de un usuario. Estas variables son nicas para diferentes instancias de una sesin de usuario, y son accedidas usando la coleccinSession. Las variables de sesin pueden ser preparadas para ser automticamente destruidas despus de un determinado tiempo de inactividad, incluso si la sesin no ha terminado. Del lado del cliente, una sesin de usuario es identificada por unacookieo codificando el ID de la sesin en la misma URL.11ASP.NET proporciona tres modos de persistencia para variables de sesin:11InProcLas variables de sesin son mantenidas dentro delproceso. Sin embargo, en este modo, las variables son destruidas cuando el proceso ASP.NET es reciclado o terminado.StateServerEn este modo, ASP.NET ejecuta un servicio de Windows separado que mantiene las variables de estado. Como esta administracin de estado ocurre fuera del proceso ASP.NET, tiene un impacto negativo en el rendimiento, pero permite a mltiples instancias de ASP.NET compartir el mismo estado del servidor, permitiendo que una aplicacin ASP.NET pueda tener su carga balanceada y escalada en mltiples servidores. Tambin, como el servicio de administracin del estado se ejecuta independiente de ASP.NET, las variables pueden persistir a travs de las finalizaciones del proceso ASP.NET.SqlServerEn este modo, las variables de estado son almacenadas en unservidor de base de datos, accesible usandoSQL. Las variables de sesin pueden persistir a travs de finalizaciones de procesos tambin en este modo.[editar]Estado de la vistaEl 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 loswidgets. 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 coleccinViewState.1213[editar]Motor de plantillasAl ser liberado, ASP.NET careca de unmotor de plantillas. Debido a que el.NET frameworkesorientado a objetosy permite laherencia, muchos desarrolladores podran definir una nueva clase que herede desde "System.Web. UI.Page", escribirmtodosen 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 mezclacdigo fuenteconlenguaje de marcado. Adems, este mtodo puede ser visto solamente al ejecutar la aplicacin, no mientras se est diseando. Otros desarrolladores han usadoarchivos incluidosy otros trucos para evitar la implementacin de enlaces de navegacin y otros elementos en cada pgina.ASP.NET 2.0 presento el concepto depgina maestra(Master Page), que permiten el desarrollo de pginas basado enplantillas web. Una aplicacin web puede tener una o ms pginas maestras, las cuales pueden ser anidadas.14Las plantillas maestras contienen controles contenedores, llamadosContentPlaceHolderspara indicar donde ira el contenido dinmico, adems deHTMLyJavaScriptque 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 deservidoren 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.[editar]Otros archivosOtras extensiones de archivo asociadas con las diferentes versiones de ASP.NET incluyen:ExtensinVersin requeridaDescripcin

asax1.0Global.asax, usada para la logica a nivel de aplicacin15

ascx1.0Controles de usuario web:Controlespersonalizados para ser colocados en pginas web

ashx1.0ManejadoresHTTPpersonalizados

asmx1.0Pginas deservicios web

axd1.0Cuando est habilitado en elweb.configla 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')

browser2.0Archivos de capacidades del navegador almacenadas en formatoXML; 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 archivomachine.configen ASP.NET 1.x

config1.0web.configes el nico archivo en una aplicacin web especifica que usa esta extensin por defecto (machine.configtiene 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 formatoXML

cs/vb1.0Archivos de cdigo fuente (cs indicaC#, vb indicaVisual 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

dbml3.5Archivo de clases de datosLINQ a SQL

master2.0Archivo de pgina maestra

resx1.0Archivos 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.

sitemap2.0Archivos de configuracin sitemap

skin2.0Archivos de pieles de temas

svc3.0Archivos de servicio deWindows Communication Foundation

[editar]Estructura de directoriosEn 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 lasurls.Los nombres de directorios especiales (a partir de ASP.NET 2.0 son):16App_BrowsersContiene archivos de definicin especficos para navegadores.App_CodeEs un directorio para cdigos. El servidor ASP.NET automticamente compilara 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.App_DataDirectorio por defecto para lasbase de datos, tales como archivos mdb deMicrosoft Accessy archivos mdf deMicrosoft SQL Server. Este directorio es usualmente el nico con permisos de escritura en la aplicacin.App_LocalResourcesContiene archivos de recursos localizados para pginas individuales del sitio.App_GlobalResourcesContiene archivosresxcon 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_Themesusado para temas alternativos del sitio.App_WebReferencesUsado para archivos de descubrimiento y archivosWSDLpara referencias aservicios webpara ser consumidos en el sitio.BinContiene 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.[editar]Evolucin respecto al ASP clsicoEn el modelo de desarrollo web basado en pginas activas, la programacin ASP actual tiene diversas limitaciones: Para que todo ocurra en una pgina web, es habitual escribir una gran cantidad de cdigo para resolver necesidades sencillas. ASP.NET incorpora un modelo declarativo a la programacin web: los controles de servidor funcionan en una pgina Web simplemente declarndolos. Cuando se carga la pgina ASP.NET, se instancian los controles listados en la pgina ASP y es responsabilidad del control emitir cdigo HTML que el navegador pueda entender. ASP clsico es un tanto desorganizado. En una pgina ASP podemos incluir casi todo: HTML plano, cdigo script, objetosCOMy texto. No hay una distincin formal entre el contenido de una pgina y su comportamiento: simplemente, insertamos cdigo en la pgina, y a ver qu pasa. ASP.NET impone un cierto orden sobre el modelo de programacin estndar ASP. En cierto modo, esta "desorganizacin" puede evitarse fcilmente usando el sentido comn y algunas de las nuevas tecnologas. Por ejemplo, podemos escribir en nuestras pginas ASP nicamente cdigo VBScript. Dicho cdigo generara un mensajeXML, que luego seria interpretado por un archivoXSLT. De esta forma conseguimos evitar el llamado "cdigo spaguetti", aumentando la claridad del cdigo y la velocidad de ejecucin de las pginas ASP. La tercera limitacin en el desarrollo con ASP es que con el tradicional utilizamos lenguajes de scripting no tipados comoVBScriptoJScript. Podemos instalar otros motores de scripting que impongan verificacin de tipos; sin embargo, no son universalmente conocidos o utilizados como los anteriores. ASP.NET claramente separa la porcin basada en script de una pgina web de su contenido. ASP.Net, puede decirse que en nuevo nivel de abstraccin en la construccin de sitios web, por que se pueden crear rpidamente aplicaciones web, basndose en los controles incluidos en elframeWorko muchos gratuitos que hay en la red, ocultando el cdigo de mucho Ej: Puedes crear fcilmente ungrido tabla, y sta se auto-ordena, pgina, etc, obteniendo sus datos desde cualquier base de datos. Incluye una gran herramienta para la 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 conAJAX, slo incluyendo unos controles, as como descargar gratuitamente el ToolKit de ASP.Net Ajax.[editar]Uso actual del lenguajeEn la actualidad una aplicacin ASP.NET puede ejecutarse de dos formas distintas:Aplicaciones cliente/servidor: Estas aplicaciones estn tpicamente en formato deejecutablescompilados. Estos pueden integrar toda la riqueza de una interfaz de usuario, tal es el caso de las aplicaciones de desempeo y productividad, pero no se rene la lgica de negocio como un recurso que se pueda reutilizar. Adems acostumbran ser menos gestionables y escalables que las dems aplicaciones.Aplicaciones que utilizan el navegador: Dichas aplicaciones estn caracterizadas por contar con una interfaz de web rica y muy til. La interfaz grfica integra varias tecnologas, las cuales son el HTML,XHTML, scripting, etc; siempre y cuando el navegador que se est utilizando soporte estas tecnologas.[editar]Referencias1. abMicrosoft(ed.): Architecture Journal Profile: Scott Guthrie(en ingls).The Architecture Journal(Enero de 2007). Consultado el 20-04-2008.2. Michiel van Otegem (24 de Julio de 2007). Interview with Scott Guthrie, creator of ASP.NET(en ingls). Consultado el 20-04-2008.3. Tim Anderson (30 de Octubre de 2007). The Register (ed.): How ASP.NET began in Java(en ingls). Consultado el 20-04-2008.4. abMicrosoft(ed.): Show #9 - ASP.NET(en ingls).The MSDN Show(20 de Diciembre de 2000). Consultado el 20-04-2008.5. Microsoft(ed.): Bill Gates speech transcript - Professional Developers Conference 2000 (11 de Julio de 2000). Consultado el 20-04-2008.6. Business Wire (ed.): ActiveState Supports Microsoft .NET Framework; Perl .NET & Python .NET Cross-Language Interoperability(en ingls)(11 de Julio de 2000). Consultado el 20-04-2008.7. Microsoft(ed.): Show #19 - LIVE! from the PDC(en ingls).The MSDN Show(15 de Noviembre de 2001). Consultado el 20-04-2008.8. (MacDonald y Szpuszta, 2005, p.63)9. http://msdn2.microsoft.com/en-us/library/ms972975.aspx#usercontrols_topic6Adding Properties and Methods to a User Control10. http://msdn2.microsoft.com/en-us/library/ms972975.aspx#usercontrols_topic9Creating and Raising a Custom Event11. abcINFO: ASP.NET State Management Overview(en ingls).12. ViewState in ASP.NET.13. ASP.Net ViewState Overview(en ingls).14. ASP.NET Master Pages Overview (Microsoft Developer Network)15. Global.asax Syntax16. http://msdn2.microsoft.com/en-us/library/ex526337.aspxASP.NET Web Site Layout from MSDN