You are on page 1of 14

Qu NO es .

NET:

.NET no es un sistema operativo, como si lo es Microsoft Windows en sus distintas


versiones.
.NET no es un Lenguaje de Programacin: si bien la plataforma Microsoft .NET
incluye lenguajes de programacin de aplicaciones, su concepto es ms amplio y
va ms all de stos.
.NET no es un Entorno de Desarrollo: si bien la plataforma Microsoft .NET incluye
entornos de desarrollo integrados (IDEs), su concepto es ms amplio y va ms all
de stos.
.NET no es un servidor de aplicaciones (Application Server)
.NET no es un producto empaquetado que se pueda comprar como tal, sino que
es una plataforma que engloba distintas aplicaciones, servicios y conceptos y que
en conjunto permiten el desarrollo y la ejecucin de aplicaciones.

Qu es .NET?
Microsoft .NET es una plataforma de desarrollo y ejecucin de aplicaciones. Esto quiere
decir que no slo nos brinda todas las herramientas y servicios que se necesitan para
desarrollar modernas aplicaciones empresariales y de misin crtica, sino que tambin nos
provee de mecanismos robustos, seguros y eficientes para asegurar que la ejecucin de
las mismas sea ptima. Los componentes principales de la plataforma .NET son:
Entorno de Ejecucin (Runtime)
Un entorno de ejecucin de aplicaciones, tambin llamado Runtime, que es un
componente de software cuya funcin es la de ejecutar las aplicaciones .NET e
interactuar con el sistema operativo ofreciendo sus servicios y recursos.
Bibliotecas de Funcionalidad (Class Library)
Un conjunto de bibliotecas de funcionalidades y controles reutilizables, con una enorme
cantidad de componentes ya programados listos para ser consumidos por otras
aplicaciones.
Lenguajes de Programacin
.NET es multi-lenguaje: esto quiere decir que para poder codificar aplicaciones sobre esta
plataforma no necesitamos aprender un nico lenguaje especfico de programacin de
alto nivel, sino que se puede elegir de una amplia lista de opciones. Veremos este tema
con mayor detalle ms adelante en la presentacin.
Compiladores
NET es una plataforma que permite el desarrollo de aplicaciones empresariales de misin
crtica, entendindose por esto que permite la creacin y ejecucin de aplicaciones de
porte corporativo que sean crticas para la operacin de tipos variados de organizaciones.
Si bien tambin es muy atrayente para desarrolladores no profesionales, estudiantes y
entusiastas, su verdadero poder radica en su capacidad para soportar las aplicaciones
ms grandes y complejas.

Plataforma de ejecucin intermedia


Se dice que es una plataforma de ejecucin intermedia, ya que las aplicaciones .NET no
son ejecutadas directamente por el sistema operativo, como ocurre en el modelo
tradicional de desarrollo. En su lugar, las aplicaciones .NET estn diseadas para ser
ejecutadas contra un componente de software llamado Entorno de Ejecucin (muchas
veces tambin conocido como Runtime, o , Mquina Virtual). Este componente es el
encargado de manejar el ciclo de vida de cualquier aplicacin .NET, inicindola,
detenindola, interactuando con el Sistema Operativo y proveyndole servicios y recursos
en tiempo de ejecucin.
100% Orientada a Objetos
La plataforma Microsoft .NET est completamente basada en el paradigma de Orientacin
a Objetos (para ms informacin acerca de este tema puede consultar el material de
estudio de la Estrella 0 del programa)
Se integra fcilmente con aplicaciones desarrolladas en otras plataformas
.NET no slo se integra fcilmente con aplicaciones desarrolladas en otras plataformas
Microsoft, sino tambin con aquellas desarrolladas en otras plataformas de software,
sistemas operativos o lenguajes de programacin. Para esto hace un uso extensivo de
numerosos estndares globales que son de uso extensivo en la industria, y acerca de los
cuales iremos aprendiendo a lo largo del curso. Algunos ejemplos de estos estndares
son XML, HTTP, SOAP, WSDL y UDDI.

Plataforma de Ejecucin Intermedia

