En SharePoint 2013, como sucedía con su predecesor, podemos configurar un sitio para qué se pueda mostrar en diferentes idiomas. Sin embargo, hay una diferencia fundamental: mientras en SharePoint 2010 el usuario tenía la opción de cambiar el idioma, en SharePoint 2013 esto ya no es así y depende de la cultura del navegador para que el usuario vea el sitio en un idioma o en otro. En este artículo se expone claramente esta nueva forma de soportar varios idiomas en sitios de tipo Intranet en SharePoint 2013: http://olafd.wordpress.com/2012/11/02/switch-language-in-sharepoint-2013/
mayo 19, 2013
SharePoint 2013: Como cambiar el idioma de un sitio (I)!
En SharePoint 2013, como sucedía con su predecesor, podemos configurar un sitio para qué se pueda mostrar en diferentes idiomas. Sin embargo, hay una diferencia fundamental: mientras en SharePoint 2010 el usuario tenía la opción de cambiar el idioma, en SharePoint 2013 esto ya no es así y depende de la cultura del navegador para que el usuario vea el sitio en un idioma o en otro. En este artículo se expone claramente esta nueva forma de soportar varios idiomas en sitios de tipo Intranet en SharePoint 2013: http://olafd.wordpress.com/2012/11/02/switch-language-in-sharepoint-2013/
mayo 10, 2013
SharePoint Online: Como invitar a usuarios externos a colaborar (II)!
En este artículo os comentaba el funcionamiento del mecanismo de invitación a usuarios externos para colaborar en sitios de SharePoint Online. El caso, es qué el otro día preparando una formación al realizar una invitación a un usuario externo a una de mis colecciones de sitios, me daba continuamente un aviso de error indicando qué no se podía compartir el sitio con usuarios externos por lo que me puse a indagar qué me faltaba en esa colección de sitios para tener esta funcionalidad disponible:
-
Lo primero que hay que hacer es comprobar a nivel del tenant de Office 365 qué tenemos habilitada la funcionalidad de “Uso compartido externo”. Por defecto, está habilitada como podéis ver en la correspondiente captura de pantalla.
-
Pero tener habilitada esta funcionalidad no es suficiente, porque si tratáis de compartir una colección de sitios que no sea la qué se crea por defecto veréis que se muestra el mensaje de marras indicando qué no se puede compartir el sitio con usuarios externos.
-
Tras investigar un poco, la clave está en qué es necesario indicar de forma explícita que la colección de sitios se puede compartir para poder compartir elementos de la misma. Para poder realizar esta configuración, tenemos que navegar a la administración e nuestro tenant de Office 365. En la misma, disponemos de la opción “Uso compartido” qué es la clave de todo.
-
Seleccionamos la colección de sitios en la que queremos activar el uso compartido de manera que se muestra la correspondiente ventana de configuración. Marcamos una de las dos opciones que habilita el uso compartido y pulsamos “Guardar”. Un punto importante aquí, es que el cambio no es automático, hay que darle unos minutos para que se propague.
-
Y a partir de aquí, ya podemos compartir la colección o elementos de la misma con usuarios externos.
Referencias:
mayo 9, 2013
SharePoint 2013 & SharePoint Online: ¿Cómo veo los usuarios con los que he compartido un sitio?
Si quieres ver los usuarios con los que has compartido un sitio u otro elemento de SharePoint (como un simple documento), tienes que seguir los siguientes pasos:
-
Para el caso de un sitio, simplemente pulsa la opción “Compartir” disponible en la parte superior de cualquier página del sitio.
-
En la ventana que se abre, si tu sitio ha compartido podrás ver que bajo el título “Compartir <Nombre del Sitio>” se muestra la siguiente información: “Compartido con muchas personas” qué contiene un vínculo.
-
Si haces clic sobre ese vínculo, se muestra el listado de personas con las que se ha compartido el sitio. En el caso del ejemplo, se trata de un sitio de SharePoint Online en Office 365 por lo que el listado puede contener usuarios de nuestro tenant de Office 365 o bien usuarios externos (de otro tenant o con un LiveID).
mayo 6, 2013
SharePoint Online: Usando el MO en Cliente de búsquedas desde una aplicación creada con NAPA!
En este artículo vamos a ver como podemos hacer uso del Modelo de Objetos en Cliente de búsquedas (sabor ECMAScript) en una aplicación SharePoint-Hosted creada con la herramienta NAPA desde un sitio de SharePoint Online en Office 365:
- En primer lugar accedemos al entorno de desarrollo de NAPA y creamos un nuevo proyecto.
- Como tipo de proyecto, elegimos App for SharePoint.
- Modificamos de forma conveniente la página Default.aspx para qué permita hacer uso del MO en Cliente de búsquedas:
- Añadimos una referencia a la librería JavaScript de búsquedas:
<script type="text/javascript" src="/_layouts/15/sp.search.js"></script>
- Añadimos el código HTML necesario para poder realizar búsquedas y mostrar resultados en la página de la aplicación.
-
En el archivo App.js añadimos la lógica necesaria para poder hacer uso del Modelo de Objetos en Cliente de búsquedas. En este caso, os remito a las referencias qué he seguido en el artículo y que contienen el código.
-
A nivel de configuración del manifiesto de la aplicación, nos aseguramos de darle permisos a la aplicación para que pueda hacer búsquedas. Para ello, en la ventana de propiedades del proyecto en NAPA nos vamos a “Permissions” y en la sección “Services” indicamos que la aplicación necesita el permiso “Query” necesario para poder realizar búsquedas.
-
Desplegamos la aplicación desde NAPA usando el correspondiente asistente.
- Antes de probar la aplicación, verificamos qué tenemos información disponible para buscar.
- De vuelta en el proceso de despliegue de la aplicación, antes de poder instalarla se nos preguntará si confiamos en la aplicación a la qué se le va a dar permisos para realizar consultas de búsqueda.
- Finalmente, comprobamos que la aplicación funciona como se espera.
Referencias:
mayo 5, 2013
SharePoint 2013: Cambios en el modelo de licenciamiento (II)!
Hace unos meses, comentaba en este blog una novedad importante a nivel de licenciamiento en SharePoint 2013: la desaparición de las licencias de tipo SharePoint For Internet Sites (FIS) lo que en la práctica convierte a nuestro servidor favorito en una opción muy atractiva para crear sitios públicos a un coste razonable y no sobrecargado como sucedía con las versiones SharePoint 2007 y 2010. En este artículo nuevo de la serie quería dejar un resumen de como es el modelo de licenciamiento en SharePoint 2013 (incluyendo SharePoint Online). Básicamente:
-
Partimos de la base de qué tenemos cuatro versiones del producto:
-
SharePoint Foundation 2013: Gratuito.
-
SharePoint Online en Office 365, en el que se aplica el concepto de pago por uso.
-
SharePoint Server Estándar, licenciado por instancia de servidor y CAL de usuario.
-
SharePoint Server Empresarial, licenciado por instancia de servidor y CAL de usuario (CALSs de SharePoint Server 2013 Estándar + CALs de SharePoint Server 2013 Empresarial).
-
-
Como comentaba, con SharePoint 2013 el modelo de licenciamiento cambia para “abaratar” la creación de sitios Internet…desaparecen las versiones FIS de manera que para implementar sitios públicos necesitamos una licencia Estándar o Enterprise + las CALs de acceso necesarias (para usuarios autenticados).
Si nos centramos en cada producto comentado (dejando fuera SharePoint Foundation, que es gratuito):
SharePoint Online en Office 365
Su modelo de licenciamiento tiene las siguientes características:
-
No existe el concepto de licencia, sino que se habla de subscripción ó Concepto de pago por uso.
-
Se puede comprar de dos formas:
-
Como un plan “standalone” (planes P1 y P2).
-
Como parte de un plan de Office 365: Small Business Small Business Premium MidSize Business Enterprise (Varios planes, incluyendo Educación y Gobierno).
-
SharePoint Server 2013 OnPremise
En este caso, el modelo de licenciamiento tiene las siguientes características:
- Los sitios Intranet se licencian mediante el modelo de CALs:
- Se requiere una instancia de SharePoint Server 2013 por cada instancia del SW qué se esté ejecutando.
- Se requiere una CAL por cada persona/dispositivo que acceda.
- Las CAL son aditivas: para acceder a características “Empresariales” se necesitan tanto las CAL de SharePoint Estándar como las de SharePoint Empresarial.
- Para escenarios Extranet e Internet, no se requieren CALs para usuarios externos.
Usuario Externo: Aquel usuario qué no forman parte de la organización dónde se está desplegando SharePoint ni de terceros “OnSite” en la organización
Fuente: http://technet.microsoft.com/en-US/library/jj819267.aspx#bkmk_Featurecomparison
mayo 1, 2013
SharePoint: Recopilatorio de enlaces interesantes (X)!
Un mes más, aquí os dejo el recopilatorio de enlaces y recursos interesantes sobre SharePoint aparecidos durante el mes de abril de 2013. Como siempre, espero que los enlaces recopilados sean de vuestro interés.
SharePoint 2013
Capacidades
- SP15 Organization Chart in MySites
- Document Preview in SharePoint 2013
- Implementing your responsive designs on SharePoint 2013
- Access 2013–Not Your Father’s Access
- Five Yammer Features that SharePoint Users are Going to Love
- Use cross-site publishing to set up a product-centric website in SharePoint Server 2013
- Adding Videos to your SharePoint 2013 Blogs
- SharePoint Sites of the Month #8
- United Airlines reduces web content administration from months to hours with enterprise solution
- SharePoint Workflow: What Should We Use It For? What Are Other People Using It For?
- SharePoint Workflows Aren’t Business Processes
- How to Change a Default Layout for “Add a Page” in SharePoint 2013
- New SharePoint training courses available for end users
Desarrollo
- Reduce Resources Used by noderunner.exe in SharePoint 2013
- Troubleshooting Tips for Hybrid BCS Connections Between Office 365 and SharePoint 2013 On Premises
- New Features in Microsoft Office Developer Tools for Visual Studio 2012
- SharePoint Hosting & Authentication Options for LightSwitch (Brian Moore)
- SharePoint Workflow Development with Office Developer Tools for Visual Studio 2012
- Importing Search Configurations with SharePoint Apps
- Rolling out SharePoint 2013 apps to the enterprise – tenant scope and PowerShell installs
- Adding Tabs in both SharePoint 2013 and 2010
- Workflow Improvements and Changes in SharePoint 2013 March PU + RTM Developer Tools
- Inside SharePoint 2013 OAuth Context Tokens
- How to: Build Client Web Parts in SharePoint 2013 with Office Developer Tools RTM
- How to: Query SharePoint 2013 using REST and JavaScript
- Changing the default Device Channel for preview in SharePoint 2013
- Calling the SharePoint 2013 Rest API from a SharePoint Designer Workflow
- Self-Service Site Provisioning using Apps for SharePoint 2013
- Cross-site publishing alternatives in SharePoint Online/Office 365
- Using REST Services with a Provider Hosted App in SharePoint 2013
- SharePoint Online – Changing Master Page through CSOM
- Upgrading SPD 2010 Workflows to SPD 2013 Workflows
- Farm Solution vs Sandbox vs App SharePoint 2013
- SharePoint 2013: What to Do? Farm Solution vs Sandbox vs App
- Integrate OpenStreet Map with SharePoint 2013 Using REST and Leaflet.js
- A list of SharePoint Developer, Design and Testing Tools
- SharePoint 2013 on Windows Azure Infrastructure Services
- How to: Query Search with the SharePoint 2013 JavaScript Client Object Model
- How to: Localize an app for SharePoint
- How to: Create a mobile app in SharePoint 2013 that contains data from an external data source
- How to: Integrate maps with Windows Phone apps and SharePoint 2013 lists
- Starter Master Pages for SharePoint 2013 v1.3
- Custom Callouts in the SharePoint 2013 Metro UI, Part 4: How to use callouts in autohosted app
- SharePoint 2013: Enabling PDF Previews in Document Libraries with Office Web Apps 2013
- Publishing LightSwitch apps for SharePoint to the Catalog
- SharePoint 2013 Autocomplete textboxes using the term store and CSOM
IT
- Autoinstaller GUI Now Supports SharePoint 2013
- Update on Stretch Farm Support in SharePoint 2013
- Stretched Farms Now Supported in SharePoint 2013!
- How to Improve Speed in SharePoint 2013
- Sizing and Capacity Planning for SharePoint 2013 – Resources
- SharePoint 2013 : Configuring an on-premise farm for Apps
- How to Upgrade to Microsoft SharePoint 2013
- SharePoint 2013: Enabling cross domain profile pictures
- New Troubleshoot SharePoint portal page in the TechNet Wiki
- Slipstreaming Patches into SharePoint 2013
- Multi tenancy in SharePoint 2013
- SP 2013 Search Box WebPart configuration using PowerShell
- SP 2013 – Configure Usage and Health Data collection using PowerShell
- Get Started with SharePoint Server 2013 Quickly on Windows Azure
- SharePoint 2013 Analytics Feature – ITPro, DB Admin and PowerPivot Issues
- Configure PerformancePoint Services (SharePoint Server 2013)
- Updated SharePoint 2013 IT Pro training package now available
- SharePoint 2013 PowerPivot Component Overview
- Get your head in the cloud: Hybrid for SharePoint Server 2013/Office 365
- SharePoint 2013 April 2013 CU
- Introduction to System Status Notifications in SharePoint 2013
- Creating a SharePoint Server 2013 Farm using Windows PowerShell Scripts
Office 365
- Announcement: New Office 365 sign-in page
- What’s new in SharePoint Online–top 10
- Introducing Office 365 Small Business Premium
- SkyDrive Pro – Using Office 365 for File Storage in SharePoint Online
- How to use SkyDrive Pro to sync document libraries for local/offline use
- Office 365 Small Business Premium: Looking professional
- Office 365 Small Business Premium: No IT expertise required
- Introducing Office 365 tenant reports
- Introducing Facebook and LinkedIn Connect
SharePoint 2010
Capacidades
Desarrollo
IT
Office 365
abril 26, 2013
SharePoint Online: ¿Cómo quito aplicaciones qué he agregado en mi tenant?
Si se ha agregado una aplicación del Office Store en una colección de sitios del tenant de Office 365, esta aplicación podrá ser agregada en cualquier otra colección de sitios del tenant. Si queremos que una cierta aplicación, una vez quitada de todas las colecciones, no se pueda agregar más tendremos qué realizar los siguientes pasos en la Administración de SharePoint Online en Office 365:
-
Acceder a la sección Aplicaciones y hacer clic sobre “Administrar aplicaciones”.
-
A continuación se muestra el listado de aplicaciones disponibles. Pulsamos sobre la aplicación que queremos quitar.
-
En la página de detalle de la aplicación, simplemente desplegamos las opciones disponibles en ACCIONES y pulsamos sobre “Quitar esta licencia” de manera que automáticamente la aplicación deja de estar disponible para agregar en las Colecciones de Sitios de SharePoint Online en Office 365.
abril 25, 2013
SharePoint 2013: Políticas de validación de aplicaciones enviadas al Office Store!
Una duda qué tendrá todo aquel que quiera publicar aplicaciones para Office y SharePoint en el Office Store es la relativa a aquellos aspectos que Microsoft va a tener en cuenta a la hora de validar si una aplicación está lista para publicar o no. Para conocer estos aspectos, o más bien políticas de validación, os recomiendo revisar los siguientes enlaces:
abril 24, 2013
SharePoint 2013: Novedades en manejadores de eventos (II)!
Como continuación del post qué escribí hace tiempo en relación a las novedades en manejadores de eventos para SharePoint 2013, en este nuevo artículo quería explicar como quedaría el trabajo con dichos manejadores tanto para SharePoint 2013 RTM como para SharePoint Online en Office 365. Al lío pues:
-
El proceso para crear el manejador de eventos remoto comienza como siempre creando una aplicación para SharePoint 2013 en Visual Studio 2013. La pregunta aquí es: ¿Qué tipo de hosting elijo? Y la respuesta es clara: Autohosted o Provider-Hosted. Si recordáis, en este blog comenté que con algún truco se podían añadir manejadores de eventos remotos en aplicaciones de tipo SharePoint-Hosted, aunque la idea es no tener que usarlos para este tipo de aplicaciones.
-
Una vez creada la aplicación, le agramamos un elemento de tipo “Receptor de eventos remoto” qué por un lado añade a nivel del proyecto de aplicación de SharePoint el SPI (SharePoint Project Item) para el manejador. Este SPI contiene el manifiesto del manejador qué indica el evento o eventos a los qué responde y sobre todo el extremo dónde está el servicio WCF qué reaccionará antre los eventos manejados. Por otro lado, se añade en el proyecto web de la solución un servicio WCF cuya lógica tenemos que programar.
-
Si editamos el código del servicio WCF, necesitaremos en primer lugar los siguientes espacios de nombres adicionales:
using System.Runtime.Serialization; using System.ServiceModel; using System.ServiceModel.Channels; using System.Net;
.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; }
-
A continuación, procederemos a codificar los dos métodos del servicio qué nos permiten responder a eventos de naturaleza síncrona (ing) y asíncrona(ed). Para los eventos síncronos, tenemos que codificar el método ProcessEvent siguiendo por ejemplo el primer post de la serie.
-
En cambio, para los eventos asíncronos tendremos que codificar el método ProcessOneWayEvent de acuerdo al siguiente fragmento de código:
HttpRequestMessageProperty requestProperty =
(HttpRequestMessageProperty)OperationContext.Current.IncomingMessageProperties[HttpRequestMessageProperty.Name];
string contextTokenString =
requestProperty.Headers["X-SP-ContextToken"];
// If there is a valid token, continue.
if (contextTokenString != null)
{
SharePointContextToken contextToken =
TokenHelper.ReadAndValidateContextToken(
contextTokenString, requestProperty.Headers[HttpRequestHeader.Host]);
Uri sharepointUrl =
new Uri(properties.ItemEventProperties.WebUrl);
string accessToken =
TokenHelper.GetAccessToken(contextToken, sharepointUrl.Authority).AccessToken;
using (ClientContext ctx =
TokenHelper.GetClientContextWithAccessToken(sharepointUrl.ToString(), accessToken))
{
if (properties.EventType == SPRemoteEventType.ItemAdded)
{
List lList =
ctx.Web.Lists.GetByTitle(
properties.ItemEventProperties.ListTitle);
ctx.Load(lList);
ListItem liItem =
lList.GetItemById(
properties.ItemEventProperties.ListItemId);
ctx.Load(liItem);
ctx.ExecuteQuery();
liItem["Title"] +=
" - Elemento Añadido";
liItem.Update();
ctx.ExecuteQuery();
}
}
}
.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; }
-
Cómo veis, frente al primer artículo de la serie basado en la versión Preview de SharePoint 2013, en este caso hacemos uso de la clase TokenHelper proporcionada al crear el proyecto de aplicación qué nos da las clases y métodos necesarios para poder interactuar de vuelta con SharePoint mediante OAuth dado qué en este caso estamos actualizando información del elemento de lista que se ha añadido. Fijaros en la mecánica a seguir:
-
En primer lugar, al realizar una petición a SharePoint desde una aplicación (en este caso desde el servicio WCF qué implementa la lógica del manejador de eventos remoto), necesitamos disponer de un Token de Contexto qué es generado por ACS (Azure Token Service).
-
Con el Token de contexto disponible, estamos en disposición de poder hacer operaciones “de vuelta” (callback) contra SharePoint para lo que necesitamos disponer de un Token de Acceso. Fijaros en como este Token de Acceso es obtenido por la aplicación partiendo del Token de Contexto y de nuevo a través de ACS.
-
Con el Token de Acceso, ya podemos crear una instancia de ClientContext y empezar a interactuar con SharePoint.
-
-
Dicho esto, ya sólo queda comenzar a probar el manejador de eventos remoto y verificar que funciona de forma correcta.