Está en la página 1de 30

Sesin 1.

Fundamentos de C#
Versin 1.0

Curso de Enseanzas Propias Lenguaje de Programacin C# Curso 2008/09

Ignacio Garca, Ismael Caballero {Ignacio.GRodriguez, Ismael.Caballero}@uclm.es Universidad de Castilla La Mancha

Sesin 1

Agenda de la Sesin

Objetivo S.1.1. Introduccin a Plataforma .NET S.1.2. Introduccin a Visual Studio 2005 S.1.3. Introduccin a C# CAF

Duracin 09:00-11:00

11:00 -11:30

S.1.4. POO en C#

11:30-14:00

2
CEP "Lenguaje de Programacin C#"- Curso 08/09

Sesin 1.1. Introduccin a la Plataforma .NET


Versin 1.0
[Material adaptado del Confeccionado por Francisco Ruiz y Manuel Serrano para el CEP VB.NET]

Curso de Enseanzas Propias Lenguaje de Programacin C# Curso 2008/09

Ignacio Garca, Ismael Caballero {Ignacio.GRodriguez, Ismael.Caballero}@uclm.es Universidad de Castilla La Mancha

Sesin 1.1.

Contenidos

1. 2. 3. 4. 5.

La Plataforma .NET .NET Framework Entorno de Ejecucin Comn Biblioteca de Clases Comn Especificacin del Lenguaje Comn

4
CEP "Lenguaje de Programacin C#"- Curso 08/09

1. Plataforma .NET

Definicin de la Plataforma .NET Qu es .NET?


Una arquitectura tecnolgica para la creacin y distribucin de software como servicio.
Servicio en cualquier plataforma, cliente en cualquier dispositivo, programacin en cualquier lenguaje, integracin basada en estndares.

Qu incluye?
.NET Framework, infraestructura para la creacin y ejecucin de las aplicaciones. Visual Studio .NET, entorno de desarrollo integrado (IDE). Otros servicios.

5
CEP "Lenguaje de Programacin C#"- Curso 08/09

1. Plataforma .NET

Objetivo Fundamentales

Nueva manera de desarrollar software 1996 Internet 1st Gen 1997 Internet 2nd Gen 2000 Internet 3rd Gen

IE/IIS DNA/COM+
1992 Cliente/Servidor

.NET

Win32
6
CEP "Lenguaje de Programacin C#"- Curso 08/09

1. Plataforma .NET

Objetivo Fundamentales (II)

Soporte multi-lenguaje
La plataforma .NET es independiente del lenguaje
Todos los lenguajes .NET son considerados por igual Un Runtime nico => mejor aprovechamiento de los conocimientos existentes

Es posible integrar otros lenguajes y crear otros compiladores


Common Language Specification (CLS)

Lenguajes disponibles:
Por Microsoft: Visual Basic, C++, C#, J# Por terceros: APL, COBOL, Pascal, Eiffel, Haskell, ML, Oberon, Perl, Python, Scheme, Smalltalk, Fortran,

7
CEP "Lenguaje de Programacin C#"- Curso 08/09

1. Plataforma .NET

Objetivo Fundamentales (III) Soporte multilenguaje

8
CEP "Lenguaje de Programacin C#"- Curso 08/09

1. Plataforma .NET

Objetivo Fundamentales (IV)

Soporte multi-plataforma
Proyecto Rotor
Common Language Infraestructure (CLI) Cdigo fuente abierto, no comercial, modificable Compilar/ejecutar en FreeBSD, Windows, Mac OS X
http://msdn.microsoft.com/net/sscli

Proyecto Mono
Implementacin Open Source del .NET Framework Compilador de C#, VB.NET, CLR, librera de clases, etc. Linux, S390, SPARC, HPPA Implementa ADO.NET, ASP.NET, etc.
www.go-mono.com

9
CEP "Lenguaje de Programacin C#"- Curso 08/09

1. Plataforma .NET

Objetivo Fundamentales (V)

Basado en estndares
XML (XML Schemas, Xpath, XSLT) Servicios Web
SOAP (Simple Object Access Protocol) UDDI (Universal Description, Discovery & Integration) WSDL (Web Service Description Language)

Lenguaje intermedio comn CIL Lenguaje de programacin C#

10
CEP "Lenguaje de Programacin C#"- Curso 08/09

1. Plataforma .NET

Estrategias de Desarrollo
Facilitar la integracin del software permitiendo Diversas plataformas (Windows, UNIX, Mainframe)
Diferentes middleware de componentes (DDE, COM, CORBA) Diferentes sistemas operativos

Homogeneizar lenguajes mediante


Sistema de Tipos Comn Biblioteca de Clases base comunes

