programación de aplicaciones visuales ii introducción a la plataforma.net
TRANSCRIPT
Programación de Programación de Aplicaciones Visuales Aplicaciones Visuales
IIII
Programación de Programación de Aplicaciones Visuales Aplicaciones Visuales
IIII
Introducción a la Introducción a la plataforma .NET.plataforma .NET.
ObjetivoObjetivo
Presentar una introducción a la plataforma Presentar una introducción a la plataforma de desarrollo Microsoft .NET, describiendo de desarrollo Microsoft .NET, describiendo sus características elementales de sus características elementales de funcionamiento, su arquitectura de funcionamiento, su arquitectura de componentes y sus principales bibliotecas componentes y sus principales bibliotecas reutilizables.reutilizables.
TemarioTemario
Introducción a Microsoft .NET.Introducción a Microsoft .NET.Componentes Fundamentales.Componentes Fundamentales.Funcionamiento Interno del CLR.Funcionamiento Interno del CLR.Bibliotecas Principales.Bibliotecas Principales.Ventajas de .NET.Ventajas de .NET.Herramientas de Desarrollo .NET.Herramientas de Desarrollo .NET.
TemarioTemario
Introducción a Microsoft .NET.Introducción a Microsoft .NET. ¿Qué no es .NET?.¿Qué no es .NET?. ¿Qué es .NET?.¿Qué es .NET?. Características de .NET.Características de .NET.
¿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 Programación..NET no es un Lenguaje de Programación.
.NET no es un Entorno de Desarrollo..NET no es un Entorno de Desarrollo.
.NET no es un Servidor de Aplicaciones..NET no es un Servidor de Aplicaciones.
.NET no es un producto empaquetado que .NET no es un producto empaquetado que se pueda comprar como tal.se pueda comprar como tal.
¿Qué es el framework.net?¿Qué es el framework.net?
Plataforma de Desarrollo y Plataforma de Desarrollo y ejecución de aplicaciones ejecución de aplicaciones compuesta de:compuesta de:
Entorno de Ejecución (Runtime)Entorno de Ejecución (Runtime) Bibliotecas de Funcionalidad (Class Library)Bibliotecas de Funcionalidad (Class Library) Lenguajes de ProgramaciónLenguajes de Programación CompiladoresCompiladores Herramientas de Desarrollo (IDE & Tools)Herramientas de Desarrollo (IDE & Tools) Basada en el paradigma de orientación a Basada en el paradigma de orientación a
objetos.objetos. Permite el desarrollo de aplicaciones de nivel Permite el desarrollo de aplicaciones de nivel
empresarial a gran escalaempresarial a gran escala Se integra con tecnología COM.Se integra con tecnología COM.
Características de .NETCaracterísticas de .NET
Plataforma de ejecución intermedia.Plataforma de ejecución intermedia.
100% Orientada a Objetos.100% Orientada a Objetos.
Multilenguaje.Multilenguaje.
Modelo de Programación único para todo Modelo de Programación único para todo tipo de aplicaciones y dispositivos de tipo de aplicaciones y dispositivos de hardware.hardware.
Plataforma de Ejecución Plataforma de Ejecución IntermediaIntermedia
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
¿Qué es el .NET Framework?¿Qué es el .NET Framework?Paquete de software fundamental de la Paquete de software fundamental de la plataforma .NET. Incluye:plataforma .NET. Incluye: Entorno de Ejecución (Runtime).Entorno de Ejecución (Runtime). Bibliotecas de Funcionalidad (Class Bibliotecas de Funcionalidad (Class
Library).Library).
Se distribuye en forma libre y gratuita.Se distribuye en forma libre y gratuita.
Existen tres variantes principales:Existen tres variantes principales: .NET Framework Redistributable .NET Framework Redistributable
Package.Package. .NET Framework SDK..NET Framework SDK. .NET Compact Framework..NET Compact Framework.
.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.
¿Qué problemas ¿Qué problemas soluciona .NET?soluciona .NET?
Con Internet, la mayoría de Con Internet, la mayoría de aplicaciones y dispositivos aplicaciones y dispositivos tienen problemas tienen problemas comunicándose entre sí.comunicándose entre sí.Los programadores terminan por Los programadores terminan por escribir infraestructura en lugar escribir infraestructura en lugar de aplicaciones (ej para enviar de aplicaciones (ej para enviar correo)correo)Los programadores han tenido Los programadores han tenido que limitar su alcance o que limitar su alcance o aprender continuamente nuevos aprender continuamente nuevos lenguajes para superar las lenguajes para superar las limitaciones de los lenguajeslimitaciones de los lenguajes
Versiones del frameworkVersiones del framework
Version 1.0 (año en 2002 para Version 1.0 (año en 2002 para VS2002)VS2002)Version 1.1 (liberada en 2003 para Version 1.1 (liberada en 2003 para VS2003) VS2003) Version 2.0 (liberada a fines 2006 Version 2.0 (liberada a fines 2006 para VS2005)para VS2005)Version 3.0 Version 3.0 Version 3.5Version 3.5
Versiones del frameworkVersiones del framework
.NET Framework Redistributable .NET Framework Redistributable PackagePackage Compuesto por:Compuesto por:
CLRCLR BCLBCL
.NET Framework SDK.NET Framework SDK Herramientas desde línea de comandos Herramientas desde línea de comandos
tales como compiladores, depuradores tales como compiladores, depuradores ademas de CLR y BCLademas de CLR y BCL
.NET Compact Framework.NET Compact Framework Versión reducida para dispositivos Versión reducida para dispositivos
móvilesmóviles
Temas a TratarTemas a Tratar
Introducción a Microsoft .NET.Introducción a Microsoft .NET.Componentes Fundamentales.Componentes Fundamentales. Arquitectura.Arquitectura. Common Language Runtime (CLR).Common Language Runtime (CLR). Microsoft Intermediate Language.Microsoft Intermediate Language. Assemblies.Assemblies. .NET Class Library..NET Class Library. Common Language Specification (CLS).Common Language Specification (CLS).
Windows COM+ Services
Common Language Runtime
Base Class Library
ADO.NET y XML
ASP.NET Windows Forms
Common Language Specification
VB C++ C# J# …
Arquitectura del .NET Arquitectura del .NET FrameworkFramework
.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
Common Language Common Language Specification (CLS)Specification (CLS)
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 .NETMicrosoft Visual Basic .NET Microsoft Visual C# .NETMicrosoft Visual C# .NET Microsoft Visual J#.NETMicrosoft Visual J#.NET Microsoft Visual C++.NETMicrosoft Visual C++.NET
Common Language Common Language Specification (CLS)Specification (CLS)
El resto de la industria y el sector académico han desarrollado más de 20 lenguajes compatibles con la especificación CLS.
CobolCobol
EiffelEiffel
FortranFortran
PascalPascal
PerlPerl
C+C++.NE+.NETT
C#C#
HaskellHaskell
JavaJava JavaScriJavaScriptpt
Visual Visual Basic.NETBasic.NET
MercuryMercury
MLML
PHPPHP
Objective CamlObjective Caml
OberonOberon SmalltalkSmalltalk SchemeScheme
J#J#
RPGRPG
MondrianMondrian
APLAPL
DelphiDelphi PythonPython
LISPLISP PrologProlog
Temas a TratarTemas a Tratar
Introducción a Microsoft .NET.Introducción a Microsoft .NET.Componentes Fundamentales.Componentes Fundamentales.Funcionamiento Interno del CLRFuncionamiento Interno del CLR.. Modelo de Ejecución.Modelo de Ejecución. Common Type System.Common Type System.
CLR – Common Language CLR – Common Language RuntimeRuntime
El CLR es el motor de ejecución (runtime) El CLR es el motor de ejecución (runtime) de .NET.de .NET.Características.Caracterí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 Seguridad.Gestión de Seguridad. Multithreading.Multithreading.
CLR – Componentes InternosCLR – Componentes Internos
Class Loader
IL to NativeCompilers
CodeManager
GarbageCollector
Security Engine Debug Engine
Type Checker Exception Manager
Thread Support COM Marshaler
Base Class Library Support
¿Qué es un “Assembly”?¿Qué es un “Assembly”?
Un Assembly es la unidad mínima de Un Assembly es la unidad mínima de ejecución, distribución, instalación y ejecución, distribución, instalación y versionado de aplicaciones .NET,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
Assemblies - Assemblies - Aplicaciones .NETAplicaciones .NET
Uno o más Assemblies.Uno o más Assemblies.Al ejecutar una aplicación, ¿cómo ubico los Al ejecutar una aplicación, ¿cómo ubico los assemblies necesarios?assemblies necesarios?
El Class Loader busca en el directorio El Class Loader busca en el directorio local (preferido).local (preferido).
Global Assembly Cache (GAC).Global Assembly Cache (GAC).Diferentes aplicaciones pueden usar Diferentes aplicaciones pueden usar diferentes versionesdiferentes versiones Actualizaciones más simples.Actualizaciones más simples. Desinstalación más simple.Desinstalación más simple.
.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 NAMESPACES.Los tipos son INDEPENDIENTES del lenguaje de desarrollo.Es extensible y totalmente orientada a objetos.
.NET .NET FrameworkFramework Class Class LibraryLibraryEl namespace raíz es SYSTEM
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
CLS - Elección del lenguajeCLS - Elección del lenguaje
.NET posee un único runtime (el CLR) y .NET posee un único runtime (el CLR) y un único conjunto de bibliotecas para un único conjunto de bibliotecas para todos los lenguajes.todos los lenguajes.No hay diferencias notorias de No hay diferencias notorias de performance entre los lenguajes performance entre los lenguajes provistos por Microsoft.provistos por Microsoft.El lenguaje a utilizar, en gral., El lenguaje a utilizar, en gral., dependerá de la experiencia previa con dependerá de la experiencia previa con otros lenguajes o de gustos personales.otros lenguajes o de gustos personales.Los tipos de aplicaciones .NET son Los tipos de aplicaciones .NET son INDEPENDIENTES del lenguaje que elija.INDEPENDIENTES del lenguaje que elija.
Temas a TratarTemas a Tratar
Introducción a Microsoft .NET.Introducción a Microsoft .NET.Componentes Fundamentales.Componentes Fundamentales.Funcionamiento Interno del CLRFuncionamiento Interno del CLR.. Modelo de Ejecución.Modelo de Ejecución. Common Type System.Common Type System.
Código nativo
CompiladorJIT
CódigoMSIL
(Assembly).EXE/.DLL
Compilador.NET
Código Fuente
Código MSIL – Ejecución de una aplicación en .NET
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
Modelo de Ejecución del CLRModelo de Ejecución del CLR
CompiladorCompiladorC#C#
CompiladorCompiladorC++ .NETC++ .NET
AssemblyAssemblyCódigo MSILCódigo MSIL
AssemblyAssemblyCódigo MSILCódigo MSIL
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 objetos.datos orientados a objetos.
Todo lenguaje de programación .NET debe Todo lenguaje de programación .NET debe implementar los tipos definidos por el implementar los tipos definidos por el CTS.CTS.Todo tipo Todo tipo hereda directa o hereda directa o indirectamente indirectamente del tipo del tipo System.Object.System.Object.
Define Tipos de Define Tipos de VALOR y de VALOR y de REFERENCIA.REFERENCIA.
Todo tipo Todo tipo hereda directa o hereda directa o indirectamente indirectamente del tipo del tipo System.Object.System.Object.
Define Tipos de Define Tipos de VALOR y de VALOR y de REFERENCIA.REFERENCIA.
La Memoria y los Tipos de La Memoria y los Tipos de DatosDatosEl CLR administra dos segmentos de El CLR administra dos segmentos de
memoria: memoria: Stack (Pila)Stack (Pila) y y Heap Heap (Montón).(Montón).
El El StackStack es liberado automáticamente y es liberado automáticamente y el el HeapHeap es administrado por el es administrado por el GCGC ((Garbage CollectorGarbage Collector).).Los tiposLos tipos VALOR VALOR se almacenan en se almacenan en el Stack.el Stack.
Los tipos Los tipos REFERENCIAREFERENCIA se se almacenan en el almacenan en el Heap.Heap.
Los tiposLos tipos VALOR VALOR se almacenan en se almacenan en el Stack.el Stack.
Los tipos Los tipos REFERENCIAREFERENCIA se se almacenan en el almacenan en el Heap.Heap.
Temas a TratarTemas a Tratar
Introducción a Microsoft .NET.Introducción a Microsoft .NET.Componentes Fundamentales.Componentes Fundamentales.Funcionamiento Interno del CLR.Funcionamiento Interno del CLR.Bibliotecas PrincipalesBibliotecas Principales.. Base Class Library (BCL).Base Class Library (BCL). ADO.NET.ADO.NET. Windows Forms.Windows Forms. ASP.NET.ASP.NET.
Base Class LibraryBase Class Library
System
Globalization
Diagnostics
Configuration
Collections
Resources
Reflection
Net
IO
Threading
Text
ServiceProcess
Security InteropServices
Remoting
Serialization
Acceso a Datos: ADO.NETAcceso a Datos: ADO.NET
System.Data
OleDb
SqlClient
OracleClient
Common
Odbc SqlTypes
System.Xml
Serialization
XPath
XSLT
Schema
Windows FormsWindows Forms
System.Drawing
Drawing2D
Imaging
Printing
Text
System.WinForms
Design ComponentModel
Aplicaciones Web: ASP.NETAplicaciones Web: ASP.NET
System.Web
Caching
Configuration
Services UI
SessionState
HtmlControls
WebControls
Description
Discovery
Security
Protocols
Temas a TratarTemas a Tratar
Introducción a Microsoft .NET.Introducción a Microsoft .NET.Componentes Fundamentales.Componentes Fundamentales.Funcionamiento Interno del CLR.Funcionamiento Interno del CLR.Bibliotecas Principales.Bibliotecas Principales.Ventajas de .NETVentajas de .NET..
Ventajas de .NETVentajas de .NET
Unifica los modelos de programación.Unifica los modelos de programación.Simplifica aún más el desarrollo.Simplifica aún más el desarrollo.Provee un Entorno de Ejecución robusto y Provee un Entorno de Ejecución robusto y seguro.seguro.Es independiente del lenguaje de Es independiente del lenguaje de programación.programación.Interoperabilidad con código existente.Interoperabilidad con código existente.Simplifica la instalación y administración Simplifica la instalación y administración de las aplicaciones.de las aplicaciones.Es Extensible.Es Extensible.
Unificando los ModelosUnificando los Modelos
Windows APIWindows API
.NET Framework.NET Framework
API consistente mas allá del lenguaje API consistente mas allá del lenguaje o del modelo de programacióno del modelo de programación
ASPASP
Basado en Basado en Servidor,Servidor,
UI Embebido en el UI Embebido en el códigocódigo
MFC/ATL (C++)MFC/ATL (C++)
OOP, OOP, Potencia,Potencia,
Acceso a bajo Acceso a bajo nivelnivel
Visual BasicVisual Basic
Desarrollo Desarrollo Rapido,Rapido,
Componentes,Componentes,Event DrivenEvent Driven
Desarrollo SimplificadoDesarrollo Simplificado
Alto nivel de abstracción.Alto nivel de abstracción. No mas accesos COM a bajo nivel.No mas accesos COM a bajo nivel. Orientado a Objetos desde el Núcleo.Orientado a Objetos desde el Núcleo.Sistema de tipos unificado (CTS).Sistema de tipos unificado (CTS). Todo es un objeto, no mas variants.Todo es un objeto, no mas variants.Componentes de Software.Componentes de Software. Propiedades, métodos, eventos, y Propiedades, métodos, eventos, y
atributos incluidos en la construcción de atributos incluidos en la construcción de clases.clases.
API organizada en forma Jerárquica.API organizada en forma Jerárquica.
Entorno de Ejecución Entorno de Ejecución Robusto y SeguroRobusto y Seguro
Gestión automática de la memoria.Gestión automática de la memoria. Todos los objetos son administrados por Todos los objetos son administrados por
el Garbage Collector.el Garbage Collector.Manejo de Excepciones.Manejo de Excepciones.Fuertemente tipado.Fuertemente tipado. Solo casteos seguros.Solo casteos seguros. Inicialización de variables obligatoria.Inicialización de variables obligatoria.Instalación con Cero Impacto.Instalación con Cero Impacto. No requiere registración en la Registry.No requiere registración en la Registry.
Independencia del lenguajeIndependencia del lenguaje
Libertad en la elección del lenguaje.Libertad en la elección del lenguaje. Todas las facilidades de la Todas las facilidades de la
plataforma .NET están disponibles a plataforma .NET están disponibles a todos los lenguajes de todos los lenguajes de programación .NET.programación .NET.
Los componentes de una Los componentes de una aplicación .NET pueden ser escritos en aplicación .NET pueden ser escritos en distintos lenguajes de alto nivel distintos lenguajes de alto nivel compatibles con la plataforma.compatibles con la plataforma.
Herramientas compartidas.Herramientas compartidas. Debuggers, profilers, analizadores de Debuggers, profilers, analizadores de
código, y otras trabajan para todos los código, y otras trabajan para todos los lenguajes.lenguajes.
Instalación y Administración Instalación y Administración más simplesmás simples
Unidades de Ensamblado (“Assemblies”).Unidades de Ensamblado (“Assemblies”). Mínima unidad de distribución, versionado Mínima unidad de distribución, versionado
y administración de seguridad de y administración de seguridad de aplicaciones .NET.aplicaciones .NET.
Auto-descriptas a través de un manifiesto Auto-descriptas a través de un manifiesto (“manifest”).(“manifest”).
Instalaciones Cero-impacto.Instalaciones Cero-impacto. Aplicaciones y componentes pueden ser Aplicaciones y componentes pueden ser
compartidas o privadas.compartidas o privadas.Versioning.Versioning. Múltiples versiones del mismo Múltiples versiones del mismo
componente pueden co-existir, aún en el componente pueden co-existir, aún en el mismo proceso.mismo proceso.
ExtensibilidadExtensibilidad
El Framework no es una “caja negra”.El Framework no es una “caja negra”.Sus clases pueden ser extendidas a través Sus clases pueden ser extendidas a través del mecanismo de herencia.del mecanismo de herencia. A diferencia de COM, usamos y A diferencia de COM, usamos y
extendemos las clases en si mismas, no extendemos las clases en si mismas, no un “wrapper”.un “wrapper”.
Herencia entre distintos lenguajes.Herencia entre distintos lenguajes.
InteroperabilidadInteroperabilidad
.NET Framework.NET FrameworkServicios Web XMLServicios Web XML
C#C#
C++C++ VBVB
Otros...Otros... .NET.NET
COMCOMCOM INTEROP
Temas a TratarTemas a Tratar
Introducción a Microsoft .NET.Introducción a Microsoft .NET.Componentes fundamentales.Componentes fundamentales.Funcionamiento interno.Funcionamiento interno.Bibliotecas Principales.Bibliotecas Principales.Ventajas de .NET.Ventajas de .NET.Herramientas de Desarrollo .NETHerramientas de Desarrollo .NET..
Visual Studio 2005Visual Studio 2005