You are on page 1of 21

C# Bsico

Introduccin
C# es un lenguaje para la Programacin Orientada a Objetos,
diseado para el Common Language Runtime ( CLR ) de la plataforma
.NET de Microsoft.

El CLR es un entorno de ejecucin basado en componentes,


ofrecidos por el Framework de la tecnologa .NET

El Common Language Runtime (CLR) es el ncleo de la plataforma


.NET ya que es el encargado de gestionar la ejecucin de cdigo
compilado para la plataforma .NET. Puede asimilarse a la mquina
virtual de Java, JVM, de la plataforma Java.

La plataforma .NET es la propuesta de Microsoft para competir con la


plataforma Java.

Mientras que Java se caracteriza por el principio "escribir una vez,


ejecutar en cualquier lugar", la plataforma .NET de Microsoft est
diseada para que se puedan desarrollar software utilizando casi
cualquier lenguaje de programacin.
Introduccin
Esto es, en vez de estar limitados a un nico lenguaje de
programacin, la plataforma .NET permite cualquier lenguaje de
programacin, siempre y cuando cumpla con normas establecidas
para dicha en su conjunto.

Existen diversos compiladores para la plataforma .NET: Visual


Basic .NET, C#, Managed C++, Oberon, Component Pascal, Eiffel,
Smalltalk, Cobol, Fortran, Scheme, Mercury, Mondrian/Haskell, Perl,
Python, SML.NET...

Microsoft Visual Studio es un entorno de desarrollo integrado (IDE)


para sistemas operativos Windows. Soporta multiples lenguajes de
programacin tales como C++, C#, Visual Basic .NET, F#, Java,
Phyton, Ruby, php; entornos de desarrollo web como ASP.NET MVC,
Django, ...
Introduccin
El IDE Visual Studio .NET es un conjunto completo de herramientas
de desarrollo para crear aplicaciones ASP Web, servicios Web XML,
aplicaciones de escritorio y aplicaciones mviles.

Visual Basic .NET, Visual C + + .NET, Visual C# .NET y Visual J#


.NET utilizan el mismo entorno de desarrollo integrado (IDE), que
les permite compartir herramientas y facilita la creacin de soluciones
en varios lenguajes. Estos lenguajes aprovechan la funcionalidad del
framework .NET que proporciona acceso a las tecnologas clave para
simplificar el desarrollo de aplicaciones .
Introduccin
Para crear aplicaciones para la plataforma .NET, tanto servicios Web
como aplicaciones tradicionales (aplicaciones de consola, aplicaciones de
ventanas, servicios de Windows NT, etc.), Microsoft ha publicado el denominado
kit de desarrollo de software ( SDK, Software Development Kit ) conocido
como Framework .NET.

El SDK .NET Framework Contiene el CLR (Common Languaje Runtime),


el .NET Framework Classes y caractersticas avanzadas comoADO.NET (para
acceso a bases de datos), ASP.NET (para generar pginas activas)
y WinForms (para construir aplicaciones Windows).

Adems del SDK .NET Framework se puede emplear el IDE Visual


Studio.NET que permite hacer todo la anterior desde una interfaz visual basada
en ventanas.

Ambas herramientas pueden descargarse de manera gratuita


desde: http://www.msdn.microsoft.com/net.
Introduccin
El SDK para la plataforma .NET Microsoft pone a disposicin de todo aqul
que est interesado el kit de desarrollo de software para la plataforma .NET: The
Microsoft .NET Framework Software Development Kit (SDK). Este kit incluye la
plataforma .NET y todo lo necesario para desarrollar, compilar, probar y distribuir
aplicaciones para la plataforma .NET (as como documentacin, ejemplos,
herramientas en lnea de comandos y compiladores).

El Visual Studio .NET ya incluye la plataforma .NET, por lo que, si ya tiene


