Вы находитесь на странице: 1из 10

1. .

NET

INTRODUCCIÓN

Antes de decir qué es .NET, es conveniente aclarar qué NO es .NET:

 .NET no es un Sistema Operativo, como si lo es Microsoft Windows.


 .NET no es un Lenguaje de Programación: si bien la plataforma Microsoft .NET
incluye lenguajes de programación de aplicaciones, su concepto es más amplio y
va más allá de éstos.
 .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 ejecución de aplicaciones.
Después de aclarar estos puntos vamos a ver que SÍ es .NET.

Microsoft .NET es una plataforma de desarrollo y ejecución de aplicaciones. Esto quiere


decir que no sólo nos brinda todas las herramientas y servicios que se necesitan para
desarrollar aplicaciones, sino que también nos provee de mecanismos robustos, seguros y
eficientes para asegurar que la ejecución de las mismas sea óptima.

CARACTERÍSTICAS DE .NET

Describiremos a continuación algunas de las características principales de la plataforma


Microsoft .NET:

 Se dice que es una plataforma de ejecución 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 están
diseñadas para ser ejecutadas por un componente de software llamado ENTORNO
DE EJECUCIÓN (Runtime o Máquina Virtual).
 .NET está completamente basada en el paradigma de Orientación a Objetos.
 .NET es multilenguaje: se pueden utilizar varios lenguajes (C#, Visual Basic, etc)
para trabajar en la plataforma, incluso una solución puede tener módulos
implementados en distintos lenguajes colaborando entre ellos.
 .NET fue diseñado para poder proveer un único modelo de programación,
uniforme y consistente, para todo tipo de aplicaciones (ya sean de formularios
Windows, de consola, aplicaciones Web, aplicaciones móviles, etc.) y para
cualquier dispositivo de hardware (PC’s, Pocket PC’s, Teléfonos Celulares
Inteligentes, también llamados “SmartPhones”, Tablet PC’s, etc.).

1
.NET FRAMEWORK

.NET Framework constituye la PLATAFORMA Y ELEMENTO PRINCIPAL sobre el que se asienta


Microsoft .NET. De cara al programador, es la pieza fundamental, ya que proporciona las
herramientas y servicios que necesitará en su labor habitual de desarrollo.

.NET Framework permite el desarrollo de aplicaciones a través del uso de un conjunto de


herramientas y servicios y que pueden agruparse en tres bloque principales:

 El ENTORNO DE EJECUCIÓN COMÚN o Common Language Runtime (CLR). Constituye el


núcleo de .NET Framework, encargándose de la gestión del código en cuanto a
su carga, ejecución, uso de memoria, seguridad, etc.
 La BIBLIOTECA DE CLASES de la plataforma o Base Class Library (BCL) es un excelente
API (Aplication Programming Interface - Interfaz de programación de
aplicaciones) que proporciona multitud de servicios al programador, para
realizar tareas como, gestión del sistema de ficheros, acceso a datos, etc. La BCL
se compone de miles de clases organizadas en paquetes denominados
NAMESPACES .
 El Motor de Generación de Interfaz de Usuario, que permite crear interfaces
para la Web o para el tradicional entorno Windows, así como servicios para
ambos entornos.
o ASP.NET está dedicado al desarrollo Web y necesita del servidor Web (IIS).
o Windows Forms permite realizar aplicaciones para Windows

2
COMMON LENGUAJE RUNTIME (CLR)
El CLR (Common Language Runtime – Lenguaje Común en tiempo de ejecución) es el núcleo
de la plataforma .NET. Es el motor encargado de gestionar la ejecución de las aplicaciones
desarrolladas para .NET, ofreciendoles numerosos servicios que simplifican su desarrollo y
favorecen su fiabilidad y seguridad.

Las principales características y servicios que ofrece el CLR son:

 Modelo de programación sencillo: Con el CLR desaparecen muchos elementos


complejos incluidos en los sistemas operativos actuales (registro de Windows,
GUIDs, HRESULTS, IUnknown, etc.) El CLR no es que abstraiga al programador de
estos conceptos, sino que son conceptos que no existen en la plataforma .NET
 Eliminación del “infierno de las DLLs”: Facilita la distribución e instalación de
aplicaciones, ya que en teoría, es posible instalar una aplicación simplemente
copiando los ficheros que la componen en uno de los directorios del equipo en el
que se vaya a ejecutar, eliminando los temibles conflictos de versiones entre
librerías, problema conocido también con el nombre de Infierno de las DLL
(Dynamically Linked Library - Biblioteca de enlace dinámico) o DLL Hell.
 Ejecución multiplataforma: El CLR actúa como una máquina virtual,
encargándose de ejecutar las aplicaciones diseñadas para la plataforma .NET. Es
decir, cualquier plataforma para la que exista una versión del CLR podrá ejecutar
cualquier aplicación .NET. Como consecuencia, el mismo código es optimizado
para la plataforma en la cual se ejecuta, lo que implica que el mismo programa
puede ser utilizado para un dispositivo móvil o un PC con mínimas
modificaciones. Dado que la arquitectura del CLR está totalmente abierta, es
posible que en el futuro se diseñen versiones del mismo para otros sistemas
operativos.
 Integración de lenguajes: Se pueden combinar ficheros con código escrito en
cualquiera de los lenguajes para los que .NET tiene desarrollado compilador. La
integración de lenguajes es tal que es posible escribir una clase en C# que herede
de otra escrita en Visual Basic.NET que, a su vez, herede de otra escrita en C++
con extensiones gestionadas.
 Gestión Automática de Memoria: el CLR abstrae a los desarrolladores de tener
que pedir y liberar memoria explícitamente. Para esto, uno de sus componentes
llamado GARBAGE COLLECTOR (Recolector de Basura) se encarga de liberar
periódicamente la memoria que ya no está siendo usada por ninguna aplicación.
Por otra parte, el CLR también abstrae a los desarrolladores del uso de punteros
y del acceso a memoria de bajo nivel. Si bien estas características pueden ser
consideradas poderosas, suelen hacer el desarrollo y mantenimiento de
aplicaciones más propenso a errores y menos productivo.
 Seguridad de tipos: El CLR facilita la detección de errores de programación
difíciles de localizar, comprobando que toda conversión de tipos que se realice
durante la ejecución de una aplicación .NET se haga de modo que los tipos
origen y destino sean compatibles.

3
 Aislamiento de procesos: El CLR asegura que desde código perteneciente a un
determinado proceso no se pueda acceder a código o datos pertenecientes a
otro, lo que evita errores de programación muy frecuentes e impide que unos
procesos puedan atacar a otros.
 Tratamiento de excepciones: En el CLR todos los errores que se puedan producir
durante la ejecución de una aplicación se propagan de igual manera: mediante
EXCEPCIONES. Esto es muy diferente a como se venía haciendo en los sistemas
Windows hasta la aparición de la plataforma .NET, donde ciertos errores se
transmitían mediante códigos de error en formato Win32, otros mediante
HRESULTs y otros mediante excepciones.
También permite que excepciones lanzadas desde código para .NET escrito en un
cierto lenguaje se puedan capturar en código escrito usando otro lenguaje, e
incluye mecanismos de depuración que pueden saltar desde código escrito para
.NET en un determinado lenguaje a código escrito en cualquier otro.
 Multithreading: el CLR provee de un entorno de EJECUCIÓN MULTI-HILOS por sobre
las capacidades del Sistema Operativo, asi como también mecanismos para
asegurar su sincronización y acceso concurrente a recursos compartidos.
 Distribución transparente: El CLR ofrece la infraestructura necesaria para crear
objetos remotos y acceder a ellos de manera completamente transparente a su
localización real, tal y como si se encontrasen en la máquina que los utiliza.
 Gestión de Errores Consistente: como las aplicaciones .NET no se ejecutan
directamente contra el Sistema Operativo, cualquier error no manejado que
ocurra en tiempo de ejecución será atrapado por el CLR en última instancia, no
afectando a ninguna otra aplicación que se esté ejecutando ni teniendo efecto
alguno sobre su estabilidad.
 Interoperabilidad con código antiguo: El CLR incorpora los mecanismos
necesarios para poder acceder desde código escrito para la plataforma .NET a
código escrito previamente a la aparición de la misma y, por tanto, no preparado
para ser ejecutando dentro de ella. Estos mecanismos permiten tanto el acceso a
objetos COM como el acceso a funciones sueltas de DLLs preexistentes (como la
API Win32)
NOTA: El CLR se parace a la máquina virtual de Java pero se diferencia en la arquitectura
interna, el CRL únicamente compila a código nativo la parte necesaria en cada momento
durante la ejecución, mientras que Java compila el programa completo

COMMON INTERMEDIATE LANGUAGE (CIL)


Ninguno de los compiladores que generan código para la plataforma .NET produce código
máquina para ningún tipo de CPU concreta, sino que generan código escrito en el lenguaje
intermedio conocido como COMMON INTERMEDIATE LENGUAGE (CIL) El CLR da a las aplicaciones
la sensación de que se están ejecutando sobre una máquina virtual, y precisamente CIL es el
código máquina de esa máquina virtual. Es decir, CIL es el único código que es capaz de
interpretar el CLR, y por tanto cuando se dice que un compilador genera código para la
plataforma .NET lo que se está diciendo es que genera CIL. En .NET los ficheros exe o dll no
contienen código nativo para ninguna procesador sino que contienen código IL.
4
La principal ventaja del CIL es que facilita la ejecución multiplataforma y la integración entre
lenguajes al ser independiente de la CPU y proporcionar un formato común para el código
máquina generado por todos los compiladores que generen código para .NET. Sin embargo,
dado que las CPUs no pueden ejecutar directamente CIL, antes de ejecutarlo habrá que
convertirlo al código nativo de la CPU sobre la que se vaya a ejecutar. De esto se encarga un
componente del CLR conocido como compilador JIT (Just-In-Time) o jitter que va
convirtiendo dinámicamente el código CIL a ejecutar en código nativo según sea necesario.
DEBE EXISTIR UN COMPILADOR JIT PARA CADA PLATAFORMA EN LA QUE SE PUEDA EJECUTAR .NET, PUES ÉL ES EL
RESPONSABLE DE CONVERTIR A CÓDIGO NATIVO Y DEPENDIENTE DE LA PLATAFORMA.

Gráfico tomado del curso Desarrollador 5 Estrellas de Microsoft

METADATOS
Los metadatos es información complementaria que se incluye dentro de la propia aplicación,
y con esta técnica obtenemos aplicaciones o componentes auto-descritos.

Los metadatos son creados por el compilador del lenguaje utilizado en cada caso y grabados
dentro del fichero resultante (EXE o DLL), siendo el CLR el encargado de recuperarlos en el
momento que los necesite.

Algunos de los datos proporcionados por los metadatos de una aplicación son la descripción
del ensamblado junto a su versión, clave, tipos que lo componen y recursos externos de los
que dependen para funcionar correctamente (clases, interfaces, etc.).

5
ENSAMBLADOS (Assemblies)
Un ensamblado o assembly es el resultado de la compilación de un fichero fuente en .NET
y está codificado en lenguaje MSIL. El ensamblado es el conjunto de ficheros que son
necesarios para la ejecución de una aplicación .NET. En un ensamblado debe encontrarse
por lo menos un fichero .EXE o un .DLL, por lo tanto, para ejecutar una aplicación .NET no es
necesario introducir información en distintos lugares del ordenador (elementos de registro,
conectividad abierta a bases de datos -ODBC-) ya que solo se requiere copiar todos los
ensamblados en el directorio de la aplicación.

Con los ensamblados ya no es necesario registrar los componentes de la aplicación. Esto se


debe a que los ensamblados almacenan dentro de si mismos toda la información necesaria
en lo que se denomina el manifiesto del ensamblado.

El manifiesto recoge todos los métodos y propiedades en forma de metadatos junto con
otra información descriptiva, como permisos, dependencias, librerías, objetos, etc. El
manifiesto contiene el número de versión necesario para que la aplicación funcione
correctamente, impidiendo que la instalación posterior de un programa afecte a nuestro
ejecutable

Para gestionar el uso que hacen las aplicaciones de los ensamblados .NET utiliza la llamada
CACHÉ GLOBAL DE ENSAMBLADOS (GAC, Global Assembly Cache). Así, .NET Framework puede
albergar en el GAC los ensamblados que puedan ser usados por varias aplicaciones e incluso
distintas versiones de un mismo ensamblado, algo que no era posible con el anterior modelo
COM.

Cuando creamos un nuevo proyecto en Visual Basic desde Visual Studio .NET, dicho proyecto
es ya un ensamblado, creado de forma implícita.

COMMON TYPE SYSTEM (CTS)


El Common Type System (CTS) o SISTEMA DE TIPO COMÚN es el conjunto de reglas que han de
seguir las definiciones de tipos de datos para que el CLR las acepte. Es decir, aunque cada
lenguaje gestionado disponga de su propia sintaxis para definir tipos de datos, en el MSIL
resultante se han de cumplir las reglas del CTS.

Algunos ejemplos de estas reglas son:

 Cada tipo de dato puede constar de cero o más miembros. Cada uno de estos
miembros puede ser un campo, un método, una propiedad o un evento.
 No se puede hacer herencia múltiple, y todo tipo de dato ha de heredar directa
o indirectamente de System.Object.

6
COMMON LANGUAGE SPECIFICATION (CLS)
El Common Language Specification (CLS) o ESPECIFICACIÓN DEL LENGUAJE COMÚN es un conjunto
de reglas que han de seguir el código usando un determinado lenguaje gestionado si SE DESEA
QUE SEAN ACCESIBLES DESDE CUALQUIER OTRO LENGUAJE gestionado. Obviamente, sólo es necesario
seguir estas reglas en la parte del código que sean accesibles externamente. A continuación
se listan algunas de reglas significativas del CLS:

 Los tipos de datos básicos admitidos son bool, char, byte, short, int, long, float,
double, string y object.

 Las tablas han de tener una o más dimensiones, y el número de dimensiones de cada
tabla ha de ser fijo. Además, han de indexarse empezando a contar desde 0.

 Se pueden definir tipos abstractos y tipos sellados. Los tipos sellados no pueden
tener miembros abstractos.

 Las excepciones han de derivar de System.Exception, los delegados de


System.Delegate, las enumeraciones de System.Enum , y los tipos por valor que no
sean enumeraciones de System.ValueType.

 Los métodos de acceso a propiedades en que se traduzcan las definiciones get/set de


éstas han de llamarse de la forma get_X y set_X respectivamente, donde X es el
nombre de la propiedad; los de acceso a indizadores han de traducirse en métodos
get_Item y set_Item ; y en el caso de los eventos, sus definiciones add/remove han de
traducirse en métodos add_X y remove_X.

 En las definiciones de atributos sólo pueden usarse enumeraciones o datos de los


tipos: System.Type, string, char, bool, byte, short, int, long, float, double y object.

 En un mismo ámbito no se pueden definir varios identificadores cuyos nombres sólo


difieran en la capitalización usada.

 El tipo de los campos de una enumeración sólo puede ser uno de estos cuatro tipos
básicos: byte, short, int o long.

BASE CLASS LIBRARY. BCL


.NET Framework proporciona un conjunto unificado, orientado a objetos, jerárquico y
extensible de bibliotecas de clases para desarrolladores. Hasta ahora, cada lenguaje de
programación a objetos utilizaba sus propias bibliotecas de clases y frameworks, pero en
.NET la biblioteca de clases disponible es común para todos los lenguajes del entorno.

Esta librería está escrita en MSIL, por lo que puede usarse desde cualquier lenguaje cuyo
compilador genere MSIL. Visual Basic no posee librería de clases propia ya que todo el
lenguaje se base en la BCL.

Dentro del BCL (Base Class Library), encontraremos una extensa biblioteca formada por
clases que nos proporcionarán la posibilidad de acceder a una gran cantidad de servicios. En

7
el .NET Framework, referenciamos a las BCL mediante lo que se ha denominado Namespace
(Espacios de Nombres) y que se engloban dentro del Namespace System.

Espacio de nombres Utilidad de los tipos de datos que contiene


System Tipos básicos, tablas, excepciones, fechas, números
aleatorios, recolector de basura, e/s en consola, etc.
System.Collections Colecciones de datos: pilas, colas, listas, diccionarios,
etc.
System.Data Manipulación de bases de datos: arquitectura ADO.NET.
System.IO Manipulación de ficheros y otros flujos de datos.
System.Net Realización de comunicaciones en red.
System.Reflection Acceso a los metadatos de los módulos de código.
System.Runtime.Remoting Acceso a objetos remotos.
System.Security Acceso a la política de seguridad en que se basa el CLR.
System.Threading Manipulación de hilos.
System.Web.UI.WebControls Interfaces de usuario para aplicaciones Web.
System.Windows.Forms Interfaces de usuario para aplicaciones Windows.
System.XML Acceso a datos en formato XML.

LENGUAJES DE .NET

En Visual Studio .NET viene los siguientes Lenguajes de Programación:

 Visual Basic .NET.


 Visual C# .NET.
 Visual C++ .NET.
 Visual Foxpro .NET (No administrado por el Marco .NET).
 Visual Jscript .NET.
Además de estos lenguajes, el Marco .NET soporta otros lenguajes, entre los cuales se
destacan:

 COBOL: http://www.adtools.com/info/withepaper/net.html/
 Pascal: http://www2.fit.qut.edu.au/CompSci/PLAS/ComponenPascal/
 Smalltalk: http://www.qks.com
 Eiffel: http://dotnet.eiffel.com/
 ML: http://research.microsoft.com/Projects/SML.NET/index.htm
 APL: http://www.dyadic.com
 Oberon: http://www.oberon.ethz.ch/lightning/
 Scheme: http://rover.cs.nwu.edu/-scheme/
 Mercury: http://www.cs.mu.oz.au/research/mercury/
 Pitón: http://aspn.activestate-com/ASPN/NET/index
 Haskell: http://haskell.cs.yale.edu/ghc/

8
 Mondrian: http://www.mondrian-script.org

VISUAL STUDIO

Visual Studio es una herramienta integral de desarrollo para crear e integrar rápidamiente
servicios Web, XML y aplicaciones.

Visual Studio .NET ofrece un ambiente altamente productivo para desarrollar una amplia
variedad de aplicaciones que se ejecutan en la nueva arquitectura Microsoft .NET, usando la
plataforma Microsoft .NET Framework.

Existen unas versiones reducidas de cada parte del Visual Studio llamadas Express Editions.
Estas versiones no son tan potentes como las versiones profesionales, pero para uso
personal / no comercial son suficientes.

Se pueden descargar de http://msdn.microsoft.com/vstudio/express/

VERSIONES
Visual Studio .NET
Técnicamente llamada Visual Studio 7.0.

Visual Studio .NET 2003


También llamada Visual Studio 7.1.

Entre otros cambios destaca:

 Incorpora .NET Framework 1.1


 Añade funcionalidades para dispositivos portátiles
 Updated Visual Basic to 7.1

Visual Studio 2005


La versión definitiva en inglés vio la luz en Noviembre del 2005. En castellano hubo que
esperar hasta Febrero de 2006.

 Incorpora .NET Framework 2.0


 Hay más ediciones diferenciadas por el precio y las características.
 Ayuda con refactorización.
 El desarrollo de páginas con ASP.NET ha cambiado.
 Soporte para el nuevo software servidor Team System.

Visual Studio 2008


Esta versión se lanzó al mercado a finales del 2007

 Incorpora .NET Framework 3.5

9
 Incluyen ASP.NET y AJAX.
 Nos provee de un nuevo lenguaje de consultas integrado para el manejo de la
información, el cual se llama Microsoft Language Integrated Query (LINQ).
 Permite la elección de la versión de Framework para un proyecto
 Compatibilidad con Office y ClickOnce garantiza el entorno ideal para una fácil
instalación y mantenimiento de las soluciones Office.
 Permite incorporar características del nuevo Windows Presentation Foundation
(WPF) sin dificultad tanto en los formularios de Windows existentes como en los
nuevos.
 Incluye nuevas plantillas de proyectos.

Visual Studio 2010


 Incorpora .NET Framework 4.
 Aporta mejoras en el editor de código y en las ayudas en el desarrollo y la
depuración.
 La aplicación cliente Administración del ciclo de vida de las aplicaciones está
disponible ahora en todas las versiones de Visual Studio (salvo en las versiones
Express).
 Visual Studio 2010 incluye F#, un nuevo lenguaje .NET Framework compatible
con la programación funcional y la programación orientada a objetos e
imperativa (de procedimientos) convencional.
 Aporta novedades en ADO.NET, desarrollo Web y Office.
 Se han realizado varias mejoras en el diseñador para ayudar a crear aplicaciones
de Windows Presentation Foundation (WPF) y Silverlight.
 Se han realizado una serie de mejoras para Visual C++ en muchas de sus
características.
 Permite la programación en paralelo para aprovechar varios procesardores en un
mismo sin tener que trabajar directamente con subprocesos ni con el grupo de
subprocesos.
 .NET Framework 4 incluye nuevas bibliotecas compatibles con el paralelismo de
tareas y datos, una implementación paralela de LINQ to Objects denominada
Parallel Language Integrated Query (PLINQ) y varios tipos de datos nuevos para
sincronización y simultaneidad

10

Вам также может понравиться