Sunteți pe pagina 1din 22

Introduccin a Microsoft .

NET
David Gan Jimnez
P08/B0036/01624

FUOC P08/B0036/01624

Introduccin a Microsoft .NET

ndice

Introduccin.......................................................................................... Objetivos................................................................................................. 1. Evolucin de las tecnologas de desarrollo de aplicaciones 1.1. Evolucin del desarrollo de software ........................................ 1.1.1. Evolucin de las tecnologas ......................................... 1.1.2. Desarrollo de software ................................................... 1.2. Evolucin de las tecnologas Microsoft .................................... 1.2.1. Sistemas operativos de Microsoft .................................. 1.2.2. Tecnologas de desarrollo .............................................. 1.3. Problemas de las tecnologas de desarrollo anteriores a .NET ... 2. Qu es Microsoft .NET................................................................... 2.1. Componentes de Microsoft .NET ............................................. 2.2. Ventajas de .NET ....................................................................... 2.3. Desventajas de .NET ................................................................. Bibliografa............................................................................................

5 6 7 7 7 8 10 10 11 13 15 15 16 19 21

FUOC P08/B0036/01624

Introduccin a Microsoft .NET

Introduccin

Esta introduccin pretende dar una visin general de la tecnologa .NET y de sus componentes. Iniciaremos el tema con un repaso la evolucin que ha experimentado en el campo del desarrollo de aplicaciones para luego centrarnos en los cambios que han experimentado las tecnologas de Microsoft que culminan hasta llegar a la tecnologa que se pretende estudiar Microsoft .NET.

FUOC P08/B0036/01624

Introduccin a Microsoft .NET

Objetivos

El material que se os presenta a continuacin ha sido elaborado teniendo en cuenta los siguientes objetivos especficos:

1. Conocer la evolucin de las tecnologas de desarrollo de aplicaciones y, en concreto, la evolucin de las tecnologas de Microsoft. 2. Introducir la tecnologa Microsoft .NET. 3. Conocer las mejoras que aporta Microsoft .NET respecto a las tecnologas precedentes.

FUOC P08/B0036/01624

Introduccin a Microsoft .NET

1. Evolucin de las tecnologas de desarrollo de aplicaciones

La informtica es un campo relativamente joven, en comparacin con otras ramas tecnolgicas o cientficas. Aun as, desde los principios de la ciencia de la computacin se han producido grandes cambios en la metodologa de construccin de aplicaciones. En este apartado, se revisarn a los cambios tecnolgicos ms importantes as como la evolucin correspondiente en el mbito desarrollo de software. A continuacin, nos centraremos en la evolucin de las tecnologas de Microsoft, y los problemas asociados a ellas. 1.1. Evolucin del desarrollo de software La evolucin del desarrollo de software est muy ligada al progreso de las tecnologas. No se desarrolla hoy igual que hace diez aos, y dentro de diez aos lo ms probable es que no se desarrolle como hoy. Esto es debido a que las tecnologas ofrecen cada vez ms facilidades y capacidades a las aplicaciones, lo que por otro lado complica el desarrollo de las mismas. El uso cada vez ms comn de las tecnologas, por parte de la sociedad, tambin hace que el desarrollo de aplicaciones se complique, debido a los nuevos requerimientos ms complejos que deben de ser emplementados ya que hay nuevos y ms complejos requisitos que implementar. 1.1.1. Evolucin de las tecnologas

Anteriormente a la aparicin de los ordenadores personales, se utilizaban mainframes, grandes mquinas de cmputo con mltiples terminales conectados. Todo el proceso de clculo se llevaba a cabo en el ordenador central; los terminales simplemente se limitaban a mostrar la informacin al usuario mediante interfaces grficas muy limitadas, en la mayora de los casos slo capaces de visualizar caracteres. A pesar de su tamao, dichos mainframes tenan una capacidad muy limitada comparada con los ordenadores de hoy en da, por lo que su programacin era muy simple, basada en un conjunto restringido de comandos. Con la aparicin del PC o computador personal, con capacidad propia para ejecutar aplicaciones, ya no era necesario que el ordenador central o servidor realizara todo el trabajo. Pasamos as de un modelo de computacin centralizado a un modelo cliente/servidor, en que el cliente ejecuta aplicaciones y se comunica con el servidor para solicitar o enviar datos. Al extenderse el uso del

FUOC P08/B0036/01624

Introduccin a Microsoft .NET

