SharePoint 2013: Tip para desplegar y probar un manejador de eventos remoto en un despliegue OnPremise (III)!

Siguiendo con la serie de posts sobre tips para desplegar y probar manejadores de eventos remotos (RERs) en un despliegue OnPremise, en esta ocasión vamos a ver algunas cuestiones a tener en cuenta en el caso en el que creemos el manejador como parte de una aplicación Autohosted por lo que su despliegue será en SharePoint Online y no en OnPremise…pero eso es lo de menos :P. Antes de meternos al tema, os recuerdo los posts previos de la serie.

En primer lugar, supongamos que hemos creado una aplicación de tipo “SharePoint-Hosted” que vamos a desplegar en SharePoint Online en Office 365 Preview. En dicha aplicación hemos añadido el correspondiente RER de forma qué se crea un proyecto web asociado al proyecto de aplicación que contiene el servicio WCF dónde se ha implementado toda la lógica del manejador.

image

 

Si desplegamos la aplicación en Office 365 y accedemos a la misma, lo primero que veremos es qué la URL es un “chorizo” bastante curioso:

%2Esharepoint%2Ecom%2Fsites%2FTDEVCR&SPLanguage=es%2DES&SPClientTag=0&SPProductNumber=15%2E0%2E4454%2E1011&SPAppWebUrl=https%3A%2F%2F%2Dfe7f0e9d237f43%2Esharepoint%2Ecom%2Fsites%2FTDEVCR%2FSPRERDemo">%2Esharepoint%2Ecom%2Fsites%2FTDEVCR&SPLanguage=es%2DES&SPClientTag=0&SPProductNumber=15%2E0%2E4454%2E1011&SPAppWebUrl=https%3A%2F%2F%2Dfe7f0e9d237f43%2Esharepoint%2Ecom%2Fsites%2FTDEVCR%2FSPRERDemo">%2Esharepoint%2Ecom%2Fsites%2FTDEVCR&SPLanguage=es%2DES&SPClientTag=0&SPProductNumber=15%2E0%2E4454%2E1011&SPAppWebUrl=https%3A%2F%2F%2Dfe7f0e9d237f43%2Esharepoint%2Ecom%2Fsites%2FTDEVCR%2FSPRERDemo">https://defe8b3e-8dbf-4afe-9ca2-274728027618.o365apps.net/Pages/Default.aspx?SPHostUrl=https%3A%2F%2F<DominioOffice365>%2Esharepoint%2Ecom%2Fsites%2FTDEVCR&SPLanguage=es%2DES&SPClientTag=0&SPProductNumber=15%2E0%2E4454%2E1011&SPAppWebUrl=https%3A%2F%2F<DominioOffice365>%2Dfe7f0e9d237f43%2Esharepoint%2Ecom%2Fsites%2FTDEVCR%2FSPRERDemo

También sabemos que el servicio WCF se tiene que haber publicado en Windows Azure…y aquí viene la primera pregunta: ¿Cómo lo comprobamos? Pues muy fácil, nos quedamos con la parte que nos interesa de la URL anterior y le añadimos el nombre del servicio para comprobar que efectivamente se ha publicado y listo para responder a eventos producidos en este caso en la lista que se ha añadido como parte de la aplicación:

https://defe8b3e-8dbf-4afe-9ca2-274728027618.o365apps.net/CompartimossRER.svc

 

image

 

Y ahora la segunda parte, ¿Dónde está desplegada la lista qué forma parte de la aplicación? Pues en un sitio de SharePoint aislado creado bajo el sitio hoster en el mismo momento que se ha publicado la aplicación. Para visualizar la lista y probar el manejador, modificamos la Url del sitio de Office 365 en el que se ha agregado la aplicación de la siguiente forma:

https://<URL_Sitio_Office365>/<NombreAplicacion>/Lists/<NombreLista&gt;

Además, podremos comprobar como al introducir esta Url en el navegador, automáticamente se realiza una redirección a una URL de la forma:

https://<DominioOffice365>-fe7f0e9d237f43.sharepoint.com/sites/TDEVCR/SPRERDemo/Lists/ListaTestRER/AllItems.aspx

SharePoint 2013: ¿Se pueden importar flujos de trabajo re-utilizables en Visual Studio 2012? (II)

Siguiendo con la serie de artículos relativos a la importación de flujos de trabajo creados con Designer en Visual Studio 2012, en esta ocasión vamos a ver como podemos importar un flujo de trabajo compatible con SharePoint 2010 respetando su naturaleza declarativa:

  • En Visual Studio 2012, elegimos en esta ocasión un proyecto de tipo “SharePoint 2013 – Importar paquete de solución”.
  • En este caso, podremos decidir si el tipo de despliegue es “Sandbox” o “Conjunto de servidores”.
  • Indicamos la ruta del .WSP a importar.
