Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus...

43
Programación I Programación I

Transcript of Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus...

Page 1: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

Programación IProgramación IProgramación IProgramación I

Page 2: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

Introducir a la plataforma de desarrollo Microsoft .NETDescribir sus características elementales de funcionamiento,Describir su arquitectura de componentes y sus principales bibliotecas reutilizables

Page 3: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

Introducción a Microsoft .NET.Componentes Fundamentales.Funcionamiento Interno del CLR.Bibliotecas Principales.Ventajas de .NET.Herramientas de Desarrollo .NET.

Page 4: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

Introducción a Microsoft .NET.◦ ¿Qué no es .NET?.◦ ¿Qué es .NET?.◦ Características de .NET.

Page 5: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

.NET no es un Sistema Operativo. .NET no es un Lenguaje de Programación. .NET no es un Entorno de Desarrollo. .NET no es un Servidor de Aplicaciones. .NET no es un producto empaquetado que

se pueda comprar como tal.

Page 6: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

Plataforma de Desarrollo y ejecución de aplicaciones compuesta de:

◦ Entorno de Ejecución (Runtime)◦ Bibliotecas de Funcionalidad (Class Library)◦ Lenguajes de Programación◦ Compiladores◦ Herramientas de Desarrollo (IDE & Tools)◦ Basada en el paradigma de orientación a

objetos.◦ Permite el desarrollo de aplicaciones de nivel

empresarial a gran escala

Page 7: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

Plataforma de ejecución intermedia. 100% Orientada a Objetos. Multilenguaje. Modelo de Programación único para todo

tipo de aplicaciones y dispositivos de hardware.

Se integra fácilmente con aplicaciones existentes desarrolladas en plataformas Microsoft

Se integra fácilmente con aplicaciones desarrolladas en otras plataformas

Page 8: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

Entorno de

Desarrollo

Mic

rosoft

.N

ET

Librerías de Funcionalidad

Lenguajes de Programación

Entorno de Ejecución

Sistema Operativo (Familia Windows)

Aplicación .NET

Page 9: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

Paquete de software fundamental de la plataforma .NET. Incluye:◦ Entorno de Ejecución (Runtime).

◦ Bibliotecas de Funcionalidad (Class Library).

Existen tres variantes principales:◦ .NET Framework Redistributable Package

◦ .NET Framework SDK

◦ .NET Compact Framework.

Page 10: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

.NET Framework Redistributable Package◦ Compuesto por:

CLR BCL

.NET Framework SDK◦ Herramientas desde línea de comandos tales como

compiladores, depuradores ademas de CLR y BCL .NET Compact Framework

◦ Versión reducida para dispositivos móviles

Page 11: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

.NET Compact Framework

*

*

AplicaciónMóvil

Aplicación de Consola

Aplicación Web

Aplicación de Escritorio

ServidorCliente

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

Page 12: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

Con Internet, la mayoría de aplicaciones y dispositivos tienen problemas comunicándose entre sí.

Los programadores terminan por escribir infraestructura en lugar de aplicaciones

Los programadores han tenido que limitar su alcance o aprender continuamente nuevos lenguajes para superar las limitaciones de los lenguajes

Page 13: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

Versión 1.0 (año en 2002 para VS2002) Versión 1.1 (liberada en 2003 para VS2003) Versión 2.0 (liberada en 2006 para VS2005) Versión 3.0 (liberada en 2007 para WinVista) Versión 3.5 (liberada en 2008) Versión 4.0 (liberada en 2010 para VS 2010) Versión 4.5 (liberada en 2012 para VS 2012)

Page 14: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

Introducción a Microsoft .NET. Componentes Fundamentales.

◦ Arquitectura.◦ Common Language Runtime (CLR).◦ Microsoft Intermediate Language.◦ Assemblies.◦ .NET Class Library.◦ Common Language Specification (CLS).

Page 15: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

Windows COM+ Services

Common Language Runtime

Base Class Library

ADO.NET y XML

ASP.NET Windows Forms

Common Language Specification

VB C++ C# J# …

.NE

T F

ram

ewor

k R

edis

trib

utab

le

.NE

T F

ram

ewo

rk S

DK

.NE

T F

ramew

ork

Class Library

Page 16: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

Introducción a Microsoft .NET.Componentes Fundamentales.Funcionamiento Interno del CLR.◦ Modelo de Ejecución.◦ Common Type System.

Page 17: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

El CLR es el motor de ejecución (runtime) de .NET. Características.

