Marcos de Desarrollo -...

59
Marcos de Desarrollo Diseño e implementación de aplicaciones Web con .NET

Transcript of Marcos de Desarrollo -...

Page 1: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Marcos de Desarrollo Diseño e implementación de aplicaciones Web con .NET

Page 2: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Objetivos

Conocer el origen y las características de la plataforma .NET Estudiar el núcleo de la plataforma .NET: el .NET Framework Conocer herramientas de desarrollo e implementaciones alternativas

Page 3: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Contenido Introducción

Principales características

.NET Framework

Acceso a datos con ADO.NET

Aplicaciones Web: ASP.NET

Herramientas de desarrollo

Implementaciones alternativas

Page 4: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

¿Qué es .NET? Plataforma de desarrollo y ejecución compuesta de

Entorno de Ejecución (Common Language Runtime) Bibliotecas de Funcionalidad (Class Library)

Lenguajes de Programación E.g. C#, VB .NET, COBOL, Perl, Phython

Compiladores Herramientas de Desarrollo (IDE & Tools) Documentación y Guías de Arquitectura

Page 5: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Contenido Introducción

Principales características

Acceso a datos con ADO.NET

Aplicaciones Web: ASP.NET

Herramientas de desarrollo

Implementaciones alternativas

Page 6: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Características de .NET Plataforma independiente del lenguaje

Múltiples lenguajes disponibles (C#, VB .NET, COBOL, Perl, Phython, Eiffel, etc.)

Código fuente se compila a Intermediate Language (IL) También denominado Microsoft Intermediate Language (MSIL) o Common

Intermediate Language (CIL) Se compila antes de ser ejecutado (no es interpretado) Sentencias IL manipulan tipos de datos comunes, compartidos por todos los

lenguajes de .NET 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

Page 7: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Características de .NET Plataforma de ejecución intermedia

En tiempo de ejecución, el Common Language Runtime (CLR) es el responsable de cargar y ejecutar una aplicación .NET

Utiliza compilación Just-In-Time (JIT) para traducir IL a código máquina El código .NET siempre es compilado, nunca interpretado No usa máquina virtual para ejecutar aplicaciones Código es compilado JIT la primera vez que se llama El proceso de compilación produce un fichero Windows ejecutable en formato

portable executable (PE). Implicaciones: El CLR nunca sabe, ni le importa, qué lenguaje fue usado para crear la aplicación o

componente Basta reemplazar el compilador para que el código funcione en otra plataforma (en teoría)

Page 8: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Características de .NET. Modelo de ejecución

Todos los lenguajes son compilados a IL Extraído de: Grimes, F. (2002). Microsoft. Net for Programmers: Manning.

Page 9: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Características de .NET Código gestionado (managed code)

Las aplicaciones .NET que se ejecutan bajo el esquema mostrado se dice que son aplicaciones gestionadas (managed applications) No se ejecutan directamente sobre el SO El CLR es el responsable de cargar y verificar el código, la recolección de basura

(Garbage Collector), ... La metadata es una característica clave en .NET

Describe tipos incluyendo sus campos, propiedades, firmas de los métodos y operaciones soportadas

Se genera automáticamente en tiempo de compilación Así, los componentes .NET son auto descriptivos y no se requiere

configuración adicional para que componentes escritos en diferentes lenguajes interoperen

Page 10: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Características de .NET Plataforma 100% Orientada a Objetos 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.)

Page 11: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

IL vs. Java bytecode Java bytecode específicamente diseñado para soportar lenguaje Java,

mientras IL diseñado para soportar múltiples lenguajes Java Virtual Machine diseñada para permitir Java bytecode interpretado

o compilado, mientras IL fue diseñado explícitamente para compilación JIT (Just-In-Time Compilation) y no para interpretar código

Page 12: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Evolución de la plataforma .NET Versión Número de

Versión

Fecha de liberación

(Release Date)

Versión de Visual Studio

Novedades Instalado por defecto en Windows

1.0 1.0.3705.0 2002-02-13 VS .NET Visual Basic .NET, C#

1.1 1.1.4322.573 2003-04-24 VS .NET 2003

.NET Compact Framework, J# Windows Server 2003

2.0 2.0.50727.42 2005-11-07 VS 2005 Windows Server 2003 R2

3.0 3.0.4506.30 2006-11-06 Windows Vista, Windows Server 2008

3.5 3.5.21022.8 2007-11-19 VS 2008 WPF, WF, WCF , Card Space Windows 7, Windows Server 2008 R2

4.0 4.0.30319.1 2010-02-10 VS 2010 Entity Framework

4.5 4.5.50709.17929 2012-08-15 VS 2012 Windows 8, Windows Server 2012

Page 13: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Contenido Introducción

Principales características

.NET Framework

Arquitectura

Common Language Runtime

