introducción a.net facilitador: christian alexander martinez

27
Introducción a .NET Introducción a .NET Facilitador: Facilitador: Christian Alexander Christian Alexander Martinez Martinez

Upload: maria-luisa-aguirre-caceres

Post on 24-Jan-2016

226 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introducción a.NET Facilitador: Christian Alexander Martinez

Introducción a .NETIntroducción a .NET

Facilitador:Facilitador:Christian Alexander MartinezChristian Alexander Martinez

Page 2: Introducción a.NET Facilitador: Christian Alexander Martinez

ObjetivosObjetivos

Al finalizar esta sesión, los Al finalizar esta sesión, los estudiantes estarán en capacidad estudiantes estarán en capacidad de:de:comprender el entorno de desarrollo comprender el entorno de desarrollo de VB.NET y los elementos básico de de VB.NET y los elementos básico de la programación orientada a objetos la programación orientada a objetos en .NET y sea capaz de aplicarlos en en .NET y sea capaz de aplicarlos en la creación de aplicaciones de la creación de aplicaciones de consola y Windows.consola y Windows.

Page 3: Introducción a.NET Facilitador: Christian Alexander Martinez

¿Qué NO es .NET?¿Qué NO es .NET?

.NET no es un Sistema Operativo.NET no es un Sistema Operativo

.NET no es un Lenguaje de .NET no es un Lenguaje de ProgramaciónProgramación

.NET no es un Entorno de Desarrollo.NET no es un Entorno de Desarrollo

.NET no es un Servidor de .NET no es un Servidor de AplicacionesAplicaciones

.NET no es un producto empaquetado .NET no es un producto empaquetado que se pueda comprar como talque se pueda comprar como tal

Page 4: Introducción a.NET Facilitador: Christian Alexander Martinez

¿Qué es .NET?¿Qué es .NET?Plataforma de Desarrollo compuesta Plataforma de Desarrollo compuesta dede Entorno de Ejecución (Runtime)Entorno de Ejecución (Runtime) Bibliotecas de Funcionalidad (Class Bibliotecas de Funcionalidad (Class

Library)Library) Lenguajes de ProgramaciónLenguajes de Programación CompiladoresCompiladores Herramientas de Desarrollo (IDE & Herramientas de Desarrollo (IDE &

Tools)Tools) Guías de ArquitecturaGuías de Arquitectura

La evolución de la plataforma COMLa evolución de la plataforma COM

Page 5: Introducción a.NET Facilitador: Christian Alexander Martinez

.NET como evolución de .NET como evolución de COMCOMEntorno de Ejecución (Runtime)Entorno de Ejecución (Runtime)

COM: WindowsCOM: Windows .NET: Common Language Runtime.NET: Common Language Runtime

Librerías de FuncionalidadLibrerías de Funcionalidad COM: Algunas (ADO, FSO, etc.)COM: Algunas (ADO, FSO, etc.) .NET: Muy extensa (.NET Framework Class .NET: Muy extensa (.NET Framework Class

Library)Library)

Lenguajes de ProgramaciónLenguajes de Programación COM: VB, C++, VFP, ASP, J++COM: VB, C++, VFP, ASP, J++ .NET: Common Language Specification.NET: Common Language Specification

Entorno de Desarrollo (IDE)Entorno de Desarrollo (IDE) COM: Uno para cada lenguajeCOM: Uno para cada lenguaje .NET: Uno independiente del lenguaje (VS.NET).NET: Uno independiente del lenguaje (VS.NET)

Page 6: Introducción a.NET Facilitador: Christian Alexander Martinez

¿Qué es el .NET Framework?¿Qué es el .NET Framework?

Paquete de software fundamental de Paquete de software fundamental de la plataforma .NET. Incluye:la plataforma .NET. Incluye: Entorno de Ejecución (Runtime)Entorno de Ejecución (Runtime) Bibliotecas de Funcionalidad (Class Library)Bibliotecas de Funcionalidad (Class Library)

Se distribuye en forma libre y Se distribuye en forma libre y gratuitagratuita

Existen tres variantes principales:Existen tres variantes principales: .NET Framework Redistributable .NET Framework Redistributable