Redefinir soluciones preexistentes como servicios Simplificar la forma de programar mediante


Orientacin a objetos plena: clases, interfaces, constructores, atributos, mtodos, herencia inter-lenguajes, Herramientas y entorno comunes para todos los desarrollos. Interoperabilidad pre-construida (con COM, DLLs, etc.) Un Framework que libera al programador de muchas tareas: memoria, seguridad, etc.

11
CEP "Lenguaje de Programacin C#"- Curso 08/09

1. Plataforma .NET

Estrategias de Desarrollo (II)


Paradigma de desarrollo unificado
API consistente independiente del lenguaje y el modelo de programacin

.NET Framework
RAD, Composicin, Delegacin OOP, Potencia, Expresividad Web, Estndar, En HTML

VB Forms

MFC/ATL

ASP

Windows API
12
CEP "Lenguaje de Programacin C#"- Curso 08/09

1. Plataforma .NET

Estrategias de Implantacin
Instalacin de impacto cero
Aplicaciones y componentes compartidos o privados

Ejecucin side-by-side
Coexistencia de varias versiones del mismo componente

Ensamblados (Assemblies)
Coleccin de funcionalidad creada, versionada e implantada como una unidad de implementacin nica (incluyendo uno o varios archivos) Son autodescriptivos En tiempo de ejecucin se resuelven las referencias entre componentes, se garantiza la poltica de enlace de versiones y se valida la integridad de los ensamblados cargados. El Manifiesto (Manifest) contiene los metadatos del ensamblado incluyendo
la identidad del ensamblado los archivos que implementan el ensamblado las dependencias en tiempo de compilacin con otros ensamblados los tipos y recursos que forman el ensamblado el conjunto de permisos para ejecutarse apropiadamente

13
CEP "Lenguaje de Programacin C#"- Curso 08/09

1. Plataforma .NET

Estrategias de Implantacin (II)


Ventajas de los Ensamblados:
No son necesarios ms archivos para usar el componente No ms archivos de cabeceras, IDL, libreras de tipos, ... Se reduce la dependencia del Registro No ms infierno de las DLLs: se evitan las faltas de sincronismo entre una librera compartida respecto de la aplicacin que la invoca Sistema de nombres robusto Auto-reparacin de aplicaciones

14
CEP "Lenguaje de Programacin C#"- Curso 08/09

Sesin 1.1.

Contenidos

1. 2. 3. 4. 5.

La Plataforma .NET .NET Framework Entorno de Ejecucin Comn Biblioteca de Clases Comn Especificacin del Lenguaje Comn

15
CEP "Lenguaje de Programacin C#"- Curso 08/09

2. .NET Framework

Caractersticas De cara al programador, el .NET framework es la pieza base de .NET, ya que proporciona las herramientas y servicios para desarrollar el software:
Entorno de Ejecucin Comn (CLR) Biblioteca de clases bsicas Motor de generacin de interfaces de usuario
Web (ASP .NET) Tradicionales Windows (Windows Forms)

Especificacin de Lenguaje Comn (CLS)

16
CEP "Lenguaje de Programacin C#"- Curso 08/09

2. .NET Framework

Elementos VB C++ C# J# Cobol Visual Studio.NET

Common Language Specification ASP.NET Windows Forms

ADO.NET and XML Base Class Library Common Language Runtime Windows COM+ Services

17
CEP "Lenguaje de Programacin C#"- Curso 08/09

Sesin 1.1.

Contenidos

1. 2. 3. 4. 5.

La Plataforma .NET .NET Framework Entorno de Ejecucin Comn Biblioteca de Clases Comn Especificacin del Lenguaje Comn

18
CEP "Lenguaje de Programacin C#"- Curso 08/09

3. Entorno de Ejecucin Comn

Common Language Runtime-CLR


Es un motor encargado de la gestin del cdigo de las aplicaciones en cuanto a su
Carga Ejecucin Manipulacin de memoria Seguridad Etc.

Servicios que proporciona:


En tiempo de ejecucin
Gestin de memoria (incluida recoleccin de basura), gestin de procesos, threads (hilos), garantizar seguridad, satisfacer dependencias sobre otros componentes.

En tiempo de desarrollo
Gestin del tiempo de vida, nominacin de tipos robusta, tratamiento de excepciones multilenguaje, gestin de eventos basada en delegados, enlace dinmico, ..

19
CEP "Lenguaje de Programacin C#"- Curso 08/09

3. Entorno de Ejecucin Comn

Common Language Runtime-CLR (II) Sistema de Tipos Comn (CTS) Soporte Threads Control Tipos Motor Seguridad Lenguaje Intermedio (IL) Componentes Gestor Excepciones Motor Depuracin Recolector de basura

