2.- introducción a la plataforma .net.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1...

38
1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación con .NET Contenido Introducción .NET Framework Acceso a Bases de Datos con ADO .NET Windows Forms Aplicaciones Web: ASP.NET Herramientas de desarrollo

Upload: others

Post on 21-Apr-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

1

1. Introducción a la plataforma .NET

Integración de SistemasDiseño e implementación con .NET

ContenidoIntroducción

.NET Framework

Acceso a Bases de Datos con ADO .NET

Windows Forms

Aplicaciones Web: ASP.NET

Herramientas de desarrollo

Page 2: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

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 no es un Servidor de Aplicaciones

¿Qué es .NET?

Plataforma de Desarrollo compuesta deEntorno de Ejecución (Runtime)

Bibliotecas de Funcionalidad (Class Library)

Lenguajes de Programación

Compiladores

Herramientas de Desarrollo (IDE & Tools)

Documentación y Guías de Arquitectura

Page 3: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

3

Java & .NET: entornos de ejecución

JavaCódigo Java se compila a bytecodeBytecode originalmente orientado a la interpretaciónJava Virtual Machine (JVM) ejecuta bytecode

.NET FrameworkCódigo C#, VB .NET, C++, J#, etc. se compila a Microsoft Intermediate Language (MSIL)MSIL se compila a medida que se va necesitando durante la ejecución (Just-In-Time Compilation)

Se evita la sobrecarga de la interpretaciónión

¿Por qué surge?La programación Windows y el propio S.O. estaba alcanzando alto nivel de complejidad

Interfaces de los API’s del SO para los diferentes lenguajesMultitud de servicios duplicadosPocas posibilidades de reutilización del código

Infierno de las DLL Win32Problemas si dos aplicaciones usan misma librería, pero diferentes versiones

SOLUCION: Plataforma .NETMantiene compatibilidad hacia atrásHace posible interoperatividad entre lenguajesHace posible convivencia diferentes versiones de la misma librería

Page 4: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

4

Lí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#

Características de .NETPlataforma de ejecución intermedia

Aplicaciones se compilan a lenguaje MSIL (Microsoft Intermediate Language)Código MSIL se ejecuta contra Entorno de Ejecución (Runtime)100% Orientada a Objetos ⇒ no existen tipos primitivos

Multi-lenguaje

Permite 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.)

Se integra fácilmente con aplicaciones existentes Desarrolladas en plataformas MicrosoftDesarrolladas en otras plataformas

Page 5: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

5

Plataforma de ejecución intermedia

Entorno de Desarrollo

Mic

roso

ft .N

ET

Librerías de Funcionalidad

Lenguajes de Programación

Entorno de Ejecución

Sistema Operativo (Familia Windows)

Aplicación .NET

ContenidoIntroducción

.NET FrameworkArquitecturaCLRClass LibraryCLSCLICTSModelo de Ejecución

Acceso a Bases de Datos con ADO .NET

Windows Forms

Aplicaciones Web: ASP.NET

Herramientas de desarrollo

Page 6: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

6

.NET FrameworkPaquete 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 y Windows XP SP2

¿Dónde instalar el .NET Framework?

.NET Compact Framework

*

*

AplicaciónMóvil

Aplicación de Consola

Aplicación Web

Aplicación de Escritorio

ServidorCliente

* Sólo si la aplicación es distribuida

Page 7: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

7

ContenidoIntroducción

.NET FrameworkArquitecturaCLRClass LibraryCLSCLICTSModelo de Ejecución

Acceso a Bases de Datos con ADO .NET

Windows Forms

Aplicaciones Web: ASP.NET

Herramientas de desarrollo

Arquitectura del .NET Framework

Windows COM+ Services

Common Language Runtime

Base Class Library

ADO.NET y XML

ASP.NET Windows Forms

Common Language Specification

VB C++ C# J# …

.NET

Fra

mew

ork

Red

istr

ibut

able

.NE

T Fr

amew

ork

SD

K

.NET

Fra

mew

ork

Cla

ssLi

brar

y

Page 8: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

8

Arquitecturas de ejecución de aplicaciones

ContenidoIntroducción

.NET FrameworkArquitecturaCLRClass LibraryCLSCLICTSModelo de Ejecución

Acceso a Bases de Datos con ADO .NET

Windows Forms

Aplicaciones Web: ASP.NET

Herramientas de desarrollo

Page 9: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

9