Qu es el .NET Framework?
El .NET Framework (traducido como Marco de Trabajo) es el componente fundamental
de la plataforma Microsoft .NET, necesario tanto para poder desarrollar aplicaciones como
para poder ejecutarlas luego en entornos de prueba o produccin.
El .NET framework tiene tres variantes principales, todas descargables gratuitamente
desde Internet
1. .NET Framework Redistributable Package: este es el mnimo componente de la
plataforma .NET que se necesita para poder ejecutar aplicaciones. Normalmente
sta es la variante que se instala en los entornos productivos, una vez que el
desarrollo y las pruebas de la aplicacin han finalizado.
Est compuesto por:

El entorno de ejecucin de la plataforma .NET

Las bibliotecas de funcionalidad reutilizable

2. .NET Framework SDK: esta versin contiene herramientas de desarrollo de lnea


de comandos (compiladores, depuradores, etc.), documentacin de referencia,
ejemplos y manuales para desarrolladores de aplicaciones. Normalmente sta
variante se instala en los entornos de desarrollo de aplicaciones, y es ms til a
los programadores que a los usuarios finales. Para poder instalar la versin SDK
(Software Development Kit) es necesario instalar previamente el Redistributable
Package.
3. .NET Compact Framework: esta es una versin reducida del .NET Framework
Redistributable, especialmente pensada para ser instalada en dispositivos mviles
como Pocket PCs y SmartPhones.

Dnde instalar el .NET Framework?

Arquitectura del .NET Framework

En la figura se pueden apreciar las distintas partes que componen al .NET Framework,
includas el entorno de ejecucin de aplicaciones (CLR, en verde), el conjunto de
bibliotecas de funcionalidad reutilizable (.NET Framework Class Library, en azul) y los
compiladores y herramientas de desarrollo para los lenguajes .NET (en rojo). Todos estos
componentes se motan por encima de la familia de sistemas operativos Windows.
Dentro del conjunto de la .NET Framework Class Library se distinguen 4 subcomponentes principales:

La Base Class Library (BCL - Biblioteca de Clases Base), que contiene la


funcionalidad ms comunmente utilizada para el desarrollo de todo tipo de
aplicaciones. Algunos ejemplos de la funcionalidad provista por la BCL son el
manejo de colecciones, cadenas de texto, entrada/salida, threading, operaciones
matemticas y dibujos 2D.

ADO.NET, que contiene un conjunto de clases que permiten interactuar con bases
de datos relacionales y documentos XML como repositorios de informacin
persistente.

ASP.NET, que constituye la tecnologa dentro del .NET Framework para construir
aplicaciones con interfaz de usuario Web (es decir, aplicaciones cuya lgica se
encuentra centralizada en uno o varios servidores y que los clientes pueden
acceder usando un browser o navegador mediante una serie de protocolos y
estndares como HTTP y HTML).

Windows Forms (o simplemente WinForms), que constituye la tecnologa dentro


del .NET Framewok que permite crear aplicaciones con interfaz de usuario basada

en formularios y ventanas Windows de funcionalidad rica y que se ejecutan


directamente en los clientes.

CLR Arquitecturas de Ejecucin de Aplicaciones

El modelo de ejecucin que propone la plataforma .NET se suele definir como virtual, o
de mquina virtual, ya que las aplicaciones no son desarrolladas directamente contra las
APIs de programacin expuestas por el sistema operativo, ni es ste el que se encarga de
su ejecucin y ciclo de vida, sino que .NET provee un entorno de ejecucin (el CLR) que
corre por sobre el sistema operativo y que es el encargado de ejecutar las aplicaciones y
proveerles servicios en tiempo de ejecucin. A los componentes de software que se
ejecutan de esta manera se los conoce comnmente como componentes manejados, ya
que su ejecucin es controlada por un entorno intermedio. En la figura podemos ver las
diferencias entre las arquitecturas de ejecucin de los componentes tradicionales (como
los COM) y los componentes manejados.
Una de las principales ventajas de contar con una plataforma virtual es que no estn
atadas de ninguna forma con el sistema operativo y la plataforma de hardware
subyacente. Es sabido que una aplicacin compilada para que utilice directamente las
APIs y servicios expuestas por un sistema operativo x muy difcilmente pueda ser
ejecutada en otro sistema operativo distinto sin ser recompilada. Las aplicaciones
manejadas, en cambio, descansan la tarea de su compilacin a un cdigo de mquina

especfico en el entorno de ejecucin. De esta manera, si existen distintos entornos de


