Introducción a la plataforma .NET
-
Upload
salvador-fernandez-fernandez -
Category
Documents
-
view
230 -
download
2
description
Transcript of Introducción a la plataforma .NET
![Page 1: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/1.jpg)
Introducción a .Net
![Page 2: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/2.jpg)
Agenda Introducción a Microsoft .NET Componentes Fundamentales Funcionamiento Interno del CLR Bibliotecas Principales Ventajas de .NET
![Page 3: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/3.jpg)
Agenda Introducción a Microsoft .NET
•¿Qué no es .NET?•¿Qué es .NET?•.NET Como evolución de COM
![Page 4: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/4.jpg)
¿Qué NO es .NET? .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 5: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/5.jpg)
¿Qué es .NET? Plataforma de Desarrollo y Ejecución de Aplicaciones
- Entorno de Ejecución (Runtime)- Bibliotecas de Funcionalidad (Class Library)- Lenguajes de Programación- Compiladores- Herramientas de Desarrollo (IDE & Tools)- Guías de Arquitectura
La evolución de la plataforma COM- Visual Basic 6
![Page 6: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/6.jpg)
Características de .NET (1/2) Plataforma de ejecución intermedia
- Runtime o Máquina Virtual 100% Orientada a Objetos
- Clases, Objetos, Herencia, Polimorfismo Multilenguaje
- C#, Visual Basic, Visual Java, Visual C++ Plataforma Empresarial de Misión Crítica
- Aplicaciones grandes, complejas, robustas, seguras
![Page 7: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/7.jpg)
Características de .NET (2/2) Modelo de Programación único para todo tipo de
aplicaciones y dispositivos de hardware- Windows Forms, Consola, App Web, App Móviles- PC, Pocket PC, SmartPhones, Tablet PC
Se integra fácilmente con aplicaciones desarrolladas en plataformas anteriores
- COM Se integra fácilmente con aplicaciones desarrolladas
en otras plataformas- Estándares globales: XML, HTTP, SOAP, WSDL
![Page 8: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/8.jpg)
Plataforma de Ejecución Intermedia
Entorno de Desarrollo
Micr
osof
t .NE
T
Librerías de Funcionalidad
Lenguajes de Programación
Entorno de Ejecución
Sistema Operativo (Familia Windows)
Aplicación .NET
![Page 9: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/9.jpg)
.NET como evolución de COM Entorno de Ejecución (Runtime)
- COM: Windows- .NET: Common Language Runtime
Librerías de Funcionalidad- COM: Algunas (ADO, FSO, etc.)- .NET: Muy extensa (.NET Framework Class Library)
Lenguajes de Programación- COM: VB, C++, VFP, ASP, J++- .NET: Common Language Specification
Entorno de Desarrollo (IDE)- COM: Uno para cada lenguaje- .NET: Uno independiente del lenguaje (VS.NET)
![Page 10: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/10.jpg)
¿Qué es el .NET Framework? Paquete de software fundamental de la plataforma .NET. Incluye:
- Entorno de Ejecución (Runtime)- Bibliotecas de Funcionalidad (Class Library)
Se distribuye en forma libre y gratuita Existen tres variantes principales:
- .NET Framework Redistributable Package- .NET Framework SDK- .NET Compact Framework
Está instalado por defecto en Windows 2003 Server o superior
![Page 11: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/11.jpg)
¿Dónde instalar el .NET Framework?
.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
![Page 12: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/12.jpg)
Línea del tiempo de .NETVisual Studio 6.0Visual BasicVBAVisual FoxProVBScriptC++J++JScriptASP
Visual Studio .NET 2003.NET Framework 1.1.NET Compact FrameworkJ#
Visual Studio “Orcas”.NET Framework “Orcas”.NET Compact Framework “Orcas”
2000 2001 2002 2003 2004 2005 2006 y más
Visual Studio 2005 (“Whidbey”).NET Framework 2.0 (“Whidbey”).NET Compact Framework 2.0 (“Whidbey”)
Visual Studio .NET 2002.NET Framework 1.0Visual Basic .NETC#
![Page 13: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/13.jpg)
Agenda Introducción a Microsoft .NET Componentes Fundamentales
•Arquitectura•Common Language Runtime (CLR)•Microsoft Intermediate Language•Assemblies•.NET Class Library•Common Language Specification (CLS)
![Page 14: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/14.jpg)
CLR - Arquitecturas de Ejecución de Aplicaciones
![Page 15: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/15.jpg)
CLR – Common Language Runtime 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 16: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/16.jpg)
CLR – 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
![Page 17: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/17.jpg)
CLR – Proceso de Compilación
Código Fuente
Cualquier lenguaje .NET
CompiladorAssembly (MSIL)
Bibliotecao Ejecutable
![Page 18: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/18.jpg)
CLR - MSIL
.method private hidebysig static void Main(string[] args) cil managed {
.entrypoint maxstack 8 L_0000: ldstr "Hola Mundo" L_0005: call void [mscorlib]System.Console::WriteLine(
string) L_000a: ret }
![Page 19: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/19.jpg)
¿Qué es un “Assembly”? 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 TiposClasesClasesClases 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: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/20.jpg)
Assemblies - Aplicaciones .NET Uno o más Assemblies Al ejecutar una aplicación, ¿cómo ubico los assemblies necesarios?
- El Class Loader busca en el directorio local (preferido)- Global Assembly Cache (GAC)
Diferentes aplicaciones pueden usar diferentes versiones
- Actualizaciones más simples- Desinstalación más simple
![Page 21: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/21.jpg)
.NET Framework Class Library 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 22: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/22.jpg)
.NET Framework Class Library
System
System.Data System.Xml
System.Web
GlobalizationGlobalizationDiagnosticsDiagnosticsConfigurationConfigurationCollectionsCollections
ResourcesResourcesReflectionReflectionNetNetIOIO
ThreadingThreadingTextTextServiceProcessServiceProcessSecuritySecurity
CommonCommonOleDbOleDb
SqlClientSqlClientOdbcOdbc
XPathXPathXSLTXSLT
RuntimeRuntimeInteropServicesInteropServicesRemotingRemotingSerializationSerialization
SerializationSerialization
ConfigurationConfiguration SessionStateSessionStateCachingCaching SecuritySecurity
ServicesServicesDescriptionDescriptionDiscoveryDiscoveryProtocolsProtocols
UIUIHtmlControlsHtmlControlsWebControlsWebControls
System.Drawing
ImagingImagingDrawing2DDrawing2D
TextTextPrintingPrinting
System.Windows.FormsDesignDesign ComponentModelComponentModel
![Page 23: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/23.jpg)
Common Language 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 .NET- Microsoft Visual C# .NET- Microsoft Visual J#.NET- Microsoft Visual C++.NET
![Page 24: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/24.jpg)
Common Language 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
CobolCobolEiffelEiffel
FortranFortran
PascalPascalPerlPerl
C+C++.NE+.NETT
C#C#
HaskellHaskellJavaJava JavaScriJavaScri
ptpt
Visual Visual Basic.NETBasic.NET
MercuryMercuryMLML
PHPPHP
Objective CamlObjective CamlOberonOberon SmalltalkSmalltalk SchemeScheme
J#J#
RPGRPGMondrianMondrian
APLAPL
DelphiDelphi PythonPythonLISPLISP PrologProlog
![Page 25: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/25.jpg)
CLS - Elección del lenguaje .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 su experiencia previa con otros lenguajes o de gustos personales
•Si conoce Java, Delphi, C++, etc. C#•Si conoce Visual Basic o VBScript VB.NET
Los tipos de aplicaciones .NET son INDEPENDIENTES del lenguaje que elija
![Page 26: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/26.jpg)
Agenda Introducción a Microsoft .NET Componentes Fundamentales Funcionamiento Interno del CLR
- Especificación CLI- Modelo de Ejecución- Application Domains- Common Type System
![Page 27: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/27.jpg)
Infraestructura de Lenguaje Común (CLI) Especificación patrocinada por Microsoft, Intel, HP y estandarizada por ECMA (2001) e ISO (2003) que describe:
- Entorno de Ejecución de Aplicaciones- Conjunto de Librerías Básicas (BCL)- Tipos de Datos Comunes (CTS)
El .NET Framework y el .NET Compact Framework son implementaciones de la especificación CLI
![Page 28: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/28.jpg)
Sub-Especificaciones de CLI
Lenguajes de Alto Nivel
BCL (Base Class Library)
CLR (Common Language Runtime)
Sistema Operativo
CLS (Common Language Specification)
CTS (Common Type System)
se ajustan a las reglas de la…
y utilizan las clases de la…
cuyos tipos básicos forman el…
y se ejecutan bajo el control de y usan los servicios del…
que está acoplado al y utiliza los servicios del …
![Page 29: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/29.jpg)
Common Language Runtime
Modelo de Ejecución del CLRCódigo fuente C#
Compilador C#
AssemblyCódigo MSIL
Compilador JIT
Código Nativo
Sistema Operativo (Windows)
![Page 30: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/30.jpg)
Application Domains Procesos virtuales dentro del CLR
- Se ejecutan dentro de un proceso del Sistema Operativo
- Un proceso del sistema operativo puede contener varios AppDomains
- Más eficiente que múltiples procesos del sistema operativo
- Más eficiente en el intercambio de contexto de ejecución
Un Assembly y sus tipos son siempre cargados dentro de un AppDomain
Provee una frontera para: Fallos, Tipos, Seguridad
![Page 31: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/31.jpg)
CTS (Common Type System) 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 directa o indirectamente del tipo System.ObjectDefine Tipos de VALOR y de REFERENCIA
![Page 32: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/32.jpg)
La Memoria y los Tipos de Datos 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 tipos VALOR se almacenan en el StackLos tipos REFERENCIA se almacenan en el Heap
![Page 33: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/33.jpg)
Agenda Introducción a Microsoft .NET Componentes Fundamentales Funcionamiento Interno del CLR Bibliotecas Principales
- Base Class Library (BCL)- ADO.NET- Windows Forms- ASP.NET
![Page 34: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/34.jpg)
Base Class Library
System
GlobalizationDiagnosticsConfigurationCollections
ResourcesReflectionNetIO
ThreadingTextServiceProcessSecurity
SerializationRemotingInteropServices
![Page 35: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/35.jpg)
Acceso a Datos: ADO.NET
System.Data
OleDbSqlClient
OracleClientCommon
Odbc SqlTypes
System.XmlSerialization
XPathXSLT
Schema
![Page 36: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/36.jpg)
Windows Forms
System.DrawingDrawing2DImaging
PrintingText
System.WinFormsDesign ComponentModel
![Page 37: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/37.jpg)
Aplicaciones Web: ASP.NET
System.Web
CachingConfiguration
Services UI
SessionState
HtmlControlsWebControls
DescriptionDiscovery
SecurityProtocols
![Page 38: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/38.jpg)
Agenda Introducción a Microsoft .NET Componentes Fundamentales Funcionamiento Interno del CLR Bibliotecas Principales Ventajas de .NET
![Page 39: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/39.jpg)
Ventajas de .NET 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 40: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/40.jpg)
Unificando los Modelos
Windows API
.NET Framework
API consistente mas allá del lenguaje o del modelo de programación
ASP
Basado en Servidor,UI Embebido en el código
MFC/ATL (C++)
OOP, Potencia,Acceso a bajo nivel
Visual Basic
Desarrollo Rapido,Componentes,Event Driven
![Page 41: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/41.jpg)
Desarrollo Simplificado 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 42: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/42.jpg)
Entorno de Ejecución Robusto y Seguro 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 43: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/43.jpg)
Independencia del lenguaje 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 44: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/44.jpg)
Instalación y Administración más simples 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 45: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/45.jpg)
Extensibilidad 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 46: Introducción a la plataforma .NET](https://reader034.fdocuments.ec/reader034/viewer/2022042604/568c49d01a28ab491695a791/html5/thumbnails/46.jpg)
Interoperabilidad
.NET FrameworkServicios Web XML
C#
C++ VB
Otros... .NET
COMCOM INTEROP