Subido por J Carlos Ruiz

INFORMATICA 5120 - Introduccion a C#

Anuncio
C# Básico
Introducción
• C# es un lenguaje para la Programación Orientada a Objetos,
diseñado para el Common Language Runtime ( CLR ) de la plataforma
.NET de Microsoft.
• El CLR es un entorno de ejecución basado en componentes,
ofrecidos por el Framework de la tecnología .NET
• El Common Language Runtime (CLR) es el núcleo de la plataforma
.NET ya que es el encargado de gestionar la ejecución de código
compilado para la plataforma .NET. Puede asimilarse a la máquina
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á
diseñada para que se puedan desarrollar software utilizando casi
cualquier lenguaje de programación.
Introducción
• Esto es, en vez de estar limitados a un único lenguaje de
programación, la plataforma .NET permite cualquier lenguaje de
programación, 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
programación tales como C++, C#, Visual Basic .NET, F#, Java,
Phyton, Ruby, php; entornos de desarrollo web como ASP.NET MVC,
Django, ...
Introducción
• 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 móviles.
• 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 creación de soluciones
en varios lenguajes. Estos lenguajes aprovechan la funcionalidad del
framework .NET que proporciona acceso a las tecnologías clave para
simplificar el desarrollo de aplicaciones .
Introducción
• 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 características avanzadas comoADO.NET (para
acceso a bases de datos), ASP.NET (para generar páginas activas)
y WinForms (para construir aplicaciones Windows).
• Además 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.
Introducción
• El SDK para la plataforma .NET Microsoft pone a disposición de todo aquél
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 documentación, ejemplos,
herramientas en línea 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.
Introducción
• 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 máquina virtual que provee el Common Language Runtime (CLR).
Esto quiere decir que C# no pueda compilarse a código binario dependiente de
la plataforma.
• C# se puede utilizar sólo para el API provisto por el Framework .NET.
• El CLR contiene un compilador en línea o JIT que tiene como labor convertir el
código MSIL a código nativo de la plataforma para la que sea ejecutado.
• Para que un lenguaje de programación sea soportado por la plataforma .NET,
ha de existir un compilador que traduzca de este lenguaje a MSIL. A la hora de
ejecutar el código intermedio, éste es siempre compilado a código nativo.
Introducción
• La producción y ejecución de una aplicación C# es como sigue, en términos
generales:
Código Fuente C#
(nombre.cs)
Compilador
( csc.exe)
Código Intermedio, MSIL
( .exe, .dll )
CLR
Ejecución
Compilador JIT
Introducción
• 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
código intermedio resultado de compilar el código 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
extensión .exe
• Librerias: No tienen un punto de entra principal ( el Main() ) y tienen extension
.DLL
Introducción
• El ejecutable .exe, generado por la compilación del archivo fuente .cs ( tanto
utilizando Visual Studio con la línea 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
código intermedio MSIL (MicroSoft Intermediate Language ), así como
metadatos ( nombres de objetos, nombres y tipos de campos, nombres de
métodos, nombres y tipos de sus parámetros ) y el archivo de manifiesto.
• El archivo .exe puede ser descompilado, esto es, se puede desensamblar a un
aplicación .NET utilizando el desensamblador ILDASM mediante la ejecucion
del programa ildasm.exe suministrado con Visual Studio.
Introducción
Espacios de nombres ( namespace )
• Un espacio de nombres o namespace es una agrupación lógica de tipos, un
directorio lógico dentro de la biblioteca del Framework .NET compuesto de
código 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 más frecuencia que en C++.
• Por ejemplo, el namespace System incluye los tipos básicos, Console, Math,
entre otros.
Introducción
Espacios de nombres ( namespace )
• Al escribir el código C# de una aplicación se utilizan
clases y otros tipos que están definidos en un namespace.
Por eso, se ha de indicar ( en el código ) el namespace al
que pertenecen.
• Para ello se usará la instrucción:
using nombreDelNamespace;
Introducción
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.
Introducción
Espacios de nombres ( namespace )
• using
Esta directiva facilita el uso de un namespace.
• Por ejemplo: Supóngase que se desea utilizar el método estático
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 !! “);
Introducción
Espacios de nombres ( namespace )
• using
Esta directiva facilita el uso de un namespace.
• Por ejemplo: Supóngase que se desea utilizar el método estático
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 !! “);
...
Introducción
Espacios de nombres ( namespace )
• Para incluir una clase en un namespace:
using algunNamespaceRequerido;
...
namespace nombreDelNamespace {
class nombreDeLaClase {
// cuerpo de la clase
}
}
• Más adelante veremos código de ejemplo de uso de estos conceptos.
Introducción
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 estándar para las aplicaciones de
consola. Esta clase no puede heredarse.
Introducción
Biblioteca de clases .NET Framework
• Console
Console (Clase) para .NET Framework 4
Representa los flujos de entrada, salida y error estándar para las aplicaciones de consola.
Esta clase no puede heredarse.
Jerarquía de herencia
System.Object
System.Console
Espacio de nombres: System
Otras informaciones encontradas son Sintaxis, Propiedades. Metodos, Comentarios,
Ejemplos de uso, Información de versión, Plataformas, Seguridad para subprocesos
Introducción
• Para trabajar con C#
• Visual C# <aaaa> Express Edition, la cual usa C# 4.0 and .NET Framework
4.0 ( <aaaa> es el año. Use la que se acomode a su máquina )
• Descargar el paquete de instalación de:
http://www.visualstudio.com/es-es/products/visual-studio-express-vs
• Hacer la instalación completa.
• Eso debería instalar todo lo que usted necesita: el IDE .NET Framework 4.0,
y otras herramientas.
• Otras opciones para instalar la tecnología .NET están disponibles en internet.
Referencias
• C# Concisely; Judith Bishop, Nigel Hospool; Pearson, Addison Wisley 2003.
• Head First C#; Andrew Stellman and Jennifer Greene ; Second Edition; O’Reilly
Media, 2010.
• Desarrollo de aplicaciones .NET con Visual C#; Miguel Rodríguez Gómez-Stern,
Marcos Antonio Besteiro Gorostizaga; McGra2-Hill/Interamericana de España,
S.A.U., 2002.
• Visual C#
Recomendable para
un principiante iniciar
http://msdn.microsoft.com/en-us/library/kx37x362.aspx
por aquí.
•
• Visual C# Language
http://msdn.microsoft.com/en-us/library/aa287558(v=vs.71).aspx
• ...
Agradecimientos
• Agradecimientos especiales al
Maestrísimo Felix Ferreiras por el aporte
de este valioso material para poder
impartir este curso.
• Gracias maestro!!!
Descargar