PackagePackage .NET Framework SDK.NET Framework SDK .NET Compact Framework .NET Compact Framework

Está instalado por defecto en Está instalado por defecto en Windows 2003 Server o superiorWindows 2003 Server o superior

Page 7: Introducción a.NET Facilitador: Christian Alexander Martinez

.NET Compact Framework

*

*

AplicaciónMóvil

Aplicación de Consola

Aplicación Web

Aplicación de Escritorio

¿Dónde instalar el .NET ¿Dónde instalar el .NET Framework?Framework?

ServidorCliente

* Sólo si la aplicación es distribuída* Sólo si la aplicación es distribuída

Page 8: Introducción a.NET Facilitador: Christian Alexander Martinez

CLR – Common Language CLR – Common Language RuntimeRuntime

El CLR es el motor de ejecución El CLR es el motor de ejecución (runtime) de .NET(runtime) de .NETCaracterísticasCaracterísticas Compilación Just-In-Time (JIT)Compilación Just-In-Time (JIT) Gestión automática de memoria Gestión automática de memoria

(Garbage Collector)(Garbage Collector) Gestión de errores consistente Gestión de errores consistente

(Excepciones)(Excepciones) Ejecución basada en componentes Ejecución basada en componentes

(Assemblies)(Assemblies) Gestión de SeguridadGestión de Seguridad MultithreadingMultithreading

Page 9: Introducción a.NET Facilitador: Christian Alexander Martinez

Código Código FuenteFuenteCódigo Código FuenteFuente

Cualquier Cualquier lenguaje .NETlenguaje .NET

CompiladorCompilador

AssemblyAssembly (MSIL)(MSIL)

AssemblyAssembly (MSIL)(MSIL)

BibliotecaBibliotecao Ejecutableo Ejecutable

CLR – Proceso de CLR – Proceso de CompilaciónCompilación

Page 10: Introducción a.NET Facilitador: Christian Alexander Martinez

.NET Framework Class .NET Framework Class LibraryLibrary

Conjunto de Tipos básicos (clases, interfaces, etc.) que vienen incluídos en el .NET Framework Los tipos están organizados en jerarquías lógicas de nombres, denominados NAMESPACESLos tipos son INDEPENDIENTES del lenguaje de desarrolloEs extensible y totalmente orientada a objetos

Page 11: Introducción a.NET Facilitador: Christian Alexander Martinez

CTS (Common Type System)CTS (Common Type System)Define un conjunto común de “tipos” de Define un conjunto común de “tipos” de datos orientados a objetosdatos orientados a objetos

Todo lenguaje de programación .NET debe Todo lenguaje de programación .NET debe implementar los tipos definidos por el CTSimplementar los tipos definidos por el CTS

Todo tipo hereda Todo tipo hereda directa o directa o indirectamente indirectamente del tipo del tipo System.ObjectSystem.Object

Define Tipos de Define Tipos de VALOR y de VALOR y de REFERENCIAREFERENCIA

Todo tipo hereda Todo tipo hereda directa o directa o indirectamente indirectamente del tipo del tipo System.ObjectSystem.Object

Define Tipos de Define Tipos de VALOR y de VALOR y de REFERENCIAREFERENCIA

Page 12: Introducción a.NET Facilitador: Christian Alexander Martinez

Entorno de ProgramaciónEntorno de Programación

También conocidos como IDEsTambién conocidos como IDEsHerramienta esencial a la hora de Herramienta esencial a la hora de desarrollar softwaredesarrollar softwareIncluyeIncluye EditorEditor Intérprete o CompiladorIntérprete o Compilador DepuradorDepurador Ayuda en líneaAyuda en línea

Page 13: Introducción a.NET Facilitador: Christian Alexander Martinez

BibliotecasBibliotecas

Archivo independiente que contiene Archivo independiente que contiene un conjunto de subprogramasun conjunto de subprogramasPueden ser incluidas y referenciadas Pueden ser incluidas y referenciadas en el desarrollo de múltiples en el desarrollo de múltiples programasprogramasFacilitan la modularización de un Facilitan la modularización de un programaprogramaDesarrollo Desarrollo Programa Fuente Programa FuenteCompilación Compilación Programa Objeto Programa ObjetoLink-Edición Link-Edición Programa Ejecutable Programa Ejecutable

