Introducción:
La aplicación genera un proxy JavaScript a partir de un servicio web de .net con
extensión .asmx, tomado como entrada. Automatizando de esta manera la tarea, para
que el desarrollador no pierda tiempo ni esfuerzo realizando un desarrollo totalmente
mecánico en lenguaje JavaScript del proxy remoto. Así los métodos del servicio .asmx
son publicados y están disponibles para su uso desde cualquier página web, ocultando la
complejidad del envió de parámetros, la recepción de objetos retornados, la
serialización y deserialización de objetos a formato JSON. El proxy generado depende
de las librerías de JQuery ya que las utiliza para invocar a los métodos del servicio web.
Test de unidad
Se le han agregado test de unidad que validan el código JavaScript generado. Esto se ha realizado utilizando el framework QUnit. De esta manera podemos garantizar que los cambios producidos no rompan funcionalidad preexistente.
Last edit: Horacio Tore 2013-11-26
Test manuales sobre el proxy generado
La aplicación genera además una página con extensión htm que le da la posibilidad al usuario de verificar manualmente el correcto funcionamiento del proxy generado y de los métodos del servicio web invocados. La siguiente es una captura de pantalla en la cual podemos ver una invocación manual por cada método que compone el servicio web.
Last edit: Horacio Tore 2013-11-26
Modificar la aplicación sin recompilar.
Usted puede modificar la aplicación generadora sin tener la necesidad de recompilarla ya que utiliza plantillas del tipo NVelocity, de esta forma solo necesita modificar la plantilla y volver a generar el código.
Last edit: Horacio Tore 2013-11-26
Como utilizar el código generado en nuestra aplicación.
Supongamos que generamos nuestro proxy a partir del archivo WebServices.dll que se tomó como entrada, el mismo es el resultado de compilar el siguiente código que contiene el método HelloWorld():
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Script.Serialization;
using System.Web.Script.Services;
using System.Web.Services;
namespace WebServices
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[System.Web.Script.Services.ScriptService]
public class WSTest : System.Web.Services.WebService
{
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string HelloWorld()
{
return new JavaScriptSerializer().Serialize("HelloWorld");
}
}
}
En el directorio de salida, el generador arrojara los siguientes archivos:
jquery-1.10.1.js:
Contiene el framework JQuery en su versión 1.10.1, este código es constante con respecto a cada ciclo de generación.
WSTest.ManualTesting.htm:
Contiene un página web que el usuario podrá utilizar para realizar pruebas manuales, llamando a métodos del servicio web a través del proxy JavaScript que existe en el archivo WSTest.Proxy.js y comprobando el correcto funcionamiento de cada método del servicio web.
WSTest.Proxy.js:
Contiene el código JavaScript del proxy propiamente dicho, el mismo tendrá una clase llamada WSTest la cual expondrá los métodos del servicio web remoto como si estuviesen en el propio cliente.
Luego solo tendremos que incluir los archivos jquery-1.10.1.js y WSTest.Proxy.js en nuestra página .htm como sigue:
<html>
<head>
<script src="jquery-1.10.1.js"></script>
<script type="text/javascript" src="WSTest.Proxy.js"></script>
<script type="text/javascript">
var objRes = WSTest.HelloWorld();
</script>
</head>
<body>
</body>
</html>
Otra manera de entender cómo utilizar el proxy JavaScript generado es estudiar el código que se encuentra en el archivo WSTest.ManualTesting.htm ya que el mismo lo utiliza para realizar las pruebas manuales entre el proxy y el servicio web.
Last edit: Horacio Tore 2013-12-12