ejecucin intermedia para diferentes Sistemas Operativos, la misma aplicacin puede
ejecutarse en todos ellos si necesidad de recompilarse.

CLR Common Language Runtime


Ya hemos visto como el CLR acta como un motor de ejecucin de aplicaciones y
componentes manejados. Veamos ahora algunos de los principales servicios que les
brinda a las aplicaciones que se ejecutan sobre l:

Compilacin Just In Time (o Justo A Tiempo): el CLR se encarga de compilar las


aplicaciones .NET a cdigo de mquina nativo para el sistema operativo y la
plataforma de hardware en la que se est ejecutando. Esto lo hace sin
intervencin alguna del desarrollador o el usuario, y solamente a medida que se
necesita.

Gestin Automtica de Memoria: el CLR abstrae a los desarrolladores de tener


que pedir y liberar memoria explcitamente. Para esto, uno de sus componentes
llamado Garbage Collector (Recolector de Basura) se encarga de liberar
peridicamente la memoria que ya no est siendo usada por ninguna aplicacin.
Por otra parte, el CLR tambin abstrae a los desarrolladores del uso de punteros y
del acceso a memoria de bajo nivel. Si bien estas caractersticas pueden ser
consideradas poderosas, suelen hacer el desarrollo y mantenimiento de
aplicaciones ms propenso a errores y menos productivo.

Gestin de Errores Consistente: como las aplicaciones .NET no se ejecutan


directamente contra el Sistema Operativo, cualquier error no manejado que ocurra
en tiempo de ejecucin ser atrapado por el CLR en ltima instancia, no afectando
a ninguna otra aplicacin que se est ejecutando ni teniendo efecto alguno sobre
su estabilidad.

Ejecucin Basada en Componentes: todas las aplicaciones .NET son


empaquetadas en componentes reutilizables denominados genricamente
Assemblies, que el CLR se encarga de cargar en memoria y ejecutar.
Profundizaremos sobre este tema ms adelante en el curso.

Gestin de Seguridad: el CLR provee una barrera ms de contencin a la hora de


ejecutar aplicaciones manejadas, ya que permite establecer polticas de seguridad
muy detalladas que las aplicaciones .NET que se ejecuten en una determinada
computadora debern cumplir.

Multithreading: el CLR provee un entorno de ejecucin multi-hilos por sobre las


capacidades del Sistema Operativo, asi como tambin mecanismos para asegurar
su sincronizacin y acceso concurrente a recursos compartidos.

CLR - Proceso de Compilacin

El desarrollo de una aplicacin .NET comienza con la escritura de su cdigo fuente en


alguno de los lenguajes de alto nivel soportados por la plataforma. El mismo luego es
compilado obteniendose un ejecutable (que en Windows normalmente llevan la extensin
.exe) o una biblioteca (que en Windows normalmente llevan la extensin .dll). A estos
componentes .NET resultantes del proceso de compilacin se los denomina
genricamente Assemblies, o Ensamblados.
Ahora bien, en lugar de contener cdigo de mquina especfico para el sistema operativo
y el hardware en el cual fueron compilados (nativo), los assemblies contienen un cdigo
denominado MSIL (Microsoft Intermediate Language). EL MSIL es un set de instrucciones
independientes de cualquier CPU existente y que puede ser convertido a cdigo nativo
muy eficientemente. MSIL incluye instrucciones para cargar, almacenar, inicializar e
interactuar con objetos y sus atributos y mtodos, asi como tambin instrucciones
aritmticas y lgicas, control de flujo, acceso directo a memoria, manejor de errores y
otras operaciones. Antes de que el cdigo MSIL pueda ser ejecutado debe convertirse a
cdigo nativo especfico para un CPU y Sistema Operativo, tarea a cargo de los
compiladores JIT incluidos en el CLR.