Page 14: Introducción a.NET Facilitador: Christian Alexander Martinez

¿Qué es un Objeto?¿Qué es un Objeto?

Informalmente, un objeto representa Informalmente, un objeto representa una entidad del mundo realuna entidad del mundo realEntidades Físicas Entidades Físicas

(Ej.: (Ej.: Vehículo, Casa, ProductoVehículo, Casa, Producto))

Entidades Conceptuales Entidades Conceptuales (Ej.: Proceso Químico, (Ej.: Proceso Químico, Transacción Transacción

BancariaBancaria))

Entidades de Software Entidades de Software (Ej.: Lista Enlazada, (Ej.: Lista Enlazada, Interfaz GráficaInterfaz Gráfica))

Page 15: Introducción a.NET Facilitador: Christian Alexander Martinez

¿Qué es un Objeto?¿Qué es un Objeto?

Definición Formal Definición Formal (Rumbaugh)(Rumbaugh):: ““Un objeto es un concepto, abstracción Un objeto es un concepto, abstracción

o cosa con un significado y límites o cosa con un significado y límites claros en el problema en cuestión” claros en el problema en cuestión”

Un objeto posee (Booch):Un objeto posee (Booch): EstadoEstado ComportamientoComportamiento IdentidadIdentidad

Page 16: Introducción a.NET Facilitador: Christian Alexander Martinez

Un objeto posee EstadoUn objeto posee Estado

Lo que el objeto sabeLo que el objeto sabeEl estado de un objeto es una de las El estado de un objeto es una de las posibles condiciones en que el objeto posibles condiciones en que el objeto puede existirpuede existirEl estado normalmente cambia en el El estado normalmente cambia en el transcurso del tiempotranscurso del tiempoEl estado de un objeto es El estado de un objeto es implementado por un conjunto de implementado por un conjunto de propiedades (atributos), además de propiedades (atributos), además de las conexiones que puede tener con las conexiones que puede tener con otros objetosotros objetos

Page 17: Introducción a.NET Facilitador: Christian Alexander Martinez

Un objeto posee Un objeto posee ComportamientoComportamiento

Lo que el objeto puede hacerLo que el objeto puede hacerEl comportamiento de un objeto El comportamiento de un objeto determina cómo éste actúa y determina cómo éste actúa y reacciona frente a las peticiones de reacciona frente a las peticiones de otros objetosotros objetosEs modelado por un conjunto de Es modelado por un conjunto de mensajes a los que el objeto puede mensajes a los que el objeto puede responder (operaciones que puede responder (operaciones que puede realizar)realizar)Se implementa mediante métodosSe implementa mediante métodos

Page 18: Introducción a.NET Facilitador: Christian Alexander Martinez

Un objeto posee IdentidadUn objeto posee Identidad

Cada objeto tiene una identidad Cada objeto tiene una identidad única, incluso si su estado es única, incluso si su estado es idéntico al de otro objetoidéntico al de otro objeto

Page 19: Introducción a.NET Facilitador: Christian Alexander Martinez

¿Qué es una Clase?¿Qué es una Clase?

Una clase es una descripción de un Una clase es una descripción de un grupo de objetos con: grupo de objetos con: Propiedades en común (atributos)Propiedades en común (atributos) Comportamiento similar (operaciones)Comportamiento similar (operaciones) La misma forma de relacionarse con La misma forma de relacionarse con

otros objetos (relaciones)otros objetos (relaciones) Una semántica en común (significan lo Una semántica en común (significan lo

mismo)mismo)

Una clase es una abstracción que:Una clase es una abstracción que: Enfatiza las características relevantesEnfatiza las características relevantes Suprime otras características Suprime otras características

(simplificación)(simplificación)

Un objeto es una instancia de una Un objeto es una instancia de una claseclase

Page 20: Introducción a.NET Facilitador: Christian Alexander Martinez