instalado el Visual Studio .NET no tendr que instalar el SDK por separado.
Introduccin
C# se compila a un Lenguaje Intermedio llamado MSIL (Microsoft Intermediate
Language), que no es binario dependiente de la plataforma, sino que se ejecuta
sobre unba mquina virtual que provee el Common Language Runtime (CLR).
Esto quiere decir que C# no pueda compilarse a cdigo binario dependiente de
la plataforma.

C# se puede utilizar slo para el API provisto por el Framework .NET.

El CLR contiene un compilador en lnea o JIT que tiene como labor convertir el
cdigo MSIL a cdigo nativo de la plataforma para la que sea ejecutado.

Para que un lenguaje de programacin sea soportado por la plataforma .NET,


ha de existir un compilador que traduzca de este lenguaje a MSIL. A la hora de
ejecutar el cdigo intermedio, ste es siempre compilado a cdigo nativo.
Introduccin
La produccin y ejecucin de una aplicacin C# es como sigue, en trminos
generales:

Cdigo Fuente C#
(nombre.cs) Compilador Cdigo Intermedio, MSIL
( csc.exe) ( .exe, .dll )

CLR
Ejecucin Compilador JIT
Introduccin
El CLR realmente trabaja con assemblies.

Un assembly es un archivo con un formato parecido al formato PE - Portable


Executable (PE) format - , utilizado por los archivos .exe y .DLL ) que contiene el
cdigo intermedio resultado de compilar el cdigo fuente, los metadatos y otros archivos
necesarios para poder ejecutar el assembly.

Un assembly tambien contiene un archivo llamado Archivo manifiesto o manifest, el


cual indica los assemblies de los que depende, los archivos que contiene, controla los
tipos y recursos expuestos por el assembly y establece un mapeo entre esos tipos y
recursos y los archivos que contienen esos tipos y recursos.

Existen dos tipos de assemblies:

Aplicaciones: Tienen un punto de entrada principal y unico ( el Main() ) y tienen


extensin .exe
Librerias: No tienen un punto de entra principal ( el Main() ) y tienen extension
.DLL
Introduccin
El ejecutable .exe, generado por la compilacin del archivo fuente .cs ( tanto
utilizando Visual Studio con la lnea de comando ), NO ES REALMENTE UN
EJECUTABLE, aunque aparezca con la extension .exe;

El archivo .exe tiene un formato muy similar a un ejecutable ( En C#, el


formato de un .exe es PE - Portable Executable (PE) format - ) pero contiene
cdigo intermedio MSIL (MicroSoft Intermediate Language ), as como
metadatos ( nombres de objetos, nombres y tipos de campos, nombres de
mtodos, nombres y tipos de sus parmetros ) y el archivo de manifiesto.

El archivo .exe puede ser descompilado, esto es, se puede desensamblar a un


aplicacin .NET utilizando el desensamblador ILDASM mediante la ejecucion
del programa ildasm.exe suministrado con Visual Studio.
Introduccin
Espacios de nombres ( namespace )

Un espacio de nombres o namespace es una agrupacin lgica de tipos, un


directorio lgico dentro de la biblioteca del Framework .NET compuesto de
cdigo relacionado entre s.

Es el equivalente a los package en Java.

En C# todo est empacado en una clase y las clases se empaqueta en


namespaces (al igual que los archivos de una carpeta).

Cada clase se empaqueta en un namespace. Los espacios de nombres son


exactamente el mismo concepto que en C++, pero en C# los namespaces son
utilizados con ms frecuencia que en C++.

Por ejemplo, el namespace System incluye los tipos bsicos, Console, Math,
entre otros.
Introduccin
Espacios de nombres ( namespace )

Al escribir el cdigo C# de una aplicacin se utilizan


clases y otros tipos que estn definidos en un namespace.
Por eso, se ha de indicar ( en el cdigo ) el namespace al
que pertenecen.

Para ello se usar la instruccin:

using nombreDelNamespace;
Introduccin
Espacios de nombres ( namespace )

