Otro gran punto de integración entre SharePoint 2010 y Windows Azure es a través del Windows Azure Data Market de manera que podemos acceder a datos publicados utilizando artefactos de SharePoint como pueden ser WebParts o conectores de BCS. En este primer post os voy a mostrar como podemos usar Bing Translator, que ya está incluido en el Windows Azure Data Market, para poder realizar traducciones en una WebPart. Comencemos:
-
En primer lugar, necesitamos estar suscritos al Windows Azure Data Market y añadir a nuestras fuentes de datos Microsoft Translator.
-
Una vez agregada, podemos realizar alguna prueba de consulta y además tomar nota de ciertas Urls importantes de uso del servicio como:
-
Url raíz del servicio: https://api.datamarket.azure.com/Bing/MicrosoftTranslator/
-
-
A partir de aquí, en Visual Studio 11 Beta creamos un proyecto de tipo SharePoint 2010 Project al que le agramamos un elemento de tipo Visual WebPart que configuramos para poder modelar la solución básica de traducción.
Partimos del ejemplo de uso de Microsoft Translator que pasa por descargarse el proxy C# disponible en la página de detalle de Microsoft Translator en el Data Market. A partir de aquí, ya estamos listos para codificar de acuerdo a los siguientes pasos:
-
Agregar referencia a System.Data.Services.Client puesto que los datos del Data Market los consultaremos a través de servicios REST.
-
Añadir directivas using a System.Data.Services.Client, System.Net y el espacio de nombres del proxy que nos hemos bajado (Microsoft en este caso).
-
Especificar la cuenta y clave de uso del Azure Data Market.
-
Evitar el infame error: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel, date una vuelta por este enlace para saber de que estamos hablando. Como veis, en mi caso y dado que esto son pruebas uso SharePointManager para saltarme problemas de certificados y dar por válidos los certificados usados por el Azurre Data Market. Si quieres específicamente confiar únicamente en los certificados del Windows Azure Data Market, basta con cambiar que se confía en todos los certificados (valor true) por certificate.Subject.Contains("datamarket").
-
Creamos una instancia del objeto TranslatorContainer definido en el proxy y que nos permite realizar la consulta de traducción.
-
Especificamos la url del servicio de Microsoft Translator y las credenciales de acceso al Windows Azure Data Market.
-
A partir de aquí especificamos que queremos traducir, el idioma de destino y el de origen…realizamos la traducción y procesamos los resultados.
1: try
2: {
3: this.txtTranslation.Text = "";
4: // tUri del Servicio
5: Uri uServiceRootUri =
6: new Uri(
7: "https://api.datamarket.azure.com/Bing/MicrosoftTranslator/");
8:
9: // Claves de acceso
10: string sAccountUser = "TuCuenta";
11: string sAccountKey = "TuClave";
12:
13: // Objeto Translator Container
14: ServicePointManager.ServerCertificateValidationCallback =
15: ((MySender, certificate, chain, sslPolicyErrors) => true);
16: TranslatorContainer tc =
17: new TranslatorContainer(uServiceRootUri);
18:
19: // Credenciales de acceso
20: tc.Credentials =
21: new NetworkCredential(sAccountUser,sAccountKey);
22:
23: //*****************************************
24: //A traducir
25: //*****************************************
26:
27: // Generamos la consulta
28: var translationQuery =
29: tc.Translate(this.txtWordToTranslate.Text,"en","es");
30:
31: // Ejecutamos la consulta
32: var translationResults = translationQuery.Execute();
33:
34: // Procesamos los resultados
35: if (translationResults!=null)
36: {
37: foreach (var item in translationResults)
38: {
39: this.txtTranslation.Text += item.Text;
40: }
41: }
42:
43: }
44: catch (Exception ex)
45: {
46:
47: this.lblError.Text = "Error: " +
48: ex.Message;
49: }
Y finalmente la prueba del algodón:
Otros posts sobre la integración de SharePoint y Azure:
- SharePoint 2010 & Azure: Integración de servicios mediante BCS (II)!
- SharePoint 2010 & Azure: Integración de servicios mediante BCS (I)!
- SharePoint 2010 & Office 365: Integración con Windows Azure vía jQuery (I)!
- SharePoint & Azure: Alternativas de integración (IV)!
- SharePoint & Azure: Alternativas de integración (III)!
- SharePoint & Azure: Alternativas de integración (II)!
- SharePoint & Azure: Alternativas de integración (I)!
- SharePoint 2010: Ejemplos de integración con Windows Azure (I)!
Este aporte es d elo mas genial, pero buscando lo probe en Sp 2013 onpremise y funciona perfecto, pero para Online, me envia el siguiente error: Request for the permission of type ‘System.Security.Permissions.SecurityPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089’ failed. alguien puede ayudarme a ver como darle la vuelta???? Por favor.