CLR – Common Language RuntimeEl CLR es el motor de ejecución (Runtime) de .NET

CaracterísticasCompilación Just-In-Time (JIT) del MSIL a código nativoGestión automática de memoria (Garbage Collector)Gestión de errores consistente (Excepciones)

Cualquier error no gestionado es capturado por el CLR y no afecta a otras aplicaciones que se estén ejecutando

Ejecución basada en componentes (Assemblies o ensamblados)Gestión de Seguridad

Permite establecer políticas de seguridadMultithreading

Proporciona mecanismos de sincronización y acceso concurrente a recursos compartidos

CLR – Common Language Runtime

Class Loader

GC, Stack Walk, Code Manager

IL N

ativ

eC

ode

Com

pile

rs

Exe

cutio

nS

uppo

rt

Sec

urity

Base Classes

Com

mon

Lang

uage

Run

time

Page 10: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

10

La Memoria y los Tipos de DatosEl CLR administra dos segmentos de memoria: Stack (Pila) y Heap(Montón)

Los tipos valor (i.e: enteros, caracteres, boleanos, etc.) se almacenan en el Stack

Los tipos referencia (i.e: strings, clases definidas por el usuario, etc.) se almacenan 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

¿Qué es un Assembly o Ensamblado?

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 .exe

Aplicación .NET se compone de uno o más Ensamblados

Ensamblados pueden ser privados (opción por defecto) o compartidos (se instalan en la Global AssemblyCache)

Page 11: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

11

Ensamblados

Ensamblados .NET vs. COMUtilizando COM se deben registrar los módulos en el registro de Windows para que las aplicaciones los localicen

Con .NET los ensamblados privados no precisan de registro y basta con distribuirlos junto a la aplicación

Ventajas:Eliminación de problemas por conflicto de versiones (Infierno DLL)Dejan de existir posibles entradas huérfanas por una mala desinstalación en el registro

Ensamblados. Ubicación

Al ejecutar una aplicación, ¿dónde busca el Class Loader los ensamblados necesarios?

En el directorio de la aplicación, si son ensamblados privados

Buena opción si los ensamblados sólo serán utilizados por esa aplicación

En la Global Assembly Cache (GAC), si son ensamblados compartidos

Page 12: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

12

Ensamblados. 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á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 gracias a la asociación de una clave pública RSA

Es posible distinguir entre versiones de un mismo ensamblado y éstas pueden convivir sin ningún conflicto

Cada aplicación utiliza la versión de la librería que necesite

Actualizaciones y desinstalaciones más simples

Ensamblados. Global Assembly Cache (GAC)

Panel de Control > Herramientas Administrativas > .NET Framework Configuration Administrative tool

Page 13: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

13

Ensamblados. Global Assembly Cache (GAC)

Ensamblados - Metadata

Describe con detalle la estructura de un Ensamblado

Se genera automáticamente al compilar el Ensamblado y se almacena en su interior

MSIL + METADATA = Ensamblado

Es utilizada por el CLR al cargar y ejecutar el Ensamblado

Se puede convertir a un Schema XML y se puede leer desde un Schema XML

Page 14: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

14

Ensamblados - Metadata

Metadata

Código CompiladoMSIL

Recursos

MiBiblioteca.DLL

Descripción de TiposClasesClases BaseInterfaces ImplementadasAtributos de las ClasesMétodos de las Clases

NombreVersiónCultura[Clave Pública]

Manifiesto del Ensamblado

Dependencias EnsambladosPermisos de SeguridadTipos Externos

Ensamblados - Metadata

Herramienta MSIL Dissasembler, incluida en el .NET Framework SDK

Page 15: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

15

ContenidoIntroducción

.NET FrameworkArquitecturaCLRClass LibraryCLSCLICTSModelo de Ejecución

Acceso a Bases de Datos con ADO .NET

Windows Forms

Aplicaciones Web: ASP.NET

Herramientas de desarrollo

Arquitectura del .NET Framework

Windows COM+ Services

Common Language Runtime

Base Class Library

ADO.NET y XML

ASP.NET Windows Forms

Common Language Specification

VB C++ C# J# …

.NET

Fra

mew

ork

Red

istr

ibut

able

.NE

T Fr

amew

ork

SD

K

.NET

Fra

mew

ork

Cla

ssLi

brar

y

Page 16: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

16

.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#, VB .NET, etc.)

Es extensible y totalmente orientada a objetos

.NET Framework Class Library

System

System.Data System.Xml

System.Web