Para acceder a una clase en un namespace se utiliza el calificador de


punto (.):

nombreDelNamespace.nombreDeLaClase.metodoDeLaClase;

Los espacios de nombre se pueden anidar.


Introduccin
Espacios de nombres ( namespace )

using

Esta directiva facilita el uso de un namespace.

Por ejemplo: Supngase que se desea utilizar el mtodo esttico


WriteLine() de la clase Console que est incluida en el namespace
System. Esto podemos hacerlo de dos maneras:

Llamando la clase directamente:

System.Console.WriteLine(Estamos en C#, Wao !! );


Introduccin
Espacios de nombres ( namespace )

using

Esta directiva facilita el uso de un namespace.

Por ejemplo: Supngase que se desea utilizar el mtodo esttico


WriteLine() de la clase Console que est incluida en el namespace
System. Esto podemos hacerlo de dos maneras:

Usando using :

using System;
...
Console.WriteLine(Estamos en C#, Wao !! );
...
Introduccin
Espacios de nombres ( namespace )

Para incluir una clase en un namespace:

using algunNamespaceRequerido;
...
namespace nombreDelNamespace {

class nombreDeLaClase {
// cuerpo de la clase
}
}

Ms adelante veremos cdigo de ejemplo de uso de estos conceptos.


Introduccin
Biblioteca de clases .NET Framework

Esta compuesta de un vasto conjunto de espacios de nombre (namespace).

Es la base sobre la que se compilan las aplicaciones de .NET Framework,


proporcionando acceso a la funcionalidad del sistema.

En http://msdn.microsoft.com/es-es/library/gg145045(v=vs.100).aspx se puede
ver la .NET Framework 4.0

Seleccionando el namespace System en el link anterior tendremos acceso a


todas las clases de System.

En System, por ejemplo, seleccionamos la clase Console, la cual representa


los flujos de entrada, salida y error estndar para las aplicaciones de
consola. Esta clase no puede heredarse.
Introduccin
Biblioteca de clases .NET Framework

Console

Console (Clase) para .NET Framework 4

Representa los flujos de entrada, salida y error estndar para las aplicaciones de consola.
Esta clase no puede heredarse.

Jerarqua de herencia

System.Object
System.Console

Espacio de nombres: System

Otras informaciones encontradas son Sintaxis, Propiedades. Metodos, Comentarios,


Ejemplos de uso, Informacin de versin, Plataformas, Seguridad para subprocesos
Introduccin
Para trabajar con C#

Visual C# <aaaa> Express Edition, la cual usa C# 4.0 and .NET Framework
4.0 ( <aaaa> es el ao. Use la que se acomode a su mquina )

Descargar el paquete de instalacin de:

http://www.visualstudio.com/es-es/products/visual-studio-express-vs

Hacer la instalacin completa.

Eso debera instalar todo lo que usted necesita: el IDE .NET Framework 4.0,
y otras herramientas.

Otras opciones para instalar la tecnologa .NET estn disponibles en internet.


Referencias

C# Concisely; Judith Bishop, Nigel Hospool; Pearson, Addison Wisley 2003.

Head First C#; Andrew Stellman and Jennifer Greene ; Second Edition; OReilly
Media, 2010.

Desarrollo de aplicaciones .NET con Visual C#; Miguel Rodrguez Gmez-Stern,


Marcos Antonio Besteiro Gorostizaga; McGra2-Hill/Interamericana de Espaa,
S.A.U., 2002.

Visual C# Recomendable para


http://msdn.microsoft.com/en-us/library/kx37x362.aspx un principiante iniciar
por aqu.

Visual C# Language
http://msdn.microsoft.com/en-us/library/aa287558(v=vs.71).aspx
...
Agradecimientos
Agradecimientos especiales al
Maestrsimo Felix Ferreiras por el aporte
de este valioso material para poder
impartir este curso.
Gracias maestro!!!

You might also like