Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1 Plataforma .NET
Francisco Ruiz
Manuel ngel Serrano
Plataforma .NET
Objetivos fundamentales (i)
Nueva manera de desarrollar software
1996 1997 2000
Internet Internet Internet
1st Gen 2nd Gen 3rd Gen
IE/IIS DNA/COM+
1992 .NET
Cliente/Servidor
Win32
UCLM-ESI. Programacin con Visual Basic .NET 1. 4
Plataforma .NET
Objetivos fundamentales (ii)
Soporte multi-lenguaje
La plataforma .NET es independiente del lenguaje
Todos los lenguajes .NET son considerados por igual
Un Runtime nico
=> mejor aprovechamiento de los conocimientos existentes
Es posible integrar otros lenguajes y crear otros compiladores
Common Language Specification (CLS)
Lenguajes disponibles:
disponibles:
Por Microsoft: Visual Basic, C++, C#, J#
Por terceros:
terceros: APL, COBOL, Pascal, Eiffel, Haskell, ML, Oberon,
Perl, Python, Scheme, Smalltalk, Fortran,
Plataforma .NET
Objetivos fundamentales (iii)
Soporte
multi-
lenguaje
Soporte multi-plataforma
Proyecto Rotor
Common Language Infraestructure (CLI)
Cdigo fuente abierto, no comercial, modificable
Compilar/ejecutar en FreeBSD,
FreeBSD, Windows, Mac OS X
http://msdn.microsoft.com
http://msdn.microsoft.com/net/
/net/sscli
sscli
Proyecto Mono
Implementaci
Implementacin open source del .NET Framework
Compilador de C#, VB.NET, CLR, librer
librera de clases, etc.
Linux, S390, SPARC, HPPA
Implementa ADO.NET, ASP.NET, etc.
www.go-
www.go-mono.com
Plataforma .NET
Objetivos fundamentales (v)
Basado en estndares
XML (XML
(XML Schemas,
Schemas, Xpath,
Xpath, XSLT)
Servicios Web
SOAP (Simple Object Access Protocol)
Protocol)
UDDI (Universal Description,
Description Discovery & Integration)
, Integration)
WSDL (Web Service Description Language)
Language)
Lenguaje intermedio com
comn CIL
Lenguaje de programaci
programacin C#
Plataforma .NET
Estrategias de Desarrollo (ii)
Paradigma de desarrollo unificado
API consistente independiente del
lenguaje y el modelo de programaci
programacin
.NET Framework
RAD, OOP, Web,
Composici
Composicin, Potencia,
Potencia, Est
Estndar,
ndar,
Delegaci
Delegacin Expresividad En HTML
Windows API
UCLM-ESI. Programacin con Visual Basic .NET 1. 10
Plataforma .NET
Estrategias de Implantacin (i)
Instalaci
Instalacin de impacto cero
Aplicaciones y componentes compartidos o privados
Ejecuci
Ejecucin side-
side-by-
by-side
side
Coexistencia de varias versiones del mismo componente
Ensamblados (Assemblies)
Colecci
Coleccin de funcionalidad creada, versionada e implantada como una unidad
unidad de
implementaci
implementacin nica (incluyendo uno o varios archivos)
Son autodescriptivos
En tiempo de ejecuci
ejecucin se resuelven las referencias entre componentes, se
garantiza la pol
poltica de enlace de versiones y se valida la integridad de los
ensamblados cargados.
El Manifiesto (Manifest) contiene los metadatos del ensamblado incluyendo
la identidad del ensamblado
los archivos que implementan el ensamblado
las dependencias en tiempo de compilaci
compilacin con otros ensamblados
los tipos y recursos que forman el ensamblado
el conjunto de permisos para ejecutarse apropiadamente
Plataforma .NET
Estrategias de Implantacin (ii)
Ventajas de los Ensamblados:
No son necesarios mms archivos para usar el componente
No m
ms archivos de cabeceras, IDL, librer
libreras de tipos, ...
Se reduce la dependencia del Registro
No mms infierno de las DLLsDLLs: se evitan las faltas de
sincronismo entre una librer
librera compartida respecto de la
aplicaci
aplicacin que la invoca
Sistema de nombres robusto
Auto-
Auto-reparaci
reparacin de aplicaciones
VB C++ C# J# Cobol
Entorno de Ejecuci
Ejecucin Com
Comn
Common Language Runtime (CLR) (ii)
VB VC ... Script
Cdigo
Cdigo
generado IL
Nativo instalaci
instalacin
Cdigo Nativo
CLR
Compilacin y ejecucin
Compilacin
Cdigo Compilador Cdigo IL
Ensamblado
Fuente Lenguaje Metadatos
Cdigo Compilador
nativo JIT Al instalar o la
primera vez que cada
Ejecucin mtodo es llamado
UCLM-ESI. Programacin con Visual Basic .NET 1. 18
CLR
Sistema de Tipos Comn (CTS) (i)
Common Type System
Conjunto est
estndar de tipos y reglas para crear nuevos tipos
Integraci
Integracin multi-
multi-lenguaje:
Heredar implementaciones de clases escritas en otros lenguajes
Invocar excepciones de c
cdigo entre lenguajes
Depurar transparentemente
No m
ms versiones de librer
libreras para cada lenguaje o compilador!
No m
ms librer
libreras de clases limitadas a un lenguaje concreto!
Todas las implementaciones de clases, interfaces, estructuras,
etc., nativas o creadas por el programador, son tipos .NET.
Todos los tipos .NET son objetos.
Dim sNombre As String
sNombre = "coche"
MessageBox.Show(sNombre.Length) ' devuelve 5
CLR
Sistema de Tipos Comn (CTS) (ii)
Categoras de tipos
Especificaci
Especificacin de Lenguaje Com
Comn
Common Language Specification (CLS)
VB C++ C# J# Cobol
Su finalidad es
Independencia del lenguaje
Integraci
Integracin entre lenguajes
Apertura a nuevos lenguajes
Aplicaciones normales:
De consola
Windows Service (no interactiva)
Windows Form (interactiva)
Windows Control Library (biblioteca de controles)
Aplicaciones para la web:
Web Application (aplicacin web cliente-servidor)
XML Web Service (servicio web)
Tipos de Aplicaciones
De Consola
Ejecutables de lnea de comandos
Escritos con cualquier lenguaje .NET
Ejecucin desatendida
Muy ligeros
Hola Mundo ~ 5k
Tipos de Aplicaciones
Windows Form
Aplicaciones Windows interactivas
Basadas en formularios
p.e., interfaz a bases de datos
SDI/MDI (multidocumento)
Estilo Explorer
Con conectores y divisores entre frames
frames
Instalacin
XCopy
No-
No-tocar (!todav
(!todava ms fcil que con XCopy!)
XCopy!)
Ejecutar desde una URL
Impresin
Configuraci
Configuracin de pginas
Previsualizaci
Previsualizacin
UCLM-ESI. Programacin con Visual Basic .NET 1. 28
Tipos de Aplicaciones
Windows Control Library
Tipos de Aplicaciones
Web Application
Mucho menos cdigo
Con Web Forms que con ASP cl
clsico
Estilo de programacin a lo VB
Controles para validar entradas
Controles complejos mejorados
DataGrid
DataList
Calendar
Sesiones seguras
Cookies no requeridos
Traza y depuracin mejoradas
Caching ms potente
Ms eventos detectables
UCLM-ESI. Programacin con Visual Basic .NET 1. 30
Tipos de Aplicaciones
XML Web Service
Evolucin de aplicaciones y sitios web
Interacciones seguras
Nueva metodologa de integracin
Entre cualquier sistema operativo y/o lenguaje
Olvidando procolos propietarios (Java RMI, CORBA IIOP,
DCOM)
Componentes de aplicacin programables
Accesibles via protocolos Internet est
estndares
HTTP, XML, SOAP, WSDL, UDDI
Soporte provisto por el Framework
Generaci
Generacin autom
automtica de XML, SOAP, WSDL
Conversi
Conversin autom
automtica de un componente en Web Service
(WebMethod)
WebMethod)
VS.NET
Introduccin al Visual Studio .NET
Entorno Integrado de Desarrollo (IDE) para .NET
Multi-lenguaje integrado
Lo mismo se hace siempre igual, independientemente del
lenguaje.
Permite elegir los tipos de aplicacin
Abierto
se pueden a
aadir nuevos lenguajes o nuevas herramientas.
Integracin con arquitectura COM
Introduccin al VS.NET
Demo de uso (ii)
Agregar nuevos elementos a un proyecto
Windows Form,
Form, Clase, M
Mdulo, Clase de componentes, Control
de usuario, Dataset,
Dataset, Archivo XML, ... hasta 33 diferentes
Configuracin del entorno
Estados de las ventanas
Acoplable / Ocultar / Flotante / Ocultar autom
automticamente
Explorador de soluciones
Soluci
Solucin: colecci
coleccin de proyectos abiertos en una misma sesi
sesin
de trabajo.
Para cada proyecto muestra sus elementos: Formularios,
mdulos, clases, recursos, referencias, etc.
References => referencias a los espacios de nombres usados
AssemblyInfo.vb => informaci
informacin del Ensamblado
VS.NET
Aspectos avanzados demo (ii)
Dividir ventana edicin
Men Edicin
Buscar/Reemplazar
Ajuste de llnea
Marcadores
Mostrar espacios en blanco
Regiones y esquematizaci
esquematizacin
Comentarios en bloques de llneas
Intellisense (ayuda inteligente
inteligente al escribir c
cdigo)
Ir a definicin de procedimiento
Mostrar pantalla completa
VS.NET
Aspectos avanzados demo (iv)
Sistema de Ayuda
MSDN (Microsoft Development Network Library)
Library)
Son CD
CDs separados de los de Visual Studio .NET
Formato HTML
Ayuda din
dinmica
Contenido
ndice
Buscar
Ayuda externa al IDE
Mantener temas visibles
Documentaci
Documentacin completa
.NET Framework SDK / MSDN for Visual Studio 2003