.NET Framework Class Library

Common Type System (CTS)

Common Language Specification (CLS)

Assemblies

CLR Hosting & Application Domains

Acceso a datos con ADO.NET

Aplicaciones Web: ASP.NET

Herramientas de desarrollo

Implementaciones alternativas

Page 14: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

.NET Framework Paquete de software fundamental de la plataforma .NET. Incluye:

Entorno de ejecución (CLR) Bibliotecas de funcionalidad reutilizable (Class Library)

Tres variantes principales: .NET Framework Redistributable Package (CLR + CL) .NET Framework SDK (CLR + CL + compiladores, depuradores, etc.) .NET Compact Framework

Distribución libre y gratuita

Page 15: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Arquitectura del .NET Framework

Windows COM+ Services

Common Language Runtime

Base Class Library

ADO.NET

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

ss L

ibra

ry

WinForms ASP.NET

WPF WCF

LINQ

WF Card Space

ADO.NET Entity Framework

Page 16: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Common Language Runtime El CLR es un entorno de ejecución que puede ser usado por distintos

lenguajes de programación (realmente IL) Es una implementación del estándar Common Language Infrastructure (CLI)

El CLR es el responsable de cargar y ejecutar una aplicación .NET Utiliza compilación JIT para traducir IL a código máquina

Además, gestiona las aplicaciones, haciéndose responsable de: 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

La gestión del código por parte del CLR proporciona una capa extra que desacopla la aplicación del SO

Page 17: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

.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 E.g. System.Collections, System.Data, System.Web, etc.

Los tipos son independientes del lenguaje de programación de alto nivel que se desee utilizar (C#, VB .NET, etc.)

Los tipos están disponibles para todos los lenguajes compatibles con la plataforma .NET

Es extensible y totalmente orientada a objetos

Page 18: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

.NET Framework Class Library Se divide en dos partes

Base Class Library Incluye un pequeño subconjunto de la CL Clases en mscorlib.dll y algunas de las clases en System.dll y

System.core.dll Las clases de la BCL están disponibles en las distinas

implementaciones del .NET Framework

Framework Class Library Es un superconjunto de las clases de la BCL formado por la librería

completa de clases incluidas con el .NET Framework Incluye un conjunto muy extenso de librerías como WinForms,

ADO.NET, ASP.NET, LINQ, WPF y WCF, entre otras

Page 19: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Enterprise Library Biblioteca de clases (Application Blocks) que agrupa funcionalidades

comunes en aplicaciones empresariales

Page 20: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Common Type System (CTS) El Common Type System (CTS) o Sistema de Tipos Común es el

conjunto de reglas que han de seguir las definiciones de tipos de datos para que el CLR las acepte Es clave para la integración multilenguaje

Define un conjunto común de tipos de datos orientados a objetos Filosofía: Todo es un objeto

Todo tipo hereda directa o indirectamente del tipo System.Object

Todo lenguaje de programación .NET debe implementar los tipos definidos por el CTS (no tiene porqué implementar todos, pero sí un subconjunto: CLS)

Define tipos valor y tipos referencia

Page 21: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Common Language Specification (CLS) El CLS define el mínimo conjunto de características que todos los lenguajes deben

soportar, si pretenden ajustarse al CLR y soportar operatividad multilenguaje 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 únicamente por el conjunto de características del lenguaje que se esté utilizando

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 Las reglas del CLS no afectan a código que es accesible únicamente desde el

ensamblado (assembly) en que se define Librerías que se adhieren al CLS se dicen CLS-compliant

Page 22: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

El CLR/CTS ofrece un conjunto de características Algunos lenguajes exponen un gran subconjunto del CLR/CTS

Programando en IL se podrían utilizar todas las características 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.

Common Language Specification (CLS)

Page 23: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

CLS. Lenguajes compatibles Ada

APL

Basic (Visual Basic)

C#

C

C++

Delphi

Java

COBOL

Component Pascal (Queensland U Tech)

ECMAScript (JScript)

Eiffel (Monash U.)

Fortran

F#

Haskell (Utrecht U.)

JavaScript

Lisp

Mondrian (Utrecht)

Mercury (Melbourne U.)

Oberon (Zurich University)

Perl

Prolog (P#)

Python

Scheme (Northwestern U.)

SmallTalk

Page 24: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Assemblies Un Assembly o Ensamblado es la unidad mínima de ejecución,

distribución, instalación y versionado de aplicaciones .NET Extensión .dll o .exe

Todo código ejecutable debe formar parte de un Assembly

Contienen: Código IL Manifest (Manifiesto): describe el conjuntos de archivos que forman el

ensamblado METADATA: información sobre sí mismos y los recursos de los que dependen (son

autodescriptivos)

El CLR utiliza la metadata al cargar y ejecutar el ensamblado

Page 25: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

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

Pueden ser: Privados: sólo pueden ser usados por una aplicación (opción por defecto) Compartidos: se instalan en la Global Assembly Cache y pueden ser

usados por varias aplicaciones

Page 26: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Combinando módulos gestionados en Assemblies Extraído de: Richter, J. (2003). Applied Microsoft. NET framework programming: Microsoft Press.

Assemblies

Page 27: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Assemblies Herramienta IL Dissasembler (ildasm.exe), incluida en el .NET

Framework SDK

Page 28: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

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 completo distinto para cada librería (no confundir con el nombre del archivo) Se 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 conflicto Cada aplicación utiliza la versión de la librería que necesite Soluciona problema DLL Hell

Actualizaciones y desinstalaciones más simples

Page 29: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Global Assembly Cache (GAC) En XP: Panel de Control > Herramientas Administrativas >

.NET Framework Configuration Administrative tool

Page 30: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Global Assembly Cache (GAC)

Page 31: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Global Assembly Cache (GAC) En W7, directamente desde Windows Explorer

%windir%\assembly\ E.g. C:\WINDOWS\assembly

Page 32: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

CLR Hosting & Application Domains Una aplicación .NET necesita una pieza de código llamada Runtime

Host para ejecutarse El Runtime Host carga el CLR en un proceso, crea Application Domains

dentro del proceso y carga y ejecuta el código del usuario dentro de esos Application Domains

Código Gestionado

CLR CLR Host

AppDomain 1

Código Gestionado

AppDomain N

Page 33: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

CLR Hosting & Application Domains Los Application Domains son procesos virtuales dentro del CLR

Se ejecutan dentro de un proceso del Sistema Operativo Un proceso puede contener varios Application Domains Má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 resto Una aplicación no pueda acceder directamente a código en ejecución de

otra aplicación Un fallo en una aplicación no afecte al resto de aplicaciones

Page 34: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Desarrollo (VisualStudio .NET)

Ejecución (Plataforma .NET)

Análisis y diseño

Código fuente

Compilador

Código IL (Ensamblado)

Verificación

Compilación (JIT)

Código Nativo

Ejecución (CLR)

Resumen

Page 35: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Contenido Introducción

Principales características

.NET Framework

Acceso a datos con ADO.NET

Aplicaciones Web: ASP.NET

Herramientas de desarrollo

Implementaciones alternativas

Page 36: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Acceso a datos con ADO.NET System.Data

OleDb

SqlClient

OracleClient

Common

Odbc SqlTypes

System.Xml

Serialization

XPath

XSLT

Schema

Page 37: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Entorno Desconectado Entorno Conectado

ADO.NET: Arquitectura

Page 38: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Acceso a Bases de Datos Relacionales: Entorno Conectado Los usuarios están constantemente conectados a la fuente de datos Ventajas:

Mejor control de concurrencia Los datos se mantienen actualizados

Desventajas: Se requiere una conexión constante (consume recursos del servidor) Escalabilidad limitada por cantidad de conexiones

Page 39: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

En un escenario conectado, los recursos se mantienen en el servidor hasta que la conexión se cierra

Pasos 1) Abrir Conexión 2) Ejecutar Comando 3) Procesar Filas en DataReader 4) Cerrar DataReader 5) Cerrar Conexión

