Microsoft Visual Studio 2005 Manual Español Parte5

Embed Size (px)

Citation preview

  • 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).