Gestor de cdigo

Carga de clases y disposicin en memoria


20
CEP "Lenguaje de Programacin C#"- Curso 08/09

3. Entorno de Ejecucin Comn

Lenguaje Intermedio IL
VB Cdigo Nativo
Cdigo generado instalacin

VC

...

Script

IL

Common Language Runtime


Econo-JIT Compilador Standard JIT Compilador

Cdigo Nativo

21
CEP "Lenguaje de Programacin C#"- Curso 08/09

3. Entorno de Ejecucin Comn

Compilacin y Ejecucin Compilacin Cdigo Fuente Compilador Lenguaje


Ensamblado
Metadatos Cdigo IL

Al instalar o la primera vez que cada mtodo es llamado

Cdigo nativo

Compilador JIT Ejecucin


22

CEP "Lenguaje de Programacin C#"- Curso 08/09

3. Entorno de Ejecucin Comn

Sistemas de Tipos Comn - CTS Common Type System


Conjunto estndar de tipos y reglas para crear nuevos tipos Integracin multi-lenguaje:
Heredar implementaciones de clases escritas en otros lenguajes Invocar excepciones de cdigo entre lenguajes Depurar transparentemente

No ms versiones de libreras para cada lenguaje o compilador! No ms libreras de clases limitadas a un lenguaje concreto! Todas las implementaciones de clases, interfaces, estructuras, etc., nativas o creadas por el programador, son tipos .NET. Todos los tipos .NET son objetos.
Dim sNombre As String sNombre = "coche" MessageBox.Show(sNombre.Length) ' devuelve 5

23
CEP "Lenguaje de Programacin C#"- Curso 08/09

3. Entorno de Ejecucin Comn

Sistemas de Tipos Comn CTS (II) Categoras de tipos

24
CEP "Lenguaje de Programacin C#"- Curso 08/09

3. Entorno de Ejecucin Comn

Sistemas de Tipos Comn CTS (III)

25
CEP "Lenguaje de Programacin C#"- Curso 08/09

Sesin 1.1.

Contenidos

1. 2. 3. 4. 5.

La Plataforma .NET .NET Framework Entorno de Ejecucin Comn Biblioteca de Clases Comn Especificacin del Lenguaje Comn

26
CEP "Lenguaje de Programacin C#"- Curso 08/09

4. Biblioteca de Clases Comn

Distintos APIs
System.Web
Services Description Discovery Protocols Caching Configuration UI HtmlControls VBWebControls C# C++

System.WinForms
Design J# ComponentModel Cobol

Common Language Specification Security Drawing2D Printing SessionState Imaging Forms Text ASP.NET Windows ADO.NET and XML System.Xml SQL XSLT Serialization Base Class Library SQLTypes XPath Common Language Runtime Windows IO Net Reflection Resources

System.Drawing

System.Data
ADO Design

System

Collections Configuration Diagnostics Globalization

COM+ Services Security Runtime InteropServices ServiceProcess Remoting Text Serialization Threading 27

CEP "Lenguaje de Programacin C#"- Curso 08/09

4. Biblioteca de Clases Comn

Distintos APIs (II)


Lo que ve el desarrollador
Un API formada por un conjunto de bibliotecas de clases comunes, orientadas a objetos, jerrquicas y extensibles que
proveen soporte completo para la programacin de diversos tipos de aplicaciones permiten herencia entre lenguajes, gestin de errores y depuracin

Las clases estn organizadas de forma lgica y jerrquica en namespaces


System, XML, Data (ADO .NET), Drawing, WinForms, Web (ASP.NET) Facilita reutilizacin Evita colisiones

No es necesario aprender mltiples modelos de objetos:


Visual C: MFC, Visual J++: WFC, Visual Basic: Fw

28
CEP "Lenguaje de Programacin C#"- Curso 08/09

Sesin 1.1.

Contenidos

1. 2. 3. 4. 5.

La Plataforma .NET .NET Framework Entorno de Ejecucin Comn Biblioteca de Clases Comn Especificacin del Lenguaje Comn

29
CEP "Lenguaje de Programacin C#"- Curso 08/09

5. Especificacin del Lenguaje Comn

Common Language Specification (CLS)

Conjunto de caractersticas comunes que


deben cumplir todos los lenguajes. Su finalidad es
Independencia del lenguaje Integracin entre lenguajes Apertura a nuevos lenguajes
VB C++ C# J# Cobol

Common Language Specification ASP.NET Windows Forms

ADO.NET and XML Base Class Library Common Language Runtime Windows COM+ Services

30
CEP "Lenguaje de Programacin C#"- Curso 08/09