Objetos y ClasesObjetos y ClasesUna clase es una definición abstracta de Una clase es una definición abstracta de un objetoun objeto Define la estructura y el comportamiento Define la estructura y el comportamiento

compartidos por los objetoscompartidos por los objetos Sirve como modelo para la creación de objetos Sirve como modelo para la creación de objetos

Los objetos pueden ser agrupados en Los objetos pueden ser agrupados en clasesclases

Page 21: Introducción a.NET Facilitador: Christian Alexander Martinez

Ejemplo de una ClaseEjemplo de una ClaseClase: CursoClase: CursoEstado (Atributos)Estado (Atributos) NombreNombre UbicaciónUbicación Días OfrecidosDías Ofrecidos Horario de InicioHorario de Inicio Horario de TérminoHorario de Término

Comportamiento (Métodos)Comportamiento (Métodos) Agregar un AlumnoAgregar un Alumno Borrar un AlumnoBorrar un Alumno Entregar un Listado del CursoEntregar un Listado del Curso Determinar si está CompletoDeterminar si está Completo

Page 22: Introducción a.NET Facilitador: Christian Alexander Martinez

Modificadores de AccesoModificadores de Acceso

Permiten definir el nivel de acceso Permiten definir el nivel de acceso (visibilidad) de los miembros (visibilidad) de los miembros (atributos o métodos) de una clase(atributos o métodos) de una clase Publico: Cualquier clase puede “ver” los Publico: Cualquier clase puede “ver” los

miembros públicos de otra clasemiembros públicos de otra clase Privado: Sólo la clase puede ver sus Privado: Sólo la clase puede ver sus

propios miembros privadospropios miembros privados

Existen otros dos modificadores para Existen otros dos modificadores para propósitos específicos (Paquete, propósitos específicos (Paquete, Protegido)Protegido)

Page 23: Introducción a.NET Facilitador: Christian Alexander Martinez

Pilares de la Orientación a Pilares de la Orientación a ObjetosObjetos

RelacionesRelaciones

HerenciaHerencia

AbstracciónAbstracción

Encapsulamiento Encapsulamiento

Page 24: Introducción a.NET Facilitador: Christian Alexander Martinez

Interfaces Interfaces

Recurso de diseño soportado por los Recurso de diseño soportado por los lenguajes orientados a objetos que lenguajes orientados a objetos que permite definir comportamientopermite definir comportamientoPermite que clases que no están Permite que clases que no están estrechamente relacionadas entre sí estrechamente relacionadas entre sí deban tener el mismo deban tener el mismo comportamientocomportamientoLa implementación de una interfaz La implementación de una interfaz es un contrato que obliga a la clase a es un contrato que obliga a la clase a implementar todos los métodos implementar todos los métodos definidos en la interfazdefinidos en la interfaz

Page 25: Introducción a.NET Facilitador: Christian Alexander Martinez

PolimorfismoPolimorfismo

Es la propiedad que tienen los Es la propiedad que tienen los objetos de permitir invocar objetos de permitir invocar genéricamente un comportamiento genéricamente un comportamiento (método) cuya implementación será (método) cuya implementación será delegada al objeto correspondiente delegada al objeto correspondiente recién en tiempo de ejecuciónrecién en tiempo de ejecuciónEl polimorfismo tiende a existir en El polimorfismo tiende a existir en las relaciones de herencia, pero no las relaciones de herencia, pero no siempre es asísiempre es así

Page 26: Introducción a.NET Facilitador: Christian Alexander Martinez

Polimorfismo - EjemploPolimorfismo - Ejemplo

La definición del método reside en la La definición del método reside en la clase baseclase baseLa implementación del método La implementación del método reside en la clase derivadareside en la clase derivadaLa invocación es resuelta al La invocación es resuelta al momento de ejecuciónmomento de ejecución

Transporte

Avanzar

Frenar

Transporte

Avanzar

Frenar

Transporte

Avanzar

Frenar

Transporte

Avanzar

Frenar

Page 27: Introducción a.NET Facilitador: Christian Alexander Martinez

Muchas Gracias por su Muchas Gracias por su AtenciónAtención