Práctica 5 Práctica de servicios Web con .NET

19
Práctica 5 Práctica de servicios Web con .NET Félix García Carballeira Luis Miguel Sánchez García Carlos Fómez Carrasco Borja Bergua Guerra Universidad Carlos III de Madrid Sistemas Distribuidos 1

Transcript of Práctica 5 Práctica de servicios Web con .NET

Page 1: Práctica 5 Práctica de servicios Web con .NET

Práctica 5 Práctica de servicios Web con .NET

Félix García Carballeira

Luis Miguel Sánchez García

Carlos Fómez Carrasco

Borja Bergua Guerra

Universidad Carlos III de Madrid Sistemas Distribuidos

1

Page 2: Práctica 5 Práctica de servicios Web con .NET

El objetivo de esta práctica es desarrollar una aplicaciutilizando la plataforma .NET y el

1. Introducción a la plataforma .NET

El principal objetivo de la plataforma .NET es presentar un mfigura) para el de desarrollo de aplicaciones de escritorio y aplicaciones Web.NET es el modelo de desarrollo de Microsoft que hace que el software sea plataforma y de los dispositivos, y hace que los datos estén .NET Framework es la infraestructura básica subyacente de .NET.

Antes de .NET

Programación Desktop

Orientación a objetos

Código compilado (C/C++,

Muchas y diferentes Bibliotecas

de clases

Con .NET

Programación Desktop

Orientación a objetos (incluso

Código compilado (C#

Biblioteca de clases única

.NET ha sido implementado desde el principio pensando en una arquitectura abierta. .NET es una plataforma que puede utilizarse para generar y ejecutWeb. Su principal objetivo es simplificar el desarrollo Web. La plataforma .NET (veáse la siguiente Figura) formada, entre otras cosas, por:

•••• Un modelo de programacservicios Web.

•••• Un conjunto de serviciosWeb centrados en el usuario que trasladan el control de datos de usuario desde las

El objetivo de esta práctica es desarrollar una aplicación cliente que haga uso de un servicio Web utilizando la plataforma .NET y el lenguaje C#.

Introducción a la plataforma .NET

El principal objetivo de la plataforma .NET es presentar un modelo uniforme arrollo de aplicaciones de escritorio y aplicaciones Web

.NET es el modelo de desarrollo de Microsoft que hace que el software sea plataforma y de los dispositivos, y hace que los datos estén disponibles a través de Inter.NET Framework es la infraestructura básica subyacente de .NET.

Antes de .NET

Desktop

digo compilado (C/C++, Fortran, ...)

Muchas y diferentes Bibliotecas

Programación Web

ASP (no orientado a objetos)

Código interpretado (VBScript

Javascript, PHP, ...)

Bibliotecas especializadas

Desktop y Web

n a objetos (incluso ASP.NET)

C#, C++, VB.NET, Fortran, ...)

nica

NET ha sido implementado desde el principio pensando en una arquitectura abierta. .NET es una plataforma que puede utilizarse para generar y ejecutar de aplicaciones Windows y aplicaciones Web. Su principal objetivo es simplificar el desarrollo Web.

(veáse la siguiente Figura) abarca a clientes, servidores y servicios; está por:

Un modelo de programación que permite a los desarrolladores generar aplicaciones y

Un conjunto de servicios building block fundamentales, que son un conjunto de servicios Web centrados en el usuario que trasladan el control de datos de usuario desde las

Cuaderno de prácticas WEB SERVICES EN .NET

1

ón cliente que haga uso de un servicio Web

odelo uniforme (véase la siguiente arrollo de aplicaciones de escritorio y aplicaciones Web. La plataforma

.NET es el modelo de desarrollo de Microsoft que hace que el software sea independiente de la disponibles a través de Internet. El

ASP (no orientado a objetos)

VBScript,

NET ha sido implementado desde el principio pensando en una arquitectura abierta. .NET es una ar de aplicaciones Windows y aplicaciones

abarca a clientes, servidores y servicios; está

ión que permite a los desarrolladores generar aplicaciones y

fundamentales, que son un conjunto de servicios Web centrados en el usuario que trasladan el control de datos de usuario desde las

Universidad Carlos III de Madrid Sistemas Distribuidos

2

Page 3: Práctica 5 Práctica de servicios Web con .NET

aplicaciones hasta los usuarios. Por ejemplo, Microsoft Passport es un componente principal de la iniciativa .NET que facilita la integración de diversas aplicaciones.

•••• Herramientas, como Visual Studio .NET, que pueden utilizarse para desarrollar serviciosWeb XML, aplicaciones Windows y aplicaciones Web para obtener una rica experiencia de usuario.

Common

.NET Framework

Aplicaciones Tradidionales(Código noAdministrado)

Sistema Operativo (Windows,

1.1 .NET Framework

El .NET Framework proporciona la base sobre la que se desarrollan y ejecutan las plicaciones y los servicios Web . .NET Framework actúa como un elemento unificado, lo que significa que las aplicaciones, tanto si son aplicaciones Windows tradicionales, aplicaciones Web o servicios Web , se desarrollan utilizando un conjunto de herramientas y código comunes, lo qenormemente su integración. El .NET Framework está formado por los siguientes componentes:

•••• El Common Language Runtimegestionar los servicios en tiempo de ejecución, incluyendo la integracióseguridad y la gestión de memoria.

•••• Biblioteca común de clases. Estas bibliotecas proporcionan código reutilizable para las tareas más habituales, incluyendo el acceso a datos, el desarrollo de servicios Web , Web Forms y Windows Forms.

•••• ADO.NET es la próxima generación de la tecnología ActiveX Data Object (ADO). El elevado nivel de integración de ADO.NET en XML permite a los desarrolladores transferir conjuntos de datos (cachés de datos en memoria) entre los distintos componentes de una solución de empresa.

•••• ASP.NET se basa en las clases de programación de .NET Framework para proporcionar un modelo de aplicaciones Web en la forma de un conjunto de controles e infraestructura que facilita la creación de aplicaciones Web. Los desarrolladores

aplicaciones hasta los usuarios. Por ejemplo, Microsoft Passport es un componente principal de la iniciativa .NET que facilita la integración de diversas aplicaciones. Herramientas, como Visual Studio .NET, que pueden utilizarse para desarrollar serviciosWeb XML, aplicaciones Windows y aplicaciones Web para obtener una rica experiencia

Common Language Runtime

+ Herramientas (Visual Studio .NET)+ Servidores(SQL Server, ExchangeServer+ Servicios(Passport Service, ...)

ASP.NET

Web Services

Código Administrado

Biblioteca de Clases

Aplicaciones Web

FormulariosWeb

Servidor Web (IIS)

Sistema Operativo (Windows, Linux, Unix, ...)

El .NET Framework proporciona la base sobre la que se desarrollan y ejecutan las plicaciones y Web . .NET Framework actúa como un elemento unificado, lo que significa que las

aplicaciones, tanto si son aplicaciones Windows tradicionales, aplicaciones Web o servicios Web , se desarrollan utilizando un conjunto de herramientas y código comunes, lo qenormemente su integración. El .NET Framework está formado por los siguientes componentes:

Common Language Runtime (de ahora en adelante, CLR). El CLR es el encargao de gestionar los servicios en tiempo de ejecución, incluyendo la integracióseguridad y la gestión de memoria. Biblioteca común de clases. Estas bibliotecas proporcionan código reutilizable para las tareas más habituales, incluyendo el acceso a datos, el desarrollo de servicios Web , Web Forms y Windows Forms.

ADO.NET es la próxima generación de la tecnología ActiveX Data Object (ADO). El elevado nivel de integración de ADO.NET en XML permite a los desarrolladores transferir conjuntos de datos (cachés de datos en memoria) entre los distintos

olución de empresa. ASP.NET se basa en las clases de programación de .NET Framework para proporcionar un modelo de aplicaciones Web en la forma de un conjunto de controles e infraestructura que facilita la creación de aplicaciones Web. Los desarrolladores

Cuaderno de prácticas WEB SERVICES EN .NET

2

aplicaciones hasta los usuarios. Por ejemplo, Microsoft Passport es un componente principal de la iniciativa .NET que facilita la integración de diversas aplicaciones. Herramientas, como Visual Studio .NET, que pueden utilizarse para desarrollar servicios Web XML, aplicaciones Windows y aplicaciones Web para obtener una rica experiencia

ExchangeServer, ...)

ASP.NET

Web Services

Aplicaciones Web

Servidor Web (IIS)

El .NET Framework proporciona la base sobre la que se desarrollan y ejecutan las plicaciones y Web . .NET Framework actúa como un elemento unificado, lo que significa que las

aplicaciones, tanto si son aplicaciones Windows tradicionales, aplicaciones Web o servicios Web , se desarrollan utilizando un conjunto de herramientas y código comunes, lo que facilita enormemente su integración. El .NET Framework está formado por los siguientes componentes:

(de ahora en adelante, CLR). El CLR es el encargao de gestionar los servicios en tiempo de ejecución, incluyendo la integración de lenguajes, la

Biblioteca común de clases. Estas bibliotecas proporcionan código reutilizable para las tareas más habituales, incluyendo el acceso a datos, el desarrollo de servicios Web , Web

ADO.NET es la próxima generación de la tecnología ActiveX Data Object (ADO). El elevado nivel de integración de ADO.NET en XML permite a los desarrolladores transferir conjuntos de datos (cachés de datos en memoria) entre los distintos

ASP.NET se basa en las clases de programación de .NET Framework para proporcionar un modelo de aplicaciones Web en la forma de un conjunto de controles e infraestructura que facilita la creación de aplicaciones Web. Los desarrolladores pueden acceder a un

Universidad Carlos III de Madrid Sistemas Distribuidos

3

Page 4: Práctica 5 Práctica de servicios Web con .NET

conjunto de controles Web de ASP.NET con funciones comunes de interfaces de usuario en lenguaje de marcado de hipertexto (HTML), como cuadros de texto y menús desplegables. Estos controles se ejecutan en el servidor Web y proyectan su iusuario a un navegador como HTML.

La plataforma .NET es compatible con los siguientes dispositivos:

•••• PCs portátiles. •••• Estaciones de trabajo. •••• PCs de bolsillo. •••• PDAs. •••• Teléfonos móviles. •••• Consolas de juegos. •••• Tablet PCs.

Una de sus características más interesantes es que permite Compatibilidad binaria (vésiguiente) entre más de 20 lenguajes (C#, C++, VB.NET, Java, Eiffel, Fortran, Cobol, ML, Haskell, Pascal, Oberon, Perl, Python, ...)

1.2 Introducción a C#

C# es un lenguaje de programación diseñado especialmente para la plataforma .NET. C# es un moderno lenguaje orientado a objetos con el que los programadores podrán crear con facilidad una amplia gama de aplicaciones para la nueva plataforma Microsoft .NET, y que dispone de herramientas y servicios para aprovechar al máximo la informática y las comunicaciones. C# es un lenguaje orientado a objetos, que permite crear una gran variedad de componentes, deobjetos de negocio de alto nivel hasta aplicaciones de sistema. Mediante construcciones simples de lenguaje C#, estos componentes pueden convertirse en servicios Web y ser invocados a través de Internet desde cualquier lenguaje que se ejecute en cualqu

Public Class A Public x As Integer Public Sub Foo() ...End Class

Clase en VB.NET

conjunto de controles Web de ASP.NET con funciones comunes de interfaces de usuario en lenguaje de marcado de hipertexto (HTML), como cuadros de texto y menús desplegables. Estos controles se ejecutan en el servidor Web y proyectan su iusuario a un navegador como HTML.

La plataforma .NET es compatible con los siguientes dispositivos:

más interesantes es que permite Compatibilidad binaria (vé) entre más de 20 lenguajes (C#, C++, VB.NET, Java, Eiffel, Fortran, Cobol, ML,

Haskell, Pascal, Oberon, Perl, Python, ...)

Introducción a C#

C# es un lenguaje de programación diseñado especialmente para la plataforma .NET. C# es un moderno lenguaje orientado a objetos con el que los programadores podrán crear con facilidad

de aplicaciones para la nueva plataforma Microsoft .NET, y que dispone de herramientas y servicios para aprovechar al máximo la informática y las comunicaciones. C# es un lenguaje orientado a objetos, que permite crear una gran variedad de componentes, deobjetos de negocio de alto nivel hasta aplicaciones de sistema. Mediante construcciones simples de lenguaje C#, estos componentes pueden convertirse en servicios Web y ser invocados a través de Internet desde cualquier lenguaje que se ejecute en cualquier sistema operativo.

Public x As Integer Public Sub Foo() ...

class B : A { public string s; public void Bar() {...} }

class Client feature obj: B; ... create obj; obj.Bar; ... end

Subclase en C# Clase en Eiffel

Cuaderno de prácticas WEB SERVICES EN .NET

3

conjunto de controles Web de ASP.NET con funciones comunes de interfaces de usuario en lenguaje de marcado de hipertexto (HTML), como cuadros de texto y menús desplegables. Estos controles se ejecutan en el servidor Web y proyectan su interfaz de

más interesantes es que permite Compatibilidad binaria (véase la figura ) entre más de 20 lenguajes (C#, C++, VB.NET, Java, Eiffel, Fortran, Cobol, ML,

C# es un lenguaje de programación diseñado especialmente para la plataforma .NET. C# es un moderno lenguaje orientado a objetos con el que los programadores podrán crear con facilidad

de aplicaciones para la nueva plataforma Microsoft .NET, y que dispone de herramientas y servicios para aprovechar al máximo la informática y las comunicaciones. C# es un lenguaje orientado a objetos, que permite crear una gran variedad de componentes, desde objetos de negocio de alto nivel hasta aplicaciones de sistema. Mediante construcciones simples de lenguaje C#, estos componentes pueden convertirse en servicios Web y ser invocados a través

ier sistema operativo.

class Client feature obj: B;

create obj; obj.Bar;

Clase en Eiffel

Universidad Carlos III de Madrid Sistemas Distribuidos

4

Page 5: Práctica 5 Práctica de servicios Web con .NET

Es un lenguaje muy parecido a Java. Se considera que tiene un 10% con C++, un 5% con Visual Basicfigura muestra las similitudes con Java y C++.

• Orientación a objetos (herencia simple)

• Interfaces

• Excepciones

• Threads

• Namespaces(similar a Java

• Fuerte tipado

• Recolección de basura

• Reflexión

• Carga dinámica de código

• ...

Como en Java

• Orientación a objetos (herencia simple)

• Interfaces

• Excepciones

• Threads

• Namespaces(similar a Java

• Fuerte tipado

• Recolección de basura

• Reflexión

• Carga dinámica de código

• ...

Como en Java

C# es un lenguaje de programación simple pero eficaz, diseñado para escribir empresariales. El lenguaje C# es una evolución de los lenguajes C y C++. Utiliza muchas de las características de C++ en las áreas de insconsiderables mejoras e innovaciones en áreas como seguridad de tipos, control de versiones, eventos y recolección de elementos no utilizados (liberación de memoria).a los tipos de API más comunes: .NET Framework, COM, Automatización y estilo C. Asimismo, admite el modo unsafe, en el que se pueden utilizar punteros para manipular memoria que no se encuentra bajo el control del recolector de elementos no utilizados.

1.2.1 La versión C# del programa Hola Mundo

El siguiente programa de consola muestra la versión C# del típico programa "Hola Mundo".

// Programa Hola Mundo en C#class HolaMundo { static void Main { System.Console.WriteLine("Hola Mundo!"); } }

Es un lenguaje muy parecido a Java. Se considera que tiene un 70% de similitud conVisual Basic, siendo un 15% completamente nuevo. La

muestra las similitudes con Java y C++.

Como en C++• Tipos struct

• Sobrecarga de operadores

• Aritmética de punteros en cseguro

• Algunos detalles sint

Como en C++• Tipos struct

• Sobrecarga de operadores

• Aritmética de punteros en cseguro

• Algunos detalles sint

n a objetos (herencia simple)

(similar a Java packages)

digo

n a objetos (herencia simple)

(similar a Java packages)

digo

C# es un lenguaje de programación simple pero eficaz, diseñado para escribir El lenguaje C# es una evolución de los lenguajes C y C++. Utiliza muchas de las

características de C++ en las áreas de instrucciones, expresiones y operadores.considerables mejoras e innovaciones en áreas como seguridad de tipos, control de versiones, eventos y recolección de elementos no utilizados (liberación de memoria).

I más comunes: .NET Framework, COM, Automatización y estilo C. Asimismo, , en el que se pueden utilizar punteros para manipular memoria que no se

bajo el control del recolector de elementos no utilizados.

rsión C# del programa Hola Mundo

El siguiente programa de consola muestra la versión C# del típico programa "Hola Mundo".

// Programa Hola Mundo en C#

static void Main ()

System.Console.WriteLine("Hola Mundo!");

Cuaderno de prácticas WEB SERVICES EN .NET

4

de similitud con Java, un completamente nuevo. La siguiente

Como en C++

Sobrecarga de operadores

tica de punteros en código no

Algunos detalles sintácticos

Como en C++

Sobrecarga de operadores

tica de punteros en código no

Algunos detalles sintácticos

C# es un lenguaje de programación simple pero eficaz, diseñado para escribir plicaciones El lenguaje C# es una evolución de los lenguajes C y C++. Utiliza muchas de las

trucciones, expresiones y operadores. C# presenta considerables mejoras e innovaciones en áreas como seguridad de tipos, control de versiones,

C# proporciona acceso I más comunes: .NET Framework, COM, Automatización y estilo C. Asimismo,

, en el que se pueden utilizar punteros para manipular memoria que no se

El siguiente programa de consola muestra la versión C# del típico programa "Hola Mundo".

System.Console.WriteLine("Hola Mundo!");

Universidad Carlos III de Madrid Sistemas Distribuidos

5

Page 6: Práctica 5 Práctica de servicios Web con .NET

A continuación se indican algunos puntos importantes de este programa: comentarios, el método Main, la entrada y salida básica, la compilación y ejecución. La primera línea contiene un comen

// Programa Hola Mundo en C# Los caracteres // convierten el resto de la línea en un comentario. Un bloque de texto también se puede convertir en comentario si se coloca entre los caracteres /* y */, por ejemplo: Cualquier programa en C# debe conejecución. Este método es donde se crean los objetos y se ejecutan otros métodos. El método Main es un método estático que reside dentro de una clase o una estructura. En el ejemplo de "Hola Mundo!", se encuentra dentro de la clase HolaMundo. El método Main se puede declarar de varias formas:

static void Main() { ... }

También puede devolver un valor de tipo

static int Main() { ... return 0; }

Puede utilizar argumentos con los dos tipos devueltos:

static int Main(string[] args) { ... return 0; }

O bien

static void Main(string[] args) { ... }

A continuación se indican algunos puntos importantes de este programa: comentarios, el método Main, la entrada y salida básica, la compilación y ejecución.

La primera línea contiene un comentario:

// Programa Hola Mundo en C#

Los caracteres // convierten el resto de la línea en un comentario. Un bloque de texto también se puede convertir en comentario si se coloca entre los caracteres /* y */, por ejemplo:

Cualquier programa en C# debe contener un método Main , en el cual se inicia y se termina la ejecución. Este método es donde se crean los objetos y se ejecutan otros métodos. El método

es un método estático que reside dentro de una clase o una estructura. En el ejemplo de ", se encuentra dentro de la clase HolaMundo. El método Main se puede declarar

static void Main()

También puede devolver un valor de tipo int :

static int Main()

Puede utilizar argumentos con los dos tipos devueltos:

static int Main(string[] args)

static void Main(string[] args)

Cuaderno de prácticas WEB SERVICES EN .NET

5

A continuación se indican algunos puntos importantes de este programa: comentarios, el método

Los caracteres // convierten el resto de la línea en un comentario. Un bloque de texto también se puede convertir en comentario si se coloca entre los caracteres /* y */, por ejemplo:

, en el cual se inicia y se termina la ejecución. Este método es donde se crean los objetos y se ejecutan otros métodos. El método

es un método estático que reside dentro de una clase o una estructura. En el ejemplo de ", se encuentra dentro de la clase HolaMundo. El método Main se puede declarar

Universidad Carlos III de Madrid Sistemas Distribuidos

6

Page 7: Práctica 5 Práctica de servicios Web con .NET

El parámetro del método Main es una matriz de tipo string que representa los argumentos línea de mandatos utilizados para invocar al programa. Observe que, a diferencia de C++, esta matriz no incluye el nombre del archivo ejecutable (exe). Los programas de C# utilizan normalmente los servicios de entrada y salida que ofrece la biblioteca de tiempo de ejecución de .NET Framework. En la instrucción System.Console.WriteLine("Hola Mundo!")

uno de los métodos de salida de la clase Muestra el parámetro cadena enOtros métodos de Console se utilizan para otras operaciones de entrada y salida. Si incluye la

instrucción using System ; al principio del programa, puede utilizar directamente las clases y

los métodos System sin escribir el nombre completo. Por ejemplo:

Console.WriteLine("

El programa "Hola a todos" se puede compilar creando un proyecto en el Entorno de desarrollo integrado (IDE) de Visual Studio , o bien mediante la línea de mandatos. Para compilar el programa desde la línea de comandos debe crear el archivo de código fuenteditor de texto y guardarlo con un nombre como HolaMundo.cs. Los archivos de código fuente de C# utilizan la extensión .cs. Para invocar el compilador, basta con ejecutar el siguiente mandato:

csc HolaMundo.cs

Si el programa no contiene errores de compilación, se creará un archivo HolaMundo.exe, que se podrá ejecutar directamente.

1.2.2 Estructura general de un programa C#

Los programas en C# pueden constar de uno o varios archivos. Cada archivo puede contener uno o varios espacios de nombres. Un espacio de nombres puede contener tipos como clases, estructuras, interfaces, enumeraciones y delegados, además de otros espacios de nombres. A continuación, se muestra el esqueleto de un programa en C# que contiene todos estos elementos.

// Es queleto básico de un programa C#using System; namespace MyNamespace1 { class MyClass1 { } struct MyStruct

El parámetro del método Main es una matriz de tipo string que representa los argumentos línea de mandatos utilizados para invocar al programa. Observe que, a diferencia de C++, esta matriz no incluye el nombre del archivo ejecutable (exe).

Los programas de C# utilizan normalmente los servicios de entrada y salida que ofrece la ca de tiempo de ejecución de .NET Framework. En la instrucción

System.Console.WriteLine("Hola Mundo!") ; se utiliza el método

uno de los métodos de salida de la clase Console de la biblioteca de tiempo de ejecución. Muestra el parámetro cadena en la secuencia de salida estándar seguido por una nueva línea.

se utilizan para otras operaciones de entrada y salida. Si incluye la

; al principio del programa, puede utilizar directamente las clases y

sin escribir el nombre completo. Por ejemplo:

Console.WriteLine(" Hola Mundo!");

El programa "Hola a todos" se puede compilar creando un proyecto en el Entorno de desarrollo integrado (IDE) de Visual Studio , o bien mediante la línea de mandatos. Para compilar el programa desde la línea de comandos debe crear el archivo de código fuenteditor de texto y guardarlo con un nombre como HolaMundo.cs. Los archivos de código fuente de C# utilizan la extensión .cs. Para invocar el compilador, basta con ejecutar el siguiente

csc HolaMundo.cs

ntiene errores de compilación, se creará un archivo HolaMundo.exe, que se

Estructura general de un programa C#

Los programas en C# pueden constar de uno o varios archivos. Cada archivo puede contener uno mbres. Un espacio de nombres puede contener tipos como clases,

estructuras, interfaces, enumeraciones y delegados, además de otros espacios de nombres. A continuación, se muestra el esqueleto de un programa en C# que contiene todos estos elementos.

queleto básico de un programa C#

namespace MyNamespace1

class MyClass1

struct MyStruct

Cuaderno de prácticas WEB SERVICES EN .NET

6

El parámetro del método Main es una matriz de tipo string que representa los argumentos de la línea de mandatos utilizados para invocar al programa. Observe que, a diferencia de C++, esta

Los programas de C# utilizan normalmente los servicios de entrada y salida que ofrece la ca de tiempo de ejecución de .NET Framework. En la instrucción

; se utiliza el método WriteLine ,

de la biblioteca de tiempo de ejecución. la secuencia de salida estándar seguido por una nueva línea.

se utilizan para otras operaciones de entrada y salida. Si incluye la

; al principio del programa, puede utilizar directamente las clases y

El programa "Hola a todos" se puede compilar creando un proyecto en el Entorno de desarrollo integrado (IDE) de Visual Studio , o bien mediante la línea de mandatos. Para compilar el programa desde la línea de comandos debe crear el archivo de código fuente mediante cualquier editor de texto y guardarlo con un nombre como HolaMundo.cs. Los archivos de código fuente de C# utilizan la extensión .cs. Para invocar el compilador, basta con ejecutar el siguiente

ntiene errores de compilación, se creará un archivo HolaMundo.exe, que se

Los programas en C# pueden constar de uno o varios archivos. Cada archivo puede contener uno mbres. Un espacio de nombres puede contener tipos como clases,

estructuras, interfaces, enumeraciones y delegados, además de otros espacios de nombres. A continuación, se muestra el esqueleto de un programa en C# que contiene todos estos elementos.

Universidad Carlos III de Madrid Sistemas Distribuidos

7

Page 8: Práctica 5 Práctica de servicios Web con .NET

{ } interface IMyInterface { } delegate int MyDelegate(); enum MyEnum { } namespace MyNamespace2 { } class MyClass2 { public static void Main(string[] args) { } } }

La palabra clave namespace

el código y proporciona una forma de crear tipos globalmente exclusivos.

1.2.3 Tipos de datos básicos

Los tipos del lenguaje C# se dividen en dos categorías principales: tipos de valor y tipos dreferencia. Una tercera categoría de tipos son los punteros, que sólo está disponible en el código no seguro, que se describirá más adelante. Dentro de los tipos de valor se encuentran los tipos struct, tipos simples, los tipos en coma flotante, el tiptipos de datos son: sbyte ,

double , float , bool y decimal

C o C++ Dentro de los tipos de referencia

string , el tipo de interfaz y el tipo de matriz.

1.3 Introducción a Visual Studio .NET

Visual Studio .NET es un conjunto de aplicaciones completo para la creación tanto de aplicaciones de escritorio como de aplicaciones Web de empresa para trabajo en equipo. Aparte de generar aplicaciones de escritorio de alto rendimiento, se pueden utilizar las eficaces herramientas de desarrollo basado en componentes y otras tecnologías de Visual Studio para simplificar el diseño, desarrollo e implementación en equipo de soluciones para empresa.

interface IMyInterface

delegate int MyDelegate();

namespace MyNamespace2

class MyClass2

public static void Main(string[] args)

namespace se utiliza para declarar un ámbito. Este ámbito permite organizar el código y proporciona una forma de crear tipos globalmente exclusivos.

básicos

Los tipos del lenguaje C# se dividen en dos categorías principales: tipos de valor y tipos dreferencia. Una tercera categoría de tipos son los punteros, que sólo está disponible en el código no seguro, que se describirá más adelante. Dentro de los tipos de valor se encuentran los tipos struct, tipos simples, los tipos en coma flotante, el tipo decimal y el tipo Bool.

, byte , short , ushort , int , uint , long

decimal . Todos ellos son similares a los tipos de datos utilizados en

Dentro de los tipos de referencia se encuentran los tipos de clase, el tipo

, el tipo de interfaz y el tipo de matriz.

Introducción a Visual Studio .NET

Visual Studio .NET es un conjunto de aplicaciones completo para la creación tanto de como de aplicaciones Web de empresa para trabajo en equipo. Aparte

de generar aplicaciones de escritorio de alto rendimiento, se pueden utilizar las eficaces herramientas de desarrollo basado en componentes y otras tecnologías de Visual Studio para

icar el diseño, desarrollo e implementación en equipo de soluciones para empresa.

Cuaderno de prácticas WEB SERVICES EN .NET

7

public static void Main(string[] args)

se utiliza para declarar un ámbito. Este ámbito permite organizar

Los tipos del lenguaje C# se dividen en dos categorías principales: tipos de valor y tipos de referencia. Una tercera categoría de tipos son los punteros, que sólo está disponible en el código no seguro, que se describirá más adelante. Dentro de los tipos de valor se encuentran los tipos

o decimal y el tipo Bool. Los principales long , ulong , char ,

Todos ellos son similares a los tipos de datos utilizados en

se encuentran los tipos de clase, el tipo object , el tipo

Visual Studio .NET es un conjunto de aplicaciones completo para la creación tanto de como de aplicaciones Web de empresa para trabajo en equipo. Aparte

de generar aplicaciones de escritorio de alto rendimiento, se pueden utilizar las eficaces herramientas de desarrollo basado en componentes y otras tecnologías de Visual Studio para

icar el diseño, desarrollo e implementación en equipo de soluciones para empresa.

Universidad Carlos III de Madrid Sistemas Distribuidos

8

Page 9: Práctica 5 Práctica de servicios Web con .NET

La ¡Error! No se encuentra el origen de la referencia.desarrollo de Visual Studio 2010

Figura

Para desarrollar una aplicación visual con C#, hay que elegir Nuevo Proyectonombre Prueba) y Visual C# | Windows | Aplicación de Windows Forms.

¡Error! No se encuentra el origen de la referencia.siguiente figura muestra el entorno de desarrollo de Visual Studio 2010.

Figura 1 Pantalla inicial de Visual Studio 2010

Para desarrollar una aplicación visual con C#, hay que elegir Nuevo Proyecto| Windows | Aplicación de Windows Forms.

Cuaderno de prácticas WEB SERVICES EN .NET

8

muestra el entorno de

Para desarrollar una aplicación visual con C#, hay que elegir Nuevo Proyecto (en este caso con

Universidad Carlos III de Madrid Sistemas Distribuidos

9

Page 10: Práctica 5 Práctica de servicios Web con .NET

Cuando se crea un proyecto aparece una ventana similar a la que se muestra en la siguiente Figura:

El entorno incluye un cuadro de herramientas donde se encuentran los controles que podemos incluir en las aplicaciones. Un editor en el que podemos insertar el código. El examinador de objetos muestra los diferentes elementos que tenemos abierto en el proyecto. El explorador de soluciones incluye, entre otras cosas, todos los archivos que incluye nuestro proyecde Propiedades muestra las propiedades que tiene cualquier elemento marcado en la parte Editor/Navegador. Existe también una parte donde se muestra ayuda dinámica y otra donde se muestran diversas listas de tareas, por ejemplo, los errores aplicación. El explorador de servidores

Para desarrollar una primera aplicación sencilla, en el Cuadro de herramientas, arrastre un control Button al formulario. Haga clic en el botón para seleccionarlo. En la ventana Propiedestablezca la propiedad Text en "Hola". De esta forma el botón incluirá el texto “Hola”. A continuación a partir del cuadro de herramientas, arrastre un control TextBox al formulario. Para escribir el código de la aplicación haga doble clic en el boeventos para el evento Click del botón. Se abrirá el Editor de código con el punto de inserción situado dentro del controlador de eventos:

Cuando se crea un proyecto aparece una ventana similar a la que se muestra en la siguiente

El entorno incluye un cuadro de herramientas donde se encuentran los controles que podemos

plicaciones. Un editor en el que podemos insertar el código. El examinador de objetos muestra los diferentes elementos que tenemos abierto en el proyecto. El explorador de soluciones incluye, entre otras cosas, todos los archivos que incluye nuestro proyecde Propiedades muestra las propiedades que tiene cualquier elemento marcado en la parte Editor/Navegador. Existe también una parte donde se muestra ayuda dinámica y otra donde se

diversas listas de tareas, por ejemplo, los errores que se obtienen al compilar la aplicación. El explorador de servidores

Para desarrollar una primera aplicación sencilla, en el Cuadro de herramientas, arrastre un control Button al formulario. Haga clic en el botón para seleccionarlo. En la ventana Propiedestablezca la propiedad Text en "Hola". De esta forma el botón incluirá el texto “Hola”. A continuación a partir del cuadro de herramientas, arrastre un control TextBox al formulario. Para escribir el código de la aplicación haga doble clic en el botón para agregar un controlador de eventos para el evento Click del botón. Se abrirá el Editor de código con el punto de inserción situado dentro del controlador de eventos:

Cuaderno de prácticas WEB SERVICES EN .NET

9

Cuando se crea un proyecto aparece una ventana similar a la que se muestra en la siguiente

El entorno incluye un cuadro de herramientas donde se encuentran los controles que podemos plicaciones. Un editor en el que podemos insertar el código. El examinador de

objetos muestra los diferentes elementos que tenemos abierto en el proyecto. El explorador de soluciones incluye, entre otras cosas, todos los archivos que incluye nuestro proyecto. El apartado de Propiedades muestra las propiedades que tiene cualquier elemento marcado en la parte Editor/Navegador. Existe también una parte donde se muestra ayuda dinámica y otra donde se

que se obtienen al compilar la

Para desarrollar una primera aplicación sencilla, en el Cuadro de herramientas, arrastre un control Button al formulario. Haga clic en el botón para seleccionarlo. En la ventana Propiedades, establezca la propiedad Text en "Hola". De esta forma el botón incluirá el texto “Hola”. A continuación a partir del cuadro de herramientas, arrastre un control TextBox al formulario. Para

tón para agregar un controlador de eventos para el evento Click del botón. Se abrirá el Editor de código con el punto de inserción

Universidad Carlos III de Madrid Sistemas Distribuidos

10

Page 11: Práctica 5 Práctica de servicios Web con .NET

private void button1_Click({

}

Lo único que queda es Insertar el código siguiente:

private void button1_Click({ textBox1.Text = "Hola Mundo";

}

De esta forma cuando se haga click sobre el botón Hola, se mostrará en el cuadro de texto la cadena “Hola Mundo”.

Grabe el proyecto y haga clic

1.3.1 Incorporación de un servicio web a una aplicación visual

A continuación se va a describir cómo desrrollar un formulario cliente de un servicio web. El servicio web elegido es el definido en: http://www.dataaccess.com/webservicesserver/numberconversion.wso?WSDL Que incluye dos métodos;

• NumberToWords Returns the word corresponding to the positive number passed as parameter. quadrillions.

• NumberToDollars Returns the non-zero dollar amount of the passed number.

button1_Click( object sender, System.EventArgs e)

Lo único que queda es Insertar el código siguiente:

button1_Click( object sender, System.EventArgs e)

textBox1.Text = "Hola Mundo";

De esta forma cuando se haga click sobre el botón Hola, se mostrará en el cuadro de texto la

en Iniciar para compilar y ejecutar el proyecto.

Incorporación de un servicio web a una aplicación visual

A continuación se va a describir cómo desrrollar un formulario cliente de un servicio web. elegido es el definido en:

http://www.dataaccess.com/webservicesserver/numberconversion.wso?WSDL

Returns the word corresponding to the positive number passed as parameter.

zero dollar amount of the passed number.

Cuaderno de prácticas WEB SERVICES EN .NET

10

sender, System.EventArgs e)

sender, System.EventArgs e)

De esta forma cuando se haga click sobre el botón Hola, se mostrará en el cuadro de texto la

para compilar y ejecutar el proyecto.

Incorporación de un servicio web a una aplicación visual

A continuación se va a describir cómo desrrollar un formulario cliente de un servicio web.

http://www.dataaccess.com/webservicesserver/numberconversion.wso?WSDL

Returns the word corresponding to the positive number passed as parameter. Limited to

Universidad Carlos III de Madrid Sistemas Distribuidos

11

Page 12: Práctica 5 Práctica de servicios Web con .NET

La Aplicación desarrollada tendrá

Una vez creado el proyecto, lo primero es añadexplorador de soluciones haga clic con el botón derecho sobre

Referencia de Servicio

Haga Clic en Avanzadas y elija esta:

tendrá el siguiente aspecto:

o, lo primero es añadir una referencia web con la URLde soluciones haga clic con el botón derecho sobre References

Referencia de Servicio . Aparecerá la siguiente ventana.

y elija Agregar Referencia Web . Aparecerá una ventana como

Cuaderno de prácticas WEB SERVICES EN .NET

11

ir una referencia web con la URL anterior. En el References y elija Agregar

. Aparecerá una ventana como

Universidad Carlos III de Madrid Sistemas Distribuidos

12

Page 13: Práctica 5 Práctica de servicios Web con .NET

Inserte la referencia del serviciohttp://www.dataaccess.com/webservicesserver/numberconversion.wso?WSDLcambie el nombre de la referencia web por siguiente:

En la que se puede ver la descripción de los métodos que incluye el servicio web. El siguiente paso es crear el formulario:

Inserte la referencia del servicio http://www.dataaccess.com/webservicesserver/numberconversion.wso?WSDLcambie el nombre de la referencia web por Conversion , y aparecerá una pantalla como la

En la que se puede ver la descripción de los métodos que incluye el servicio web. El siguiente paso es crear el formulario:

Cuaderno de prácticas WEB SERVICES EN .NET

12

http://www.dataaccess.com/webservicesserver/numberconversion.wso?WSDL en dirección URL, , y aparecerá una pantalla como la

En la que se puede ver la descripción de los métodos que incluye el servicio web.

Universidad Carlos III de Madrid Sistemas Distribuidos

13

Page 14: Práctica 5 Práctica de servicios Web con .NET

Que incluye dos cuadros de texto (

(button1 y button2 por defecto) y dos etiquetas (aplicación tomará un número insertado en el primer cuadro de texto y cuando se haga clic sobre el botón Convertir se invocará el servicio web para convertir el número letras. El resultado se mostrará en el cuadro de texto 2. El código asociado a los botones private void button2_Click(

{

textBox1.Text =

textBox2.Text = }

private void button1_Click( {

// se crea una referencia para poder invocar el servicio web

Conversion.NumberConversion

// se convierte el número introducido en el cuadro de texto 1 de String a

// ulong que es el tipo de datos del argumento que se pasa al método

// NumberToWords

ulong num = ulong

textBox2.Text = c.NumberToWords(num); } A continuación, se puede compilar y ejecutar el programa, que dará una salida como la que se muestra a continuación:

cuadros de texto (textBox1 y textBox2 por defecto). Dos botones

por defecto) y dos etiquetas (label1 y label2

aplicación tomará un número insertado en el primer cuadro de texto y cuando se haga clic sobre se invocará el servicio web para convertir el número

letras. El resultado se mostrará en el cuadro de texto 2.

El código asociado a los botones Convertir y Borrar es el siguiente:

button2_Click(object sender, EventArgs e)

textBox1.Text = "";

textBox2.Text = "";

button1_Click(object sender, EventArgs e)

// se crea una referencia para poder invocar el servicio web

NumberConversion c = new Conversion.NumberConversion

// se convierte el número introducido en el cuadro de texto 1 de String a

// ulong que es el tipo de datos del argumento que se pasa al método

// NumberToWords

ulong.Parse(textBox1.Text);

textBox2.Text = c.NumberToWords(num); // invoca el servicio Web

A continuación, se puede compilar y ejecutar el programa, que dará una salida como la que se

Cuaderno de prácticas WEB SERVICES EN .NET

13

por defecto). Dos botones

label2 por defecto). La aplicación tomará un número insertado en el primer cuadro de texto y cuando se haga clic sobre

se invocará el servicio web para convertir el número dado en cifras en

// se crea una referencia para poder invocar el servicio web

NumberConversion();

// se convierte el número introducido en el cuadro de texto 1 de String a

// ulong que es el tipo de datos del argumento que se pasa al método

// invoca el servicio Web

A continuación, se puede compilar y ejecutar el programa, que dará una salida como la que se

Universidad Carlos III de Madrid Sistemas Distribuidos

14

Page 15: Práctica 5 Práctica de servicios Web con .NET

Cuaderno de prácticas WEB SERVICES EN .NET

14

Universidad Carlos III de Madrid Sistemas Distribuidos

15

Page 16: Práctica 5 Práctica de servicios Web con .NET

2. Descripción de la práctica

El alumno deberá diseñar, codificar y probar, utherramienta Visual Studio 2010, dos clientes que consuman servicios web.

2.1 Conversión de temperatura

Se pretende la implementación de una aplicación que invoque el servicio web que se encuentra en la dirección: http://www.w3schools.com/webservices/tempconvert.asmx Que incluye dos métodos:

• CelsiusToFahrenheit • FahrenheitToCelsius

El alumno deberá desarrollar unaposibilidad de introducir un valorposible esquema de interfaz se muestra en la siguiente imagen.Al hacer clic sobre el botón “To Celsius”, seencuentra en Fahrenheit y se muestra el resultado de la conversión en la casilla inferior. Si por el contrario se pulsa sobre “To Fahrenheit”, se asume que el valor introducido son grados Celsius y se procede a mostrar su equivalente en Fahrenheit.

2.2 IP Info

Se pretende desarrollar de una aplicación de ello se encuentra en la siguiente dirección: http://tarya.co.uk/ws/Ip2countryws.asmx Y ofrece los siguientes servicios:

Descripción de la práctica

El alumno deberá diseñar, codificar y probar, utilizando para ello el lenguaje Cherramienta Visual Studio 2010, dos clientes que consuman servicios web.

Conversión de temperatura

implementación de una aplicación que invoque el servicio web que se encuentra en

http://www.w3schools.com/webservices/tempconvert.asmx

El alumno deberá desarrollar una aplicación cliente con una interfaz que ofrezca al usuario la posibilidad de introducir un valor de temperatura y convertirla a grados Celsius posible esquema de interfaz se muestra en la siguiente imagen.

sobre el botón “To Celsius”, se asume que el valor introducido por el usuario se encuentra en Fahrenheit y se muestra el resultado de la conversión en la casilla inferior. Si por el contrario se pulsa sobre “To Fahrenheit”, se asume que el valor introducido son grados Celsius y

de a mostrar su equivalente en Fahrenheit.

de una aplicación cliente que haga uso de dos servicios web. El primero de ello se encuentra en la siguiente dirección:

http://tarya.co.uk/ws/Ip2countryws.asmx

Y ofrece los siguientes servicios:

Cuaderno de prácticas WEB SERVICES EN .NET

15

ilizando para ello el lenguaje C# y sobre la

implementación de una aplicación que invoque el servicio web que se encuentra en

interfaz que ofrezca al usuario la Celsius o Fahrenheit. Un

asume que el valor introducido por el usuario se encuentra en Fahrenheit y se muestra el resultado de la conversión en la casilla inferior. Si por el contrario se pulsa sobre “To Fahrenheit”, se asume que el valor introducido son grados Celsius y

dos servicios web. El primero

Universidad Carlos III de Madrid Sistemas Distribuidos

16

Page 17: Práctica 5 Práctica de servicios Web con .NET

• getCountry

Takes IP address, gives ISO Country El segundo servicio web necesario para la realización del cliente se encuentra en la dirección: http://webservices.oorsprong.org/websamples.countryinfo/CountryInfoServ Y ofrece, entre otros, como servicios relevantes para la práctica los siguientes:

• CountryName Searches the database for a country

• CapitalCity Returns the name of the captial city for the passed country code

El alumno deberá ofrecer al usuario do

• El usuario podrá introducir una país donde se encuentra y, posteriormente, obtendrá nombre y la capital del país correspondiente.

• El usuario podrá introducir el código ISO de un país y la aplicación le indicará el nombre y la capital del mismo.

Una posible interfaz se muestra a continuación:

Takes IP address, gives ISO Country

servicio web necesario para la realización del cliente se encuentra en la dirección:

http://webservices.oorsprong.org/websamples.countryinfo/CountryInfoServ

omo servicios relevantes para la práctica los siguientes:

Searches the database for a country by the passed ISO country code

Returns the name of the captial city for the passed country code

El alumno deberá ofrecer al usuario dos funcionalidades:

El usuario podrá introducir una dirección IP y la aplicación obtendrá el código ISO del país donde se encuentra y, posteriormente, obtendrá mediante el segundo servicio, el

capital del país correspondiente. El usuario podrá introducir el código ISO de un país y la aplicación le indicará el nombre

capital del mismo.

Una posible interfaz se muestra a continuación:

Cuaderno de prácticas WEB SERVICES EN .NET

16

servicio web necesario para la realización del cliente se encuentra en la dirección:

http://webservices.oorsprong.org/websamples.countryinfo/CountryInfoService.wso?WSDL

omo servicios relevantes para la práctica los siguientes:

by the passed ISO country code

IP y la aplicación obtendrá el código ISO del mediante el segundo servicio, el

El usuario podrá introducir el código ISO de un país y la aplicación le indicará el nombre

Universidad Carlos III de Madrid Sistemas Distribuidos

17

Page 18: Práctica 5 Práctica de servicios Web con .NET

3. Normas y recomendaciones generales

Es responsabilidad del alumno leer y comprender esten el laboratorio. La sesión de laboratorio estará dedicada a resolver todas aquellas dudas que hayan podido surgir. Se valorará el uso correcto del lenguaje El alumno tiene libertad a la hora depedida y se adapte a los requisitos descritos en el enunciado de la práctica

Normas y recomendaciones generales

Es responsabilidad del alumno leer y comprender este enunciado de práctica en el laboratorio. La sesión de laboratorio estará dedicada a resolver todas aquellas dudas que

uso correcto del lenguaje en la memoria.

El alumno tiene libertad a la hora de diseñar el sistema siempre que proporcione la funcionalidad y se adapte a los requisitos descritos en el enunciado de la práctica

Cuaderno de prácticas WEB SERVICES EN .NET

17

e enunciado de práctica ANTES de la sesión en el laboratorio. La sesión de laboratorio estará dedicada a resolver todas aquellas dudas que

diseñar el sistema siempre que proporcione la funcionalidad

Universidad Carlos III de Madrid Sistemas Distribuidos

18

Page 19: Práctica 5 Práctica de servicios Web con .NET

4. Documentación a entregar

Se deben entregar los siguiente archivos_

En ella se deben comentar los relevantes. Asimismo, puede exponer los comentarios personales que considere oportunodeberá entregar un documento en formato

Además deberá cumplir los siguientes requisitos:

• Presentar una estructura lógica en sus contenidos (índice de contenidos).

• Estar convenientemente formateada, para facilitar su lectura.• Describir con claridad, y en profundidad los puntos recogidos en este cuaderno de

prácticas, así como los que decidan incluir como co• Incluir las pruebas realizadas.• Incluir los comentarios personales que considere oportuno

• NO incluir el código fuente. La memoria debe incluir como mínimo los siguientes puntos:

1. Índice de contenidos. 2. Descripción del protocolo de aplicación 3. Diseño del programa, usando diagramas de flujo para explicar el funcionamiento del

mismo. 4. Pruebas realizadas para probar la aplicación.5. Conclusiones del alumno6. Descripción de las tareas realizadas y tiempo dedicad

El documento no debe sobrepasar las 20

ConverterApp

Carpeta que contiene el proyecto generado en Visual Studio 2010 para la realización del primer cliente, esta carpeta la genera automáticamente VS2010 al crear un proyecto con el CorverterApp.

IPInfoApp

Carpeta que contiene el proyecto generado en Visual Studio 2010 para la realización del segundo cliente, esta carpeta la genera automáticamente VS2010 al crear un proyecto con el nombre IPInfoApp.

Documentación a entregar

los siguiente archivos_memoria.pdf

En ella se deben comentar los aspectos del desarrollo de su práctica que considere más relevantes. Asimismo, puede exponer los comentarios personales que considere oportunodeberá entregar un documento en formato PDF.

Además deberá cumplir los siguientes requisitos: estructura lógica en sus contenidos (índice de contenidos).

Estar convenientemente formateada, para facilitar su lectura. Describir con claridad, y en profundidad los puntos recogidos en este cuaderno de prácticas, así como los que decidan incluir como complemento. Incluir las pruebas realizadas. Incluir los comentarios personales que considere oportunos.

NO incluir el código fuente.

La memoria debe incluir como mínimo los siguientes puntos:

Descripción del protocolo de aplicación utilizado entre el cliente y el servidor.Diseño del programa, usando diagramas de flujo para explicar el funcionamiento del

Pruebas realizadas para probar la aplicación. Conclusiones del alumno. Descripción de las tareas realizadas y tiempo dedicado a cada tarea.

El documento no debe sobrepasar las 20 páginas.

Carpeta que contiene el proyecto generado en Visual Studio 2010 para la realización del primer cliente, esta carpeta la genera automáticamente VS2010 al crear un proyecto con el

Carpeta que contiene el proyecto generado en Visual Studio 2010 para la realización del segundo cliente, esta carpeta la genera automáticamente VS2010 al crear un proyecto con el nombre

Cuaderno de prácticas WEB SERVICES EN .NET

18

aspectos del desarrollo de su práctica que considere más relevantes. Asimismo, puede exponer los comentarios personales que considere oportunos. Se

estructura lógica en sus contenidos (índice de contenidos).

Describir con claridad, y en profundidad los puntos recogidos en este cuaderno de

utilizado entre el cliente y el servidor. Diseño del programa, usando diagramas de flujo para explicar el funcionamiento del

o a cada tarea.

Carpeta que contiene el proyecto generado en Visual Studio 2010 para la realización del primer cliente, esta carpeta la genera automáticamente VS2010 al crear un proyecto con el nombre

Carpeta que contiene el proyecto generado en Visual Studio 2010 para la realización del segundo cliente, esta carpeta la genera automáticamente VS2010 al crear un proyecto con el nombre

Universidad Carlos III de Madrid Sistemas Distribuidos

19