image image image
  • En la pantalla con el listado de elementos del .WSP que se pueden importar, fijaros en qué aparecen muchos más elementos que en el caso de utilizar la plantilla “SharePoint 2013 – Importar flujo de trabajo reutilizable de 2010”. Esto es así porque Visual Studio 2012 no está analizando si el .WSP es relativo a un flujo o a otro artefacto desplegable en la plataforma. Seleccionamos todos los elementos y pulsamos “Finalizar”.
  • Concluida la importación, podremos ver que la estructura de proyecto que se genera contiene más elementos que en el caso de utilizar la plantilla “SharePoint 2013 – Importar flujo de trabajo reutilizable de 2010”.
  • La definición del flujo (archivo .xoml) la podremos localizar dentro del SPI “Modules”. De nuevo, fijaros en la complejidad del flujo que ahora tiene una naturaleza declarativa.
image image image

Y hasta aquí llega este nuevo post sobre como importar flujos de trabajo declarativos. En el siguiente artículo veremos que sucede con flujos creados para el nuevo modelo.

SharePoint 2013: ¿Se pueden importar flujos de trabajo re-utilizables en Visual Studio 2012? (I)

Buena pregunta como diría alguno ;-)…la idea de este primer artículo y los tres siguientes es tratar de responder a la misma teniendo en cuenta que actualmente tenemos disponible la versión Preview 2 de las herramientas de Visual Studio 2012 de desarrollo para SharePoint 2013 y Office 2013 por lo qué con la RTM algunas de las conclusiones que se obtienen pueden cambiar (especialmente en el tercer artículo). Antes de empezar, es importante recordar que en SharePoint 2013 podemos tener dos grandes tipos de flujos:

  • Compatibles con SharePoint 2010, ya que SharePoint 2013 sigue incluyendo el motor de flujos de versiones previas y qué se basa en Windows Workflow Foundatio (WF) 3.x.
  • Compatibles con el nuevo modelo de flujos de trabajo, qué implica crear y desplegar flujos compatibles con WF 4.x en el denominado Windows Azure Workflow Server, qué se puede instalar en un servidor dedicado o no dependiendo de la topología y necesidades de la granja. En cualquier caso, la nueva infraestructura de flujos de SharePoint 2013 ya no es un elemento integrado de SharePoint, sino que es  un nuevo componente que permite que los flujos creados y desplegados se puedan usar en múltiples granjas de SharePoint.

De acuerdo a esta clasificación, vamos a empezar por ver como importar un flujo de trabajo compatible con SharePoint 2010:

  • De partida, disponemos de dos flujos de trabajo de tipo re-utilizable (tienen que ser de este tipo para poder guardarlos como plantilla). Uno compatible con SharePoint 2010 y otro basado en el nuevo modelo de flujos.
  • Guardamos los flujos como plantilla, lo qué genera el correspondiente archivo .wsp en la biblioteca Activos del sitio.
  • Empezamos con la importación del flujo compatible con SharePoint 2010. Nos vamos a Visual Studio 2012 y creamos un proyecto de tipo “SharePoint 2013 – Importar flujo reutilizable de 2010”.
image image image
  • La primera pantalla del asistente de configuración nos indica que el WSP que se genere posteriormente sólo se puede desplegar como una solución de tipo granja, lo cuál sigue lo ya conocido para SharePoint 2010 y Visual Studio 2010: el flujo se importa como un flujo de tipo “code behind”.
  • A continuación indicamos la ruta del archivo .wsp que contiene el flujo de trabajo.
  • Finalmente, en la pantalla de selección de elementos a importar nos aseguramos qué el flujo está seleccionado y pulsamos “Importar”.
image image image
  • Concluido el proceso de importación, comprobamos que todos los elementos que forman parte del flujo se han importado y qué en el diseñador de flujos podemos visualizar el .xoml importado. Fijaros en la complejidad del flujo (se trata de un proceso de aprobación) importado.

image

  • A partir de aquí, y si alguno se atreve, se podría tratar de extender el flujo importado para dotarle de mayor funcionalidad y de nuevos elementos.

SharePoint 2013: ¿Se puede interactuar con la API REST de los Servicios de Excel desde el contexto de una aplicación?

Pues en esto estaba indagando el otro día haciendo alguna que otra prueba con la API REST de los servicios de Excel…por desgracia la respuesta es qué no se puede ya qué no hay forma de dar permisos a una aplicación del nuevo modelo de aplicaciones de SharePoint 2013 para qué pueda hacer uso de esa API REST. De echo, si lo intentáis obtendréis un mensaje tan bonito como el que sigue:

image

