Sunteți pe pagina 1din 7

C#1 (pronunciado si sharp en ingls) es un lenguaje de programacin orientado a

objetos desarrollado y estandarizado por Microsoft como parte de su plataforma .NET, que
despus fue aprobado como un estndar por la ECMA (ECMA-334) e ISO (ISO/IEC
23270). C# es uno de los lenguajes de programacin diseados para la infraestructura de
lenguaje comn.
Su sintaxis bsica deriva de C/C++ y utiliza el modelo de objetos de la plataforma .NET,
similar al de Java, aunque incluye mejoras derivadas de otros lenguajes.
El nombre C Sharp fue inspirado por la notacin musical, donde '#' (sostenido, en
ingls sharp) indica que la nota (C es la nota do en ingls) es un semitono ms alta,
sugiriendo que C# es superior a C/C++. Adems, el signo '#' se compone de cuatro signos
'+' pegados.2
Aunque C# forma parte de la plataforma .NET, sta es una API, mientras que C# es
un lenguaje de programacin independiente diseado para generar programas sobre dicha
plataforma. Ya existe un compilador implementado que provee el marco Mono - DotGNU,
el cual genera programas para distintas plataformas como Windows, Unix, Android, iOS,
Windows Phone, Mac OS y GNU/Linux

Historia
Durante el desarrollo de la plataforma .NET, las bibliotecas de clases fueron escritas
originalmente usando un sistema de cdigo gestionado llamado Simple Managed C (SMC).
En enero de 1999, Anders Hejlsberg form un equipo con la misin de desarrollar un nuevo
lenguaje de programacin llamado Cool (Lenguaje C orientado a objetos). Este nombre
tuvo que ser cambiado debido a problemas de marca, pasando a llamarse C#.3 La biblioteca
de clases de la plataforma .NET fue migrada entonces al nuevo lenguaje.
Hejlsberg lider el proyecto de desarrollo de C#. Anteriormente, ya haba
participado en el desarrollo de otros lenguajes como Turbo Pascal, Delphi y J++.

Introduccin al lenguaje C# y .NET


Framework
Visual Studio 2013
C# es un lenguaje orientado a objetos elegante y con seguridad de tipos que permite a los
desarrolladores compilar diversas aplicaciones slidas y seguras que se ejecutan en .NET
Framework. Puede utilizar C# para crear aplicaciones cliente de Windows, servicios Web
XML, componentes distribuidos, aplicaciones cliente-servidor, aplicaciones de base de
datos, y mucho, mucho ms. Visual C# proporciona un editor de cdigo avanzado,
cmodos diseadores de interfaz de usuario, depurador integrado y numerosas herramientas
ms para facilitar el desarrollo de aplicaciones basadas el lenguaje C# y .NET Framework.
Nota
La documentacin de Visual C# supone que se conocen los conceptos bsicos de
programacin. Si es un principiante en la materia, puede explorar Visual C# Express,
disponible en Web. Tambin puede aprovechar los libros y recursos web sobre C# para
obtener conocimientos prcticos de programacin.

Lenguaje C#
La sintaxis de C# es muy expresiva, pero tambin es sencilla y fcil de aprender. La sintaxis
de C# basada en signos de llave podr ser reconocida inmediatamente por cualquier
persona familiarizada con C, C++ o Java. Los desarrolladores que conocen cualquiera de
estos lenguajes pueden empezar a trabajar de forma productiva en C# en un plazo muy
breve. La sintaxis de C# simplifica muchas de las complejidades de C++ y proporciona
caractersticas eficaces tales como tipos de valor que admiten valores NULL,
enumeraciones, delegados, expresiones lambda y acceso directo a memoria, que no se
encuentran en Java. C# admite mtodos y tipos genricos, que proporcionan mayor
rendimiento y seguridad de tipos, e iteradores, que permiten a los implementadores de
clases de coleccin definir comportamientos de iteracin personalizados que el cdigo
cliente puede utilizar fcilmente. Las expresiones Language-Integrated Query (LINQ)
convierten la consulta fuertemente tipada en una construccin de lenguaje de primera clase.

Como lenguaje orientado a objetos, C# admite los conceptos de encapsulacin, herencia y