◦ Compilación Just-In-Time (JIT).◦ Gestión automática de memoria (Garbage

Collector).◦ Gestión de errores consistente (Excepciones).◦ Ejecución basada en componentes (Assemblies).◦ Gestión de Seguridad.◦ Multithreading.

Page 18: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

Class Loader

IL to NativeCompilers

CodeManager

GarbageCollector

Security Engine Debug Engine

Type Checker Exception Manager

Thread Support COM Marshaler

Base Class Library Support

Page 19: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

Un Assembly es la unidad mínima de ejecución, distribución, instalación y versionado de aplicaciones .NET,

MetadataMetadata

Código CompiladoCódigo CompiladoMSILMSIL

RecursosRecursos

MiBiblioteca.DLLMiBiblioteca.DLL

Descripción de TiposDescripción de Tipos

ClasesClasesClases BaseClases BaseInterfaces ImplementadasInterfaces ImplementadasAtributos de las ClasesAtributos de las ClasesMétodos de las ClasesMétodos de las Clases

NombreNombreVersiónVersiónCulturaCultura

Manifiesto del AssemblyManifiesto del Assembly

Otros AssembliesOtros AssembliesPermisos de SeguridadPermisos de SeguridadTipos ExternosTipos Externos

Page 20: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

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 NAMESPACES.

Los tipos son INDEPENDIENTES del lenguaje de desarrollo.

Es extensible y totalmente orientada a objetos.

Page 21: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

System

System.Data System.Xml

System.Web

GlobalizationGlobalization

DiagnosticsDiagnostics

ConfigurationConfiguration

CollectionsCollections

ResourcesResources

ReflectionReflection

NetNet

IOIO

ThreadingThreading

TextText

ServiceProcessServiceProcess

SecuritySecurity

CommonCommon

OleDbOleDb

SqlClientSqlClient

OdbcOdbc

XPathXPath

XSLTXSLT

RuntimeRuntime

InteropServicesInteropServices

RemotingRemoting

SerializationSerialization

SerializationSerialization

ConfigurationConfiguration SessionStateSessionState

CachingCaching SecuritySecurity

ServicesServices

DescriptionDescription

DiscoveryDiscovery

ProtocolsProtocols

UIUI

HtmlControlsHtmlControls

WebControlsWebControls

System.Drawing

ImagingImaging

Drawing2DDrawing2D

TextText

PrintingPrinting

System.Windows.FormsDesignDesign ComponentModelComponentModel

Page 22: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

Especificación que estandariza una serie de características soportadas por el CLR.

Contrato entre diseñadores de lenguajes de programación y autores de bibliotecas.

Permite la interoperabilidad entre lenguajes. Microsoft provee implementaciones de 4

lenguajes, todos compatibles con CLS.◦ Microsoft Visual Basic .NET◦ Microsoft Visual C# .NET◦ Microsoft Visual J#.NET◦ Microsoft Visual C++.NET

Page 23: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

.NET posee un único runtime (el CLR) y un único conjunto de bibliotecas para todos los lenguajes.

No hay diferencias notorias de performance entre los lenguajes provistos por Microsoft.

El lenguaje a utilizar, en gral., dependerá de la experiencia previa con otros lenguajes o de gustos personales.

Los tipos de aplicaciones .NET son INDEPENDIENTES del lenguaje que elija.

Page 24: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

Introducción a Microsoft .NET.Componentes Fundamentales.Funcionamiento Interno del CLR.◦ Modelo de Ejecución.◦ Common Type System.

Page 25: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

VB.NETVB.NETCódigoCódigoFuenteFuente

Compilador Compilador VB.NETVB.NET

C++.NETC++.NETC#C#

AssemblyAssemblyCódigo MSILCódigo MSIL

Sistema Operativo (Windows)Sistema Operativo (Windows)

Common Language RuntimeCommon Language Runtime

Compilador JITCompilador JIT

Código NativoCódigo Nativo

Código Código ManejadoManejado

ComponenteComponenteNo ManejadoNo Manejado

CompiladorCompiladorC#C#

CompiladorCompiladorC++ .NETC++ .NET

AssemblyAssemblyCódigo MSILCódigo MSIL

AssemblyAssemblyCódigo MSILCódigo MSIL

Page 26: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

Define un conjunto común de “tipos” de datos orientados a objetos.

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

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

Define Tipos de Define Tipos de VALOR y de VALOR y de REFERENCIA.REFERENCIA.

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