A pesar del mensajito, me puse a revisar a nivel de permisos si había alguna opción de configuración qué permitiese darle permisos a una aplicación para usar la API REST de los servicios de Excel. Pero, como os decía al principio, no la hay…como veis, podemos dar permisos a la aplicación para acceder a servicios como BCS, Estado, Búsqueda, Perfiles de Usuario o Taxonomia…qué lástima como diría alguno que no se pueda acceder a los servicios de Excel.

image

Finalmente, os dejo la porción del código qué estaba usando para acceder a la API REST de los servicios de Excel…como veis, no tiene nada del otro mundo:

   1:  Results = { 
   2:      element: '', 
   3:      url: '', 
   4:      init: function (element) { 
   5:         /* Results.element = element; 
   6:          Results.url = _spPageContextInfo.webAbsoluteUrl + 
   7:          "/_vti_bin/ExcelRest.aspx/Documentos%20Compartidos/MiniCRM.xlsx/OData/Table1";*/ 
   8:          Results.element = element; 
   9:          Results.url = _surlWeb + 
  10:          "/_vti_bin/ExcelRest.aspx/ExcelFileModule/MiniCRM.xlsx/OData/Table1"; 
  11:      },
  12:   
  13:      load: function () { 
  14:          $.ajax( 
  15:              { 
  16:                  url: Results.url, 
  17:                  method: "GET", 
  18:                  headers: { 
  19:                      "accept": "application/json;odata=verbose", 
  20:                  }, 
  21:                  success: Results.onSuccess, 
  22:                  error: Results.onError 
  23:              } 
  24:          ); 
  25:      },
  26:   
  27:  

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

[Eventos]: Disponibles los materiales del WebCast “¿Por qué utilizar SharePoint 2013 para realizar nuestros desarrollos?”!

Ya están disponibles para descarga los materiales del WebCast realizado el pasado miércoles 13 de febrero en SUGES, “¿Por qué utilizar SharePoint 2013 para realizar nuestros desarrollos?”, en el que contamos con Adrián Díaz Cervera de Encamina (@AdrianDiaz81). Agradecer a todos los asistentes (tuvimos picos de más de 80) su participación y por supuesto a Adrián el pedazo de WebCast que impartió. Podéis descargaros los materiales del WebCast (demos incluidas) desde este enlace de SUGES.

image

SharePoint 2013: Aplicaciones hospedadas x SharePoint vs Cloud-Hosted(II)!

Siguiendo con la serie de posts comparativos entre aplicaciones hospedadas en SharePoint y aplicaciones hospedadas en el Cloud (ya sea privado o no), en esta ocasión os dejo otra tabla en la qué se comparan ambos tipos de aplicaciones en otros aspectos cómo ámbito, características, skills de desarrollo necesarias, etc. La siguiente tabla (tomada del training de Ignite de desarrollo de SharePoint) detalla la comparación en estos aspectos.

 

SharePoint Hosted

Cloud Hosted

Ámbito de la aplicación

Sitio de SharePoint

Sitio de SharePoint o Tenant

Tipo de Arquitectura

Sitio Web

Multi-Tenant

Skills necesarias a nivel de desarrollo

SharePoint + HTML/JS

Todo el Stack .NET / Otras plataformas & tecnologías

Tecnologías de UX

SharePoint + HTML/JS

Cualquier tecnología Web

Código en el lado de servidor

No permitido

Permitido, múltiples posibilidades

Almacenamiento

Listas & Bibliotecas de Documentos

Cualquier tipo de almacenamiento

Limitaciones clave

No se permite código de servidor

Puede ser necesario tener experiencia en temas relativos a hosting (aplicaciones Provider Hosted principalmente)

[Recursos]: Curso de Introducción a SharePoint 2013 en MVA!

Pues eso, ya está disponible el curso de Introducción a SharePoint 2013 en Microsoft Virtual Academy (MVA) en el qué he tenido el placer de trabajar con mis colegas Gustavo Vélez (gustavo@gavd.net) y Fabián Imaz (@FabianImaz) y en el que hemos contado con la inestimable colaboración de dos otros dos grandes del mundo SharePoint como Alberto Díaz (@adiazcan) y Ricardo Muñoz (@rmunozcr). Como su nombre indica, se trata de un curso introductorio a la plataforma SharePoint 2013 para familiarizarse tanto con su base tecnológica como con sus principales novedades. El contenido realizará un recorrido por SharePoint 2013 explicando desde su instalación, configuración, administración, etc. En las próximas semanas estaremos trabajando en nuevos cursos sobre SharePoint 2013, estad atentos. Podéis acceder al curso en el siguiente enlace: https://www.microsoftvirtualacademy.com/tracks/introduccion-a-sharepoint-server-2013

image