PC como herramienta de trabajo para otras profesiones, surgi la necesidad de proporcionar sistemas operativos que permitiesen al usuario comunicarse con la mquina de forma intuitiva. Los primeros sistemas operativos eran meros intrpretes de comandos que reciban y ejecutaban peticiones del usuario, mostrando el resultado correspondiente, pero a medida que el uso del PC se fue extendiendo, sobre todo en el mundo domstico, los sistemas operativos tambin fueron evolucionando, proporcionando ms funcionalidades e interfaces grficas intuitivas y usables. Al incrementar las funcionalidades de los sistemas operativos, tambin se incrementa la complejidad de las interfaces proporcionadas por los mismos para el desarrollo de aplicaciones. La expansin de Internet en la dcada de los noventa supuso volver de nuevo a un modelo de computacin cliente/servidor, aunque en este caso distribuido (el cliente y el servidor no estn necesariamente cerca fsicamente). Los exploradores web del cliente simplemente solicitan una determinada URL (uniform resource locator) al servidor, el cual, a partir de los datos que enva el usuario, genera una pgina HTML esttica. El explorador no procesa los datos que recibe del servidor; se limita a mostrarlos por pantalla al usuario. El desarrollo de aplicaciones para Internet comporta una serie de problemas inherentes a la programacin distribuida, como la concurrencia o la gestin de transacciones1, aparte de los conocidos problemas de seguridad. Todos estos problemas dificultan an ms el desarrollo de aplicaciones. Otra de las tecnologas que ha proliferado en los ltimos aos es la de los dispositivos mviles, no slo ya telfonos mviles con grandes prestaciones, sino tambin PDA, Pocket PC, SmartPhones, Tablet PC, Media Centers porttiles, etc. El desarrollo de aplicaciones para estos dispositivos suele ser ms complejo que en un entorno PC o servidor, por las limitaciones de memoria y capacidad de proceso de los mismos. 1.1.2. Desarrollo de software
(1)

Una transaccin es un conjunto de operaciones que deben de ejecutarse sin interrupcin, como si se tratase de una nica instruccin. Si la transaccin se interrumpe, el estado del sistema ha de restaurarse para dejarlo igual que estaba antes de iniciar la transaccin.

La evolucin constante de las tecnologas implica tambin cambios en la forma de desarrollar aplicaciones para dichas tecnologas, tanto en las metodologas como en los lenguajes de programacin o las herramientas utilizadas. Los primeros lenguajes de programacin utilizados estaban basados en cdigo binario, que es el cdigo que entienden los ordenadores. Ms adelante, aparecieron los lenguajes ensamblador, que ofrecan al programador una serie de operaciones concretas a utilizar y que se traducan despus a lenguaje binario con un compilador.

FUOC P08/B0036/01624

Introduccin a Microsoft .NET

Despus de los lenguajes ensamblador, aparecieron los lenguajes de tercera generacin, ms parecidos al lenguaje humano, que eran traducidos a cdigo ensamblador o a cdigo binario mediante un compilador. Algunos ejemplos de lenguajes de este tipo son FORTRAN, COBOL, PASCAL o C. El siguiente paso en la evolucin del desarrollo de aplicaciones vino de la mano de la orientacin a objetos con lenguajes como Smalltalk, C++, o java. El desarrollo orientado a objetos define aplicaciones en funcin de una serie de objetos que interactan entre s para llevar a cabo las funcionalidades de la aplicacin. La programacin en Internet tambin supuso la creacin de otros lenguajes de programacin o de script, como HTML, Javascript, CGI, PHP, etc. Por otro lado, el desarrollo de aplicaciones para Internet introduce problemas que en general no tienen las aplicaciones cliente, como la gestin de estado de los clientes, la concurrencia o los problemas de seguridad especficos de la red. Otro de los problemas del desarrollo de aplicaciones actualmente consiste en la variedad de dispositivos y plataformas existentes en el mercado. Desarrollar aplicaciones compatibles con todos ellos no es nada fcil, ni siquiera si hablamos de aplicaciones web que tericamente utilizan lenguajes estndares. Por ltimo, hay que destacar la creciente necesidad de integracin de aplicaciones, y el enfoque de la arquitectura orientada a servicios (SOA Service Oriented Arquitecture), que consiste en construir diferentes servicios independientes y reutilizables para satisfacer los requerimientos de un sistema. Dichos servicios son interoperables entre s, gracias a la utilizacin de estndares como HTTP2, XML3, o SOAP4 para comunicarse. Aparte de las metodologas y lenguajes de programacin que se han ido creando a la hora de desarrollar aplicaciones para las diferentes tecnologas existentes, tambin han proliferado diferentes herramientas RAD5 para facilitar el desarrollo de todo tipo de aplicaciones, enfocndose en diferentes etapas del ciclo de vida del software como gestores de requisitos, diseadores de clases o de bases de datos, entornos integrados de desarrollo, depuradores, etc. La conclusin final es que el desarrollo de software est siempre en constante evolucin, por lo que se necesita una serie de herramientas y tecnologas que permitan facilitar dicha tarea, y que se vayan adaptando a las nuevas necesidades que vayan surgiendo.
(4) (2)

HTTP (HyperText Transmission Protocol).


(3)

XML (eXtensive Markup Language). SOAP (Simple Object Access Protocol).


(5)

RAD (Rapid Application Development). Las herramientas RAD permiten realizar algunas tareas de desarrollo de forma ms eficaz y rpida como, por ejemplo, diseadores de interfaces grficas, o generadores automticos de cdigo a partir de diagramas UML.

FUOC P08/B0036/01624

10

Introduccin a Microsoft .NET

1.2. Evolucin de las tecnologas Microsoft Todas las tecnologas y productos de Microsoft han ido evolucionando en paralelo con sus diferentes sistemas operativos. En primer lugar, comentaremos brevemente los diferentes sistemas operativos desarrollados por Microsoft, y a continuacin hablaremos de las tecnologas de desarrollo ms importantes proporcionadas para desarrollar aplicaciones para dichos sistemas. 1.2.1. Sistemas operativos de Microsoft

El primer sistema operativo de Microsoft fue MS-DOS, cuya primera versin apareci en 1981. MS-DOS era un sistema operativo de comandos monotarea (que slo permite ejecutar una aplicacin a la vez) de 16 bits. Por lo que respecta al desarrollo de aplicaciones, la interfaz de este sistema operativo era muy sencilla con un conjunto de instrucciones muy limitado. La primera versin de Windows apareci en 1985 como extensin de MS-DOS. No se trataba de un sistema operativo todava, sino de una interfaz grfica para MS-DOS con una serie de utilidades que permitan utilizar las funciones del sistema operativo de forma ms 'amigable'. Las dos primeras versiones de Windows no fueron demasiado exitosas, por lo que no son tan conocidas como la versin 3.0 que apareci en 1990. En 1993, Microsoft sac al mercado Windows NT 3.1, con lo que se abra una lnea paralela de desarrollo de sistemas operativos destinados a servidores. La ltima versin de MS-DOS (la 6.22) apareci en 1994. A partir de entonces, MS-DOS se incluye internamente dentro del sistema operativo Windows, como consola de comandos. La primera versin de Windows como sistema operativo fue Windows 95, sucedido por Windows 98 y Windows ME (2000). En la lnea de sistemas para servidor, aparecieron Windows NT 4.0 y Windows Server 2000 (NT 5.0). En un intento por unir ambas lneas de sistemas operativos de nuevo, apareci Windows XP en 2001. De todas formas, Microsoft continu con las dos lneas de desarrollo y en 2003 apareci Windows Server 2003, aunque manteniendo el mismo core6 del sistema operativo en ambas ramas de producto. Windows 2003 es el primer sistema operativo que incorpora .NET como componente instalable. El hito ms reciente en sistemas operativos de Microsoft es Windows Vista en la parte cliente y Windows Server 2008 en la parte servidor. Ambos sistemas operativos parten de una base comn, por lo que las dos ramas de sistemas operativos finalmente se unifican. Tanto Windows Vista como Windows Server 2008 incorporan la versin ms reciente de .NET como componente requerido del sistema operativo.
(6)

Se suele denominar core al conjunto de componentes principales de un sistema, aquellos sin los cuales no podra existir, por ejemplo la gestin de procesos de archivos, de memoria, etc.

FUOC P08/B0036/01624

11

Introduccin a Microsoft .NET

Tabla Cliente 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 Windows 3.0 Windows 95 Windows 98 Windows ME Windows XP Windows Vista Windows NT 3.1 Windows NT 4.0 Windows Server 2000 Windows Server 2003 Windows Server 2008 Servidor

Lnea del tiempo de las principales versiones del sistema operativo Windows