Define Tipos de Define Tipos de VALOR y de VALOR y de REFERENCIA.REFERENCIA.

Page 27: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

El CLR administra dos segmentos de memoria: Stack (Pila) y Heap (Montón).

El Stack es liberado automáticamente y el Heap es administrado por el GC (Garbage Collector).

Los tiposLos tipos VALOR VALOR se se almacenan en el almacenan en el Stack.Stack.

Los tipos Los tipos REFERENCIAREFERENCIA se se almacenan en el almacenan en el Heap.Heap.

Los tiposLos tipos VALOR VALOR se se almacenan en el almacenan en el Stack.Stack.

Los tipos Los tipos REFERENCIAREFERENCIA se se almacenan en el almacenan en el Heap.Heap.

Page 28: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

Introducción a Microsoft .NET.Componentes Fundamentales.Funcionamiento Interno del CLR.Bibliotecas Principales.◦ Base Class Library (BCL).◦ ADO.NET.◦ Windows Forms.◦ ASP.NET.

Page 29: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

System

Globalization

Diagnostics

Configuration

Collections

Resources

Reflection

Net

IO

Threading

Text

ServiceProcess

Security InteropServices

Remoting

Serialization

Page 30: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

System.Data

OleDb

SqlClient

OracleClient

Common

Odbc SqlTypes

System.Xml

Serialization

XPath

XSLT

Schema

Page 31: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

System.Drawing

Drawing2D

Imaging

Printing

Text

System.WinForms

Design ComponentModel

Page 32: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

System.Web

Caching

Configuration

Services UI

SessionState

HtmlControls

WebControls

Description

Discovery

Security

Protocols

Page 33: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

Introducción a Microsoft .NET.Componentes Fundamentales.Funcionamiento Interno del CLR.Bibliotecas Principales.Ventajas de .NET.

Page 34: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

Unifica los modelos de programación. Simplifica aún más el desarrollo. Provee un Entorno de Ejecución robusto y

seguro. Es independiente del lenguaje de

programación. Interoperabilidad con código existente. Simplifica la instalación y administración de las

aplicaciones. Es Extensible.

Page 35: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

Alto nivel de abstracción.◦ No mas accesos COM a bajo nivel.◦ Orientado a Objetos desde el Núcleo.

Sistema de tipos unificado (CTS).◦ Todo es un objeto, no mas variants.

Componentes de Software.◦ Propiedades, métodos, eventos, y atributos

incluidos en la construcción de clases. API organizada en forma Jerárquica.

Page 36: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

Gestión automática de la memoria.◦ Todos los objetos son administrados por el

Garbage Collector. Manejo de Excepciones. Fuertemente tipado.

◦ Solo casteos seguros.◦ Inicialización de variables obligatoria.

Instalación con Cero Impacto.◦ No requiere registración en la Registry.

Page 37: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

Libertad en la elección del lenguaje.◦ Todas las facilidades de la plataforma .NET están

disponibles a todos los lenguajes de programación .NET.

◦ Los componentes de una aplicación .NET pueden ser escritos en distintos lenguajes de alto nivel compatibles con la plataforma.

Herramientas compartidas.◦ Debuggers, profilers, analizadores de código, y

otras trabajan para todos los lenguajes.

Page 38: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

Unidades de Ensamblado (“Assemblies”).◦ Mínima unidad de distribución, versionado y

administración de seguridad de aplicaciones .NET.◦ Auto-descriptas a través de un manifiesto

(“manifest”). Instalaciones Cero-impacto.

◦ Aplicaciones y componentes pueden ser compartidas o privadas.

Versioning.◦ Múltiples versiones del mismo componente pueden

co-existir, aún en el mismo proceso.

Page 39: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

El Framework no es una “caja negra”. Sus clases pueden ser extendidas a través

del mecanismo de herencia.◦ A diferencia de COM, usamos y extendemos las

clases en si mismas, no un “wrapper”. Herencia entre distintos lenguajes.

Page 40: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

.NET Framework.NET FrameworkServicios Web XMLServicios Web XML

C#C#

C++C++ VBVB

Otros...Otros... .NET.NET

COMCOMCOM INTEROP

Page 41: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.

Introducción a Microsoft .NET.Componentes fundamentales.Funcionamiento interno.Bibliotecas Principales.Ventajas de .NET.Herramientas de Desarrollo .NET.

Page 42: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.
Page 43: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura.