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