1.2.2.

Tecnologas de desarrollo
(7)

Las tecnologas de desarrollo de aplicaciones de Microsoft han ido evolucionando en paralelo a la aparicin de las diferentes versiones de sus sistemas operativos. Los primeros sistemas Windows utilizaban una API7 (application program interface) de 16 bits conocida como Win16. Win16 fue substituida por la API Win32 a partir de Windows NT y 95. La API Win32 es muy general, por lo que tambin resulta muy crptica. Contiene cientos de funciones con un nombre largo y a veces poco intuitivo. Esto dificulta el proceso de desarrollo de aplicaciones, y convierte ciertas tareas, como el desarrollo de interfaces grficas o la programacin multitarea, en problemas bastante complejos.

API (Application Program Interface). Es el conjunto de mtodos y funcionalidades que un sistema ofrece a los programadores de aplicaciones para utilizar ese sistema o para interoperar con l.

FUOC P08/B0036/01624

12

Introduccin a Microsoft .NET

La API de Win32 se ha ido manteniendo en los sistemas operativos sucesivos como mecanismo de acceso a las funciones del sistema operativo. A medida que se ha ido avanzando de versin, un nmero importante de nuevas funciones se han ido aadiendo a esta API, pero como un proceso de evolucin ms que de cambio. Ms tarde, Microsoft desarroll una tecnologa que permita incrustar documentos de Office en otros tipos de documentos, llamada OLE (object linking and embeeding). Esta tecnologa fue evolucionando hasta convertirse en una tecnologa o modelo de componentes llamado COM (component object model). Ms tarde, aparecieron otras tecnologas asociadas: DCOM (Distributed COM), MTS (Microsoft transaction services) y COM+. El siguiente esquema resume la relacin entre las tecnologas ms importantes de desarrollo de Microsoft previas a .NET. Como se puede ver, COM+ surge de la unin de COM y MTS (Microsoft Transaction Services), aunque incluye mejoras sustanciales:

Evolucin de tecnologas de desarrollo

Esta va de evolucin tiene su razn de ser en que debe tener en cuenta la compatibilidad hacia versiones anteriores. A lo largo de los aos, gran cantidad de software de terceros se ha escrito para Windows, y este sistema operativo no hubiera tenido tanto xito si cada nueva tecnologa rompiese totalmente con la anterior. COM (component object model) Esta tecnologa fue desarrollada por Microsoft con la intencin de favorecer la reutilizacin de componentes. COM trabaja principalmente con interfaces que definen cul es el comportamiento de cada componente. Los componentes COM se inscriben en el registro de Windows, y cualquier programa que sepa cmo encontrarlos puede utilizarlos, sin necesidad de poseer el cdigo fuente del componente, ni tener que recompilarlo.

FUOC P08/B0036/01624

13

Introduccin a Microsoft .NET

Gracias a COM es posible utilizar componentes del sistema operativo o de terceros, escribiendo una capa relativamente delgada de cdigo 'pegamento' que permita conectar la lgica de negocio de la aplicacin con el componente. Se obtiene, pues, un desarrollo de aplicaciones ms rpido y una mejor funcionalidad de los que se conseguiran si se tuviese que implementar todo desde cero. Desgraciadamente, todas las implementaciones de COM difieren en aspectos solapados y difciles de reconciliar. Por ejemplo, las cadenas de caracteres se implementan de forma diferente en C++ y en Visual Basic, y ambas se implementan de forma diferente que en Java. Los programadores emplean una cantidad exagerada de tiempo en eliminar esas diferencias para poder comunicar clientes y servidores escritos en lenguajes distintos. Otra de las limitaciones de COM es la comunicacin de componentes entre mquinas conectadas por Internet. DCOM (distributed COM) intent solucionar este problema, pero por desgracia, DCOM es difcil de configurar y slo se distribuye para sistemas operativos Windows. Por otro lado, para poder aceptar datos empaquetados DCOM, se requiere mantener un puerto del firewall abierto, y por lo tanto expuesto a los hackers. MTS/COM+ Component Services Microsoft Transaction Server MTS aade algunos servicios de ejecucin para los componentes COM, tales como transacciones distribuidas, seguridad basada en roles, soporte administrativo, y pooling de recursos8, entre otros. De alguna manera, MTS introdujo servicios en el sistema operativo que los desarrolladores de aplicaciones distribuidas tenan que escribir por su cuenta hasta el momento. Con la aparicin de Windows 2000, MTS evolucion hacia la tecnologa COM+, incluida dentro del propio sistema operativo. Se puede decir que COM+ = MTS + COM, aunque COM+ aade otros servicios de componentes al conjunto, como object pooling (OP), compensating resource manager (CRM) y queued components (QC). 1.3. Problemas de las tecnologas de desarrollo anteriores a .NET Las diferentes tecnologas que aparecen se desarrollan con el objetivo de facilitar el desarrollo de aplicaciones para una determinada plataforma. No obstante, con el uso, se encuentran fallos o problemas estructurales que hacen que la tecnologa quede obsoleta.
(8)

