Publicado el 19 de Mayo del 2018
796 visualizaciones desde el 19 de Mayo del 2018
505,0 KB
15 paginas
Creado hace 21a (25/04/2003)
La La plataforma
plataforma .NET
.NET
Lenguajes y herramientas de .NET
de .NET
Lenguajes y herramientas
Juan Manuel Cueva Lovelle
Juan Manuel Cueva Lovelle
cueva@@lsi
cueva
www.didi..uniovi
www.
uniovi..eses
uniovi..eses/~/~cueva
cueva
lsi..uniovi
Departamento de Informática
Departamento de Informática
OOTOOTLabLab www.
uniovi..eses
ootlab..uniovi
www.ootlab
.NET Framework
.NET Framework
Reglas de de diseño
diseño
Reglas
•• GranGran simplificación
simplificación del del desarrollo
desarrollo en en
implantación de de aplicaciones
aplicaciones
implantación
Unificación de de los modelos
•• Unificación
Entorno de de programación robusto
•• Entorno
Soporte para múltiples lenguajes de de
•• Soporte para múltiples lenguajes
programación
programación
los modelos de de programación
programación
programación robusto y y seguro
seguro
La plataforma .NET
La plataforma .NET
Panorama General de .NET
Panorama General de .NET
Juan Manuel Cueva Lovelle OOTOOTLabLab
Juan Manuel Cueva Lovelle
DEV200
1
Framework, Lenguajes
Framework,
Lenguajes y y herramientas
herramientas
VBVB
C++C++
C#C#
JScript
JScript
J#J#
Common Language Specification
Common Language Specification
ASP.NET
ASP.NET
Web Forms Web Services
Web Forms Web Services
Mobile Internet Toolkit
Mobile Internet Toolkit
Windows
Windows
Forms
Forms
ADO.NET and XML
ADO.NET and XML
Base Class Library
Base Class Library
Common Language Runtime
Common Language Runtime
Operating System
Operating System
V
V
i
i
s
s
u
u
a
a
l
l
i
i
S
S
t
t
u
u
d
d
o
o
N
N
E
E
T
T
.
.
La plataforma .NET
La plataforma .NET
Panorama General de .NET
Panorama General de .NET
Juan Manuel Cueva Lovelle OOTOOTLabLab
Juan Manuel Cueva Lovelle
CLRCLR
VBVB
C++C++
C#C#
JScript
JScript
J#J#
Common Language Specification
Common Language Specification
ASP.NET
ASP.NET
Web Forms Web Services
Web Forms Web Services
Mobile Internet Toolkit
Mobile Internet Toolkit
Windows
Windows
Forms
Forms
ADO.NET and XML
ADO.NET and XML
Base Class Library
Base Class Library
Common Language Runtime
Common Language Runtime
Operating System
Operating System
i
i
V
V
s
s
u
u
a
a
l
l
i
i
S
S
t
t
u
u
d
d
o
o
N
N
E
E
T
T
.
.
La plataforma .NET
La plataforma .NET
Panorama General de .NET
Panorama General de .NET
Juan Manuel Cueva Lovelle OOTOOTLabLab
Juan Manuel Cueva Lovelle
DEV200
2
La La evolución
evolución de .NET
de .NET
Aplicación
Aplicación
Código y y
Código
Estructuras de de
Estructuras
datos
datos
Aplicaciones desarrolladas
desarrolladas
Aplicaciones
como entidades
entidades separadas
separadas
como
La plataforma .NET
La plataforma .NET
Panorama General de .NET
Panorama General de .NET
Juan Manuel Cueva Lovelle OOTOOTLabLab
Juan Manuel Cueva Lovelle
La La evolución
evolución de .NET
de .NET
COM suministraba
suministraba un un
COM
camino para integrar
camino para integrar
componentes
componentes
La plataforma .NET
La plataforma .NET
Panorama General de .NET
Panorama General de .NET
Juan Manuel Cueva Lovelle OOTOOTLabLab
Juan Manuel Cueva Lovelle
DEV200
3
La La evolución
evolución de .NET
de .NET
Con .NET Framework y CLR
Con .NET Framework y CLR
todos los componentes
todos los componentes
tienen un un substrato común
substrato común
tienen
La plataforma .NET
La plataforma .NET
Panorama General de .NET
Panorama General de .NET
Juan Manuel Cueva Lovelle OOTOOTLabLab
Juan Manuel Cueva Lovelle
Compilación y y Ejecución
Ejecución
Compilación
Código
Código
fuente
fuente
Compilación
Compilación
Compilador
Compilador
del del lenguaje
lenguaje
Recursos
Recursos
Código (IL)
(IL)
Código
Assembly
Assembly
Metadatos
Metadatos
Código + +
Código
Recolector
Recolector
de de Basura
Basura
Evaluación
Evaluación
JITJIT
Ejecución (CLR)
(CLR)
Ejecución
La plataforma .NET
La plataforma .NET
Panorama General de .NET
Panorama General de .NET
Juan Manuel Cueva Lovelle OOTOOTLabLab
Juan Manuel Cueva Lovelle
DEV200
4
Desarrollos más simplificados ……
Desarrollos más simplificados
necesario conocer
conocer COMCOM
=>=>aplicaciones
aplicaciones auto
auto descritas
descritas
=>namespaces jerarquicos
jerarquicos
=>namespaces
=>=>modelo
=>=>manejo
=>=>Todo hereda
objetos unificado
modelo de de objetos unificado
manejo de de excepciones
excepciones
Todo hereda de object
de object
=>=>Recolector
Recolector de de basura
basura
=>=>operador
operador ”new”
”new”
Panorama General de .NET
Panorama General de .NET
Juan Manuel Cueva Lovelle OOTOOTLabLab
Juan Manuel Cueva Lovelle
•• No No eses necesario
•• No No másmás……
Register
–– Register
GUIDs
–– GUIDs
.IDL files
–– .IDL files
HRESULTs
–– HRESULTs
IUnknown
–– IUnknown
AddRef//Liberación
Liberación
–– AddRef
CoCreateInstance
–– CoCreateInstance
La plataforma .NET
La plataforma .NET
Desarrollo simplificado
Desarrollo simplificado
Definición de de tipos
•• Establece una
instancias comunes
tipos e e instancias comunes
POO más límpia
más límpia
Common Type System
•• Common Type System
–– Definición
Establece una POO
Clases and interfaces
and interfaces
–– Clases
Constructores, properties, methods, events
, properties, methods, events
–– Constructores
Herencia entre lenguaje
–– Herencia entre lenguaje
Compatibilidad hacia atrás
•• Compatibilidad hacia atrás
con COM
–– con COM
con DLLs nativas
–– con DLLs
(Win32®®))
nativas (Win32
La plataforma .NET
La plataforma .NET
Panorama General de .NET
Panorama General de .NET
Juan Manuel Cueva Lovelle OOTOOTLabLab
Juan Manuel Cueva Lovelle
DEV200
5
Cualquier cosa
Cualquier
cosa eses un un objeto
objeto
Cambia la visión tradicional
•• Cambia la
C++, Java™™
–– C++, Java
Smalltalk, Lisp
–– Smalltalk, Lisp
solución de .NET:
Unifica sin sin costes
Simplicidad a a través
tipos valor
valor
de .NET: tipos
rendimiento
costes de de rendimiento
de la jerarquía
•• La La solución
–– Unifica
–– Simplicidad
Mejora la
–– Nuevos
–– Collections, etc.,
Nuevos tipos
Collections, etc., trabajan
través de la
la extensibilidad
extensibilidad y la
tipos primitivos
•• Mejora
visión tradicional de de los tipos primitivos
los tipos primitivos
jerarquía de de clases
clases
y la reusabilidad
reusabilidad
primitivos: Decimal, SQL…
: Decimal, SQL…
trabajan con
con todos los tipos
todos los tipos
La plataforma .NET
La plataforma .NET
Panorama General de .NET
Panorama General de .NET
Juan Manuel Cueva Lovelle OOTOOTLabLab
Juan Manuel Cueva Lovelle
Las variables directamente contienen datos
directamente contienen datos
Valor y Referencia
Tipos Valor y
Referencia
Tipos
Valor
Tipos Valor
•• Tipos
–– Las variables
–– No No pueden
Tipos Referencia
•• Tipos Referencia
–– Las variables
–– Pueden
Las variables contienen referencias
Pueden ser null
ser null
pueden ser null
ser null
contienen referencias a a objetos
objetos
123123
ii
ss
La plataforma .NET
La plataforma .NET
intint i = 123;
i = 123;
string s = "Hello world";
string s = "Hello world";
"Hello world"
"Hello world"
Panorama General de .NET
Panorama General de .NET
Juan Manuel Cueva Lovelle OOTOOTLabLab
Juan Manuel Cueva Lovelle
DEV200
6
Tipos Valor y
Tipos
•• Tipos
Valor y Referencia
Referencia
Valor
Tipos Valor
Primitivos
–– Primitivos
Enums
–– Enums
Structs
–– Structs
Tipos Referencia
•• Tipos Referencia
Clases
–– Clases
Interfaces
–– Interfaces
Arrays
–– Arrays
Delegados
–– Delegados
class Foo: Bar, IFoo
class Foo: Bar,
IFoo {...}
{...}
interface IFoo
interface
IFoo: : IBar
IBar {...}
{...}
FooFoo[] a = new Foo[10];
[] a = new Foo[10];
delegate void Empty();
delegate void Empty();
intint i; double x;
i; double x;
enum State { Off, On }
State { Off, On }
enum
struct Point {
struct
Point { intint x, y; }
x, y; }
La plataforma .NET
La plataforma .NET
Panorama General de .NET
Panorama General de .NET
Juan Manuel Cueva Lovelle OOTOOTLabLab
Juan Manuel Cueva Lovelle
Sistema de de tipos unificado
tipos unificado
Sistema
•• Todos los tipos heredan
•• Existe
Todos los tipos heredan de object
de object
Existe unauna conversión
implícita de de
cualquier tipotipo a a tipotipo object
object
cualquier
conversión implícita
object
object
Stream
Stream
Hashtable
Hashtable
intint
double
double
MemoryStream
MemoryStream
FileStream
FileStream
La plataforma .NET
La plataforma .NET
Panorama General de .NET
Panorama General de .NET
Juan Manuel Cueva Lovelle OOTOOTLabLab
Juan Manuel Cueva Lovelle
DEV200
7
Sistema de de tipos unificado
tipos unificado
Sistema
Boxing
•• Boxing
–– Asigna
posición de de memoria
Asigna unauna posición
ellaella
memoria y y copia
copia el valor en
el valor en
Unboxing
•• Unboxing
Comprueba el el tipotipo de la
–– Comprueba
el valor en otra posición
otra posición..
el valor en
de la posición
posición de de memoria
memoria y y copia
copia
intint i = 123;
i = 123;
object o = i;
object o = i;
intint j = (
j = (intint)o;)o;
i
o
j
123123
123123
La plataforma .NET
La plataforma .NET
System.Int32
System.Int32
123123
Panorama General de .NET
Panorama General de .NET
Juan Manuel Cueva Lovelle OOTOOTLabLab
Juan Manuel Cueva Lovelle
Entorno robusto
Entorno robusto
•• Gestión
Gestión de de memoria automática
memoria automática
–– Todos los objetos están manejados por
Todos los objetos están manejados por el el
recolector de de basura
basura
recolector
•• Manejo
•• Seguridad
Manejo de de excepciones
excepciones
Seguridad en el
en el manejo
–– No hay cast
No hay cast inseguros
inseguros
manejo de de tipos
tipos
La plataforma .NET
La plataforma .NET
Panorama General de .NET
Panorama General de .NET
Juan Manuel Cueva Lovelle OOTOOTLabLab
Juan Manuel Cueva Lovelle
DEV200
8
Framework, Lenguajes
Framework,
Lenguajes y y herramientas
herramientas
VBVB
C++C++
C#C#
JScript
JScript
J#J#
Common Language Specification
Common Language Specification
ASP.NET
ASP.NET
Web Forms Web Services
Web Forms Web Services
Mobile In
Comentarios de: Lenguajes y herramientas de .NET (0)
No hay comentarios