polimorfismo. Todas las variables y mtodos, incluido el mtodo Main que es el punto de
entrada de la aplicacin, se encapsulan dentro de definiciones de clase. Una clase puede
heredar directamente de una clase primaria, pero puede implementar cualquier nmero de
interfaces. Los mtodos que reemplazan a los mtodos virtuales en una clase primaria
requieren la palabra clave override como medio para evitar redefiniciones accidentales. En
C#, una struct es como una clase sencilla; es un tipo asignado en la pila que puede
implementar interfaces pero que no admite la herencia.
Adems de estos principios bsicos orientados a objetos, C# facilita el desarrollo de
componentes de software a travs de varias construcciones de lenguaje innovadoras, entre
las que se incluyen las siguientes:

Firmas de mtodos encapsulados denominadas delegados, que habilitan


notificaciones de eventos con seguridad de tipos.

Propiedades, que actan como descriptores de acceso para variables miembro


privadas.

Atributos, que proporcionan metadatos declarativos sobre tipos en tiempo de


ejecucin.

Comentarios en lnea de documentacin XML.

Language-Integrated Query (LINQ) que proporciona funciones de consulta


integradas en una gran variedad de orgenes de datos.

Si necesita interactuar con otro software de Windows, como objetos COM o archivos DLL
nativos de Win32, podr hacerlo en C# mediante un proceso denominado
"interoperabilidad". La interoperabilidad habilita los programas de C# para que puedan
realizar prcticamente las mismas tareas que una aplicacin C++ nativa. C# admite incluso
el uso de punteros y el concepto de cdigo "no seguro" en los casos en que el acceso directo
a la memoria es totalmente crtico.
El proceso de compilacin de C# es simple en comparacin con el de C y C++, y es ms
flexible que en Java. No hay archivos de encabezado independientes, ni se requiere que los
mtodos y los tipos se declaren en un orden determinado. Un archivo de cdigo fuente de
C# puede definir cualquier nmero de clases, structs, interfaces y eventos.
A continuacin se enumeran otros recursos de C#:

Para disponer de una introduccin general al lenguaje, vea el captulo 1 de


Especificacin del lenguaje C#.

Para obtener informacin detallada sobre aspectos concretos del lenguaje C#, vea
Referencia de C#.

Para obtener ms informacin sobre LINQ, vea LINQ (Language-Integrated


Query).

Para buscar los artculos y recursos ms recientes del equipo de Visual C#, vea
Visual C#.

Arquitectura de la plataforma .NET Framework


Los programas de C# se ejecutan en .NET Framework, un componente que forma parte de
Windows y que incluye un sistema de ejecucin virtual denominado Common Language
Runtime (CLR) y un conjunto unificado de bibliotecas de clases. CLR es la
implementacin comercial de Microsoft de CLI (Common Language Infrastructure), un
estndar internacional que constituye la base para crear entornos de ejecucin y desarrollo
en los que los lenguajes y las bibliotecas trabajan juntos sin ningn problema.
El cdigo fuente escrito en C# se compila en un lenguaje intermedio (IL) conforme con la
especificacin CLI. El cdigo de lenguaje intermedio y recursos tales como mapas de bits y
cadenas se almacenan en disco en un archivo ejecutable denominado ensamblado, cuya
extensin es .exe o .dll generalmente. Un ensamblado contiene un manifiesto que
proporciona informacin sobre los tipos, la versin, la referencia cultural y los requisitos de
seguridad del ensamblado.
Cuando se ejecuta un programa de C#, el ensamblado se carga en CLR, con lo que se
pueden realizar diversas acciones en funcin de la informacin del manifiesto. A
continuacin, si se cumplen los requisitos de seguridad, CLR realiza una compilacin Just
In Time (JIT) para convertir el cdigo de lenguaje intermedio en instrucciones mquina
nativas. CLR tambin proporciona otros servicios relacionados con la recoleccin de
elementos no utilizados automtica, el control de excepciones y la administracin de
recursos. El cdigo ejecutado por CLR se denomina algunas veces "cdigo administrado",
en contraposicin al "cdigo no administrado" que se compila en lenguaje mquina nativo
destinado a un sistema especfico. En el diagrama siguiente se muestran las relaciones en
tiempo de compilacin y tiempo de ejecucin de los archivos de cdigo fuente de C#, las
bibliotecas de clases de .NET Framework, los ensamblados y CLR.

La interoperabilidad del lenguaje es una caracterstica clave de .NET Framework. Como el