El pooling de objetos o recursos es una tcnica que se utiliza para reutilizar recursos costosos en tiempo o memoria. El recurso se crea una sola vez y luego es utilizado por la aplicacin. Cuando la aplicacin deja de utilizarlo, el recurso no se destruye, sino que se mantiene para que la misma u otras aplicaciones puedan utilizarlo ms adelante.

FUOC P08/B0036/01624

14

Introduccin a Microsoft .NET

A lo largo del tiempo, COM ha servido bien para trabajar como infraestructura para muchas aplicaciones empresariales y distribuidas, pero al mismo tiempo ha mostrado ser demasiado complejo para desarrolladores que prefieren centrarse ms en la lgica de negocio que en los entresijos de esta tecnologa. Los principales problemas de COM son los siguientes: Dependencia del registro. Las aplicaciones COM son inherentemente frgiles, ya que tienen una fuerte dependencia de la informacin guardada en el registro del sistema. Si esta informacin se pierde, o se vuelve inestable, la aplicacin puede dejar de funcionar. A veces, la nica manera de arreglar una aplicacin es reinstalarla, pero en el peor caso esto no es suficiente. Versionado de los componentes. Otro problema de las aplicaciones COM es el del versionado. Si se instala un componente COM, y ya existe una versin de dicho componente en el sistema, se sobrescribe. En teora, esta sobreescritura puede provocar problemas con las aplicaciones que utilizan el componente si las versiones no son totalmente compatibles entre s. No orientado a objetos. La orientacin a objetos permite a los desarrolladores reutilizar y extender cdigo de una forma sencilla, pero COM no ofrece demasiado al respecto. No se puede heredar una clase COM ni extender su funcionalidad, as como no se puede extender la funcionalidad de Windows porque su API no proporciona clases que se puedan heredar, slo llamadas a funciones. Prdida de memoria. Es otro de los graves problemas de COM. El gestor de memoria de COM utiliza un contador de referencias para detectar cundo debe eliminar un objeto de memoria. Si se produce una referencia circular entre dos objetos, y el programa principal deja de referenciarlos, no se eliminarn de memoria porque entre s se estn referenciando. Esto puede no ser importante en aplicaciones que se ejecutan durante unos minutos y luego se cierran, pero resulta fatal en aplicaciones como servidores de web que se supone que se ejecutan continuamente durante das o semanas. Otro de los problemas de las tecnologas anteriores a .NET es el de la integracin con otras aplicaciones. Frecuentemente, es necesario integrar aplicaciones de diferentes empresas que utilizan diferentes plataformas y tecnologas, o que almacenan la informacin utilizando diferentes formatos. Las tecnologas como COM son poco flexibles a la hora de interoperar con otras tecnologas, y requieren de un esfuerzo de desarrollo elevado para conseguirlo.

FUOC P08/B0036/01624

15

Introduccin a Microsoft .NET

2. Qu es Microsoft .NET

