1
Introducción .NET Framework
2
Objetivo
Presentar una introducción a la plataforma de desarrollo Microsoft .NET, describiendo sus principios básicos de funcionamiento, su arquitectura de componentes y sus principales bibliotecas reutilizables, mostrando además las novedades introducidas en la última versión de la misma.
3
Temas a Tratar
Introducción a Microsoft .NETComponentes FundamentalesFuncionamiento Interno del CLRBibliotecas Principales
4
Temas a Tratar
Introducción a Microsoft .NET ¿Qué no es .NET? ¿Qué es .NET? .NET Como evolución de COM
5
Paradigmas de Programación
1980 1990 2000
Fu
nci
on
alid
ad
Win16 Win32COM
MFCComponentes
Servicios
APIs
Windows3.0
6
¿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
7
¿Qué es .NET?Plataforma de Desarrollo compuesta de 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
8
Características de .NET (1/2)
Plataforma de ejecución intermedia100% Orientada a ObjetosMultilenguajePlataforma Empresarial de Misión Crítica
9
Características de .NET (2/2)
Modelo de Programación único para todo tipo de aplicaciones y dispositivos de hardwareSe integra fácilmente con aplicaciones existentes desarrolladas en plataformas MicrosoftSe integra fácilmente con aplicaciones desarrolladas en otras plataformas
10
Plataforma de Ejecución Intermedia
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
11
.NET como evolución de COMEntorno 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)
12
¿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
13
Línea del tiempo de .NETVisual Studio 6.0Visual BasicVBAVisual FoxProVBScriptC++J++JScriptASP
Visual Studio .NET 2003.NET Framework 1.1.NET Compact FrameworkJ#
.NET Framework 3.0
.NET Compact Framework 3.0WFC-WPF-WF
2000 2001 2002 2003 2004 2005 2008 Presente
Visual Studio 2005.NET Framework 2.0 .NET Compact Framework 2.0
Visual Studio .NET 2002.NET Framework 1.0Visual Basic .NETC#
Visual Studio 2008.NET Framework 3.5.NET Compact Framework 3.5
14
Temas a Tratar
Introducción a Microsoft .NETComponentes Fundamentales Arquitectura Common Language Runtime (CLR) Microsoft Intermediate Language Assemblies .NET Class Library Common Language Specification (CLS)
15
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 Framework
.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
16
CLR – Common Language Runtime
El CLR es el motor de ejecución (runtime) de .NETCaracterí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
17
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
18
Código Fuente
Cualquier lenguaje .NET
Compilador
Assembly (MSIL)
Bibliotecao Ejecutable
CLR – Proceso de Compilación
19
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 }
20
¿Qué es un “Assembly”?
Un Assembly es la unidad mínima de ejecución, distribución, instalación y versionado de aplicaciones .NET
Metadata
Código CompiladoMSIL
Recursos
MiBiblioteca.DLL
Descripción de Tipos
ClasesClases BaseInterfaces ImplementadasAtributos de las ClasesMétodos de las Clases
NombreVersiónCultura
Manifiesto del Assembly
Otros AssembliesPermisos de SeguridadTipos Externos
21
Assemblies - Aplicaciones .NET
Uno o más AssembliesAl ejecutar una aplicación, ¿cómo ubico los assemblies necesarios?
Global Assembly Cache (GAC) El Class Loader busca en el directorio
local (preferido)
Diferentes aplicaciones pueden usar diferentes versiones Actualizaciones más simples Desinstalación más simple
22
.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 NAMESPACESLos tipos son INDEPENDIENTES del lenguaje de desarrolloEs extensible y totalmente orientada a objetos
23
.NET Framework Class LibraryEl namespace raíz es SYSTEM
System
System.Data System.Xml
System.Web
Globalization
Diagnostics
Configuration
Collections
Resources
Reflection
Net
IO
Threading
Text
ServiceProcess
Security
Common
OleDb
SqlClient
Odbc
XPath
XSLT
Runtime
InteropServices
Remoting
Serialization
Serialization
Configuration SessionState
Caching Security
Services
Description
Discovery
Protocols
UI
HtmlControls
WebControls
System.Drawing
Imaging
Drawing2D
Text
Printing
System.Windows.FormsDesign ComponentModel
24
Common Language Specification (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 .NET Microsoft Visual C# .NET Microsoft Visual J#.NET Microsoft Visual C++.NET
25
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
Cobol
Eiffel
Fortran
Pascal
Perl
C++.NET
C#
Haskell
Java JavaScript
Visual Basic.NET
Mercury
ML
PHP
Objective Caml
Oberon Smalltalk Scheme
J#
RPG
Mondrian
APL
Delphi Python
LISP Prolog
26
CLS - Elección del lenguaje
.NET posee un único runtime (el CLR) y un único conjunto de bibliotecas para todos los lenguajesNo hay diferencias notorias de performance entre los lenguajes provistos por MicrosoftEl 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.NETLos tipos de aplicaciones .NET son INDEPENDIENTES del lenguaje que elija
27
Temas a Tratar
Introducción a Microsoft .NETComponentes FundamentalesFuncionamiento Interno del CLR Especificación CLI Modelo de Ejecución Application Domains Common Type System
28
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
30
Sub-Especificaciones de CLI(Common Language Infrastructure)
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 …
31
VB.NETCódigoFuente
Compilador VB.NET
C++.NETC#
AssemblyCódigo MSIL
Sistema Operativo (Windows)
Common Language Runtime
Compilador JIT
Código Nativo
Código Manejado
ComponenteNo Manejado
Modelo de Ejecución del CLR
CompiladorC#
CompiladorC++ .NET
AssemblyCódigo MSIL
AssemblyCódigo MSIL
32Debug Engine
CompiladorJIT
Assembly en la máquina
destino
Modelo de Ejecución del CLR
Assembly
Desarrollo Instalación
Instalación
Ejecución
AssemblyLoader
SeguridadClass Loader
.exe Nativo+
Tabla GC
Code Manager
Garbage Collector
Manejador Excepciones
Soporte MultiThread
COM 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"
33
Application DomainsProcesos 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ónUn Assembly y sus tipos son siempre cargados dentro de un AppDomainProvee una frontera para: Fallos, Tipos, Seguridad
34
Application Domains - CLR Host
Código Manejado
CLRCLR Host
AppDomain 1
Código Manejado
AppDomain N
35
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.Object
Define Tipos de VALOR y de REFERENCIA
Todo tipo hereda directa o indirectamente del tipo System.Object
Define Tipos de VALOR y de REFERENCIA
36
Temas a Tratar
Introducción a Microsoft .NETComponentes FundamentalesFuncionamiento Interno del CLRBibliotecas Principales Base Class Library (BCL) ADO.NET Windows Forms ASP.NET
37
Base Class Library
System
Globalization
Diagnostics
Configuration
Collections
Resources
Reflection
Net
IO
Threading
Text
ServiceProcess
Security InteropServices
Remoting
Serialization
38
Acceso a Datos: ADO.NETSystem.Data
OleDb
SqlClient
OracleClient
Common
Odbc SqlTypes
System.Xml
Serialization
XPath
XSLT
Schema
39
Acceso a Bases de Datos Relacionales Escenario Conectado Un entorno conectado es uno en el
cual los usuarios están constantemente conectados a la fuente de datos Ventajas: Mayor seguridad Mejor control de concurrencia Los datos se mantienen actualizados Desventajas: Se requiere una conexión constante
(consume recursos del servidor) Escalabilidad
40
En un entorno desconectado, una parte de los datos del repositorio central se copia y modifica en forma local, para luego sincronizarse con éste. Ventajas Se puede trabajar en forma
independiente Mayor escalabilidad y performance
Desventajas Los datos no están sinconizados Resolución manual de conflictos
Acceso a Bases de Datos Relacionales Escenario Desconectado
41
ADO.NET - Arquitectura
42
ADO.NET- Proveedores de Acceso a Datos
SQL Server/Access (System.Data.SqlClient)OLE DB (System.Data.OleDb)ODBC (System.Data.Odbc)Oracle (System.Data.OracleClient)Otros provistos por terceros (MySQL, PostgreSQL, DB2, etc..)
43
Base de Datos
XxxConnectionXxxConnection
XxxCommandXxxCommand
DataSetDataSet XxxDataReaderXxxDataReader
XxxDataAdapterXxxDataAdapter
Maneja la conección a una base de datos
Maneja la conección a una base de datos
Ejecuta comandos contra una basede datos
Ejecuta comandos contra una basede datos
Copia local de datos relacionalesCopia local de datos relacionales
Provee acceso a datos read-only, Forward-onlyProvee acceso a datos read-only, Forward-only
Intercambia datos entre un dataset y una base de datos
Intercambia datos entre un dataset y una base de datos
ADO.NET- Clases más comunes
44
DataSet
DataTable
DataTable
DataRow
DataColumn
Relaciones
RestriccionesEsquema XML
ADO.NET- DataSet
45
ADO.NET – Accediendo a datos Conectado
En un escenario conectado, los recursos se mantienen en el servidor hasta que la conexión se cierra1) Abrir Conexión2) Ejecutar Comando3) Procesar Filas en DataReader4) Cerrar Reader5) Cerrar Conexión
46
En un escenario desconectado, los recursos no se mantienen en el servidor mientras los datos se procesan1) Abrir Conexión2) Llenar DataSet mediante DataAdapter3) Cerrar Conexión4) Procesar DataSet5) Abrir Conexión6) Actualizar fuente de datos mediante DataAdapter7) Cerrar Conexión
ADO.NET – Accediendo a datos Desconectado
47
.NET Framework Class LibraryXML
Datos
Esquemas
Servicios
Invocaciones
Framework
Objetos
Clases
Métodos
Llamadas
Web
XML
XSD
WSDL
SOAP
Conceptos de Aplicación
.NET Framework facilitaUn mapeo bi-direccional
48
XmlTextWriter
XmlTextReader
<XML>
XmlDocument
DocumentNavigator
XmlReader
XmlValidatingReader XmlNodeReader
ADO.NET - Soporte a XML
49
Aplicaciones Web: ASP.NET
System.Web
Caching
Configuration
Services UI
SessionState
HtmlControls
WebControls
Description
Discovery
Security
Protocols
50
Proceso ASP.NETProceso de peticiones
Archivo.aspx.asmx
Petición
Motor ASPNET
Procesar
Clase Página
generada
Generar
Respuesta
Petición
Instanciar
Respuesta
Clase“code-
behind”
Clase Página
Instanciar, ejecutar y
“renderizar”
CLRCompiladorJIT
Top Related