.NET FRAMEWORK

por Yhoan Galeano


¿Que es .Net?


.NET es un framework de desarrollo de software desarrollado por Microsoft para Windows. Este incluye una gran librería y provee mucha interoperabilidad entre los distintos lenguajes que lo componen.

Imagen relacionada

¿Y porque me tienen que interesar .NET?



  • Interoperabilidad

  • Independencia de los lenguajes

  • Librería base de clases

  • Sencillez de implementación

  • Seguridad

Pero antes, Un poco de historia

Hace mucho mucho tiempo, alrededor de 1995, Java generaba mucha algarabía por el hecho de que los programadores ya no necesitaban saber varios lenguajes para enfocarse a cada plataforma o se veían encasillados a una.

Microsoft luchaba por alcanzar las herramientas de Sun, sin éxito. El Windows DNA (Arquitectura de aplicaciones de internet distribuidas, por sus siglas en ingles) se veía rezagado por el J2EE, dado su enfoque "distribuido gratis". Microsoft opto por dejar de enfocar sus esfuerzos en parches y iniciar un proyecto que se llamo NGWS (Next Generation Windows Services). El resultado de ese proyecto es lo que hoy conocemos como .NET

.NET Framework component stack

Version actual (4.7 - beta) - Trabajaremos con la 4.5

Componentes del framework


Aha, ¿Y entonceS?




  • Common Language Specification
  • Common Language Runtime
  • Common Type System
  • Microsoft Intermediate Language
  • .NET Framework Base Clases


cOMMON LANGUAGE SPECIFICATION

  • Especificación que estandariza una serie de características soportadas por el CLR.
  • Contrato entre diseñadores de lenguajes de programación y autores de bibliotecas.
  • Permite la interoperabilidad entre lenguajes.
  • Microsoft provee implementaciones de 4 lenguajes, todos compatibles con el CLS.
    • Microsoft Visual Basic
    • Microsoft Visual C#
    • Microsoft Visual J#
    • Microsoft C++

Common Language Specification

El resto de la industria y el sector académico han desarrollado mas de 20 lenguajes compatibles con la especificación CLS.

Resultado de imagen de cls .net

Common lANGUAGE rUNTIME


El Common Language Runtime o CLR ("entorno en tiempo de ejecución de lenguaje común") es un entorno de ejecución para los códigos de los programas que corren sobre la plataforma Microsoft .NET. El CLR es el encargado de compilar una forma de código intermedio llamada Common Intermediate Language (CIL, anteriormente conocido como MSIL, por Microsoft Intermediate Language), al código de maquina nativo, mediante un compilador en tiempo de ejecución.

¡ojo no es vm!


No debe confundirse el CLR con una máquina virtual, ya que una vez que el código está compilado, corre nativamente sin intervención de una capa de abstracción sobre el hardware subyacente. Es una implementación del estándar Common Language Infrastructure (CLI).


Common Language Runtime diagram.svg



El CLR también permite otros servicios importantes, incluyendo los siguientes: 


Administración de la memoria:

Administración de hilos

Manejo de excepciones

Recolección de basura

Seguridad

Common language Infrastructure

  • Es una especificación fomentada por Microsoft, Intel, HP.
  • Fue estandarizada por ECMA en el 2001 e ISO en el 2003 que describe el CTS, el CLS y un sistema virtual de ejecución.
  • El sistema virtual de ejecución nos permite compilar los lenguajes que cumplan con estos  estándares a un lenguaje assembly intermedio.

Common language Runtime

Es la implementación comercial de Microsoft del CLI y el motor de ejecución de todo el framework .NET

  • Compilación Just-In-Time
  • Gestión Automática de Memoria
  • Gestión de Errores
  • Ejecución basada en librerías o componentes
  • Multi hilos

Common language Runtime

CLR - El lado Oscuro



CLR - El lado oscuro

CLR - El Lado Oscuro

Base Class Library

Base Class Library

Base class library

Base class library


Common type system

  • Define un conjunto común de tipos de datos 
  • Todos los lenguajes bajo la sombrilla del framework .NET debe de implementar en su totalidad los tipos definidos por el CTS



    Para cerrar:

    .NET :

    • Unifica los modelos de programación bajo una misma sombrilla
    • Es independiente del lenguaje de programación
    • Provee interoperabilidad con el código ya existente
    • Es extensible
    • Es de fácil administración una vez ya instalado.
    Made with Slides.com