Introducción a .NET Desarrollo Avanzado de Software Tema 13 José Luis Barros Justo.
Download
Report
Transcript Introducción a .NET Desarrollo Avanzado de Software Tema 13 José Luis Barros Justo.
Introducción a .NET
Desarrollo Avanzado de Software
Tema 13
José Luis Barros Justo
Introducción
• Microsoft.NET es un conjunto de nuevas tecnologías en las
que Microsoft ha estado trabajando durante los últimos años,
con el objetivo de obtener una plataforma sencilla y potente
para distribuir el software en forma de servicios, que puedan
ser suministrados remotamente y que puedan comunicarse y
combinarse unos con otros de manera totalmente
independiente de la plataforma, lenguaje de programación y
modelo de componentes con los que hayan sido
desarrollados.
Características de .NET
• .NET es una plataforma Microsoft para Servicios Web XML
• Y también:
– es una plataforma para el desarrollo y explotación de aplicaciones
“gestionadas” (managed) orientadas a objetos
– Las aplicaciones .NET se pueden desarrollar en cualquier lenguaje
de programación que se ajuste a .NET
– .NET soporta un extenso framework de librerías de clases
independientes del lenguaje de programación
– .NET soporta la creación de componentes auto-describibles
– .NET ofrece integración multi-lenguaje, reutilización de
componentes, y herencia entre componentes desarrollados en
diferentes lenguajes
Características de .NET
– .NET ofrece un nueva manera de desarrollar aplicaciones de
sobremesa usando las clases Windows Forms
– .NET ofrece una nueva manera de desarrollar aplicaciones
basadas en navegador Web a través de ASP.NET
– Las clases ADO.NET proveen una arquitectura para acceso a
datos a través de Internet
– .NET soporta la creación de Servicios Web XML independientes de
la plataforma, a través de SOAP (Simple Object Access Protocol) y
WSDL (Web Services Description Language), usando http.
La plataforma .NET
Internet
Visual Studio .NET
.NET
Framework
.NET Enterprise
Servers
.NET Building
Block Services
Clientes para la plataforma .NET
• La plataforma .NET es compatible
con los siguientes dispositivos
inteligentes:
– PCs portátiles
– Estaciones de trabajo
– PCs de bolsillo
– PDAs
– Teléfonos móviles inteligentes
– Consolas de juegos
– Tablet PCs
Componentes de .NET
• Microsoft.NET está compuesto de:
– Plataforma .NET
– .NET Framework SDK
– Visual Studio .NET
La plataforma Microsoft .NET
Visual Studio .NET
Internet
Orquestación
.NET
Framework
Internet
COM+
.NET
Enterprise
Servers
Servicios
Building
Block
Windows
Disponible
en la
actualidad
Con mejoras
.NET
Nuevas
capacidades
Plataforma .NET
• El concepto en el que se basa .NET no
es nuevo.
• Java y su entorno de ejecución (JVM)
ya utilizan el concepto de
encapsulamiento del sistema operativo
para permitir la interoperabilidad entre
diferentes sistemas operativos.
Plataforma .NET
ASP.NET
Servicios Web
Windows Forms
.NET Framework Base Classes
Common Language Runtime
Plataforma .NET
• Componentes:
– Common Language Runtime(CLR): Entorno
de ejecución de la plataforma.
– .NET Framework Base Classes o FCL
(Framework Class Library): Añaden
funcionalidad.
– ASP.NET: Versión .Net de ASP. Incluye los
servicios Web.
– Windows Forms
Common Language Runtime
• Un Runtime no es más que un entorno en
el que se ejecutan los programas.
• De esta forma, el CLR es el entorno
donde se ejecutarán las aplicaciones
.NET que han sido compiladas a un
lenguaje común llamado Microsoft
Intermediate Language(MSIL).
Common Language Runtime
– El proceso de compilación produce un fichero ejecutable en
Windows al que se denomina portable executable (PE)
– CLR sólo ve IL, por lo que se puede reemplazar el compilador JIT
para usar un nuevo lenguaje
Código fuente
C#, Visual Basic...
Compilador
Código intermedio
MSIL(Microsoft
Intermediate Language)
CLR
Código nativo
Intel 8086, Windows,
Solaris...
Runtime de lenguaje común (Common
Language Runtime)
Soporte de biblioteca de clases de .NET Framework
Soporte de subprocesos
COM Marshaler
Corrector de tipos
Administrador de excepciones
Motor de seguridad
Motor de depuración
MSIL para
compiladores
nativos
Gestor de código
Cargador de clases
Recolector de
elementos no
utilizados
Componentes del .NET
Framework
ASP .NET
Formularios
y Servicios Web
Interfaz
de usuario
ADO.NET: Datos y XML
Biblioteca de clases del .NET Framework
Common Language Runtime
Descripción del .NET Framework
C++
C#
J#
Common Language Specification
.NET Framework
…
Visual Studio .NET
Visual
Basic
.NET y código gestionado
• Las aplicaciones que siguen el modelo de la figura
anterior son managed applications (aplicaciones
gestionadas)
– En contrapartida, las aplicaciones Windows no gestionadas se
denominan unmanaged applications
– Managed applications y unmanaged applications pueden convivir
.NET y código gestionado
• Metadata describe los campos, propiedades, firmas de
•
métodos y operaciones soportadas
De esta manera, los componentes en .NET son autodescribibles y se permite la interacción entre
componentes escritos en diferentes lenguajes.
Common Language Runtime
• Caracteríticas y servicios que ofrece:
– Ejecución multiplataforma
– Integración de lenguajes
– Gestión de memoria(Recolector de basura)
– Tratamiento de excepciones
– Soporte multi-hilo
– Distribución transparente
– Interoperabilidad con código antiguo
Common Language Runtime
• El CLR se encarga de gestionar la
ejecución de las aplicaciones .NET.
• Al código escrito para ejecutarse en la
plataforma .NET se le llama código
gestionado.
• Al código no escrito para ejecutarse
directamente bajo la plataforma se le
llama código no gestionado.
El modelo de ejecución CLR
Código
fuente
Código
VB
VB
C#
C#
C++
C++
Compilador
Compilador
Compilador
Código de
code
ensamblado
IL
Código de
code
ensamblado
IL
Compiler
Código de
code
gestionado ensamblado
IL
Assembly IL
Compiler
Assembly IL
Common Language Runtime
Runtime
de lenguaje común
Compiler
Assembly IL
JIT compiler
Compilador
JIT
Native code
Código
nativo
Operating system services
Servicios
del sistema operativo
Unmanaged
Componente
nocomponent
gestionado
Clases de la plataforma .NET
• La librería de clases (FCL) es una librería formada
•
por cientos de tipos que permiten acceder a los
servicios ofrecidos por el CLR y a sus
funcionalidades más frecuentes.
Además el programador puede crear nuevas
clases que extiendan su funcionalidad y se
integren con el resto de las clases de la FCL.
La biblioteca de clases de .NET Framework
System
Collections
IO
Security
Runtime
Configuration
Net
ServiceProcess
InteropServices
Diagnostics
Reflection
Text
Remoting
Globalization
Resources
Threading
Serialization
Clases de la plataforma .NET
• Esta librería de clases está escrita en
MSIL, por tanto, cualquier lenguaje
cuyo compilador genere MSIL podrá
usarla.
• Con esta librería podemos crear todo
tipo de aplicaciones: aplicaciones de
consola, de ventanas, servicios Web,
ASP.NET...
Clases de la plataforma .NET
• Dada la amplitud de la FCL, ha sido
necesario organizar las clases en
espacios de nombres, que agrupen
clases con funcionalidades similares.
• El espacio de nombres System es el
espacio raíz del que cuelgan todos los
demás.
Clases de la plataforma .NET
• Espacios de nombres más usados:
– System: Contiene tipos de datos muy usados, datos
básicos, tablas, excepciones... Es el raíz.
– System.Object: Soporta toda la jerarquía de las
clases de .NET.
– System.Collections: Colecciones de datos de uso
común como pilas, colas, listas...
– System.Data: Manipulación de base de datos. Forma
la denominada arquitectura ADO.NET.
Clases de la plataforma .NET
– System.IO: Manipulación de ficheros.
– System.Reflection: Acceso a los
metadatos que acompañan a los módulos
de código.
– System.Math: Funciones logarítmicas,
trigonométricas...
– System.XML: Acceso a datos en formato
XML.
– Sytem.Web: Aplicaciones Web.
Biblioteca de clases .NET Framework
System
System.Security
System.Runtime.
InteropServices
System.Net
System.Text
System.Globalization
System.Reflection
System.Threading
System.Configuration
System.IO
System.Diagnostics
System.Collections
ASP.NET
• ASP.NET es la versión para la plataforma
.NET de la tecnología ASP (Active Server
Pages).
• Dentro de esta capa podemos distinguir
tres partes muy diferenciadas:
– Web Forms
– Server Controls
– Web Services
Windows Forms
• Los Windows Forms son una forma avanzada
•
•
•
e integrada de crear aplicaciones de escritorio
Win32 estándar.
Los WinForms descienden de las Windows
Foundation Classes (WFC) de Microsoft.
Cualquier lenguaje de la plataforma .Net
puede utilizar WinForms.
De hecho, actualmente, las WinForms forman
parte de las clases de la plataforma .NET en
el espacio de nombres
System.Windows.Forms.
Interfaz de usuario
System.Windows.Forms
System.Drawing
.NET Framework SDK
• Microsoft distribuye este kit de desarrollo como
parte del paquete .NET.
– Disponible en:
http://msdn.microsoft.com/netframework/technologyi
nfo/howtoget/default.aspx
• En este kit podemos encontrar documentación
sobre la plataforma, ejemplos y código fuente, y
una serie de utilidades que sirven para desarrollo
y prueba de aplicaciones .NET.
Visual Studio.NET
• Es un entorno gráfico que permite a los
desarrolladores crear, probar y depurar aplicaciones
desarrolladas o no para la plataforma .NET.
• Inicialmente se llamó Visual Studio 7.0 ya que es la
evolución del Visual Studio 6.0.
• La última versión a 05/2006, es el Visual Studio 2005.
• SharpDevelop es un IDE open source para .NET que
representa una buena alternativa a Visual Studio.NET:
http://www.icsharpcode.net/opensource/sd/
Visual Studio.NET
• Microsoft incorpora en este entorno los siguientes
lenguajes de programación:
–
–
–
–
Visual
Visual
Visual
Visual
Basic.NET: Versión .NET de Visual Basic 6.0.
C++.net: Evolución de Visual C++.
J#.NET: Adaptación de Visual J++.
C#.NET: Un nuevo lenguaje de programación OO.
• Empresas ajenas han creado compiladores de sus
lenguajes para la plataforma .NET:
– Cobol, Eiffel, Perl, Python, Haskell, Pascal, Oberon...
Desarrollando para la plataforma
.NET
• .NET es independiente del lenguaje de programación, no
estamos restringidos a desarrollar en Visual C++ y Basic:
– Existen compiladores para C#, Visual Basic.NET, Jscript.NET,
COBOL, Python, Perl, etc.
– .NET soporta estos lenguajes no soportando realmente ninguno
de ellos
• .NET sólo entiende Microsoft Intermediate Language (MSIL)
Una plataforma independiente del
lenguaje
• .NET traduce código fuente a IL (Intermediate Language).
– El resultado de la compilación es IL + Metadata
– IL es como un lenguaje ensamblador para una CPU virtual, basada en
un pila (similar a Java bytecode)
– IL es compilado antes de ser ejecutado y no está diseñado para un
lenguaje en particular como en Java
– Las sentencias IL manipulan tipos comunes compartidos por todos los
lenguajes .NET (Common Type System – CTS)
– El Common Language Runtime (CLR) es responsable de cargar y
ejecutar una aplicación .NET
• Usa compilación JIT (Just-In-Time) para traducir IL a código nativo
• IL es siempre compilado y nunca interpretado no como con JVM
• El código IL por cada método sólo es compilado cuando es indicado
Hola Mundo en .NET
// fichero: hola.cs
// compilar: csc hola.cs
using System;
class Hola {
public static void Main() {
Console.WriteLine(“Hola desde C#”);
}
}
Hola Mundo en C#
• Todo programa en C# contiene al menos una clase
• Main es el punto de entrada del programa
• Console.WriteLine(“Hola desde C#”), visualiza
•
•
•
un mensaje, invocando método WriteLine de la clase
Console
El espacio de nombres System pertenece a .NET FCL
(Framework Class Library)
FCL contiene muchas clases útiles, que pueden usarse
desde nuestras aplicaciones .NET
Para compilar el programa necesitamos una copia de
.NET SDK, y usar el compilador de C#, csc
Hola Mundo en Visual Basic.NET
' fichero: hola.vb
' compilar: vbc hola.vb
Imports System
module Hello
sub main()
Console.WriteLine(“Hola desde VB.NET”)
end sub
end module
Enlaces de interés
• GotDotNet: The Microsoft .NET Framework Community:
– http://www.gotdotnet.com/
• .NET home page:
– http://www.microsoft.com/net/
• MSDN .NET Framework site:
– http://msdn.microsoft.com/netframework/
• Website con ejemplos y ayuda en programación C#:
– http://www.c-sharpcorner.com/
– http://www.csharphelp.com/
– http://www.csharp-station.com/
• Implementación Open Source .NET (Proyecto mono):
– http://www.go-mono.com/
• Fundamental: Class Library en la sección Reference de
.NET Framework SDK Documentation
Introducción a Visual
Studio .NET
tomado de
http://www.microsoft.com/net/
Descripción
Escribir
código
Crear
Interfaz
Conceptos básicos de
.NET
Explorar el entorno de
desarrollo
Use Visual
Uso
de Visual
Studio
.NET
Studio .NET
Acceso
a datos
Depurar
e implantar
Lección: Conceptos básicos de .NET
¿Plataforma
¿Visual Studio
.NET?
.NET?
¡AYUDA!
.NET
¿.NET
Framework?
¿Visual Basic
.NET?
¿Qué es la plataforma .NET?
Herramientas
de desarrollo
Clientes
Servicios Web XML
Servidores
Experiencias
de usuario
Cómo funciona el .NET Framework
Servicios de programación
.NET Framework
Tipos de datos
Aplicaciones
Visual C++
ADO.NET
Aplicaciones
Visual C#
Biblioteca de clases
Servicios Web XML
Windows
Aplicaciones
Visual Basic
Common Language
Runtime
El código fuente se compila como MSIL
Código
de la
plataforma
.NET
El compilador JIT produce
lenguaje máquina
¿Qué es Visual Studio .NET?
Herramientas de
Formularios Web
Múltiples
Lenguajes
Herramientas de
Formularios Windows
Visual Studio .NET
Gestor de errores
Herramientas de
Servicios Web XML
Diseño
Acceso a datos
Desarrollo
Depuración
Implantación
Cómo utilizar la página de inicio
Get Started
What’s New
Online Community
Headlines
Search Online
Downloads
XML Web Services
Web Hosting
My Profile
Open Project
New Project
¿Qué es una plantilla de aplicación?
Proporciona archivos de
inicio, estructura de
proyecto y configuración
del entorno
Cómo utilizar el Explorador de soluciones
Lección: Explorar el entorno de desarrollo
Menú principal
Nuevo proyecto
Cuadro de herramientas
Diseñador de Windows Forms
Ventana
Propiedades
Menús y barras de herramientas
Menú principal
Barra de herramientas estándar
Nuevo proyecto
Guardar
Form1.vb
Deshacer
Cuadro de herramientas
Controles para
crear el interfaz
de usuario
Diseñador de Windows Forms
Editor de código
Lista de nombres
de clases
Lista de nombres
de métodos
Ventana Propiedades
Establecer
propiedades como
tamaño, título y color
Otras ventanas de programación
Ventana de
programación
Objetivo
Lista de tareas
Ayuda a organizar y gestionar el trabajo de
generar la aplicación
Resultados
Muestra mensajes de estado para varias
características en el entorno de desarrollo
Vista de clases
Permite examinar el código tras las clases y
navegar por los símbolos de la solución
Comandos
Permite emitir comandos o evaluar expresiones
en el entorno de desarrollo
Examinador
de objetos
Permite visualizar objetos y sus miembros
Sistema de ayuda en línea
Menú de la Ayuda
Ayuda dinámica
El proceso de desarrollo
1 Crear una especificación de diseño
2 Crear el interfaz de usuario
3 Establecer las propiedades de los objetos del
interfaz de usuario
4 Escribir código para añadir funcionalidad
5 Probar y depurar la aplicación
6 Generar un archivo ejecutable
7 Crear una aplicación de instalación
Cómo crear el interfaz de usuario
Ubicar controles
en el formulario
desde el Cuadro
de herramientas
Cómo establecer las propiedades de los controles
Propiedades
Configuración
(Name)
Textbox1
BackColor
Blue
Autosize
True
Visible
True
Border
Fixed 3D
Font
Microsoft SanSerif, 8.2 pt
Text
Textbox1
Cómo añadir código a los controles
En la lista Nombre de clase, hacer clic en el control
En la lista Nombre de método, hacer clic en el evento
Añadir código entre Private Sub y End Sub
Private Sub Button1_Click(. . .)Handles Button1.Click
'Your code goes here
End Sub
Como guardar, ejecutar y generar la aplicación
Guardar la aplicación
Ejecutar la solución en el
entorno de desarrollo
Generar un archivo ejecutable