1. introducción a la plataforma -...
TRANSCRIPT
1
1. Introducción a la plataforma .NET
Integración de SistemasIntegración de SistemasDiseño e implementación con .NET
Contenido
Introducción
NET F k.NET Framework
Acceso a datos con ADO .NET
Windows Forms
Aplicaciones Web: ASP.NET
Herramientas de desarrollo
2
¿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 S id d A li i.NET no es un Servidor de Aplicaciones
¿Qué es .NET?
Plataforma de Desarrollo compuesta deEntorno de Ejecución (CLR)Entorno de Ejecución (CLR)
Bibliotecas de Funcionalidad (Class Library)
Lenguajes de Programación
Compiladores
Herramientas de Desarrollo (IDE & Tools)
Documentación y Guías de Arquitectura
3
Línea del tiempo de .NET
Visual Studio 6.0Visual BasicVBAVBAVisual FoxProVBScriptC++J++JScriptASP
Visual Studio .NET 2003.NET Framework 1.1.NET Compact FrameworkJ#
Visual Studio 2008.NET Framework 3.5.NET Compact Framework 3.5
2000 2001 2002 2003 2004 2005 2006 2008
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#
Características de .NET
Plataforma independiente del lenguaje
Múltiples lenguajes (C#, VB .NET, COBOL, Perl, Phython, Eiffel, etc.)
Código fuente se compila a MSIL (Microsoft Intermediate Language)MSIL se compila antes de ser ejecutado (no es interpretado)Sentencias MSIL manipulan tipos de datos comunes, compartidos por todos los lenguajes de .NET
Juntos forman el Common Type System (CTS)
Todos los lenguajes proporcionados por Microsoft tienen la misma potencia y capacidad de acceso a los recursos y servicios que expone el .NET Framework
No condiciona la elección del lenguaje
4
Características de .NET
Plataforma de ejecución intermediaEl Common Language Runtime (CLR) es el responsable de cargar g g ( ) p gy ejecutar una aplicación .NET
Utiliza compilación Just-In-Time (JIT) para traducir MSIL a código máquina
Código .NET siempre es compilado, nunca interpretadoNo usa máquina virtual para ejecutar aplicacionesCódigo es compilado JIT la primera vez que se llamaProceso de compilación genera fichero ejecutable en formato portable executable (PE) Implicaciones:executable (PE). Implicaciones:
CLR nunca sabe, ni le importa, que lenguaje fue usado para crear la aplicación o componente
Para que el código funcione en otra plataforma basta reemplazar el compilador JIT
Características de .NET
Plataforma 100% Orientada a Objetos ⇒ no existen tipos primitivos
P it l d ll d li i i lPermite el desarrollo de aplicaciones empresariales
Modelo de programación único para todo tipo de aplicaciones (consola, Web, aplicaciones móviles, etc.) y dispositivos de hardware (PC, PDA, SmartPhone, etc.)
Código gestionadoAdemás de compilar, CLR gestiona las aplicaciones, haciéndose responsable dde:
Cargar, verificar y ejecutar código, la recolección de basura (Garbage Collector), proteger las aplicaciones unas de otras, hacer cumplir las restricciones de seguridad, proporcionar servicios de depuración e incluir soporte para versiones y desarrollo
Además del MSIL, compiladores generan MetadataMetadata describe tiposComponentes .NET son autodescriptivos
5
Características de .NETModelo de ejecución
Todos los lenguajes son compilados a ILExtraído de: Grimes, F. (2002). Microsoft. Net for Programmers: Manning.
MSIL vs. Java bytecode
Java bytecode específicamente diseñado para soportar lenguaje Java, mientras MSIL diseñado para soportar múltiples lenguajesp p p g j
Java Virtual Machine diseñada para permitir Java bytecodeinterpretado o compilado, mientras MSIL fue diseñado explícitamente para compilación JIT (Just-In-Time Compilation)
6
Common Type System (CTS)
El Common Type System (CTS) o Sistema de Tipo Común es el conjunto de reglas que han de j g qseguir las definiciones de tipos de datos para que el CLR las acepte
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 valor y tipos referencia
Tipos valor vs. Tipos referenciaCLR administra dos segmentos de memoria: Stack (Pila) y Heap (Montón)
Ti l (i t tTipos valor (i.e: enteros, caracteres, boleanos, etc.) se almacenan en el Stack
Tipos referencia (i.e: strings, clases definidas por el usuario, etc.) en el Heap
El Stack es liberado automáticamente una vez finaliza el procedimiento o el bloque de código, mientras que el Heap es administrado por el GC
Ti f i d l ti lTipo referencia puede ser nulo, tipo valor no
Posible crear nuevos objetos valor (e.g. C# struct)
Para preservar filosofía “Todo es un objeto”, .NET provee un tipo referencia correspondiente a cada tipo valor
7
Assemblies
Un Assembly o Ensamblado es la unidad mínima de ejecución, distribución, instalación y versionado de aplicaciones .NET
Normalmente extensión dll o exeNormalmente, extensión .dll o .exe
Todo código ejecutable debe formar parte de un Assembly
Contienen:Código MSILManifest (Manifiesto)
METADATA: información sobre sí mismos y los recursos de los que dependen (son autodescriptivos)
Aplicación .NET se compone de uno o más ensamblados
Pueden ser privados (opción por defecto) o compartidos (se instalan en la Global Assembly Cache)
Assemblies
Combinando módulos gestionados en AssembliesExtraído de: Richter, J. (2003). Applied Microsoft. NET framework programming: Microsoft Press.
8
Assemblies
Herramienta MSIL Dissasembler (ildasm.exe), incluida en el .NET Framework SDK
Assemblies. Global Assembly Cache (GAC)
Es un repositorio centralizado de ensamblados en el cual se instalan todos los ensamblados que serán utilizados por múltiples aplicaciones en la misma máquinamisma máquina
Para registrar un ensamblado en la GAC es necesario utilizar la herramienta gacutil.exe, incluida en el .NET Framework SDK
Obligatorio un nombre distinto para cada libreríaSe consigue con tecnología de cifrado de clave pública
Es posible distinguir entre versiones de un mismo ensamblado y éstas pueden convivir sin ningún conflictop g
Cada aplicación utiliza la versión de la librería que necesiteSoluciona problema DLL Hell
Actualizaciones y desinstalaciones más simples
9
Assemblies. Global Assembly Cache (GAC)
Panel de Control > Herramientas Administrativas > .NET Framework Configuration Administrative toolg
Assemblies. Global Assembly Cache (GAC)
10
Contenido
Introducción
NET F k.NET Framework
Acceso a datos con ADO .NET
Windows Forms
Aplicaciones Web: ASP.NET
Herramientas de desarrollo
.NET Framework
Paquete de software fundamental de la plataforma .NET. Incluye:Entorno de ejecución (Runtime)
Bibliotecas de funcionalidad reutilizable (Class Library)
Tres variantes principales:.NET Framework Redistributable Package (R + CL)
.NET Framework SDK (R + CL + compiladores, depuradores, etc.)
.NET Compact Framework
Distribución libre y gratuita
Instalado por defecto en Windows 2003 Server, Windows XP SP2 y Vista
11
Arquitectura del .NET Framework
VB C++ C# J#
ADO.NET y XML
ASP.NET Windows Forms
Common Language Specification
VB C++ C# J# …
ram
ewor
k rib
utab
le
T Fr
amew
ork
SD
K
T Fr
amew
ork
ass
Libr
ary
Windows COM+ Services
Common Language Runtime
Base Class Library
.NET
Fr
Red
istr
.NE
T
.NET Cla
Arquitectura del .NET FrameworkCommon Language Runtime
El CLR es un entorno de ejecución que puede ser usado por distintos lenguajes de programación
El CLR es el responsable de cargar y ejecutar una aplicación .NETUtiliza compilación Just-In-Time (JIT) para traducir MSIL a código máquina
Además de compilar, CLR gestiona las aplicaciones, haciéndose responsable de:
Cargar, verificar y ejecutar código, la recolección de basura (GarbageC ll ) l li i d h li lCollector), proteger las aplicaciones unas de otras, hacer cumplir las restricciones de seguridad, proporcionar servicios de depuración e incluir soporte para versiones y desarrollo
La gestión del código por parte del CLR proporciona una capa extra que desacopla la aplicación del SO
12
Arquitectura del .NET Framework.NET Framework Class Library
Conjunto de Tipos básicos (clases, interfaces, etc.) que vienen incluidos 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 programación de alto nivel que se desee utilizar (C# VBprogramación de alto nivel que se desee utilizar (C#, VB .NET, etc.)
Es extensible y totalmente orientada a objetos
Arquitectura del .NET Framework.NET Framework Class Library
System.WebS iS i UIUI
System.Windows.FormsD iD i C tM d lC tM d l
System.Data System.XmlOLE DBOLE DB ODBCODBC XSLTXSLT SerializationSerialization
ConfigurationConfiguration SessionStateSessionState
CachingCaching SecuritySecurity
ServicesServicesDescriptionDescription
DiscoveryDiscovery
ProtocolsProtocols
UIUIHtmlControlsHtmlControls
WebControlsWebControls
System.Drawing
ImagingImaging
Drawing2DDrawing2D
TextText
PrintingPrinting
DesignDesign ComponentModelComponentModel
System
GlobalizationGlobalization
DiagnosticsDiagnostics
ConfigurationConfiguration
CollectionsCollections
ResourcesResources
ReflectionReflection
NetNet
IOIO
ThreadingThreading
TextText
ServiceProcessServiceProcess
SecuritySecurity
CommonCommon SqlClientSqlClient XPathXPath
RuntimeRuntimeInteropServicesInteropServices
RemotingRemoting
SerializationSerialization
13
Arquitectura del .NET FrameworkCommon Language Specification
El CLS define el mínimo conjunto de características que todos los lenguajes deben soportar, si pretenden ajustarse al CLR y soportar operatividad multilenguajemultilenguaje
Todos los componentes desarrollados y compilados de acuerdo con la especificación CLS pueden interactuar entre sí, independientemente del lenguaje de programación de alto nivel en el que fueron escritos
El CLR/CTS soporta muchas más características que el subconjunto definido por el CLS
Si la operatividad multilenguaje no es un objetivo, se pueden desarrollar tipos más ricos, limitados solo por el conjunto de características del lenguaje
El CLS define reglas a las que se deben adherir los tipos y los métodos visibles externamente, para que éstos sean accesibles desde cualquier lenguaje de programación CLS-compatible
Las reglas del CLS no afectan a código que es accesible sólo desde el asembly en que se defineLibrerías que se adhieren al CLS se dicen CLS-compliant
Arquitectura del .NET FrameworkCommon Language Specification
El CLR/CTS ofrece un conjunto de características
Al l j b j d l CLR/CTSAlgunos lenguajes exponen un gran subconjunto del CLR/CTS
El CLS define el mínimo conjunto de características que todos los lenguajes deben soportar
Los lenguajes ofrecen un subconjunto del CLR/CTS y un superconjunto del CLS (pero no necesariamente el mismo superconjunto)
Extraído de: Richter, J. (2003). Applied Microsoft. NET framework programming: Microsoft Press.
14
Arquitectura del .NET FrameworkCommon Language Specification. Lenguajes compatibles
AdaAPL
Haskell (Utrecht U.)JavaScript
Basic (Visual Basic)C#CC++DelphiJavaCOBOL
Lisplcc (MS Research Redmond)Mondrian (Utrecht)ML (MS Research Cambridge)Mercury (Melbourne U.) Oberon (Zurich University)Oz (Univ of Saarlandes)
Component Pascal(Queensland U Tech)ECMAScript (JScript)Eiffel (Monash U.)Fortran
PerlPrologPythonScheme (Northwestern U.)SmallTalk
CLR Hosting & Application Domains
Una aplicación .NET necesita una pieza de código llamada RuntimeHost para ejecutarsep j
El Runtime Host carga el Runtime (CLR) en un proceso, crea Application Domains dentro del proceso y carga y ejecuta el código del usuario dentro de esos Application Domains
CLRCLR Host
Código Gestionado
CLRAppDomain 1
Código Gestionado
AppDomain N
15
CLR Hosting & Application Domains
Los Application Domains son procesos virtuales dentro del CLRSe ejecutan dentro de un proceso del Sistema OperativoUn proceso puede contener varios Application DomainsMás eficiente que múltiples procesos del SO
Todos los ensamblados que conforman una aplicación siempre son cargados en un Application Domain
Los Application Domains proporcionan un aislamiento entre aplicaciones, que garantiza:
Una aplicación pueda ser detenida independientemente del restoUna aplicación no pueda acceder directamente a código en ejecución de otra aplicaciónUn fallo en una aplicación no afecte al resto de aplicaciones
Funcionamiento: Resumen
Desarrollo EjecuciónDesarrollo(VisualStudio .NET)
Ejecución(Plataforma .NET)
Análisis y diseño
Código fuente
Compilador
Verificación
Compilación(JIT)
Código Nativop
Código MSIL(Ensamblado)
Código Nativo
Ejecución(CLR)
16
Contenido
Introducción
NET F k.NET Framework
Acceso a datos con ADO .NET
Windows Forms
Aplicaciones Web: ASP.NET
Herramientas de desarrollo
Acceso a datos con ADO.NET
System.Data
OleDbSqlClient
OracleClientCommon
Odbc SqlTypes
System.XmlSerialization
XPathXSLT
Schema
17
ADO.NET - Arquitectura
ADO.NET - DataSet
DataSet DataTableDataSet
DataTableDataTable
DataTable
DataRowDataRow
DataColumnDataColumn
RelationsRelations
DataRelationDataRelationXML SchemasXML Schemas
18
Acceso a Bases de Datos Relacionales: Entorno Conectado
Los usuarios están constantemente conectados a la fuente de datos
Ventajas:Mayor seguridadMejor control de concurrenciaLos datos se mantienen actualizados
Desventajas:Se requiere una conexión constante (consume recursos del servidor)q ( )Escalabilidad limitada por cantidad de conexiones
Acceso a Bases de Datos Relacionales: Entorno Conectado
En un escenario conectado, los recursos se mantienen en el servidor hasta que la conexión se cierra
Pasos1) Abrir Conexión2) Ejecutar Comando3) Procesar Filas en DataReader
C d4) Cerrar DataReader
5) Cerrar Conexión
19
Acceso a Bases de Datos Relacionales: Entorno Desconectado
Una parte de los datos del repositorio central se copia y modifica en forma local, para luego sincronizarse con éste
VentajasForma cómoda de trabajar, si los datos únicamente se necesitan para lectura
DesventajasLos datos no están sincronizadosSólo es válido para ciertos escenariosp
En un escenario desconectado, los recursos no se mantienen en el servidor mientras los datos se procesan
Acceso a Bases de Datos Relacionales: Entorno Desconectado
mientras los datos se procesan
Pasos1) Abrir Conexión2) Llenar DataSet mediante DataAdapter3) Cerrar Conexión4) Procesar DataSet5) Abrir Conexión6) Actualizar fuente de datos mediante
DataAdapter7) Cerrar Conexión
20
Contenido
Introducción
NET F k.NET Framework
Acceso a datos con ADO .NET
Windows Forms
Aplicaciones Web: ASP.NET
Herramientas de desarrollo
Windows Forms
Una clase base común: ControlRepresenta un elemento de la interfaz gráfica
Resto de elementos derivan de ControlFormulario Windows (Form)Básicos (TextBox) y extendidos (DataGrid)
Funcionalidad encapsulada en propiedades y eventos
21
System Windows Forms
Windows Forms
System.Drawing
System.Windows.FormsDesign ComponentModel
System.DrawingDrawing2DImaging
PrintingText
Contenido
Introducción
NET F k.NET Framework
Acceso a datos con ADO .NET
Windows Forms
Aplicaciones Web: ASP.NET
Herramientas de desarrollo
22
Aplicaciones Web: ASP.NET
Versión para la plataforma .NET de la tecnología ASP (Active Server Pages)(Active Server Pages)
Tres partes muy diferenciadas:Web Forms
Server Controls
Web ServicesWeb Services
System.Web
Aplicaciones Web: ASP.NET
System.WebServices UI
HtmlControls
WebControls
Description
Discovery
Protocols
CachingConfiguration SessionState
Security
Protocols
23
Arquitectura de aplicaciones Web con ASP.NET
VistaUI Pages
(.htm)Web Form
(.aspx)
Lógica Negocio
Graphic Files
( )
User Controls(.ascx)
Code-Behind File(.aspx.vb or .aspx.cs)
Proxy ADO.NET RCW
( p )
Datos
XML Web Services(.asmx)
.NET Objects
Data Source
COM+Services
COMObjects
Contenido
Introducción
NET F k.NET Framework
Acceso a datos con ADO .NET
Windows Forms
Aplicaciones Web: ASP.NET
Herramientas de desarrollo
24
Testers
Herramientas de desarrollo: Visual Studio 2005
Part Timers
Profesionales
Consultores
Desarrolladores
Arquitectos
VB6 Devs
Novatos
Entusiastas
Estudiantes
Hobbyists
Part-Timers
Herramientas de desarrollo gratuitas
Visual Studio 2005 Express Editions
Diseñadas para estudiantes y principiantes
Hay varias ediciones, según el tipo de aplicación y el lenguaje
Características avanzadas, por ejemplo:RefactoringCode SnippetsDiseñadores WYSIWYGDepuradoresIntellisense
25
SQL Server 2005 Express
La nueva versión de MSDE
Es gratuito
Preparado para trabajar integrado con .NET 2.0
Tamaño máximo de base: 4 Gb
Máximo conexiones concurrentes: no tiene
Incluye una interfaz de administración y un editor de consultas
Mayor integración con Visual Studio 2005
Recursos libres
Open Source Software in C#phttp://csharp-source.net/IDEsLibrerías, Fuentes, etc.
SharpDevelop. The Open Source Development Environment for .NET
http://www.icsharpcode.net/OpenSource/SD/Soporte:Soporte:
C# Visual Basic .NET
26
Sharp Develop
Mono Project
http://www.mono-project.comhttp://www.mono project.com
IncluyeCLI: Common Language InfrastructureLibrería clases sobre CLRCompilador C#
Entornos ejecución:Linux, Unix, SolarisMacOS XWindows
27
Mono develop
http://www.monodevelop.org