.net Framework
Fernando Hualpa
Universidad de Mendoza
Agenda
.NET Framework
Cambio de paradigma
Componentes
Common Language Runtime
Librería de Clases
Lenguajes
Visual Studio .NET
Camino al futuro
WinFX
Conclusiones
.NET Framework
Un cambio cada década
Año 2000: Cambio de Paradigma
Riqueza
Web services
Código Adminstrado
Windows
3.0
MFC
COM
Win32
Win16
1980
1990
2000
.NET Framework
Componentes
VB
C++
C#
…
J#
Common Language Specification
Web Forms Web Services
Windows
Forms
ADO .NET y XML
Base Class Library
Common Language Runtime
Sistema Operativo
Visual Studio .NET
ASP .NET
.NET Framework
Common Language Runtime
VB
C++
C#
…
J#
Common Language Specification
Web Forms Web Services
Mobile Internet Toolkit
Windows
Forms
ADO .NET y XML
Base Class Library
Common Language Runtime
Sistema Operativo
Visual Studio .NET
ASP .NET
Common Language Runtime
Evolución hacia .NET
Aplicación
Código y
estructuras de
datos
Antes de COM, las aplicaciones
eran entidades completamente
separadas, con poca o ninguna
integración entre sí
Common Language Runtime
Evolución hacia .NET
COM provee una manera para
la integración de componentes
No obstante, cada componente
debe proveer su
implementación y los objetos
no pueden interactuar
directamente
Common Language Runtime
Evolución hacia .NET
Con el “Common Language
Runtime” del Framework, los
componentes son creados en un
sustrato común, el cual provee
todos los servicios de
infraestructura y permite a los
objetos interactuar directamente
entre sí
Common Language Runtime
Arquitectura
Base Class Library Support
Thread Support
COM Marshaler
Type Checker
Exception Manager
Security Engine
Debug Engine
IL to Native
Compilers
Code
Manager
Class Loader
Garbage
Collector
Common Language Runtime
Compilación y ejecución
Compilación
Código
Fuente
Compilador
Lenguage
Código
Nativo
Compilador
JIT
Ejecución
Código (IL)
Assembly
Metadata
Durante la
instalación o la
primera vez que cada
método es llamado
Common Language Runtime
Assemblies
Unidades de Ensamblado
(“Assemblies”)
La unidad en lo que
respecta a distribución,
versionamiento y seguridad
Similar a DLLs, pero
autodescriptivas a través de
un manifiesto (“manifest”)
.EXE
ó
.DLL
Metadatos
Código
Administrado
(IL)
Rescursos
Common Language Runtime
Metadatos en un Assembly
Descripciones de Tipos
Clases
Clases base
Interfaces implementadas
Miembros de datos
Métodos
Metadatos
Manifiesto
Nombre
Versión
Cultura
Otros assemblies
Permisos de seguridad
Tipos exportados
Common Language Runtime
Aplicaciones
Uno o más assemblies
Resolución de assemblies
usando metadatos
local (preferido)
Global Assembly Cache (GAC)
Aplicaciones diferentes pueden usar
diferentes versiones de un assembly
Facilita las actualizaciones de software
Facilita la desinstalación de software
.NET Framework
Librería de clases
VB
C++
C#
…
J#
Common Language Specification
Web Forms Web Services
Windows
Forms
ADO .NET y XML
Base Class Library
Common Language Runtime
Sistema Operativo
Visual Studio .NET
ASP .NET
Librería de clases
Paradigma unificado
API consistente disponible independientemente
de lenguajes o modelo de programación
.NET Framework
RAD,
Composición,
Delegación
Especialización de
clases,
Expresividad
VB Forms
MFC/ATL
Windows API
Stateless
Código embebido
en páginas HTML
ASP
Librería de clases
Beneficios
Basado en estándares Web y buenas
prácticas
La funcionalidad de las clases es universal
El código se organiza en namespaces
jerárquicos y clases
Es independiente del lenguaje
Librería de clases
Namespaces
Agrupamiento lógico, no físico
Los Namespaces son jerárquicos
Previenen confictos de colisión de nombres
.NET Framework
Librería de clases
ASP .NET
Web Forms Web Services
ADO .NET y XML
Base Class Library
Windows
Forms
.NET Framework
Librería de clases
System.Web
Services
Description
Discovery
Protocols
UI
HtmlControls
WebControls
Caching
Configuration
Security
SessionState
System.Windows.Forms
Design
ComponentModel
System.Drawing
Drawing2D
Imaging
System.Data
OleDb
Common
Printing
Text
System.Xml
SqlClient
SQLTypes
XSLT
XPath
Serialization
System
Collections
Configuration
Diagnostics
Globalization
IO
Net
Reflection
Resources
Security
ServiceProcess
Text
Threading
Runtime
InteropServices
Remoting
Serialization
.NET Framework
Múltiples Lenguajes
VB
C++
C#
…
J#
Common Language Specification
Web Forms Web Services
Windows
Forms
ADO .NET y XML
Base Class Library
Common Language Runtime
Sistema Operativo
Visual Studio .NET
ASP .NET
Múltiples Lenguajes
Definición de tipos
Common Type System (CTS)
Otros languajes y compiladores
Common Language Specification (CLS)
Microsoft provee:
VB, C++, C#, JScript
Terceras partes proveen (+30):
APL, COBOL, Pascal, Eiffel, Haskell, ML, Oberon,
Perl, Python, Scheme, Smalltalk
Múltiples Lenguajes
Beneficios
Los módulos de código son reusables
Todos los lenguajes tienen el mismo
acceso a la librería de clases
Cada languaje es usado para la tarea
correcta
La performance entre languajes es muy
similar
Herramientas
Visual Studio .NET
VB
C++
C#
…
J#
Common Language Specification
Web Forms Web Services
Windows
Forms
ADO .NET y XML
Base Class Library
Common Language Runtime
Sistema Operativo
Visual Studio .NET
ASP .NET
Visual Studio .NET
Herramientas
para Web
Forms
Multiples
Lenguajes
Herramientas para
Windows Forms
Visual Studio .NET
Herramientas
para Web
Services
Diseño
Control de
errores
Acceso
a datos
Desarrollo
Debug
Deploy
Herencia entre lenguajes
Qué es WinFX ?
Presentation
Windows
Windows
Forms
Forms
Avalon
Avalon
UI
Object
Media
Desktop Window Controls Interop
Manager
Engine
Desktop
Services
Presentation
Object Manager
Desktop
Composition Engine
Adaptive UI
Engine
Application
Services
Page/Site
Composition
Designer
Services
Personalization and
Profiling Services
Base Operating
System Services
GDI/GDI+ Window
Manager
DDI
Memory
Manager
Audio
Drivers
Power
Manager
Kernel
Hardware Abstraction Layer
CLR
Application Deployment
Engine
(Click-Once)
Direct 3D
Graphics
Graphics drivers
DirectX
Graphics
Mini port
Config
Manager
Service
Memory Manager
Calendar
Media
Document
…
ObjectSpaces
Policy
Engine
Channels
(Datagram, Reliable,
Peer, …)
DataSet
Data Model
Transport Channels
(IPC, HTTP, TCP…)
SQL XML
Items
Channel
Security
Eventing
Message
Encoder
Routing
Security
Reference
Monitor
LPC
Facility
Collaboration
History
System Services
FileSystem Services
(MetaDataHandlers..)
Transaction
Communications Manager
(Port)
Providers
Extensions
Real-Time
Activities
Signaling
Federation
Network Class Library
Code Execution
Loader
Security
Serialization
Demand Activation and Protocol Health
Network Services
Storage
Virtual Shadow
Copy Service
Transaction
Coordinator
Logging
Service
People and
Groups
Queuing
Relationships
Hosting Layer
Kernel
Transaction
Manager
Messaging
Services
Connectivity
Group
Base Class Libraries
Transactions
Lightweight
Transactions
Process
Manager
InfoAgent
(PreferenceRules..)
Collaboration
Identity &
Security
System
File Replication
Service
Virtual Disk
Service
Filter
Redirectors Distributed
File System Manager
Transacted
NTFS
Universal
Data
Format
Management
Services
(Event Logs,
Tracing,
Probes,
Auto Update,
Admin)
IO Manager
SCSI/FC
TCP
Listener
UDP
Listener
IPC
Listener
Internet Connection Firewall
Protocols
Filter
Engine
Cache
Manager
FAT 16/32
PNRP
Native SIP
WiFi
TCP, UDP
IPV4, IPV6
IPSEC
Device Drivers
802.3
802.11
..
QOS
HTTP
Listener
Kernel Mode
Plug and
Play
Input
Manager
Global
Audio
Engine
Membership and
Security Services
Controls
XML
Schemas
People
Synchronization
(WinFS, Win32..)
IndigoIndigo
ADO.NET
Framework
Software Rendering
and Sinks
T/SQL
Services
Media Services
Animation and Media
Capture and
Composition
Processing Sourcing
Hardware
Rendering
WinFS
ASP.NET
Models
Document
Communication
Communication
Data
TM
Presentation
Data
Windows
Windows
Forms
Forms
Avalon
Avalon
UI
Object
Media
Desktop Window Controls Interop
Manager
Engine
Desktop
Services
Presentation
Object Manager
Desktop
Composition Engine
Adaptive UI
Engine
Application
Services
Page/Site
Composition
Designer
Services
Personalization and
Profiling Services
Base Operating
System Services
GDI/GDI+ Window
Manager
DDI
Memory
Manager
Audio
Drivers
Power
Manager
Kernel
Hardware Abstraction Layer
CLR
Application Deployment
Engine
(Click-Once)
Direct 3D
Graphics
Graphics drivers
DirectX
Graphics
Mini port
Config
Manager
Service
Memory Manager
Calendar
Media
Document
…
ObjectSpaces
Policy
Engine
Channels
(Datagram, Reliable,
Peer, …)
DataSet
Data Model
Transport Channels
(IPC, HTTP, TCP…)
SQL XML
Items
Channel
Security
Eventing
Message
Encoder
Routing
Security
Reference
Monitor
LPC
Facility
Collaboration
History
System Services
FileSystem Services
(MetaDataHandlers..)
Transaction
Communications Manager
(Port)
Providers
Extensions
Real-Time
Activities
Signaling
Federation
Network Class Library
Code Execution
Loader
Security
Serialization
Demand Activation and Protocol Health
Network Services
Storage
Virtual Shadow
Copy Service
Transaction
Coordinator
Logging
Service
People and
Groups
Queuing
Relationships
Hosting Layer
Kernel
Transaction
Manager
Messaging
Services
Connectivity
Group
Base Class Libraries
Transactions
Lightweight
Transactions
Process
Manager
InfoAgent
(PreferenceRules..)
Collaboration
Identity &
Security
System
File Replication
Service
Virtual Disk
Service
Filter
Redirectors Distributed
File System Manager
Transacted
NTFS
Universal
Data
Format
Management
Services
(Event Logs,
Tracing,
Probes,
Auto Update,
Admin)
IO Manager
SCSI/FC
TCP
Listener
UDP
Listener
IPC
Listener
Internet Connection Firewall
Protocols
Filter
Engine
Cache
Manager
FAT 16/32
PNRP
Native SIP
WiFi
TCP, UDP
IPV4, IPV6
IPSEC
Device Drivers
802.3
802.11
..
QOS
HTTP
Listener
Kernel Mode
Plug and
Play
Input
Manager
Global
Audio
Engine
Membership and
Security Services
Controls
XML
Schemas
People
Synchronization
(WinFS, Win32..)
IndigoIndigo
ADO.NET
Framework
Software Rendering
and Sinks
T/SQL
Services
Media Services
Animation and Media
Capture and
Composition
Processing Sourcing
Hardware
Rendering
WinFS
ASP.NET
Models
Document
Communication
Tools
Client Application Model
Avalon
Windows Forms
System.Windows
System.Windows.Forms
Web & Service Application Model
Data Systems Application Model
Win FS
ASP.NET / Indigo
Yukon
System.Data.SqlServer
System.Storage
System.Web
Mobile PC & Devices Application Model
Compact
Framework
Command Line
System.Console
Mobile PC Optimized
System.Windows.Forms
NT Service
System.Windows
System.ServiceProcess
Communication
Data
Presentation
System.Search
System.Windows
UI Element
Explorer
Documents
Media
Controls
Text Element
Annotations
Animation
Dialogs
System.Data
Monitoring
Controls
System.Messaging
SqlClient
DataSet
SqlTypes
Mapping
SqlXML
ObjectSpaces
Logging
Shapes
SideBar
Shape
Control
Notification
Navigation
Ink
System.Windows.Forms
Relevance
Panel
Design
Forms
Page
WebControls
Control
Control
Adaptors
Print Dialog
HtmlControls
Design
Design
System.Help
MobileControls
Item
Recognition
Synthesis
System.NaturalLanguageServices
System.Remoting
System.Runtime.Remoting
Query
Activities
OracleClient
Schema
System.Web.Services
Description
Discovery
Relationship
Contact
Media
Location
Audio
Message
Video
Document
Images
Event
Protocols
Transport
Queue
Port
PubSub
Channel
Router
Service
Policy
System.Net
System.Web
Personalization
Query
System.MessageBus
Peer Group
System.Xml
Serialization
Uddi
OleDbClient
Core
Xpath
TransientDataSession
SignalingSession
Media
Web.Service
Schema
Active
Directory
ObjectSpace
System.Speech
System.Drawing
RealTimeEndpoint
System.DirectoryServices
OdbcClient
System.Storage
System.Web.UI
System.Collaboration
System.
Discovery
Caching
SessionState
HttpWebRequest
NetworkInformation
FtpWebListener
Sockets
SslClientStream
Cache
WebClient
Fundamentals
Security
Base & Application Services
System.Timers
System.Globalization
System.Serialization
System.Threading
System.Text
System.Design
System.IO
System.Collections
System.ComponentModel
System.CodeDom
CompilerServices
System.Reflection
InteropServices
Configuration
System.Web.Configuration
System.Security
Generic
System.Web.
Security
Ports
System.Runtime
Serialization
System.Windows.
TrustManagement
System.EnterpriseServices
System.Transactions
System.Message
Bus.Security
Authorization
AccessControl
Administration
System.Configuration
Management
Policy
Principal
Cryptography
Token
System.Web
System.MessageBus.Configuration
Permissions
Credentials
Deployment/Management
System.Resources
System.Management
System.Deployment
System.Diagnostics
Camino al Futuro
Todo construido sobre el .NET Framework
Expericias de usuario con Avalon
Infraestructura de Web services con Indigo
Plataforma de almacenamiento con WinFS
Riqueza
WinFX
Windows
3.0
.NET Framework 2.0
MFC
Win16
COM
Win32
Conclusiones
Desarrollo simplificado con modelos de
programación unificados
Administración e instalación de
aplicaciones simplificada.
Entorno de ejecución seguro
Recursos
.NET Framework SDK
http://msdn.microsoft.com/net
.NET Framework Community
http://www.gotdotnet.com
MSDN Alianza Académica
http://www.msdnaa.com
WinFX Developer Center
http://msdn.microsoft.com/winfx
Preguntas?
Descargar

Slide 1