GlobalizationGlobalization

DiagnosticsDiagnostics

ConfigurationConfiguration

CollectionsCollections

ResourcesResources

ReflectionReflection

NetNet

IOIO

ThreadingThreading

TextText

ServiceProcessServiceProcess

SecuritySecurity

CommonCommon

OLE DBOLE DB

SqlClientSqlClient

ODBCODBC

XPathXPath

XSLTXSLT

RuntimeRuntimeInteropServicesInteropServices

RemotingRemoting

SerializationSerialization

SerializationSerialization

ConfigurationConfiguration SessionStateSessionState

CachingCaching SecuritySecurity

ServicesServicesDescriptionDescription

DiscoveryDiscovery

ProtocolsProtocols

UIUIHtmlControlsHtmlControls

WebControlsWebControls

System.Drawing

ImagingImaging

Drawing2DDrawing2D

TextText

PrintingPrinting

System.Windows.FormsDesignDesign ComponentModelComponentModel

Page 17: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

17

ContenidoIntroducción

.NET FrameworkArquitecturaCLRClass LibraryCLSCLICTSModelo de Ejecución

Acceso a Bases de Datos con ADO .NET

Windows Forms

Aplicaciones Web: ASP.NET

Herramientas de desarrollo

Arquitectura del .NET Framework

Windows COM+ Services

Common Language Runtime

Base Class Library

ADO.NET y XML

ASP.NET Windows Forms

Common Language Specification

VB C++ C# J# …

.NET

Fra

mew

ork

Red

istr

ibut

able

.NE

T Fr

amew

ork

SD

K

.NET

Fra

mew

ork

Cla

ssLi

brar

y

Page 18: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

18

Common Language Specification (CLS)

Especificación que estandariza una serie de características soportadas por el CLR

Contrato entre diseñadores de lenguajes de programación y autores de librerías

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

Ej.: aplicación VB .NET puede incorporar nuevas partes escritas en C#

Microsoft provee implementaciones de 4 lenguajes compatibles conCLS, junto con sus compiladores

Microsoft Visual C# .NETMicrosoft Visual Basic .NETMicrosoft Visual J# .NETMicrosoft Visual C++ .NET

CLS - Elección del lenguaje.NET posee un único runtime (el CLR) y un único conjunto de librerías para todos los lenguajes

Todos los lenguajes proporcionados por Microsoft tienen la misma potencia y capacidad de acceso a los recursos y servicios que expone el .NET Framework

El lenguaje a utilizar, en general, dependerá de la experiencia previa con otros lenguajes o de gustos personales

Si se conoce Java, Delphi, C++, etc. C#Si se conoce Visual Basic o VBScript VB .NET

Los tipos de aplicaciones .NET son independientes del lenguaje que se elija

Page 19: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

19

CLS – Listado de lenguajes compatibles

AdaAPLBasic (Visual Basic)C#CC++DelphiJavaCOBOLComponent Pascal(Queensland U Tech)ECMAScript (JScript)Eiffel (Monash U.)Fortran

Haskell (Utrecht U.)JavaScriptLisplcc (MS Research Redmond)Mondrian (Utrecht)ML (MS Research Cambridge)Mercury (Melbourne U.) Oberon (Zurich University)Oz (Univ of Saarlandes)PerlPrologPythonScheme (Northwestern U.)SmallTalk

ContenidoIntroducción

.NET FrameworkArquitecturaCLRClass LibraryCLSCLICTSModelo de Ejecución

Acceso a Bases de Datos con ADO .NET

Windows Forms

Aplicaciones Web: ASP.NET

Herramientas de desarrollo

Page 20: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

20

Common Language Infrastructure (CLI)Especificación que describe un entorno para la ejecución de aplicaciones, cuyos objetivos principales son:

Permitir que aplicaciones escritas en distintos lenguajes de alto nivel puedan ejecutarse en múltiples plataformas, sin necesidad de recompilarExponer todas las entidades de programación a través de un único sistema unificado de tipos (CTS)Proveer un conjunto de Librerías Básicas (BCL)

Patrocinada por Microsoft, Intel, HP, IBM y Fujitsu, entre otras

Estandarizada por ECMA en 2001 (ECMA-335) y ratificada por ISO en 2003 (ISO/IEC 23271:2003)

El .NET Framework y el .NET Compact Framework son implementaciones de la especificación CLI

Sub-Especificaciones del CLILenguajes de alto nivel

Se ajustan a las reglas de la …