cdigo de lenguaje intermedio generado por el compilador de C# cumple la especificacin
de tipos comn (CTS), este cdigo generado en C# puede interactuar con el cdigo
generado en las versiones .NET de Visual Basic, Visual C++ o cualquiera de los ms de 20
lenguajes conformes a CTS. Un nico ensamblado puede contener varios mdulos escritos
en diferentes lenguajes .NET, y los tipos admiten referencias entre s como si estuvieran
escritos en el mismo lenguaje.
Adems de los servicios en tiempo de ejecucin, .NET Framework tambin incluye una
amplia biblioteca de ms de 4.000 clases organizadas en espacios de nombres que
proporcionan una gran variedad de funciones tiles para la entrada y salida de archivos, la
manipulacin de cadenas, el anlisis XML, los controles de los formularios Windows
Forms y muchas tareas ms. La aplicacin de C# tpica utiliza continuamente la biblioteca
de clases de .NET Framework para el tratamiento de las tareas comunes de
"infraestructura".
Para obtener ms informacin sobre .NET Framework, vea Overview of the Microsoft
.NET Framework.

Especificaciones

La especificacin del lenguaje C# es el origen definitivo de la sintaxis y el uso de C#. Esta


especificacin contiene informacin acerca de todos los aspectos del lenguaje, incluidos
muchos aspectos que la documentacin de Visual C# no abarca.
Puede descargar esta especificacin desde el Centro de descarga de Microsoft. Si ha
instalado Visual Studio 2013, tambin encontrar la especificacin en su equipo, en la
carpeta Archivos de programa (x86)/Microsoft Visual Studio
12.0/VC#/Specifications/1033. Sin embargo, las instalaciones de Visual Studio Express
2013 no incluyen este archivo.
Caracteristicas
Caractersticas principales de C#
A continuacin enumeramos las principales caractersticas que definen al
lenguaje de programacin C#. Algunas de estas caractersticas no son propias
del lenguaje, sino de la plataforma .NET, aunque se listan aqu ya que tienen
una implicacin directa en ellenguaje.

Sencillez de uso
C# elimina muchos elementos aadidos por otros lenguajes y quefacilitan su
uso y compresin, como por ejemplo ficheros de cabecera, oficheros fuentes
IDL1 .12. Es por ello que se dice que C# esautocontenido. Adems, no se
incorporan al lenguaje elementos pocotiles, como por ejemplo macros,
herencia mltiple u operadoresdiferentes al operador de aceso a mtodos
(operador punto) paraacceder a miembros de espacios de nombres.

Modernidad
Al ser C# un lenguaje de ltima generacin, incorpora elementos que seha
demostrado a lo largo del tiempo que son muy tiles para elprogramador,
como tipos decimales o
booleanos
, un tipo bsico
string
,as como una instrucin que permita recorrer colecciones con
facilidad(instruccin
foreach

). Estos elementos hay que simularlos en otroslenguajes como C++ o Java.

Orientado a objetos
C# como lenguaje de ltima generacin, y de propsito general, esorientado a
objetos. C# no permite la inclusin de funciones ni variablesglobales que no
estn incluidos en una definicin de tipos, por lo que laorientacin a objetos es
ms pura y clara que en otros lenguajes comoC++. Adems, C# soporta todas
las caractersticas del paradigma de laprogramacin orientada a objetos, como
son la encapsulacin, laherencia y el polimorfismo

Orientado a componentes
La propia sintasix de C# incluye elementos propios del diseo decomponentes
que otros lenguajes tienen que simular. La sintaxis de C#incluye por ejemplo
formas de definir propiedades, eventoso atributos

Recoleccin de basura
Como ya se coment, todo lenguaje incluido en la plataforma .NET tienea su
disposicin el recolector de basura del CLR. Esto implica que no esnecesario
incluir instrucciones de destruccin de objetos en el lenguaje.

Seguridad de tipos
C# incluye mecanismos de control de acceso a tipos de datos, lo quegarantiza
que no se produzcan errores difciles de detectar como unacceso a memoria de
ningn objeto, por ejemplo. Para ello, el lenguajeprovee de una serie de
normas de sintaxis, como por ejemplo no realizarconversiones entre tipos que
no sean compatibles. Adems, no sepueden usar variables no inicializadas
previamente, y en el acceso atablas se hace una comprobacin de rangos para
que no se excedanninguno de los ndices de la misma. Se puede controlar as
mismo los

S-ar putea să vă placă și