Marcos de Desarrollo -...
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/1.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/2.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/3.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/4.jpg)
¿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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/5.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/6.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/7.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/8.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/9.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/10.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/11.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/12.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/13.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/14.jpg)
.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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/15.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/16.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/17.jpg)
.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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/18.jpg)
.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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/19.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/20.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/21.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/22.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/23.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/24.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/25.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/26.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/27.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/28.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/29.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/30.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/31.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/32.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/33.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/34.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/35.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/36.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/37.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/38.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/39.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/40.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/41.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/42.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/43.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/44.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/45.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/46.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/47.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/48.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/49.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/50.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/51.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/52.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/53.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/54.jpg)
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 55: 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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/55.jpg)
Mono develop http://www.monodevelop.org
![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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/56.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/57.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/58.jpg)
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](https://reader031.fdocument.pub/reader031/viewer/2022021806/5bb5fe6709d3f2213f8d253d/html5/thumbnails/59.jpg)
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