SERVICIO WCF SOAP EN SHAREPOINT 2013

¡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¨:

 

sharepoint.png

 

sharepoint2-1.png

 

  • Una vez tenemos creado el proyecto, lo primero que debemos hacer es agregar las referencias necesarias para éste:
    • Microsoft.Sharepoint.Client.ServerRuntime
    • System.ServiceModel

sharepoint3.png

 

 

  • A continuación, agregamos la carpeta asignada de Sharepoint ISAPI. En esta carpeta deberian estar todos los servicios WCF implementados:

 

sharepoint4.png

 

sharepoint5.png

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¨.

sharepoint6.png

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

sharepoint7-1.png

 

Tras crear estos ficheros, tendremos la siguiente estructura:

sharepoint8-1.png

 

    • 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:

sharepoint9.png

 

  • Una vez descargado, se edita el proyecto y se añade la siguiente línea en la última fila del primer ¨PropertyGroup¨:

svc

sharepoint10.png

 

sharepoint11.png

 

  • Una vez hecho esto, se guarda y se recarga el proyecto:

sharepoint12.png

 

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

sharepoint13.png

 

El ¨wsdl¨está en:

http://{SiteUrl}/_vti_bin/ServicioBlog.svc/mex?wsdl

 

Y tendrá el siguiente formato:

sharepoint14.png

 

Podremos comprobarlo con un cliente SOAP haciendo la llamada: 

sharepoint15.png

 

Y obteniendo el resultado: 

sharepoint16.png

 

 

¡Esto es todo! 

¡Permaneced atentos a nuestros próximos recursos de Sharepoint!

Escrito por Ibai Arrizabalaga, Senior Developer de Sharepoint en Bravent.