Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas.
Introducción a Microsoft.NET. Prerrequisitos Conocimientos fundamentales de bases de datos...
-
Upload
jeronimo-marzan -
Category
Documents
-
view
13 -
download
0
Transcript of Introducción a Microsoft.NET. Prerrequisitos Conocimientos fundamentales de bases de datos...
Introducción a Introducción a Microsoft .NET Microsoft .NET
PrerrequisitosPrerrequisitos
Conocimientos fundamentales de Conocimientos fundamentales de bases de datos relacionales, bases de datos relacionales, incluyendoincluyendo Modelo RelacionalModelo Relacional Protocolos de Acceso (ODBC/OLEDB)Protocolos de Acceso (ODBC/OLEDB) Lenguaje SQLLenguaje SQL
Paradigmas de Paradigmas de ProgramaciónProgramación
19801980 19901990 20002000
Fu
nci
on
alid
adF
un
cio
nal
idad
Win16Win16 Win32Win32COMCOM
MFCMFCComponentes
ComponentesServiciosServicios
APIsAPIs
Windows3.0
¿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
¿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
Características de .NET Características de .NET (1/2)(1/2)
Plataforma de ejecución intermediaPlataforma de ejecución intermedia
100% Orientada a Objetos100% Orientada a Objetos
MultilenguajeMultilenguaje
Características de .NET Características de .NET (2/2)(2/2)
Modelo de Programación único para Modelo de Programación único para todo tipo de aplicaciones y dispositivos todo tipo de aplicaciones y dispositivos de hardwarede hardware
Se integra fácilmente con aplicaciones Se integra fácilmente con aplicaciones existentes desarrolladas en existentes desarrolladas en plataformas Microsoftplataformas Microsoft
Se integra fácilmente con aplicaciones Se integra fácilmente con aplicaciones desarrolladas en otras plataformasdesarrolladas en otras plataformas
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
.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)
¿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
.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
Línea del tiempo de .NETLí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#
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
CLR - Arquitecturas de CLR - Arquitecturas de Ejecución de AplicacionesEjecución de Aplicaciones
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
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
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
CLR - MSILCLR - 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 }
¿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 .NETversionado 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 AssembliesUno o más AssembliesAl ejecutar una aplicación, ¿cómo Al ejecutar una aplicación, ¿cómo ubico los assemblies necesarios?ubico los 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 simplesActualizaciones más simples Desinstalación más simpleDesinstalació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 NAMESPACESLos tipos son INDEPENDIENTES del lenguaje de desarrolloEs extensible y totalmente orientada a objetos
.NET Framework Class .NET Framework 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
Common Language Specification Common Language Specification (CLS)(CLS)
Especificación que estandariza una serie de características soportadas por el CLRContrato entre diseñadores de lenguajes de programación y autores de bibliotecasPermite la interoperabilidad entre lenguajesMicrosoft 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 Specification Common Language Specification (CLS)(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
CLS - Elección del CLS - Elección del lenguajelenguaje
.NET posee un único runtime (el CLR) .NET posee un único runtime (el CLR) y un único conjunto de bibliotecas y un único conjunto de bibliotecas para todos los lenguajespara todos los lenguajesNo hay diferencias notorias de No hay diferencias notorias de performance entre los lenguajes performance entre los lenguajes provistos por Microsoftprovistos por MicrosoftEl lenguaje a utilizar, en gral., El lenguaje a utilizar, en gral., dependerá de su experiencia previa dependerá de su experiencia previa con otros lenguajes o de gustos con otros lenguajes o de gustos personalespersonales Si conoce Java, Delphi, C++, etc. Si conoce Java, Delphi, C++, etc. C# C# Si conoce Visual Basic o VBScript Si conoce Visual Basic o VBScript
VB.NETVB.NET
Los tipos de aplicaciones .NET son Los tipos de aplicaciones .NET son INDEPENDIENTES del lenguaje que INDEPENDIENTES del lenguaje que elijaelija
Infraestructura de Lenguaje Infraestructura de Lenguaje Común (CLI)Común (CLI)
Especificación patrocinada por Especificación patrocinada por Microsoft, Intel, HP y Microsoft, Intel, HP y estandarizada por ECMA (2001) estandarizada por ECMA (2001) e ISO (2003) que describe: e ISO (2003) que describe: Entorno de Ejecución de Entorno de Ejecución de
AplicacionesAplicaciones Conjunto de Librerías Básicas Conjunto de Librerías Básicas
(BCL)(BCL) Tipos de Datos Comunes (CTS)Tipos de Datos Comunes (CTS)
El .NET Framework y el .NET El .NET Framework y el .NET Compact Framework son Compact Framework son implementaciones de la implementaciones de la especificación CLIespecificación CLI
Sub-Especificaciones de Sub-Especificaciones de CLICLI
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 …
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 Modelo de Ejecución del CLRCLR
CompiladorCompiladorC#C#
CompiladorCompiladorC++ .NETC++ .NET
AssemblyAssemblyCódigo MSILCódigo MSIL
AssemblyAssemblyCódigo MSILCódigo MSIL
Debug EngineDebug Engine
CompiladorCompiladorJITJIT
Assembly en Assembly en la máquinala máquina
destinodestino
Modelo de Ejecución del Modelo de Ejecución del CLRCLR
AssemblyAssembly
DesarrolloDesarrollo InstalaciónInstalación
InstalaciónInstalación
EjecuciónEjecución
AssemblyAssemblyLoaderLoaderSeguridadSeguridadClass Class
LoaderLoader
.exe Nativo.exe Nativo++
Tabla GC Tabla GC
Code Code ManagerManager
Garbage CollectorGarbage Collector
Manejador ExcepcionesManejador Excepciones
Soporte MultiThreadSoporte MultiThread
COM InteropCOM Interop
Policy<?xml version="1.0" encoding="utf-8" ?><configuration> <mscorlib> <security> <policy> <PolicyLevel version="1"> <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="Nothing" Name="All_Code" Description="Code group grants no permissions and forms the root of the code group tree."> <IMembershipCondition class="AllMembershipCondition" version="1"/> <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="FullTrust"
Application DomainsApplication DomainsProcesos virtuales dentro del CLRProcesos virtuales dentro del CLR Se ejecutan dentro de un proceso del Se ejecutan dentro de un proceso del
Sistema OperativoSistema Operativo Un proceso del sistema operativo puede Un proceso del sistema operativo puede
contener varios AppDomainscontener varios AppDomains Más eficiente que múltiples procesos Más eficiente que múltiples procesos
del sistema operativodel sistema operativo Más eficiente en el intercambio de Más eficiente en el intercambio de
contexto de ejecucióncontexto de ejecución
Un Assembly y sus tipos son siempre Un Assembly y sus tipos son siempre cargados dentro de un AppDomaincargados dentro de un AppDomainProvee una frontera para: Fallos, Provee una frontera para: Fallos, Tipos, SeguridadTipos, Seguridad
Application Domains - CLR Application Domains - CLR HostHost
Código Manejado
CLRCLR Host
AppDomain 1
Código Manejado
AppDomain N
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
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 (Montón)Heap (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 Stackel Stack
Los tipos Los tipos REFERENCIAREFERENCIA se se almacenan en el almacenan en el HeapHeap
Los tiposLos tipos VALOR VALOR se almacenan en se almacenan en el Stackel Stack
Los tipos Los tipos REFERENCIAREFERENCIA se se almacenan en el almacenan en el HeapHeap
Base Class LibraryBase Class Library
System
Globalization
Diagnostics
Configuration
Collections
Resources
Reflection
Net
IO
Threading
Text
ServiceProcess
Security InteropServices
Remoting
Serialization
© 2006 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or
implied, in this summary.