Acceso a Bases de Datos Relacionales: Entorno Conectado

Page 40: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

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

Ventajas Forma cómoda de trabajar, si los datos únicamente se necesitan para

lectura

Desventajas Los datos no están sincronizados Sólo es válido para ciertos escenarios

Page 41: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

En un escenario desconectado, los recursos no se mantienen en el servidor mientras los datos se procesan

Pasos 1) Abrir Conexión 2) Llenar DataSet mediante DataAdapter 3) Cerrar Conexión 4) Procesar DataSet 5) Abrir Conexión 6) Actualizar fuente de datos mediante DataAdapter 7) Cerrar Conexión

Acceso a Bases de Datos Relacionales: Entorno Desconectado

Page 42: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

ADO.NET Entity Framework Es un OR/M (Object Relational / Mapping) para .NET Incluído en .NET Framework 3.5 SP1 y en VS2008 SP1 (11 de agosto de

2008) A día de hoy ya proporciona soporte para la mayoría de los SGBD

relacionales Mapeado:

Store Schema Definition Language (SSDL) Conceptual Schema Definition Language (CSDL) Mapping Specificacion Language (MSL) ⇒ VS 2008 incluye asistente gráfico para hacerlo

Page 43: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

ADO.NET Entity Framework

Arquitectura Global de Entity Framework Extraído de: Lerman, J. (2009). Programming Entity Framework: O’Reilly.

Page 44: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Contenido Introducción

Principales características

.NET Framework

Acceso a datos con ADO.NET

Aplicaciones Web: ASP.NET

