microsoft visual studio 2005 manual español parte5
TRANSCRIPT
-
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
1/35
-
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
2/35
Cursos402
Figura 5 Para representar la informacin dela tabla Alquileres, arrastraremos la tabla dela ventana Orgenes de datos sobre el formula-rio Windows
Observe que Visual Studio 2005, genera
por nosotros ms componentes y con-
troles, que por defecto tendr una apa-
riencia similar a la que se presenta en la
figura 6.
Como podemos observar, el entorno de
trabajo ha hecho por nosotros el trabajo
ms complejo para representar los datos
de forma rpida y sencilla.
Figura 6 Controles y Componentes de la tabla maestra aadidos al formulario Win-
dows
Como podemos observar, el entorno de trabajo ha hecho por nosotros el tra-bajo ms complejo para representar los datos de forma rpida y sencilla.
El esquema de datos tipados, apareca ya en nuestro proyecto cuando asig-
namos el correspondiente origen de datos.
Ahora lo que ha ocurrido, es que al arrastrar y soltar la tabla padre Socios de
la ventana de Orgenes de datos, en el entorno se ha aadido un componente
-
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
3/35
Visual Studio 2005 403
de nombreMSDNVideoDataSetque es el que permitir relacionar elData-
Set tipado con nuestros datos.
Este componente ser usado por la relacin maestro detalle de las dos tablas
aadidas al formulario.
En la figura 7, podemos ver el esquema aadido a nuestro proyecto, y el
componente del que estamos hablando.
Figura 7 Esquema del DataSet tipado aadido al proyecto y su componente de relacin
Ejecute la aplicacin y observe el comportamiento de la misma.
Observar por lo tanto, que los datos entre detalle y maestra, no estn rela-
cionados. Si navegamos a travs de los datos de detalle a travs del objeto
SociosBindingNavigator, el controlDataGridView no representa la relacin
de los datos seleccionados.
Esto es lo que se muestra en la figura 8.
-
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
4/35
Cursos404
Figura 8 Ejecucin de la aplicacin confirmando que los datos mostrados no estn rela-cionados
A continuacin, la tarea que nos queda para completar el correcto funcio-
namiento de nuestra aplicacin, es la de relacionar la tabla detalle y la tabla
maestra entre s, para que los datos que se muestran en la aplicacin, estn
relacionados entre s.
Relacionando la tabla padr e con la tabla hija
La tarea ms sencilla es la de relacionar la tabla detalle con la tabla maestra.
Es una tarea sencilla, porque Visual Studio 2005 nos proporciona las herra-
mientas necesarias para simplificar al mximo esta tarea.
Para llevar a cabo esta tarea, haga clicsobre el control DataGridView que
corresponde a los datos de la tabla
maestra, y acceda a la ventana de
Propiedades.
Dentro de la ventana de Propiedades,
acceda a la propiedad DataSource
como se indica en la figura 9.
Despliegue esta propiedad, y de la lis-
ta desplegable que aparece, seleccio-
ne la opcin FK_Alquileres_Socios
como se indica en la figura 10.
? Figura 9 Propiedad DataSource del con-trol DataGridView de la informacin maes-tra
-
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
5/35
Visual Studio 2005 405
Figura 10 Asignacin de la clave de rela-cin entre las tablas ?
Cuando se asigna el campo de rela-
cin de las tablas, dentro de la apli-cacin se aade esta relacin para
que cuando naveguemos entre los
datos de la tabla Socios aparezca to-
da la informacin de la tabla Alqui-
leres relacionada con la tabla Socios.
Esto de lo que hablamos, est supe-
ditado por el componente
FK_Alquileres_SociosBindingSource que es lo que se indica en la figura
11.
Para finalizar, ejecutaremos nuestra aplicacin y comprobaremos que el
funcionamiento de esta, incluida la relacin entre tablas, funciona como es-
perbamos.
En la figura 12, podemos observar el comportamiento de nuestra aplicacin
en ejecucin.
-
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
6/35
-
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
7/35
Visual Studio 2005 407
mitir o denegar estas acciones. Adems, dentro de la ventana de Orgenes
de datos, podemos seleccionar diferentes campos de las tablas y cambiar el
tipo de control en el que queremos representar sus datos.
A continuacin veremos un breve ejemplo de como manipular datos para
que nos sirva de aprendizaje de cmo hacer esto posible.
Modificando datos
Ejecute la aplicacin de ejemplo que hemos diseado hasta ahora y sitese
en alguno de sus campos.
Centrndonos en la informacin de la tabla Socios, cambiaremos un campo
determinado, como el que se muestra en la figura 1.
Figura 1 Modificaremos el valor de un campo para que nos sirva de ejemplo
Acto seguido, cuando hayamos realizado la modificacin, haremos clic so-
bre la opcin de Guardar datos, tal y como se muestra en la figura 2.
Figura 2 Opcin del control Bin-dingNavigator pata guardar los
datos modificados
Como vemos, la manipula-
cin de datos es realmente sencilla y en la relacin de datos mostrada, no
tiene porqu presentarnos ninguna dificultad.
-
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
8/35
Cursos408
Inser tando y eliminando datos
Si queremos agregar datos, deberemos hacer clic sobre la opcinAgregar
nuevo del controlBindingNavigatorcomo se muestra en la figura 3.
Figura 3 Aadir un registro nue-vo es realmente sencillo
De la misma manera funcio-
na el mecanismo para elimi-
nar un registro, tal y como se muestra en la figura 4.
Figura 4 Eliminar un registro de
forma rpida
Recuerde presionar el icono
si quiere que los cambios y
modificaciones realizadas se
mantengan. Pulsando sobre ese icono, la accin de manipulacin de datos se
lanza contra la base de datos.Ver vdeo 97 Manipulando los datos maestro detalle.
Ser vicios Web
Este mdulo presenta al alumno los fundamentos de los Servicios Web y las
Arquitecturas Orientadas a Servicios (SOA).
Tras una introduccin a los servicios Web y sus conceptos asociados se ve
la forma de crear y consumir servicios Web. Para la creacin de un servicio
utilizaremos Visual Studio 2005. Si desea ms informacin sobre esta
herramienta puede dirigirse al curso de Desarrollo de Aplicaciones Web con
ASP.NET.
Intr oduccin a los ser vicios Web
Veamos lo que nos dice la documentacin de Visual Studio sobre los servi-
cios Web (o servicios Web XML que es como los denomina Microsoft):
-
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
9/35
Visual Studio 2005 409
"Un servicio Web XML es una entidad programable que propor-
ciona un elemento de funcionalidad determinado, como lgica de
aplicacin, al que se puede tener acceso desde diversos sistemas
potencialmente distintos mediante estndares de Internet muy ex-
tendidos, como XML y HTTP."
Un poco ms claro queda lo que contina en el siguiente prrafo de la men-
cionada ayuda:
"Un servicio Web XML puede ser utilizado internamente por una
aplicacin o bien ser expuesto de forma externa en Internet por
varias aplicaciones. Dado que a travs de una interfaz estndar es
posible el acceso a un servicio Web XML, ste permite el funcio-
namiento de una serie de sistemas heterogneos como un conjuntointegrado."
Mejor? Simplificando, y siendo algo ms prcticos, podemos definir un
servicio Web XML como una clase a la que podemos acceder utilizando es-
tndares de Internet. Como es de suponer, el tener que utilizar esos estnda-
res de comunicacin de Internet es porque esa "clase" est alojada en un
servidor de Internet, es decir, un servicio Web es una clase que est alojada
en la Web y que podemos acceder a ella mediante ciertos estndares como
XML, que a su vez utiliza otro estndar: SOAP, (Simple Object Access Pro-tocol), que es el lenguaje que define cmo nos comunicaremos con el servi-
cio Web.
Antes de pasar a ver ejemplos prcticos sobre cmo crear y utilizar servicios
Web utilizando Visual Studio 2005, veamos un poco la historia de porqu
finalmente los servicios Web son lo que son y cmo nos facilitan toda la
comunicacin a travs de la red, ya sea local o global.
Qu son los ser vicios Web?
La expresin "Servicio Web" se oye con fuerza desde hace unos aos en el
mbito del desarrollo de aplicaciones e incluso en ambientes poco tcnicos
y de direccin. Lo cierto es que no se trata de un concepto tan novedoso
como cabra esperar y las innovaciones que conlleva no son tanto tecnolgi-
cas, como conceptuales.
-
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
10/35
-
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
11/35
Visual Studio 2005 411
reglas de negocio residentes en la capa intermedia. Este modelo es ms efi-
ciente y est muy evolucionado respecto al anterior pero an se puede ir
ms all.
La arquitectura de desarrollo en n-capas (n-tierque dicen los anglosajo-
nes) lleva el concepto cliente-servidor un paso hacia adelante, dividiendo la
capa intermedia en muchas otras capas especializadas cada una de las cuales
puede residir en un servidor diferente:
Figura 6.3 Arquitectura de desarrollo basada en componentes
En este modelo existe una gran variedad de componentes especializados en
tareas especficas como la validacin de datos, la autenticacin y seguridad
o el acceso a datos. Dichos componentes deben trabajar unos con otros co-
mo piezas de un mecanismo, gestionando la informacin que circula entre el
usuario y el servidor de datos.
La belleza de este modelo radica en que cada uno de ellos (o cada grupo de
ellos) puede residir en un servidor diferente, siendo transparente su ubica-cin para los clientes que los utilizan. Ello aumenta mucho la escalabilidad
de las aplicaciones, pues basta con aadir nuevos servidores e instalar los
componentes en ellos para poder atender ms peticiones.
Por otra parte, y esto es muy interesante tambin, mientras sus interfaces de
programacin sean las mismas, es posible sustituir cualquier componente
por otro actualizado o que acte de manera distinta para corregir errores o
-
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
12/35
-
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
13/35
Visual Studio 2005 413
asncronas. Los parmetros son transmitidos a travs de la red me-
diante un formato binario propio llamado NDR (Network Data Re-
presentation).
RMI (Remote Method Invocation), es la metodologa de llamadaremota a procedimientos de Java. No se centra en la definicin de
interfaces para compatibilidad binaria de componentes, ni en otros
conceptos avanzados, y se basa en la existencia de un cliente y un
servidor que actan de intermediarios entre los componentes que se
quieren comunicar. Es una tecnologa bastante simple que es fcil
de utilizar para aplicaciones bsicas.
CORBA (Common Object Request Broker Architecture). Se tratade una serie de convenciones que describen cmo deben comuni-
carse los distintos componentes, cmo deben transferir los datos de
las llamadas y sus resultados o cmo se describen las interfaces de
programacin de los componentes para que los dems sepan cmo
utilizarlos. Fue desarrollado por el OMG (Object Management
Group) en la segunda mitad de la dcada de los '90 y es el modelo
que ms xito ha tenido en el mundo UNIX. Su mtodo de empa-
quetado y transmisin de datos a travs de la red se llama CDR
(Common Data representation). Existen diversas implementacio-
nes de distintos fabricantes.
Estos modelos son buenos y muy eficientes, cumpliendo bien su trabajo pe-
ro tienen algunas limitaciones importantes siendo las principales las si-
guientes:
Es difcil la comunicacin entre los distintos modelos Estn ligados a plataformas de desarrollo especficas, lo que difi-
culta la comunicacin entre ellas
Su utilizacin a travs de Internet se complica debido a cuestionesde seguridad de las que enseguida hablaremos.
Existen en el mercado puentes CORBA/DCOM que permiten lacomunicacin entre componentes COM y componentes CORBA,
-
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
14/35
Cursos414
pero su utilizacin es difcil y aaden una nueva capa de compleji-
dad a las aplicaciones adems de disminuir su rendimiento.
SOAP
Las expectativas actuales respecto a los componentes han aumentado. Al
igual que podemos usar un navegador web para acceder a cualquier pgina
independientemente del sistema operativo del servidor en que resida, por
qu no podramos invocar mtodos de componentes a travs de la red inde-
pendientemente de dnde se encuentren, del lenguaje en el que estn escri-
tos y de la plataforma de computacin en la que se ejecuten?
Esto es precisamente lo que ofrecen los Servicios Web. Gracias a ellos sederriban la antiguas divisiones resultantes de los modelos de componentes
descritos, y la integracin de las aplicaciones, la ubicuidad de sus compo-
nentes y su reutilizacin a travs de la red se convierten en una realidad.
La tecnologa que est detrs de todo ello se llama SOAP (jabn en ingls).Este acrnimo (Simple Object Access Protocol) describe un concepto tecno-
lgico basado en lasencillez y laflexibilidadque hace uso detecnologas y
estndares comunes para conseguir las promesas de la ubicuidad de los
servicios, la transparencia de los datos y la independencia de la plataformaque segn hemos visto, se hacen necesarios en las aplicaciones actuales.
Br eve histor ia de SOAP
SOAP empez como un protocolo de invocacin remota basado en XML
diseado por Dave Winer de UserLand, llamado XML-RPC. A partir de s-
te se obtuvo en Septiembre de 1999 la versin 1.0 de SOAP, en la que parti-
cipo activamente Microsoft y el archiconocido experto en programacin
Don Box.
Esta primera versin fue ms o menos despreciada por los principales fabri-
cantes de software que en esa poca tenan en marcha un proyecto ms am-
bicioso llamado ebXML. Esto puso en peligro en su nacimiento la existen-
cia de SOAP ya que si los grandes no lo apoyaban poco se poda hacer. Por
fortuna uno de estos grandes fabricantes, IBM, decidi apoyarlo y en la ac-
tualidad no slo acepta SOAP sino que es uno de lo motores detrs de su
-
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
15/35
Visual Studio 2005 415
desarrollo (dos importantes personas de IBM y su filial Lotus, David Ehne-
buske y Noah Mendelsohn, son autores de la especificacin 1.1 de SOAP).
Sun Microsystems tambin anunci oficialmente en Junio de 2000 que so-
portaba el estndar. El hecho de que los tres gigantes del software (Micro-
soft, IBM y Sun) apoyen SOAP ha hecho que muchos fabricantes de Midd-
leware y puentes CORBA-DCOM (como Roguewave o IONA) ofrezcan
productos para SOAP, as como otras muchas pequeas empresas de soft-
ware.
El paso definitivo para asegurar el xito de SOAP y los servicios web es su
envo al W3C (World Wide Web Consortium) para proponerlo como estn-
dar. La ltima versin de la especificacin se puede encontrar en
www.w3.org/TR/SOAP/.
Este soporte mayoritario hace que su xito y pervivencia estn asegurados y
hoy todas las herramientas de desarrollo del mercado ofrecen en menor o
mayor medida soporte para SOAP. Por supuesto .NET y Visual Studio son
los entornos ms avanzados en la adopcin de SOAP.
La base tecnolgica de SOAP
Lo interesante de SOAP es que utiliza para su implementacin tecnologas y
estndares muy conocidos y accesibles como son XML o el protocolo
HTTP.
Dado que los mensajes entre componentes y los datos de los par-metros para llamadas a mtodos remotos se envan en formato
XML basado en texto plano, SOAP se puede utilizar para comuni-
carse con cualquier plataforma de computacin, consiguiendo la
ansiada ubicuidad de los componentes.
El uso de HTTP como protocolo principal de comunicacin haceque cualquier servidor web del mercado pueda actuar como servi-
dor SOAP, reduciendo la cantidad de software a desarrollar y
haciendo la tecnologa disponible inmediatamente. Adems en la
mayora de los casos se puede hacer uso de SOAP a travs de los
cortafuegos que defienden las redes, ya que no suelen tener blo-
queadas las peticiones a travs del puerto 80, el puerto por defecto
http://www.w3.org/TR/SOAP/http://www.w3.org/TR/SOAP/ -
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
16/35
Cursos416
de HTTP (de ah la ubicuidad, aunque se pueden usar otros puertos
distintos al 80, por supuesto).
La seguridad se puede conseguir a travs de los mtodos habituales en los
servidores web y por tanto se dispone de autenticacin de usuarios y cifrado
de informacin de forma transparente al programador, usando protocolos y
tcnicas como IPSec o SSL, ampliamente conocidos y usados en el mundo
web.
Por otra parte la escalabilidad se obtiene a travs del propio servidor web o
incluso del sistema operativo, ya que la mayora de ellos (por ejemplo IIS)
poseen capacidades de ampliacin mediante clusters de servidores, enruta-
dores que discriminan las peticiones y otras tcnicas para crear Web Farms,
o conjuntos de servidores web que trabajan como si fueran uno solo para aspoder atender a ms clientes simultneamente.
Nota.- Existen ampliaciones al protocolo SOAP base que definen protoco-
los y convenciones para tareas especficas como las mencionadas
de seguridad, enrutado de mensajes, los eventos y muchas otras
cuestiones avanzadas. En .NET se implementan mediante los co-
nocidos Web Services Enhancements (WSE) actualmente por su
versin 3.0, y en un futuro inmediato con Windows Communica-
tion Foundation, la nueva plataforma de servicios de comunicacio-nes de Windows. El estudio de stos se sale del mbito de este cur-
so.
Como vemos, las tecnologas utilizadas son conocidas y la especificacin
SOAP se refiere ms bien a la manera de usarlas. De este modo las reas
cubiertas por la especificacin se refieren a cmo se codifican los mensajes
XML que contienen las llamadas a procedimientos y sus respuestas, y a la
manera en que HTTP debe intercambiar estos mensajes. Si nos referimos a
la esencia del estndar, SOAP trata de sustituir a los diferentes formatospropietarios de empaquetamiento de datos que utilizan otras tecnologas
(como DCOM o CORBA con NDR y CDR respectivamente), as como los
protocolos propietarios empleados para transmitir estos datos empaqueta-
dos.
HTTP es el nico protocolo definido en el estndar para SOAP pero ste es
lo suficientemente abierto como para permitir que se empleen otros protoco-
-
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
17/35
Visual Studio 2005 417
los distintos para transmitir mensajes SOAP. Por citar unos pocos, se podra
utilizar SMTP (correo electrnico), MSMQ (Microsoft Messaging Queue)
para enviar de manera asncrona las llamadas a procedimientos con SOAP,
etc...
Descubr imiento de ser vicios: WSDL y UDDI
Otro de los estndares que se definen en SOAP es WSDL (Web Service De-
finition Language). Se trata de un formato estndar para describir las inter-
faces de los servicios web. WSDL describe qu mtodos estn disponibles a
travs de un servicio Web y cules son los parmetros y valores devueltos
por stos. Antes de usar un componente que acta como servicio web se de-
be leer su archivo WSDL para averiguar cmo utilizarlo.
Nota.- Para aquellos programadores que conocen otras arquitecturas po-demos decir que WSDL es el equivalente en XML a los lenguajes
IDL (Interface Description Language) de DCOM y CORBA.
Se ha definido tambin un formato estndar para publicacin de informa-
cin de servicios web llamado UDDI (Universal Description Discovery and
Integration). Esta especificacin permite la creacin de directorios de servi-
cios web, donde se definen mtodos que permiten consultarlos para encon-
trar fcilmente aquel servicio que se necesite. Windows Server 2003 incluye
gratuitamente un servidor para implementar directorios UDDI en organiza-
ciones.
Cr eacin de Ser vicios Web
ASP.NET 2.0 nos facilita grandemente la creacin de servicios Web XML,
y si nos apoyamos en una herramienta como lo es Visual Studio 2005, in-
cluso en la versin Express, nos daremos cuenta de que no necesitamos serexpertos en los protocolos utilizados por los servicios Web para poder
crearlos y utilizarlos.
Tal como comentamos en la introduccin de la leccin anterior, los servi-
cios Web realmente son clases, clases que exponen unos mtodos y son esos
mtodos los que podremos utilizar para acceder a lo que el servicio Web
nos ofrece.
-
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
18/35
Cursos418
En esta leccin veremos de forma simple y prctica, cmo crear un servicio
Web utilizando ASP.NET 2.0 y Visual Studio 2005.
Nota.- Si est utilizando Visual Basic 2005 Express debe saber que no
permite la creacin de servicios web. Si desea crear un servicio
puede utilizar la herramienta Visual Web Developer Express o
cualquier edicin superior de Visual Studio 2005. Si desea profun-
dizar en esta herramienta puede consultar el curso "Desarrollo de
Aplicaciones Web con ASP.NET".
Nuestr o pr imer ser vicio Web
Es ya un clsico en el mundillo de la programacin mostrar el mensaje
"Hola, Mundo" al crear la primera aplicacin y eso es lo que vamos a hacer
en nuestro primer servicio Web, crear uno que tenga un mtodo que devuel-
va una cadena con la frase: "Hola, Mundo".
Cr ear un pr oyecto de tipo ser vicio Web con Visual Studio 2005
Para crear un nuevo proyecto con Visual Studio 2005 podemos hacerlo de
varias formas, pero si nos gusta decidir dnde se almacenar nuestro cdi-go, la mejor forma de hacerlo es mediante el men de archivos, seleccio-
nando la opcin Nuevo sitio Web... Al hacerlo tendremos un cuadro de di-
logo como el mostrado en la figura 6.4:
-
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
19/35
Visual Studio 2005 419
Figura 6.4 Cuadro de dilogo para crear un servicio Web
Visual Studio 2005, nos permite crear las aplicaciones y servicios Web, en
varias ubicaciones, entre ellas el sistema de archivos local o de red local,
aunque tambin podemos indicar una direccin HTTP o FTP, esas opciones
las tenemos en la lista desplegable que hay junto a la etiqueta Ubicacin,
indicaremos el directorio en el que queremos alojar nuestro cdigo y el len-
guaje que utilizaremos, en este caso concreto lo haremos con Visual Basic.
Nota.- Si utiliza una versin Express de Visual Studio, debe saber que s-
lo puede desarrollador Servicios Web con Visual Web Developer.
En los ejemplos utilizaremos esta versin, aunque todas las versio-
nes superiores de Visual Studio 2005 tienen un funcionamiento
similar.
El proyecto creado aade una nueva clase y un fichero con extensin .asmx
que es la utilizada para los servicios Web. En la clase incluiremos todo el
cdigo necesario para crear la "clase" que usaremos para comunicarnos con
las aplicaciones cliente.
El fichero con extensin .asmx simplemente contiene el cdigo de
ASP.NET 2.0 que servir al runtime de .NET para saber que estamos tra-
tando con un servicio Web, adems de indicarle dnde est alojado el cdi-
go que contiene la clase y cmo se llama esta, y cual es el lenguaje que uti-
lizaremos, tal como podemos ver en el siguiente cdigo:
La parte importante de esa lnea de cdigo ASP.NET es
-
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
20/35
Cursos420
Por otra parte, el atributo CodeBehindle informa a ASP.NET 2.0 que el c-
digo no est incluido en el fichero .asmx, sino en uno independiente. Este es
el tratamiento predeterminado al crear un nuevo servicio Web.
Cr ear un ser vicio Web usando un solo ficher o
Pero si queremos aadir otro servicio Web a nuestro proyecto, seleccionan-
do la opcin Agregar nuevo elemento del men Sitio Web, el cuadro de
dilogo que nos muestra los distintos tipos de ficheros que podemos agre-
gar, nos dar la oportunidad de indicar si queremos tener el cdigo separado
o no del fichero .asmx, tal como podemos ver en la figura 6.5.
Si seleccionamos esta forma de hacerlo, tanto la directiva de ASP.NET co-
mo el cdigo del lenguaje seleccionado estar en el mismo fichero, en nues-
tro ejemplo HolaMundoSW.asmx.
Como podemos apreciar en la figura 6.6, al crear el servicio Web de esta
forma, tenemos todo el cdigo necesario en un solo fichero, esta ser la
forma recomendada de hacerlo, al menos si el servicio Web es simple, como
es el caso actual.
Figura 6.5 Al agregar un nuevo elemento, podemos indicar dnde alojar el cdigo
-
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
21/35
Visual Studio 2005 421
Figura 6.6. Un solo fichero para contener el servicio Web
Tal como podemos apreciar el cdigo de ASP.NET 2.0 se simplifica un po-
co, porque ya no tenemos que indicarle al runtime de .NET dnde se en-
cuentra nuestro cdigo, lo que si tenemos que seguir indicando es que este
fichero realmente es un servicio Web, cmo se llama la clase y que lenguaje
vamos a utilizar para escribir el cdigo.
Eliminar ficher os de un pr oyecto
Para este ejemplo, vamos a quedarnos con este fichero en nuestro proyecto,
por tanto el resto de los ficheros que tenemos creados podemos eliminarlos,
esto lo haremos desde el propio explorador de soluciones, del cual podemos
eliminar todos los ficheros salvo el que vamos a usar en el ejemplo, por tan-
to dejaremos el fichero HolaMundoSW.asmx.
En la figura 6.7 podemos ver el contenido actual de nuestro proyecto y en la
figura 6.8 el que debemos dejar despus de eliminar el resto de elementos.
-
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
22/35
Cursos422
? Figura 6.7 El explorador de solucionesantes de eliminar los ficheros
Figura 6.8 El explorador de solucionescon nuestro servicio Web ?
Nota.- Cuando eliminamos ficheros o carpetas del explorador de solucio-
nes, estos se eliminan fsicamente.
Analizando el contenido de un ser vicio Web
Como podemos comprobar en la figura 6.6, una vez que hemos cerrado ladirectiva de ASP.NET 2.0 que indica que el contenido de ese fichero es un
servicio Web, lo que sigue es el cdigo en el lenguaje de nuestra preferen-
cia, en este caso Visual Basic (VB).
Despus de las tpicas importaciones de espacios de nombres viene el cdi-
go que har que esta clase realmente se convierta en un servicio Web.
Atr ibutos aplicables a los ser vicios WebCon lo primero que nos encontramos es con un atributo llamado WebServi-
ce, este atributo no tiene nada que ver con la directiva de ASP.NET y real-
mente es opcional, es decir, no es necesario para convertir nuestra clase en
un servicio Web.
-
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
23/35
Visual Studio 2005 423
El atributo WebService es totalmente opcional, pero siempre deberamos in-
cluirlo en nuestros servicios Web, por dos razones:
Nos servir para indicar el espacio de nombres en el que estarnuestro servicio Web. Este espacio de nombres no tiene relacin
directa con los espacios de nombres de nuestras clases, ya que solo
se utiliza para identificar los servicios Web. Aunque al igual que
los espacios de nombres declarados con la instruccin Namespace
de Visual Basic, servir para diferenciarlos de otros servicios Web
alojados en nuestro mismo servidor Web o en otros diferentes, de
esta forma evitaremos conflictos si en una misma aplicacin cliente
queremos tener dos servicios Web diferentes pero que utilizan el
mismo nombre.
La segunda razn es porque en ese mismo atributo podemos indi-car una descripcin de nuestro servicio Web. Esa descripcin ser
la que se muestre cuando "descubramos" un servicio Web utilizan-
do UDDI.
La recomendacin para el espacio de nombres a usar en los servicios Web,
al menos para evitar posibles conflictos, es darle el mismo nombre de la
ubicacin de nuestro servidor, ya que as nos aseguramos que no existir
otro sitio Web que se llame igual que el nuestro.
Nota.- Si no indicamos un espacio de nombres para nuestro servicio Web,
ASP.NET utilizar por defecto http://tempuri.org / que es el que
VWD utiliza de forma predeterminada.
Por tanto vamos a cambiar el valor asignado a la propiedad Namespace, pa-
ra que apunte a nuestro "hipottico" servidor Web:
http://miServidorWeb.com/ServiciosWeb/, quedando el atributo de la si-
guiente forma:
Para aadir el valor que la propiedad Description tendr, lo haremos como
con el resto de atributos: separndola con una coma del contenido del espa-
cio de nombres, tal como podemos apreciar en el siguiente cdigo:
http://tempuri.org/http://miservidorweb.com/ServiciosWeb/http://miservidorweb.com/ServiciosWeb/http://tempuri.org/ -
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
24/35
Cursos424
Definicin de la clase a usar en el ser vicio Web
La definicin de la clase que ser el corazn del servicio Web, (recordemos
que un servicio Web en el fondo es una clase que utilizamos desde un sitio
de Internet), la haremos como es habitual en Visual Basic, aunque si quere-
mos utilizar ciertas caractersticas propias de las aplicaciones ASP.NET
como es acceder a objetos Session oApplication, podemos derivarla a partir
de la clase WebService, aunque esto es totalmente opcional y no influye en
la creacin de nuestro servicio Web.
Lo que si es importante es que el nombre de la clase coincida con la indica-
da en el atributo de la directiva de ASP.NET.
Aadir mtodos par a usar los en el ser vicio Web
Ahora viene la parte interesante, aunque todos los preparativos preliminarestambin lo son, pero si no definimos ningn mtodo en nuestra clase, de po-
co nos servir el servicio Web, ya que esos mtodos sern los que utilice-
mos para comunicarnos con l.
Los mtodos los declararemos de la forma habitual, pero si queremos que
sean expuestos como parte del servicio Web, debemos utilizar el atributo
WebMethod. Con este atributo le estamos indicando a la "infraestructura"
que hay detrs de los servicios Web, que tenga en cuenta ese mtodo para
utilizarlo desde nuestra clase. No vamos a entrar en detalles de que es lo que
ocurre tras el teln, pero debemos saber que sin ese atributo, nuestro mtodo
ser totalmente invisible al mundo exterior, aunque an as lo podramos
seguir usando desde nuestra clase o desde cualquier otra clase que tengamos
en nuestro proyecto, ya que al fin y al cabo es "slo" un mtodo ms.
Este atributo lo utilizaremos como de costumbre: indicndolo antes de la
declaracin del mtodo. En el siguiente cdigo vemos la declaracin de un
-
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
25/35
Visual Studio 2005 425
mtodo que se incluye como plantilla de los servicios Web que creemos con
Visual Studio 2005, y que nos puede servir para nuestros propsitos, aunque
lo "castellanizaremos" para que sea ms fcilmente comprensible para los
que hablamos el idioma de Cervantes:
El atributo WebMethod tambin contiene propiedades, entre ellas una que
nos servir para aclarar que es lo que hace:Description. Al igual que ocurre
con el atributo WebService, la propiedad Description nos servir para ex-
plicarle a los que "descubran" nuestro servicio Web que es lo que hace esemtodo. Esto es particularmente til si nuestro servicio Web tiene varios
mtodos Web y los nombres utilizados no son muy "aclaratorios".
Por tanto, modificaremos el cdigo para que tenga el siguiente aspecto:
Nota.- El atributo WebMethod tambin incluye una propiedad llamada
MessageName, la cual podemos utilizar para evitar conflictos desobrecarga de mtodos, ya que los protocolos usados actualmente
con los servicios Web requieren un identificador nico para cada
mtodo Web.
Pr obar nuestr o ser vicio Web
Ya tenemos creado nuestro primer servicio Web, ahora solo nos queda
comprobar que todo funciona a la perfeccin.
La forma ms fcil de hacerlo es mostrndolo en el navegador. De esta for-
ma sabremos si funciona e incluso podemos verlo en "accin". Para mostrar
el servicio Web en el navegador, lo seleccionamos en el Explorador de so-
luciones, presionamos con el botn secundario del mouse y del men des-plegable que nos muestra, seleccionamos Ver en el explorador, tal como
nos muestra la figura 6.9:
-
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
26/35
Cursos426
Figura 6.9 Mostrar el servicio Web en el navegador
Cuando lo mostramos en el Internet Explorer, po-
demos ver cierta informacin del servicio Web,
principalmente las descripciones que hemos usa-do, adems de un par de links, que nos mostrarn
informacin extra de nuestro servicio Web y del
mtodo.
En las siguientes imgenes (6.10 y 6.11) vemos lo
que nos muestra el navegador:
Figura 6.10. El servicio Web al utilizarlo desde Internet Explorer
-
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
27/35
Visual Studio 2005 427
Figura 6.11. Informacin sobre el mtodo Web HolaMundo
Adems de darnos la oportunidad de probar el mtodo, presionando el botn
Invocar, tambin podemos ver el cdigo que se utiliza para comunicarnuestro servicio Web con el resto de las aplicaciones. Pero como comproba-
remos en la siguiente leccin es totalmente transparente para nosotros, ya
que es el propio Visual Studio 2005, por medio de ASP.NET, el que se en-
carga de todo el "trabajo sucio", dejndonos a nosotros solo con el cdigo
que tenemos que escribir.
Ver vdeo 98 Creacin de servicios Web.
Consumo de Ser vicios Web
En esta leccin veremos cmo "consumir" el servicio Web creado anterior-
mente desde una aplicacin de Windows Forms utilizando el entorno de de-
sarrollo (IDE) de Visual Studio 2005. Como comprobaremos, el propio
compilador de Visual Basic se encargar de todos los pormenores para que
-
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
28/35
Cursos428
podamos utilizar la clase incluida en el servicio Web como si de una clase
normal y corriente se tratara, ya que, esa es una de las ventajas de apoyarse
en un entorno integrado de la calidad de Visual Studio 2005, que slo de-
bemos preocuparnos de escribir el cdigo y del resto... nos olvidamos! (o
casi).
Utilizar los Ser vicios Web desde una aplicacin Windows
Ahora vamos a ver cmo podemos "consumir" un servicio Web desde una
aplicacin de Windows.
Alojar el ser vicio Web en un ser vidor local
Para que nuestro ejemplo funcione, tenemos que copiar el servicio Web que
creamos en la leccin anterior en el directorio al que hace referencia el Web
local de nuestro equipo (localhost). Si no hemos cambiado la ubicacin que
tiene de forma predeterminada, estar en la carpeta C:\Inetput\wwwroot ,esto si es que tenemos el IIS (Internet Information Server) instalado en
nuestro equipo.
Si no hemos instalado el IIS, (con las versiones anteriores de Visual Studio
.NET era un requisito para poder crear cualquier tipo de proyecto Web conASP.NET), no debemos preocuparnos, ya que la versin 2.0 de .NET Fra-
mework incluye su propio servidor Web, y con estos sencillos pasos vamos
a ponerlo en marcha para probar nuestros servicios Web.
Nota.- Si quiere mayor diversin y no copiar ningn servicio web en su
mquina, acceda a cualquier servicio web pblico de Internet.
Existen de todo tipo, desde servidores de hora hasta complejos sis-
temas de mapas. Le proponemos algunos ejemplos:
Lista de servicios web gratuitos:
http://www.webservicex.net/WS/wscatlist.aspx
Fotos por satlite:
http://terraservice.net/webservices.aspx
http://www.webservicex.net/WS/wscatlist.aspxhttp://terraservice.net/webservices.aspxhttp://terraservice.net/webservices.aspxhttp://www.webservicex.net/WS/wscatlist.aspx -
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
29/35
Visual Studio 2005 429
MapPoint (evaluacin):
https://mappoint-
css.partners.extranet.microsoft.com/MwsSignup/Eval.aspx
Servicios web de Amazn:
http://www.amazon.co.uk/exec/obidos/tg/browse/-/3242161/026-
5630606-4874040
Activar el ser vidor Web par a usar con un dir ector io local
Si no dispone de IIS y quiere alojar un servicio web en su mquina, stos
son los pasos que debemos dar activar el servidor Web incluido con .NET
Framework 2.0:
Lo primero que debemos hacer es crear un directorio en cualquierunidad de nuestro equipo, en estos ejemplos vamos a utilizar el di-
rectorio E:\VS2005B2\sitioWeb, pero puede ser cualquier otro, lo
importante es que este ser el que utilizaremos en estos pasos.
En ese directorio copiaremos nuestro servicio Web, en concreto elfichero .asmx creado en la leccin anterior.
Abrimos una ventan de comandos y nos cambiamos al directorioC:\WINDOWS\Microsoft.NET\Framework\v2.0.50215, que esen el que estn los ejecutables de .NET Framework 2.0.
Escribimos lo siguiente: WebDev.WebServer.EXE /port:8080/path:"E:\VS2005B2\sitioWeb" /vpath:"/" Esto har que se ini-
cie el servidor Web de .NET permitindonos acceder a nuestro ser-
vicio Web usando la siguiente direccin:
http://localhost:8080/HolaMundoSW.asmx
De esta forma, hasta que no desconectemos el servidor Web, esteestar en ese puerto, tal como podemos ver en la figura 6.12. Para
no perder la conexin, debemos dejar abierta la ventana de coman-
dos.
http://www.amazon.co.uk/exec/obidos/tg/browse/-/3242161/026-http://localhost:8080/HolaMundoSW.asmxhttp://localhost:8080/HolaMundoSW.asmxhttp://www.amazon.co.uk/exec/obidos/tg/browse/-/3242161/026- -
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
30/35
Cursos430
Figura 6.12. Servidor Web local activado en el puerto 8080
Nota.- Estos pasos solo son necesarios si no tenemos instalado y en ejecu-
cin el ISS, en cuyo caso tendramos que copia el servicio Web en
el directorio C:\Inetput\wwwroot y usar
http://localhost/HolaMundoSW.asmx para acceder al servicio Web.
Cr ear un proyecto Windows par a usar el ser vicio Web
Lo siguiente que tenemos que hacer es abrir el Visual Studio 2005 y crear
un nuevo proyecto de Windows, al que le daremos el nombre ClienteWin-
dows. De forma automtica se crear un formulario, al que le aadimos unaetiqueta a la que asignaremos a la propiedad Fontuna fuente de 16 puntos
en negrita, para que se vea bien el texto, y le cambiamos el nombre a: la-
belSaludo. Tambin aadiremos un botn al que le daremos el nombrebtnUsarServicioWeb, en el texto pondremos: Saludo desde servicio Web,
como es natural, tendremos que cambiar el tamao para que veamos el texto
completo.
Aadir una referencia para acceder al servicio Web
Al igual que ocurre con el resto de ensamblados de .NET, si queremos ac-
ceder a la clase que tiene el servicio Web, debemos crear una referencia en
nuestro proyecto, con idea de que tengamos a nuestra disposicin las clasesque contiene, en nuestro caso la clase HolaMundoSW. Pero como es unservicio Web, que tericamente est alojado en algn servidor de Internet,
en lugar de agregar una referencia normal, aadiremos una referencia Web.
Para hacerlo, nos iremos al Explorador de soluciones / References, pre-
sionaremos con el botn secundario del mouse para que se muestre el men
contextual, del que elegiremos la opcin Agregar referencia Web, tal co-mo vemos en la figura 6.13:
http://localhost/HolaMundoSW.asmxhttp://localhost/HolaMundoSW.asmx -
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
31/35
Visual Studio 2005 431
Figura 6.13 Agregar una referenciaWeb
Nota.- Dnde estn las refe-
rencias en Visual Basic 2005?
En Visual Basic 2005, hay ciertos
elementos que se ocultan al usua-
rio, entre ellos las referencias que
tenemos en nuestro proyecto. Entre
ellos algunos de los que se incluyen
en el Explorador de soluciones. Pa-
ra mostrar todas las opciones de
nuestro proyecto, debemos "obli-gar" al IDE de Visual Basic 2005 a
que nos muestre esos ficheros y op-
ciones ocultas, para hacerlo presionaremos el segundo botn de la
barra de herramientas del Explorador de soluciones, tal como co-
mentamos en la leccin 5 del mdulo 1.
Acto seguido aparecer un cuadro de dilogo que nos servir para indicar
dnde est alojado el servicio Web, si hemos seguido los pasos indicados
anteriormente, el servicio Web estar alojado enhttp://localhost:8080/HolaMundoSW.asmx, por tanto ser eso lo que es-
cribiremos en el combo que hay junto a URL, una vez "descubierto" el ser-
vicio Web, se mostrar la informacin, tal como lo haca el Internet Explo-
rer, y ya estaremos listos para agregar la referencia Web, para ello tendre-
mos que presionar en el botn Agregar referencia, tal como vemos en lafigura 6.14.
Nota.- Si est utilizando un servicio web pblico, introduzca la URL del
servicio en lugar de http://localhost:8080/HolaMundoSW.asmx. Ladireccin de los servicios suele venir indicada en la documentacin
de ayuda del servicio y corresponde al archivo WSDL que define
el interfaz del mismo.
Una vez hecho esto, tendremos nuestra clase en un espacio de nombres que
se llamar tal como se indica en la caja de textos que hay bajo Nombre de
referencia Web.
http://localhost:8080/HolaMundoSW.asmxhttp://localhost:8080/HolaMundoSW.asmxhttp://localhost:8080/HolaMundoSW.asmxhttp://localhost:8080/HolaMundoSW.asmx -
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
32/35
Cursos432
Figura 6.14. Agregar una referencia Web a nuestro proyecto
Nota.- Los servicios Web que podemos utilizar en nuestros proyectos, notienen por qu estar hechos con el mismo lenguaje de programa-cin que el utilizado en el cliente. Ya que a lo que estamos acce-
diendo, aunque no nos percatemos, y por simplificar, es a un en-
samblado de .NET, por tanto, los servicios Web pueden estar escri-
tos por cualquier lenguaje de .NET que permita la creacin de los
mismos.
Acceder al servicio Web desde el cdigo
Ya solo nos queda escribir el cdigo para acceder a la clase, para ello decla-
raremos una variable cuyo tipo de datos ser la clase HolaMundoSW, lainstanciaremos y accederemos al mtodo HolaMundo, el cual, como sabe-
mos, devuelve una cadena, que asignaremos a la etiqueta labelSaludo.
Lo primero que tenemos que hacer es crear el mtodo que detectar la pul-
sacin en el botn, a estas alturas no creo que haya que decir cmo hacerlo.
-
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
33/35
Visual Studio 2005 433
Y ya podemos probar a ver si funciona, para ello, presionamos F5 y si todova bien, se ejecutar la aplicacin y podremos presionar el botn para obte-
ner el resultado mostrado en la figura 6.15.
Figura 6.15 El mensaje devuelto por el ser-
vicio Web
Qu es lo que puede fallar?
Si ha seguido correctamente estos pa-
sos el servicio web debe funcionar sin
problemas. En caso de error asegrese
de que el servicio web est funcionan-
do correctamente. Para ello puede usar
su navegador de Internet y acceder di-
rectamente a la direccin del servicio.
Si no le funciona y es un servidor re-
moto de Internet, el error puede venir de su conectividad con Internet o la
direccin que consigui del servicio. Si es un servicio local y no puede ac-
ceder a l, asegrese de que el servidor web est arrancado, bien sea IIS o el
propio servidor incluido con el Framework .NET 2.0.
Ver vdeo 99 Consumo de Servicios Web.
-
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
34/35
Cursos434
Aplicacin de ejemplo MSDN Vdeo
A continuacin vamos a desarrollar una aplicacin que nos permita explorar
las principales caractersticas de Visual Studio 2005. Puede descargar el c-
digo fuente en su mquina y explorarlo o modificarlo para conocer de forma
prctica cmo usar Visual Basic para desarrollar aplicaciones reales. Tam-
bin puede explorar los videos donde construimos esta aplicacin paso a pa-
so.
La aplicacin
MSDN Video es una aplicacin de ejemplo empresarial desarrollada en Es-
paa por la comunidad de desarrollo y Microsoft. Puede utilizarse para
comprobar las mejores prcticas en la construccin aplicaciones distribui-
-
8/14/2019 Microsoft Visual Studio 2005 Manual Espaol Parte5
35/35
Visual Studio 2005 435
das, escalables y con distintos tipos de clientes (Windows, Web y mvi-
les).