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 salir oficialmente al mercado 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 grandes rasgos, se puede decir que la plataforma .NET es un entorno de ejecución similar a una máquina virtual 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 unos 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 algunos 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 difuminar las diferencias entre lenguajes, en la medida en que los programas utilizan ampliamente estas clases. La elección de un lenguaje .NET se convierte en una cuestión de gusto más que de rendimiento.
En 2002, C# utilizaba la plataforma .NET 1.0. Por entonces, C# era en gran medida una «copia» de Java y .NET una biblioteca de clases muy similar a la de la plataforma de desarrollo de Java. A la hora de 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 a otro. Desde entonces, las cosas han cambiado. Cada lenguaje y cada plataforma de desarrollo tiene ahora sus propias particularidades. Ya no resulta tan sencillo transferir los conocimientos de un ámbito a otro.
C# 3.0 y el marco .NET 3.5 aportan muchas novedades. Probablemente, la más importante sea LINQ (Language INtegrated Query), que permite realizar consultas de forma uniforme, de manera similar a la del lenguaje SQL, secuencias de objetos procedentes de estructuras en memoria, como matrices y listas, de bases de datos (SQL Server, únicamente 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#. Se trata de una revisión del documento original publicado en 2002.
Varios libros me han ayudado a escribir este curso:
Para la versión de 2002:
- Professional C# programming, Ediciones Wrox
- C# y .NET, Gérard Leblanc, Editorial Eyrolles
En su momento, me parecieron excelentes estas dos obras. Desde entonces, Gérard Leblanc ha publicado versiones actualizadas, entre las que se encuentra la siguiente:
- «C# y .NET 2005», de Gérard Leblanc, editorial Eyrolles
Para la revisión de 2008, utilicé las siguientes fuentes:
- el documento original de 2002. Este documento, resultado de un «copiar y pegar» 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# ha evolucionado, como es lógico. No obstante, este documento sigue siendo de gran utilidad para el aprendizaje de este lenguaje. Como complemento a este curso, se incluye una presentación del ORM (Object Relational Mapper) Entity Framework en el artículo «Introducción a ORM Entity Framework 5 Code First» en URL [Introducción a Entity Framework 5 Code First a través de ejemplos (2012)].
Serge Tahé, octubre de 2013