Skip to content

1. Introducción

El PDF de este documento está disponible |AQUÍ|.

Los ejemplos de este documento están disponibles |AQUÍ|.

C# es un lenguaje reciente. Estuvo disponible en sucesivas versiones beta desde el año 2000 antes de lanzarse oficialmente en febrero de 2002, al mismo tiempo que la plataforma .NET 1.0 de Microsoft, a la que está vinculado. C# solo puede funcionar con este entorno de ejecución. Este pone a disposición de los programas que se ejecutan en él un conjunto muy amplio de clases. A primera vista, se puede decir que la plataforma .NET es un entorno de ejecución similar a una máquina virtual de Java. Sin embargo, cabe señalar dos diferencias:

  • Java se ejecuta en diferentes sistemas operativos (Windows, Unix, Macintosh) desde sus inicios. En 2002, la plataforma .NET solo se ejecutaba en equipos con Windows. Desde hace algunos años, el proyecto Mono [http://www.mono-project.com] permite utilizar la plataforma .NET en sistemas operativos como Unix y Linux. La versión actual de Mono (febrero de 2008) es compatible con .NET 1.1 y con elementos de .NET 2.0.
  • La plataforma .NET permite la ejecución de programas escritos en diferentes lenguajes. Basta con que el compilador de dichos lenguajes sea capaz de generar código IL (lenguaje intermedio), código que es ejecutado por la máquina virtual .NET. Todas las clases de .NET están disponibles para los lenguajes compatibles con .NET, lo que tiende a eliminar las diferencias entre lenguajes, ya que los programas utilizan ampliamente estas clases. La elección de un lenguaje .NET se convierte en una cuestión de preferencia más que de rendimiento.

En 2002, C# utilizaba la plataforma .NET 1.0. En ese entonces, C# era en gran medida una «copia» de Java, y .NET era una biblioteca de clases muy similar a la de la plataforma de desarrollo de Java. Al aprender el lenguaje, se pasaba de un entorno de C# a uno de Java sin sentirse realmente desorientado. Incluso existían herramientas para convertir el código fuente de un lenguaje al otro. Desde entonces, las cosas han cambiado. Cada lenguaje y cada plataforma de desarrollo tiene ahora sus propias características. Ya no es tan sencillo transferir las habilidades de un ámbito a otro.

C# 3.0 y el marco .NET 3.5 traen muchas novedades. Probablemente la más importante sea LINQ (Language INtegrated Query), que permite realizar consultas de manera uniforme, de forma similar a la del lenguaje SQL, secuencias de objetos provenientes de estructuras en memoria, como tablas y listas, de bases de datos (solo SQL Server por el momento —febrero de 2008—) o de archivos XML.

Este documento no es un curso exhaustivo. Por ejemplo, no se aborda LINQ. Está dirigido a personas que ya tienen conocimientos de programación y desean descubrir los fundamentos de C#. Es una revisión del documento original publicado en 2002.

Varios libros me han ayudado a escribir este curso:

Para la versión de 2002:

  • Programación profesional en C#, Ediciones Wrox
  • C# y .NET, Gérard Leblanc, Editorial Eyrolles

En ese entonces, me parecieron excelentes estas dos obras. Desde entonces, Gérard Leblanc ha publicado versiones actualizadas, entre ellas la siguiente:

  • C# y .NET 2005, Gérard Leblanc, Editorial Eyrolles

Para la revisión de 2008, utilicé las siguientes fuentes:

  • el documento original de 2002. Este documento, que era un copia y pega de mi curso de Java, contenía tanto errores tipográficos como errores más graves, como afirmar que los tipos primitivos como System.Int32 eran clases, cuando en realidad son estructuras. Mea culpa...
  • la documentación de Visual Studio Express 2008
  • el libro *C# 3.0 in a Nutshell*, de Joseph y Ben Albahari, publicado por O’Reilly, uno de los mejores libros de programación que he tenido la oportunidad de leer.

Serge Tahé, mayo de 2008

Desde mayo de 2008, C#, por supuesto, ha evolucionado. Sin embargo, este documento sigue siendo relevante para el aprendizaje de este lenguaje. Como complemento a este curso, se incluye una presentación del ORM (mapeador objeto-relacional) Entity Framework en el artículo «Introducción a ORM Entity Framework 5 Code First» en URL [Introducción práctica a Entity Framework 5 Code First (2012)].

Serge Tahé, octubre de 2013