Qu es un Assembly?
Un Assembly es la menor unidad de ejecucin y distribucin de una aplicacin .NET.
Los assemblies son reutilizables, versionables y autodescriptivos, ya que no slo
contienen el cdigo MSIL que representa la lgica de la aplicacin, sino que tambin
incluyen informacin sobre si mismos y sobre todos los recursos externos de los que
dependen para funcionar correctamente. A esta informacin se la denomina MetaData ,
y forma una parte integral de un assembly junto con el cdigo MSIL ya que ambos no
pueden estar separados. La MetaData se ubica en una seccin especial del Assembly
denominada Manifest, o Manifiesto, y es utilizada por el CLR a la hora de cargar y
ejecutar el Assembly.
Una aplicacin .NET se compone, de uno o ms assemblies. Otra de las caractersticas
de los Assemblies es que no necesitan estar registrados en la Registry de Windows, como
sus predecesores COM. De esta forma, instalar una aplicacin .NET puede ser tan simple
como copiar todos los assemblies necesarios a la computadora de destino, y basta con
borrarlos a todos para tener una desinstalacin limpia y completa.
Dado que .NET no depende de la Registry, y que cada assembly contiene informacin
acerca de su versin y las versiones de los componentes de que depende, mltiples
versiones de assemblies pueden coexistir sin ningn problema en la misma computadora.
Existen dos formas de que una aplicacin pueda encontrar en tiempo de ejecucin los
assemblies de los que depende:
1)

Ubicarlos en el mismo directorio. Esta es la opcin preferida si esos assemblies


slo sern utilizados por esa nica aplicacin.

2)

Ubicarlos en un repositorio centralizado de assemblies denominado Global


Assembly Cache, en el cual se instalan todos los assemblies que sern utilizados
por mltiples aplicaciones en la misma computadora. Para registrar un assembly
en el GAC es necesario utilizar otra herramienta incluida en el SDK llamada
gacutil.exe.

ADO.NET Acceso a Datos

ADO.NET es un subconjunto de la .NET Framework Class Library, que contiene todas las
funcionalidades necesarias para conectarse e interactuar con dos tipos de repositorios
permamentes de informacin:
1)

Bases de Datos, como Microsoft SQL Server (clases del namespace


System.Data, que se encuentran compiladas en System.data.dll)

2)

Archivos XML (clases del namespace System.XML, que se encuentran


compiladas en System.Xml.dll)

Acceso a Bases de Datos Relacionales Escenario Conectado


En la actualidad se plantean dos tipos de escenarios de acceso a bases de datos
relacionales. El primero de ellos es el que se conoce como Escenario Conectado, ya que
en l se requiere una conexin fsica establecida con el servidor de datos durante todo
momento para poder efectuar cualquier consulta o actualizacin sobre los datos.
Esto tiene algunas ventajas y tambin sus desventajas.
Algunas Ventajas:

Al haber una nica conexin a la base de datos por usuario, o incluso a veces por
aplicacin, establecida permanentemente, puede llegar a resultar ms sencillo
administrar la seguridad y el acceso al servidor de datos. Lo mismo ocurre con el
control de concurrencia: en un escenario donde mltiples usuarios se estuvieran

conectando y desconectando permanentemente para realizar distintas acciones,


este control sera ms difcil de llevar.

Siempre la aplicacin tiene acceso a los datos actualizados

Algunas Desventajas:

Se requiere una conexin abierta todo el tiempo con el servidor de base de datos,
lo cual consume recursos innecesariamente si no se la est utilizando.

La escalabilidad del acceso a los datos se ve limitada por la cantidad de


conexiones establecidas simultneamente contra el servidor de base de datos.

Acceso a Bases de Datos Relacionales Escenario Desconectado


El segundo escenario de acceso a bases de datos relacionales se conoce como
Escenario Desconectado, ya que en l una parte de los datos del servidor central se
copia localmente y puede luego ser consultada y actualizada sin contar con una conexin
abierta. Luego si se desea puede establecerse una conexin con el servidor de base de
datos para sincronizar los cambios efectuados sobre la copia local y actualizar los datos.
Este tipo de funcionalidad es particularmente til para escenarios de usuarios mviles,
que salen de su oficina con una laptop, un SmartPhone o una PocketPC y desean poder
continuar trabajando por ms que no tengan conectividad fsica con el servidor de base de
datos ubicado en la red interna de la empresa.
Algunas ventajas que provee un escenario de acceso a datos desconectado son:

La posibilidad de trabajar sobre los datos independientemente del resto de los


usuarios de la aplicacin

Mayor escalabilidad en el acceso a datos y utlizacin ms ptima de recursos del


servidor, ya que se mantiene en un mnimo indispensable la cantidad y duracin
de conexiones abiertas.

Mayor performance, al trabajar con una copia local de los datos.

Algunas Desventajas:

Puede ocurrir que en un momento dado un usuario no est accediendo a los datos
ms actualizados del repositorio central

Al momento de sincronizar los cambios efectuados localmente contra el repositorio


central pueden surgir conflictos, los cuales deben ser resueltos manualmente.

ADO.NET soporta el acceso a datos tanto en escenarios conectados como


desconectados

ADO.NET - Arquitectura

La arquitectura de ADO.NET est basada en el concepto de proveedores de acceso a


datos, siendo un proveedor un conjunto de clases que permiten conectarse a una base de
datos, ejecutar un comando sobre ella y tener acceso a los resultados de su ejecucin,
tanto de forma conectada como desconectada.

ADO.NET - Clases ms comunes

En la figura se pueden apreciar las clases ms comunes que componen a todos los
proveedores de acceso a datos de ADO.NET. Ntese que algunos nombres empiezan
con las letras Xxx: esto se debe a que los nombres de esas clases varan segn el
proveedor especfico que se est utilizando. Por ejemplo, la clase que representa una
conexin con la base de datos usando el Data Provider For Sql Server es
SqlConnection, mientras que si usamos el Data Provider For Oracle podemos obtener la
misma funcionalidad de la clase OracleConnection. Mas all del ejemplo, pasemos a
describir cada una de estas clases y su funcionalidad:

XxxConnection: representa una conexin. Almacena, entre otras cosas, el string


de conexin (connection string), y permite conectarse y desconectarse con una
base de datos.

XxxCommand: permite almacenar y ejecutar una instruccin SQL contra una base
de datos, enviando parmetros de entrada y recibiendo parmetros de salida.

Estas dos clases se utilizan tanto en escenarios conectados como desconectados.

XxxDataReader: permite acceder a los resultados de la ejecucin de un comando


contra la base de datos de manera read-only (slo lectura), forward-only (slo
hacia adelante). Esta clase se utiliza en escenarios conectados, ya que no es
posible operar sobre los registros de un DataReader estando desconectado de la
fuente de datos.

XxxDataAdapter y DataSet: en conjunto, estas clases constituyen el corazn del


soporte a escenarios desconectados de ADO.NET. El DataSet es una
representacin en memoria de una base de datos relacional, que permite
almacenar un conjunto de datos obtenidos mediante un DataAdapter. El
DataAdapter acta como intermediario entre la base de datos y el DataSet local
desconectado. Una vez que el DataSet se encuentra lleno con los datos que se
necesitan para trabajar, la conexin con la base de datos puede cerrarse sin
problemas y los datos pueden ser modificados localmente. Por ltimo, el
DataAdapter provee un mecanismo para sincronizar los cambios locales contra el
servidor de base de datos. Ntese que la clase System.Data.DataSet no tiene el
prefijo Xxx, ya que es independiente del proveedor de acceso a datos utilizado.

ADO.NET - DATASET

Como ya se ha mencionado, el DataSet es una representacin residente en memoria de


datos relacionales, independiente de la base de datos y del protocolo utilizado para
interactuar con la misma. Un DataSet, al igual que una base de datos, est compuesto por
un conjunto de tablas (coleccin de clases DataTable), cada una de las cuales est
compuesta a su vez por un conjunto de filas (coleccin de clases DataRow) y columnas
(coleccin de clases DataColumn). Dentro de un DataSet pueden establecerse
relaciones entre DataTables, y hasta restricciones de integridad referencial (Claves
Primarias y Forneas). Internamente, los DataSets representan toda su estructura y datos
contenidos en formato XML.

ASP.NET Aplicaciones WEB

ASP.NET es un subconjunto de la .NET Framework Class Library que contiene las


funcionalidades necesarias para desarrollar aplicaciones y servicios Web, y sus clases se
encuentran dentro del namespace System.Web. ASP.NET no es slo la nueva versin de
su predecesor, ASP, sino que provee un nuevo modelo unificado de programacin
orientada a objetos que permite hacer uso de todos los servicios y facilidades del .NET
Framework programando en cualquier lenguaje compatible con la plataforma. Por otra
parte, nuevos servicios a nivel de infraestructura (seguridad, performance, estabilidad,
configuracin, instalacin, mantenimiento) hacen que ASP.NET sea ideal para construir
aplicaciones web de porte empresarial y misin crtica.

You might also like