CLS (Common Language Specification)Y utilizan las clases de la …

BCL (Base Class Library)Cuyos tipos básicos forman el …

CTS (Common Type System)Y se ejecutan bajo el control de y usan los servicios del …

CLR (Common Language Runtime)Que está acoplado al y utiliza los servicios del …

Sistema Operativo

Page 21: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

21

ContenidoIntroducción

.NET FrameworkArquitecturaCLRClass LibraryCLSCLICTSModelo de Ejecución

Acceso a Bases de Datos con ADO .NET

Windows Forms

Aplicaciones Web: ASP.NET

Herramientas de desarrollo

Common Type System (CTS)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

Page 22: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

22

Common Type System (CTS)

Uso del CTS (Common Type System)Recoge la definición de todos los tipos y sus operaciones de todos los lenguajes

Para la cooperación entre lenguajes se debe ajustar al CLS

CLS (Common Language Specification), subconjunto de la CTS común a todos los lenguajes

Common Type System (CTS)CTS (Common Type System) y CLS (CommonLanguage Specitication) permiten generar un mismo código MSIL, independientemente del lenguaje de alto nivel utilizado

Gracias a CLS se puede utilizar código en otro lenguaje como si fuera del mismo.

Ej. Heredar desde C# una clase implementada en VisualBasic.NET

Una librería puede internamente no cumplir con CLS, pero si de cara al exterior, los tipos expuestos lo cumplen, se puede considerar que lo cumple

Page 23: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

23

ContenidoIntroducción

.NET FrameworkArquitecturaCLRClass LibraryCLSCLICTSModelo de Ejecución

Acceso a Bases de Datos con ADO .NET

Windows Forms

Aplicaciones Web: ASP.NET

Herramientas de desarrollo

Modelo de ejecución del CLR

VB.NETCódigoFuente

Compilador VB.NET

C++ .NETC#

Sistema Operativo (Windows)

Common Language Runtime

Compilador JIT

Código Nativo

CódigoGestionado

ComponenteNo Gestionado

CompiladorC#

CompiladorC++ .NET

EnsambladoCódigo MSIL

EnsambladoCódigo MSIL

EnsambladoCódigo MSIL

Page 24: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

24

Modelo de ejecución del CLR

Debug EngineDebug Engine

CompiladorCompiladorJITJIT

EnsambladoEnsambladoen la en la mmááquinaquina

destinodestinoEnsambladoEnsamblado

Desarrollo Instalación

InstalaciInstalacióónn

Ejecución

AssemblyAssemblyLoaderLoaderSeguridadSeguridadClass Class

LoaderLoader

.exe .exe NativoNativo++

TablaTabla GC GC

Code Code ManagerManager

Garbage CollectorGarbage Collector

ControladorControlador ExcepcionesExcepciones

SoporteSoporte MultiThreadMultiThread

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"

Compilación y Ejecución

Compilación Just In Time (JIT)Compila el código al vuelo según se necesiteExiste un compilador JIT para cada dispositivo y/o sistemaCódigo una vez compilado, no se vuelve a compilarNo se compila todo el código almacenado en memoria, sino sólo el que se ejecutaExiste la posibilidad de hacer código nativo, en el caso de que la aplicación solo vaya a ser ejecutada en un entorno determinado (dispositivo, sistema, etc.).

Llamados pre-jitter pueden ser ejecutados desde la línea de comandos

Page 25: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

25

Compilación y Ejecución

Compilación JIT (cont.)Dos tipos de compiladores JIT

Econo JITMuy rápido, pero código generado no optimizadoEl código puede descartarse y regenerarse

Estándar compiler:Más lento, pero código optimizadoIncluye verificación código MSIL

Application DomainsProcesos virtuales dentro del CLR

Se ejecutan dentro de un proceso del Sistema OperativoUn proceso puede contener varios Application DomainsMás eficiente que múltiples procesos del SOMás eficiente en el intercambio de contexto de ejecución

Todos los ensamblados que conforman una aplicación siempre son cargados en un Application Domain

Aislamiento entre aplicaciones garantizaUna 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

Page 26: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

26

Application Domains - CLR Host

Código Gestionado

CLRCLR Host

AppDomain 1

Código Gestionado

AppDomain N

Funcionamiento: Resumen

Desarrollo(VisualStudio .NET)

Ejecución(Plataforma .NET)

Análisis y diseño

Código fuente

Compilador

Código MSIL(Ensamblado)