Microsoft .NET es un conjunto de herramientas, tecnologas y servicios que facilita la construccin de aplicaciones de todo tipo. En este apartado, veremos qu componentes forman parte de la tecnologa .NET y cules son sus principales ventajas e inconvenientes. 2.1. Componentes de Microsoft .NET La tecnologa .NET incluye no slo componentes de desarrollo o de ejecucin de aplicaciones, sino tambin otras herramientas que facilitan el desarrollo de dichas aplicaciones. Estas herramientas son las siguientes: NET Framework. El .NET Framework es el componente principal de la tecnologa .NET. Permite ejecutar aplicaciones .NET de diferentes tipos: aplicaciones de escritorio, aplicaciones web, aplicaciones de consola, servicios, aplicaciones para dispositivos mviles, etc. Para ejecutar aplicaciones .NET es necesario tener este componente instalado en el sistema. Herramientas de desarrollo. El .NET Framework SDK (software development kit) contiene herramientas para crear aplicaciones .NET. Entre estas herramientas, encontramos los compiladores de los diferentes lenguajes de programacin .NET de Microsoft, bsicamente: C#, Visual Basic .NET y C++.NET. Aunque el .NET Framework SDK contiene las herramientas necesarias para construir aplicaciones .NET, Microsoft ofrece el entorno de desarrollo integrado Visual Studio, que facilita el trabajo de los desarrolladores, proporcionando diferentes herramientas que agilizan el proceso de creacin de aplicaciones .NET. Existen, adems, muchas otras herramientas para facilitar el desarrollo de aplicaciones .NET tanto de Microsoft (como ASP Web Matrix que facilita la creacin de paginas ASP.NET por ejemplo), como de terceros. Servidores. Microsoft ofrece un amplio conjunto de servidores que proporcionan diferentes funcionalidades a las organizaciones: servidores de gestin de contenidos, de correo electrnico, servidores de gestin de operaciones, servidores de gestin de bases de datos, etc. La mayora de estos servidores estn integrados con la tecnologa .NET o lo estarn en el futuro. En la siguiente tabla, se indican algunos de los servidores ms importantes:
Servidor Microsoft Windows Server Funcionalidad Es el sistema operativo para servidor de Microsoft.

FUOC P08/B0036/01624

16

Introduccin a Microsoft .NET

Servidor Microsoft SQL Server Microsoft Biztalk Server

Funcionalidad Es el servidor de bases de datos de Microsoft. Es una herramienta de orquestacin e integracin de procesos de negocio. Es una herramienta de creacin de portales para intranets. Es el servidor de correo de Microsoft. Es una herramienta para la creacin de portales de negocio.

Microsoft Office SharePoint Server

Microsoft Exchange Microsoft Commerce Server

2.2. Ventajas de .NET En el apartado anterior, comentbamos algunos de los problemas de las tecnologas previas a .NET. Ahora veremos qu soluciones aporta .NET para resolver estos problemas y qu otras ventajas tiene esta tecnologa. Estas soluciones y ventajas son las siguientes: Independencia del registro En el apartado dedicado a las aplicaciones COM, vimos que stas utilizaban el registro para almacenar informacin de configuracin, y para registrar componentes. Esto hace que las aplicaciones COM sean muy frgiles, ya que un problema en el registro podra hacer que dejasen de funcionar. Con .NET desaparece esta dependencia con el registro, ya que los componentes .NET no necesitan inscribirse en el registro como los componentes COM. Control de versiones. Otro de los problemas de COM que vimos en el apartado anterior es el del control de versiones de componentes. Si se instala una aplicacin con una versin de un componente anterior o posterior a la que hay en el sistema, las aplicaciones actualmente instaladas que utilizan ese componente pueden dejar de funcionar. En .NET hay un control de versiones, de forma que varias versiones de un mismo componente .NET pueden coexistir en el sistema, ya que al ejecutar una aplicacin se escoge y se utiliza la versin de ese componente que necesite esa aplicacin en concreto. Orientacin de objetos. La orientacin a objetos es un modelo de programacin muy til para desarrollar aplicaciones de magnitud considerable, y se ha extendido rpidamente en estos ltimos aos. Aun as, no todos los lenguajes de programacin soportan las caractersticas de este modelo de programacin, y algunos slo las soportan en parte. Todos los lenguajes .NET estn orientados a objetos, ya que .NET soporta internamente los conceptos ms importantes de este modelo de programacin: clases, herencia, interfaces, eventos, polimorfismo, etc.

FUOC P08/B0036/01624

17

Introduccin a Microsoft .NET

Gestin automtica de memoria. La prdida de memoria era otro de los problemas que comentbamos que tenan las aplicaciones COM. Decamos que haba bloques de memoria que, aunque ya no eran utilizados por las aplicaciones, no se liberaban, y esto poda afectar gravemente al rendimiento del sistema, sobre todo en aplicaciones de servidor en las que la aplicacin puede estar funcionando semanas o meses enteros. En .NET existe un mecanismo automtico para detectar estos bloques de memoria perdidos y recuperarlos para que otras aplicaciones los puedan utilizar. Este mecanismo de conoce como garbage collection (recoleccin de basura).

