Una breve introducción a .NET

En esta primera entrega vamos a revisar .NET para tener una base sobre las librerías básicas de .NET

La plataforma que junto a C# muchos hemos visto evolucionar con aciertos y tropiezos.

La plataforma de .NET, fue introducida con C# por el año 2002 más o menos con una buena gama de APIs para acceso a bases de datos con ADO.NET, para páginas web con ASP.NET MVC, por mencionar las más importantes -al menos las que yo utilizaba- en ese entonces. En esta primera entrega vamos a revisar .NET para tener una base sobre cómo se ejecutan los programas en este caso refiriéndonos a la plataforma .NET y todo lo relacionado con esto, principalmente:

  • Common Intermediate Language CIL
  • Just in Time compilation JIT

Seguido, podremos apreciar parte de las librerías básicas de .NET, abreviadas como BCls y como se presenta la naturaleza de .NET al ser agnóstica en cuanto al lenguaje VB, F#, C# e independiente de una plataforma.

*Antes de .NET se utilizaba Component Object Model (COM) para escribir librerías de código que se podia compartir y ser utilizadas en distintos lenguajes de programación.

Ventajas de .NET

Dada la complejidad y limitaciones que presentaba el utilizar COM para de alguna forma buscar una inter-operabilidad entre lenguajes de programación, .NET ofrece un modelo más simple y flexible que COM.

.NET entonces brinda una plataforma para construir sistemas utilizando diversos lenguajes de programación, pero no nos vamos a enfocar en esos aspectos ya que solo vamos a utilizar C# y por lo mismo no valdría la pena describir con más detalle la opción de utilizar mas de un solo lenguaje de programación para crear una aplicación con .NET

Librerías básicas

El conjunto de librerías básicas son los cimientos de .NET ya que permiten realizar tareas comunes de manera muy sencilla, desde acceso a bases de datos, archivos e/s, interfaces de usuario, etc.

CLR

Common Language Runtime, es lo que permite utilizar distintos lenguajes de programación al escribir aplicaciones con .NET ya que es el lenguaje común utilizado para que una aplicación pueda ser escrita en C# y VB por ejemplo. Esto nace de la necesidad que había en ese entonces para de alguna manera unificar o presentar algo común entre los diversos lenguajes de programación que se utilizaba en ese entonces -muchos hasta hoy siguen vigentes- y se reduce a preferencias personales, de que lenguaje de programación utilizar.

Librerías

Las librerías en .NET abarcan código bien definido y funcional que se puede utilizar para crear nuestras propias aplicaciones. En este punto vale la pena que nos familiaricemos con cierta terminología.

Namespace

Es lo que agrupa semánticamente a las librerías, por ejemplo en el namespace «System» podemos encontrar las librerías:

  • IO, contiene todo lo relacionado entrada/salida.
  • Data, contiene todo lo relacionado a tipo de datos.

Las librerías contienen librerías de tal forma que se puede tener todo un árbol a partir de la raíz ‘System’

Ahora sabemos que .NET provee toda una gama de librerías listas para que utilicemos en nuestros programas.

.NET independiente de la plataforma?

Recordemos que respecto al sistema operativo Windows podemos utilizar uno de los lenguajes de programación antes mencionados para crear aplicaciones, pero algo que siempre estuvo presente fue el concepto de un lenguaje intermedio en el contexto de .NET, pero esto fue más allá y se presentó cómo un estándar.
Esto permitió que la funcionalidad de este lenguaje intermedio de Microsoft en particular sea extendido más allá de Windows, y es así como nace el proyecto Mono.

Mono

Este proyecto permitió portar las librerías de .NET a otros sistemas operativos como Linux en escritorio y móviles (iPad, iPhone, Android).

Xamarin es la descendencia de Mono, orientada a los dispositivos móviles.

Y así llegamos a .NET Core que ve la luz en 2014.

.NET Core

A partir de .NET 4.7 aparece una nueva distribución de .NET, una alternativa cuyo enfoque -en un inicio- fue aplicaciones web con ASP .NET y servicios -sin interfaz de usuario- que se ejecutarían en Linux , macOS y Windows.

Las librerías básicas de .NET se puede encontrar directamente en .NET Core con la excepción de las librerías para GUI (interfaces gráficas).