Verificación

Compilación(JIT)

Código Nativo

Ejecución(CLR)

Page 27: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

27

ContenidoIntroducción

.NET Framework

Acceso a Bases de Datos con ADO .NET

Windows Forms

Aplicaciones Web: ASP.NET

Herramientas de desarrollo

Acceso a Datos: ADO .NET

System.Data

OleDbSqlClient

OracleClientCommon

Odbc SqlTypes

System.XmlSerialization

XPathXSLT

Schema

Page 28: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

28

ADO .NET - Arquitectura

ADO .NET - DataSet

DataSet

DataTableDataTable

DataTable

DataRowDataRow

DataColumnDataColumn

RelationsRelations

DataRelationDataRelationXML SchemasXML Schemas

Page 29: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

29

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)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 DataReader4) Cerrar DataReader5) Cerrar Conexión

Page 30: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

30

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 escenarios

En un escenario desconectado, los recursos no se mantienen en el servidor 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

Acceso a Bases de Datos Relacionales: Entorno Desconectado

Page 31: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

31

ContenidoIntroducción

.NET Framework

Acceso a Bases de Datos con ADO .NET

Windows Forms

Aplicaciones Web: ASP.NET

Herramientas de desarrollo

Windows Forms

Una clase base común: Control

Representa 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

Eventos accesibles mediante delegates

Page 32: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

32

System.DrawingDrawing2DImaging

PrintingText

System.Windows.FormsDesign ComponentModel

Windows Forms

ContenidoIntroducción

.NET Framework

Acceso a Bases de Datos con ADO .NET

Windows Forms

Aplicaciones Web: ASP.NET

Herramientas de desarrollo

Page 33: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

33

Aplicaciones Web: ASP.NET

Versión para la plataforma .NET de la tecnología ASP (Active Server Pages)

Tres partes muy diferenciadas:Web Forms

Server Controls

Web Services

System.Web

CachingConfiguration

Services UI

SessionState

HtmlControls

WebControls

Description

Discovery

Security

Protocols

Aplicaciones Web: ASP.NET

Page 34: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

34

Arquitectura de aplicaciones Web con ASP.NET

VistaVista

Lógica NegocioLógica Negocio

DatosDatos

Graphic Files

Graphic Files

UI Pages(.htm)

UI Pages(.htm)

XML Web Services(.asmx)

XML Web Services(.asmx)

User Controls(.ascx)

User Controls(.ascx)

Code-Behind File(.aspx.vb or .aspx.cs)

Code-Behind File(.aspx.vb or .aspx.cs)

ProxyProxy ADO.NETADO.NET

.NET Objects

.NET Objects

Data Source

COM+ServicesCOM+

ServicesCOM

ObjectsCOM

Objects

RCWRCW

Web Form (.aspx)

Web Form (.aspx)

ContenidoIntroducción

.NET Framework

Acceso a Bases de Datos con ADO .NET

Windows Forms

Aplicaciones Web: ASP.NET

Herramientas de desarrollo

Page 35: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

35

Novatos

Entusiastas

Estudiantes

Hobbyists

Part-Timers

Profesionales

Consultores

Desarrolladores

Arquitectos

Testers

VB6 Devs

Herramientas de desarrollo: Visual Studio 2005

Herramientas de desarrollo gratuitas

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

Visual Studio 2005 Express Editions

Page 36: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

36

SQL Server 2005 ExpressLa nueva versión de MSDE

Es gratuito

Preparado para trabajar integrado con .NET 2.0

Tamaño máximo de base: 4 Gb

Max. Conexiones Concurrentes: no tiene

Incluye una interfaz de administración y un editor de consultas

Mayor integración con Visual Studio 2005

Recursos libres

http://csharp-source.net/IDEsLibrerías, Fuentes, etc.

SharpDevelophttp://www.icsharpcode.net/OpenSource/SD/Soporte:

C#Visual Basic .NET

Page 37: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

37

Sharp Develop

Mono Project

http://www.mono-project.com

IncluyeCLI: Common Language InfrastructureLibrería clases sobre CLRCompilador C#

Entornos ejecución:Linux, Unix, SolarisMacOS XWindows

Page 38: 2.- Introducción a la plataforma .NET.v8sabia.tic.udc.es/docencia/is/old/2006-2007/docs/... · 1 1. Introducción a la plataforma .NET Integración de Sistemas Diseño e implementación

38

Mono develop

http://www.monodevelop.org