Integracin de aplicaciones. La integracin de aplicaciones existentes es uno de los problemas que ms recursos consume, ya que es una tarea muy compleja y costosa. Por un lado, las aplicaciones pueden estar escritas en lenguajes distintos, no compatibles entre s. Adems, cada una puede utilizar un formato diferente para almacenar o representar la informacin. NET ofrece herramientas que facilitan este proceso de integracin de aplicaciones y comparticin de informacin, mediante el uso del estndar XML.

Interoperabilidad entre plataformas. Uno de los sueos de la informtica es poder ejecutar la misma aplicacin en cualquier plataforma, es decir en cualquier tipo de mquina y sistema operativo. Esto todava est lejos de ser una realidad, pero .NET introduce mecanismos para propiciar esta interoperabilidad entre diferentes plataformas, por ejemplo, .NET utiliza internamente gran cantidad de estndares, entre otros: XML, SOAP, HTTP y WDSL. Por otro lado, tanto el motor de ejecucin como el lenguaje C# estn estandarizados por ECMA (European Computer Manufacturers Association).

Interoperabilidad entre lenguajes. Los programadores siempre escogen un lenguaje de programacin u otro por las funcionalidades que este lenguaje proporciona y las necesidades de desarrollo de cada aplicacin. Con .NET esta diferencia entre lenguajes desaparece. Todos los lenguajes son igual de potentes y expresivos, y permiten realizar el mismo conjunto de funcionalidades. Esto permite que el programador pueda escoger el lenguaje con el que se sienta ms cmodo, sin perder eficacia por ello. Otra de las ventajas de .NET es que permite interoperabilidad entre lenguajes. Esto significa que diferentes componentes .NET pueden comunicarse y colaborar entre s, aunque estn escritos en lenguajes de programacin diferentes. Es ms, un componente .NET escrito en un lenguaje puede heredar de otro componente escrito en otro lenguaje distinto. Esta interoperabilidad entre lenguajes tambin facilita la reutilizacin de componentes, ya que antes si se tena un componente escrito en un lenguaje, no se poda aprovechar directamente para otra aplicacin escrita en un lenguaje diferente. Era necesario traducir el componente al nuevo lenguaje, o bien escribir cdigo extra que permitiese la comunicacin de ese

FUOC P08/B0036/01624

18

Introduccin a Microsoft .NET

componente con el resto de la aplicacin, lo que aumenta la complejidad y la probabilidad de fallos. Compatibilidad con versiones anteriores. Uno podra preguntarse qu va a pasar con todos los componentes COM que actualmente utilizan las aplicaciones, y si las empresas van a tener que realizar nuevas inversiones para poder adoptar la nueva tecnologa de .NET, o bien existe la posibilidad de reutilizar estos componentes ya desarrollados. .NET proporciona mecanismos de interoperabilidad con COM, para la utilizacin de componentes COM ya existentes como si se tratasen de componentes .NET. Por otro lado, tambin existe la posibilidad de utilizar componentes .NET como si fuesen componentes COM, aunque esto no sea del todo aconsejable ya que se pierden todas las ventajas que aporta la nueva tecnologa. Seguridad. Uno de los mayores problemas de las aplicaciones basadas en Internet es el de la seguridad. Qu garantas hay de que una aplicacin que se ejecuta desde Internet no va a provocar fallos? Cmo se pueden controlar las acciones que las aplicaciones pueden realizar en el sistema? .NET tiene mecanismos de control sobre las acciones permitidas para una cierta aplicacin. Se puede restringir, por ejemplo, el acceso de escritura al disco duro para que la aplicacin no pueda crear o modificar ficheros. Por otro lado, .NET tambin proporciona mecanismos para firmar digitalmente una aplicacin, de forma que el usuario de la aplicacin puede otorgar unos privilegios u otros en funcin de si confa o no en el autor de esa aplicacin. Otras ventajas. Aparte de las soluciones que propone .NET a los problemas de las tecnologas previas, ofrece toda una serie de ventajas y caractersticas nuevas para facilitar el desarrollo de aplicaciones, agilizar la lgica de negocio de las aplicaciones empresariales, y mejorar la experiencia del cliente. Estas ventajas son las siguientes: Diseado desde cero. La plataforma .NET es una tecnologa nueva, diseada desde cero de forma intuitiva, basndose en los ltimos avances informticos y apoyndose en estndares como XML, SOAP o UDDI. Soporte para servicios. Microsoft .NET adopta el modelo de programacin SOA (service oriented architecture). Proporciona toda una infraestructura y herramientas de desarrollo para facilitar la creacin y utilizacin de servicios web y servicios en general. Mejor soporte para pginas web dinmicas. .NET incluye una nueva versin de pginas web dinmicas ASP.NET, diseada desde cero, que mejora las funcionalidades y posibilidades de su predecesor, ASP.

