¡Hola developers!
Hoy vamos a compartir con vosotros un recurso que os puede venir de perlas en el manejo de Sharepoint 2013:
¿Cómo podemos crear y añadir un Servicio WCF SOAP a una Granja de Sharepoint con Visual Studio?
¡Vamos a ello!
- En primer lugar, crearemos un proyecto vacío de Sharepoint 2013.
- Posteriormente, seleccionaremos la opción de implementarlo como solución de la Granja. En este caso, lo llamaremos ¨proyecto ServicioWCF¨:
- Una vez tenemos creado el proyecto, lo primero que debemos hacer es agregar las referencias necesarias para éste:
- Microsoft.Sharepoint.Client.ServerRuntime
- System.ServiceModel
- A continuación, agregamos la carpeta asignada de Sharepoint ISAPI. En esta carpeta deberian estar todos los servicios WCF implementados:
La carpeta ISAPI que acabamos de crear tiene impacto en la URL del servicio que estamos creando.
Concretamente, está mapeada como ¨_vti_bin¨en el IIS.
- A continuación, creamos el fichero del servicio. Para ello hay que agregar un archivo de tipo texto a la carpeta ISAPI recién añadida y cambiar su extensión a ¨svc¨.
- A continuación, crearemos la interfaz del servicio. Para ello, en el menú de Nuevo Elemento, seleccionamos ¨Interface¨y lo renombramos como ¨IServicioBlog.cs¨.
- También crearemos el fichero en el que irá el código del servicio ¨ServicioBlog.svc.cs¨que implementará la interfaz que hemos añadido.
Tras crear estos ficheros, tendremos la siguiente estructura:
-
- Una vez hecho esto, necesitamos conectar el ¨svc¨con los ficheros de código que hemos creado. Para ello, en el fichero ¨ServiceBlog.svc¨creado anteriormente, se introduce el siguiente XML:
<%@ ServiceHost Language="C#" Debug="true" Service="ServicioWCF.ISAPI.ServicioBlog, $SharePoint.Project.AssemblyFullName$" CodeBehind=" ServicioBlog.svc.cs" Factory="Microsoft.SharePoint.Client.Services.MultipleBaseAddressBasicHttpBindingServiceHostFactory, Microsoft.SharePoint.Client.ServerRuntime, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
Para poder implementar el fichero ¨svc¨, es necesario realizar una pequeña modificación en el proyecto. Para ello, se guarda el proyecto y se descarga en el explorador de soluciones:
- Una vez descargado, se edita el proyecto y se añade la siguiente línea en la última fila del primer ¨PropertyGroup¨:
svc
- Una vez hecho esto, se guarda y se recarga el proyecto:
Con esto, ya tenemos creada la estructura de nuestro servicio WCF. Lo único que necesitamos es el código.
- Modificamos el fichero ¨IServicioBlog.svc¨definiendo el contrato de la operación. En este caso, haremos un servicio que devuelva un ¨String¨:
ç
using System.ServiceModel; namespace ServicioWCF.ISAPI { [ServiceContract] public interface IServicioBlog { [OperationContract] string MiServicioBlog(); } }
- A continuación, implementamos la interface que acabamos de declarar:
using Microsoft.SharePoint.Client.Services; using System.ServiceModel.Activation; namespace ServicioWCF.ISAPI { [BasicHttpBindingServiceMetadataExchangeEndpoint] [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)] public class ServicioBlog : IServicioBlog { public string MiServicioBlog() { return "Soy un servicio WCF"; } } }
- Una vez hecho esto, simplemente implementamos el proyecto.
Para comprobar si es correcto, se accede usando la siguiente URL:
http://{SiteUrl}/_vti_bin/ServicioBlog.svc
El ¨wsdl¨está en:
http://{SiteUrl}/_vti_bin/ServicioBlog.svc/mex?wsdl
Y tendrá el siguiente formato:
Podremos comprobarlo con un cliente SOAP haciendo la llamada:
Y obteniendo el resultado:
¡Esto es todo!
¡Permaneced atentos a nuestros próximos recursos de Sharepoint!
Escrito por Ibai Arrizabalaga, Senior Developer de Sharepoint en Bravent.