Herramientas de desarrollo

Implementaciones alternativas

Page 45: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Aplicaciones Web: ASP.NET Versión para la plataforma .NET de la tecnología ASP

(Active Server Pages) Tres partes muy diferenciadas:

Formularios Web (Web Forms) Controles (Server Controls)

Controles HTML Controles HTML Servidor (runat=server) WebControls

Servicios Web

Page 46: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Aplicaciones Web: ASP.NET System.Web

Caching

Configuration

Services UI

SessionState

HtmlControls

WebControls

Description

Discovery

Security

Protocols

Page 47: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Contenido Introducción

Principales características

.NET Framework

Acceso a datos con ADO.NET

Aplicaciones Web: ASP.NET

Herramientas de desarrollo

Implementaciones alternativas

Page 48: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Herramientas de Desarrollo Visual Studio

Page 49: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Herramientas de desarrollo gratuitas http://www.microsoft.com/express

Diseñadas para estudiantes y principiantes Hay varias ediciones, según el tipo de aplicación y el lenguaje:

Visual Web Developer XXXX Express, Visual Basic XXXX Express, Visual C# XXXX Express, Visual C++ XXXX Express, Windows Phone Developer Tools, SQL Server Express, etc.

Características avanzadas, por ejemplo: Refactoring

Code Snippets

Diseñadores WYSIWYG para Windows Presentation Foundation

Depuradores

Intellisense

Persistencia mediante “Entity Framework”

Herramientas de Desarrollo Express Editions

Page 50: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Edición gratuita: SQL Server 2008 Express (Runtime only)

Motor de Base de Datos

SQL Server 2008 Express with Tools + SQL Server Management Studio Basic

SQL Server 2008 Express with Advanced Services: + Motor de búsqueda de datos de texto

+ Servicios para la creación de informes

Soporta LINQ, Entity Data Model y ADO.NET Entity Framework Funcionalidades para la gestión de datos complejos

Nuevos tipos de datos Date y Time mejorados

Nuevos tipos de datos: “Filestream” y “HierarchyID”

Proporciona “T-SQL Intellisense” Integración con Visual Studio 2008 + SP1

Distribución a partir de noviembre de 2008

Herramientas de Desarrollo Express Editions: SQL Server Express

Page 51: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Contenido Introducción

Principales características

.NET Framework

Acceso a datos con ADO.NET

Aplicaciones Web: ASP.NET

Herramientas de desarrollo

Implementaciones alternativas

Page 52: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Implementaciones Alternativas Otras implementaciones del “Framework .NET”:

Portable .NET MONO Project (Novell Corporation)

Entornos de desarrollo

MonoDevelop SharpDevelop

Page 53: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Portable .NET http://www.dotgnu.org Implementación limitada de la plataforma .NET bajo licencia GNU

GPL Soporta las librerías:

Base Class XML Windows Forms

Persigue el funcionamiento de .NET sobre cualquier tipo de plataforma De momento, tiene un alcance limitado El proyecto tiene como objetivos principales de desarrollo de aplicaciones

“stand-alone” y servicios Web en C#

Page 54: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Mono Project http://www.mono-project.com Incluye

Implementación de Common Language Infrastructure (CLI)

Librería clases sobre CLR

Compilador C#

Entornos ejecución: Linux, Unix, Solaris

MacOS X

Windows

Portabilidad .NET – MONO MoMA

Patrocinado por Novell Corporation

Page 56: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

SharpDevelop SharpDevelop. The Open Source Development Environment for .NET:

http://www.sharpdevelop.com Soporta:

C# Visual Basic .NET

Page 57: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

SharpDevelop SharpDevelop:

Requiere la instalación previa del framework .NET 3.5 Sistemas operativos Windows XP SP2 y posteriores

Características Soporte para compiladores Microsoft Integración con “NUnit” y “NAnt” Integración con la documentación de .NET 3.5

Funcionalidades: “IntelliSense”, soporte para “snippets”, código autocompletable Diseñador visual de “Windows Forms” Navegador de clases y utilidades de definición de código Diseñador de bases de datos visual Conversión de código C# - VisualBasic

Page 58: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Bibliografía Recomendada:

Grimes, F. (2002). Microsoft. Net for Programmers: Manning.

Complementaria: Richter, J. (2003). Applied Microsoft. NET framework

programming: Microsoft Press.

Page 59: Marcos de Desarrollo - SABIA-Groupsabia.tic.udc.es/docencia/mad/pdf/01.Introduccion_Plataforma... · independiente del lenguaje ... No usa máquina virtual para ejecutar aplicaciones

Recursos Open Source Software in C#

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

Project Hosting for Open Source Software http://www.codeplex.com/

MSDN Code Gallery: http://code.msdn.microsoft.com/ Aplicaciones, snippets Ejemplos, guías