FUOC P08/B0036/01624

19

Introduccin a Microsoft .NET

Acceso a datos eficiente con ADO.NET. La librera de clases ADO.NET permite acceder a diferentes fuentes de datos desde las aplicaciones .NET de forma sencilla y eficiente.

Entorno de programacin Visual Studio. Visual Studio es el entorno de programacin de Microsoft para la plataforma .NET, facilitando el proceso de desarrollo de aplicaciones y componentes.

Dispositivos inteligentes. .NET proporciona soporte para una amplia gama de dispositivos. .NET Compact Framework es una versin reducida del Framework pensada para dispositivos como Pocket PC, Tablet PC, mviles, etc. Visual Studio incorpora mltiples herramientas de desarrollo de aplicaciones para este tipo de dispositivos. Adems, Microsoft proporciona SDK gratuitos para desarrollar sobre Windows mobile (sistema operativo para SmartPhones y PocketPC) y emuladores para probar las aplicaciones sin necesidad de disponer de un dispositivo fsico.

Mejorar la lgica de negocio. Microsoft proporciona un conjunto de servidores que facilitan la creacin de soluciones empresariales en .NET y ayudan a mejorar el rendimiento.

2.3. Desventajas de .NET .NET es una tecnologa relativamente reciente, por lo que de momento no se conocen grandes desventajas. Ms adelante, si cambia la tecnologa o tras su utilizacin durante bastante tiempo, pueden surgir problemas y desventajas como sucedi con COM. Aun as, existen algunos detalles que se podran considerar como desventajas, aunque en sucesivas versiones del .NET Framework se han ido mejorando cada vez ms. Estas desventajas son las siguientes: Rendimiento. Dado que las aplicaciones .NET se traducen a cdigo intermedio, existe un descenso del rendimiento debido a que es necesario compilar la aplicacin antes de ejecutarla. No obstante, no se compila siempre la aplicacin completa, sino que se van compilando los mtodos que se necesitan a medida que se van ejecutando. Adems, el cdigo nativo generado para cada mtodo se guarda, de forma que es posible reutilizarlo si el mtodo se vuelve a ejecutar. Tambin es posible precompilar por completo una aplicacin .NET para una plataforma concreta (aunque perdiendo la compatibilidad con otras plataformas). Descompilacin. Las aplicaciones .NET contienen toda la informacin necesaria para poder recuperar el cdigo fuente del programa a partir de los ficheros de la aplicacin. Esto es un problema si queremos ocultar el cdi-

FUOC P08/B0036/01624

20

Introduccin a Microsoft .NET

go a curiosos por cuestiones de seguridad o de evitar plagios. La solucin a este problema es la utilizacin de ofuscadores de cdigo, programas que cambian el cdigo fuente antes de compilarlo de forma que su comportamiento sigue siendo el mismo pero no es inteligible. De esa forma, aunque se consiga descompilar a cdigo fuente, no ser posible su reutilizacin con otros propsitos. Funciones del sistema operativo. La FCL (framework class library), es la librera de clases en la que se encuentra toda la funcionalidad del .NET Framework. Contiene multitud de clases y mtodos que permiten realizar las ms variadas operaciones sobre el sistema operativo. Aun as, existen todava algunas funcionalidades del sistema no accesibles directamente desde .NET, por lo que es necesario utilizar la comunicacin con componentes COM, provocando un descenso del rendimiento. El problema es que el core de los sistemas operativos hasta Windows XP y 2003 est desarrollado con componentes COM. No obstante, a partir de Windows Vista, los sistemas operativos empezarn a incorporar cada vez ms componentes .NET hasta que la tecnologa COM finalmente desaparezca. Tambin hay otras aplicaciones de Microsoft, como SQL Server o toda la gama de productos de Office, que estn evolucionando para proporcionar todas sus funcionalidades desde .NET.

FUOC P08/B0036/01624

21

Introduccin a Microsoft .NET

Bibliografa
Platt, David S. (2002). Introducing Microsoft .NET (3. ed.). Microsoft Press.

S-ar putea să vă placă și