Hola! Hoy vamos a realizar una aplicación en la que alojaremos un Web Service WCF dentro de Azure luego mostraremos el consumo del servicio desde una aplicación MVC.

Pero antes de realizar el consumo e incluso de hacer la web Service wcf debemos tener la seguridad de contar con un espacio de almacenamiento en Azure.

Recordemos conceptos…

¿Que es Azure?

Azure1

Azure nos brinda 3 roles para el desarrollo de aplicaciones:

roles

WebRole

Es un role de Windows Azure en donde se implementan aplicaciones como ya comente puede ser una aplicación dee ASP.NET, ASP.NET MVC, Windows Comunication Foundation, etc además puede ser un sitio web desarrollado en Node.js, Java, PHP y etc.

Visual Studio brinda 3 plantillas para Web Roles cuando creamos un proyecto Cloud: ASP.NET, ASP.NET MVC3, MVC2, Silverlight Bussiness Aplication y WCF Service.

WebRole

Azure Cloud Service en Azure

1.- Crearemos un proyecto nuevo el cual llamaremos PruebaCloud

NuevoDocumento

2. Luego seleccionamos WCF Service Web Role

3. Una vez creado el proyecto, observaremos que se han creado dos archivos:

– PruebaCloud
– WCFServiceWebRole1

proyectos

4.- PruebaCloud es un proyecto Web Role para alojar las comunicaciones y WF ServiceWebRole1 sera el propio WCF.

esquemawebrole

5. En el proyecto WCFServiceWebRole1 agregamos un nuevo WCF Service llamado ServicioNumerosAleatoriosPrueba.

WCFService

6. Veremos que se crearan 2 archivo IServicioNumerosAleatoriosPrueba y la clase ServicioNumerosAleatoriosPrueba

7.- En la Interface

Esta será el contrato del servicio.

En cuanto se crea el WCF se agregaran 2 archivos, uno será la interfaz o interface que especifica la colección y estructura de mensajes requeridos para obtener acceso a las operaciones que el servicio proporciona

IServicioNumerosAleatoriosPrueba

Seleccionamos el proyecto e indicamos la lista y el método.

using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

namespace WCFServiceWebRole1
{
[ServiceContract]
public interface IServicioNumerosAleatoriosPrueba
{
[OperationContract]
List GetListaNumeros();

}
}

8.- En el segundo archivo ServicioNumerosAleatoriosPrueba.svc agregaremos la etiqueta [AspNetCompatibilityRequirements] que indicara que este servicio se puede ejecutar en código de compatibilidad ASP.NET. Allowed (es decir que esta permitido.

En la clase

Indicaremos:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Activation;
using System.Text;

namespace WCFServiceWebRole1
{
[AspNetCompatibilityRequirements
(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]

public class ServicioNumerosAleatoriosPrueba : IServicioNumerosAleatoriosPrueba
{
public List GetListaNumeros()
{
List listanumeros = new List();
Random rnd = new Random();
for (int i = 0; i<= 20; i++)
{
int num = rnd.Next(1, 590);
listanumeros.Add(num);
}

return listanumeros;
}
}
}

9. En el WebConfig

services
service behaviorConfiguration=”MiComportamiento” name=”WCFServiceWebRole1.ServicioNumerosAleatorios”
endpoint address=”ws” binding=”basicHttpBinding”
contract=”WCFServiceWebRole1.IServicioNumerosAleatorios” /
endpoint address=”ws2″ binding=”wsHttpBinding”
contract=”WCFServiceWebRole1.IServicioNumerosAleatorios” /
/service
/services

10. Luego indicaremos que el proyecto WCFServiceRole1 que sea inicialize, por consiguiente al Servicio le indicaremos Set As Star Page.

Ejecutamos y verificamos que los números aleatorios aparecen al ser invocados en la consola WCF.

wcfconsola

serviciosetas2

wcfconsola

11.

azure4

Azure Cloud Service en Azure

Entraremos al portal de Azure: https://portal.azure.com/

Crearemos un Servicio en la nube

– Iremos a Nuevo

nuevo-azure

– Seleccionamos la opción de Servicio en la nube

servicioenlanube

Completamos los datos

servicioenlanube2

12.

azure2

Crearemos un proyecto llamado ClienteHostAzure de tipo MVC.

13.

Lo primero que debemos hacer es agregar las referencias de servicio.

mvc1

14.

Agregaremos un controlador a nuestro proyecto NumerosAleatoriosControllerPrueba

mvc2

public class NumerosAleatoriosController : Controller
{
// GET: NumerosAleatorios
public ActionResult Index()
{
ServicioAleatoriosPrueba.ServicioNumerosAleatoriosClientPrueba cliente =
new ServicioAleatoriosPrueba.ServicioNumerosAleatoriosClientPrueba(“BasicHttpBinding_IServicioNumerosAleatoriosPrueba”);
int[] listanumeros = cliente.GetListaNumeros();
return View(listanumeros);
}
}

mvccontroller2

15.

Añadiremos una vista al controlador

mvc3

16.

Pintamos la lista

mvc4

17.

Comprobamos que los números se generan de forma aleatoria, a través del servicio que tenemos en Azure.

Final

Hasta la próxima!

Descripción: HOST WCF EN AZURE CON WEB ROLE Y CONSUMO
Autor/a: Maria del Carmen Rojas Rios
Curso: Microsoft MCSD Web Applications + SharePoint Apps
Centro: Tajamar
Año académico: 2016-2017