WCF Services en Azure
Hola buenas a todxs!
Hoy veremos los servicios WCF (Windows Communication Foundation), que es un modelo de programacion para desarrollar aplicaciones con arquitectura orientada a servicios, es decir, a resolver peticiones de un cliente, devolviendo objetos ya preparados para interpretar desde el cliente. Por desgracia, solo se puede consumir un WCF desde lenguajes de Back (PHP, Java, C#…). El uso más común ahora son las administraciones públicas o internamente en las empresas.
Utilizando el protocolo SOAP, genera el XML correspondiente a las peticiones que puedes hacerle, y genera el Schema que contiene la estructura de los datos que nos enviará el servicio.
El nuestro incorporará acceso a datos, pero no tendrá Inyección de Depencencias. Veremos cómo montar un servicio WCF en un moment
Pero vamos al lío. Vamos a necesitar:
-Microsoft .NET Framework 4.5.1 o mayor
-Microsoft Visual Studio (yo uso el 2019)
-Microsoft SQL Server 2016, 2014, 2012, o Express
-Internet Information Server
-Windows 7 o superior
Creamos una solution vacía, la llamaremos GenerosMusicales
Una vez dentro, crearemos un nuevo proyecto Class Library(.Net Framework)
Eliminamos la clase que viene por defecto, y añadimos las referencias a System.ServiceModel y a System.Runtime.Serialization, para poder serializar nuestras clases
Añadimos EntityFramework y SqlClient desde el administrador de Nuget
Añadimos la Carpeta Models con estas clases:
-Genero(int idgenero, string nombre)
-Autor (int idautor, string nombre, int idgenero)
A cada clase se le decora con [Table(«NombreTabla»)] para enlazar la tabla de la base de datos con la clase, y [DataContract] para indicar que será un modelo de datos del servicio
Añadimos la carpeta data y creamos el Context
Añadimos también el Repository con los métodos para hacer las consultas a la bbdd a través del Context
Creamos una Interfaz IService con los métodos de consulta al Repository
A esta Interfaz, la decoraremos con [ServiceContract] para indicar que ahí estarán los métodos de los que podrá disponer el cliente. Esos métodos, también irán decorados con [OperationContract] para indicar que efectivamente son peticiones que se podrían hacer al Servicio
Y crearemos el Servicio, heredando esos métodos del IService de arriba, dándole a cada uno su función de llamada al método correspondiente del repositorio
Después, en la misma solución, añadimos un New Project, del tipo WCFService Application. La llamaremos WcfGeneros
Añadimos la referencia al proyecto de librería de clases
Eliminamos el archivo Service1.svc.cs que estará dentro de Service1.svc. Eliminamos también IService1.
En Service1.scv, ponemos en «Service»el nombre del Service de la Librería de clases (ServiceGeneros), y borramos «CodeBehind».
Renombramos Service1.svc. Se llamará ServiceGeneros.svc
Como es el host en el que busca la cadena de conexión, la pondremos aquí, en el Web.Config
Iremos al Administrador de NuGet e instalaremos también EntityFramework y SqlClient en el proyecto WCF
Podríamos perfectamente darle al F5 y ver que el servicio está corriendo perfectamente, respondiendo a las peticiones.
Una vez comprobadas todas, toca subir el servicio, nosotros lo subiremos a Azure como un AppService
Utilizaremos la herramienta del mismo Visual Studio
Haremos click derecho sobre el proyecto WCF, el host, y pulsamos en publish.
Seleccionamos «Azure»
y «AppService»
Seleccionamos «Nueva instancia» y configuramos el grupo de recursos y el identificador único.
Una vez en la pestaña de Publicación, pulsamos en «Publish» y automáticamente abrirá la página dedicada a nuestro Servicio WCF.
Tendremos que añadir el nombre del archivo de servicio de la aplicación Host (ServiceGeneros.svc) en la barra de direcciones, y veremos que estamos ONLINE!!
Espero que os haya servido el tutorial y nos vemos en la próxima!
~Gabri
Autor/a: Gabriel Macias Fernandez
Curso: Desarrollo Web Full Stack, MultiCloud y Multiplataforma
Centro: Tajamar
Año académico: 2020-2021