SharePoint 2010: + sobre como habilitar intellisense para ECMAScript!

Hace un tiempo escribí un post sobre posibilidades a la hora de habilitar el intellisense cuando estamos programando usando el modelo de objetos en cliente JavaScript de SharePoint o ECMAScript. El caso es que esta semana, mientras jugaba un poco con ECMAScript (mira que no me gusta el condenado), me puse a ver si conseguía habilitar de una forma muy sencilla este intellisense para añadir funcionalidad a una página de aplicación…y bueno, la verdad es que resultó tan sencillo como añadir las siguientes referencias a continuación de la etiqueta <asp:Content ID=”PageHEad”…> de la página:

   1:  

   2: <script type="text/ecmascript" src="/_layouts/SP.Core.js" />

   3: <script type="text/ecmascript" src="/_layouts/SP.Debug.js" />

   4: <script type="text/ecmascript" src="/_layouts/SP.Runtime.Debug.js" />

Como véis, estamos añadiendo las versiones “.Debug” del modelo de objetos JavaScript de SharePoint 2010 (por cierto, cuando acabéis, quitar esas esas referencias para no penalizar el rendimiento de la página). Y el resultado:

 

image

Finalmente, os dejo otro par de referencias sobre el tema:

SharePoint 2010: Como funciona la seguridad en listas relacionales!

Como sabéis, tanto en SharePoint 2007 como en SharePoint 2010 existe un tipo de campo especial que nos permite mostrar en una cierta lista información procedente de otra lista: el campo de Lookup o búsqueda. En SharePoint 2010 este tipo de campo ha evolucionado de manera que en su definición podemos especificar que otras columnas de lista padre queremos visualizar además de aquella que define el campo. Una pregunta que nos puede surgir con respecto a las listas relacionadas mediante campos de Lookup es la siguiente: ¿Qué pasa si el usuario no tiene permisos para acceder a la lista padre? Pues que en la lista relacionada no verá ningún tipo de información de la lista padre como era esperable:

  • En mi caso, tengo dos listas relacionadas: Empresas y Productos. En la lista Productos tengo un campo de Lookup que muestra información de la lista Empresas.
  • Si un usuario que no tiene permisos para ver la información de la lista Empresas accede a la lista Productos, observará que la columna que las relaciona no muestra información y que si añade un nuevo elemento o edita uno existente, el combo estará vacío como era de esperar.
image image image
  image  

SharePoint 2010: Soporte multi-idioma (IV)!

Siguiendo con la serie de posts en torno al soporte multi-idioma de SharePoint 2010, en esta ocasión toca hablar sobre como podemos localizar nuestras soluciones de SharePoint más allá de las posibilidades que por defecto presenta la plataforma. Os recuerdo antes de comenzar los posts previos de la serie:

Yendo al grano en cuanto a como localizar nuestras soluciones SharePoint, en MSDN tenemos una serie de artículos en los que podemos encontrar las posibilidades a nivel de desarrollo que tenemos disponibles:

 

SharePoint2010_thumb

SharePoint 2010: Actualización de características (I)!

Una de las novedades más interesantes que vienen con SharePoint 2010 y de la que quizás no se está hablando mucho es el de la actualización de características, o lo que es lo mismo, la posibilidad por una parte de añadir versionado a una característica que despleguemos en nuestro entorno de SharePoint y por otra de actualizar versiones de características o un cierto rango de versiones bien porque nos encontramos ante escenarios como:

  • Necesitamos hacer cambios en un sitio o en una colección de sitios como por ejemplo:
    • Actualizar un tipo de contenido o una lista existente porque queremos añadirle nuevas columnas.
    • Queremos añadir nuevos artefactos a nuestro sitio como por ejemplo una nueva lista.
    • Queremos modificar la navegación del sitio.
    • ….
  • No queremos crear una nueva característica, sino que buscamos añadir nueva funcionalidad actualizando una característica existente.
  • Queremos aplicar cambios en ciertos sitios, pero en otros no.

Sin duda, a la hora de familiarizarse con el concepto de actualización de características un punto excelente de partida viene dado por la serie de posts al respecto que ha escrito Chris O’Brien y que son de obligada lectura:

Y hasta aquí este primer post sobre post sobre actualización de características. Espero que os haya resultado interesante.

SharePoint2010_thumb

SharePoint 2010: LINQ To SharePoint DSL Extension para Visual Studio 2010!

A la hora de hacer consultas a listas y bibliotecas de SharePoint usando el nuevo proveedor LINQ To SharePoint, como primer paso tenemos que generar el correspondiente proxy que facilite dichas consultas en base a una serie de Entity Clasess. Para generarlo tenemos dos opciones:

  • Usando la línea de comandos y la herramienta SPMetal.
  • Instalarnos alguna extensión para Visual Studio 2010 que por debajo use SPMetal para generar el modelo de Entity Clasess, pero que mejore la experiencia del desarrollador a la hora de crearlo.

Precisamente, este post trata sobre la segunda de las opciones y en concreto sonre la LINQ To SharePoint DSL Extension que permite diseñar de forma visual en el ID el esquema de entidades LINQ To SharePoint contra el que haremos las consultas y operaciones CRUD correspondientes. La verdad es que la extensión tiene muy buena pinta y está accesible a través de Visual Studio Gallery:

LINQ to SharePoint DSL Extension for VS2010

SharePoint 2010: Creación de páginas maestras (I)!

Cuando queremos personalizar el look & feel de un sitio de SharePoint 2010, tenemos varias posibilidades:

  • Si los cambios sólo aplican a ciertas páginas del sitio, podemos tratar de personalizarlas mediante CSS o JavaScript.
  • Si los cambios aplican a todo el sitio, las opciones de personalización pasan por:
    • Crear y aplicar un tema.
    • Crear y aplicar hojas de estilos personalizadas y añadir algo de JavaScript.
    • Modificar o bien crear desde cero la página maestra del sitio.

Para crear una página maestra de SharePoint 2010 hay al menos cuatro posibles caminos:

Aparte de esto, otras cosas que se pueden ir haciendo cuando hablamos de personalización de páginas maestras son las siguientes:

  • Ir construyendo tu hoja de estilos que luego se vaya a adjuntar a la página maestra. Hay que tener cuidado de no modificar la hoja de estilos propia de SharePoint.
  • Como se quiere que sea el menú vertical:
    • Estático hecho con HTML y CSS.
    • Más dinámico e interactivo con el uso de jQuery.
    • Totalmente dinámico, como el que viene por defecto. Aquí nos haremos preguntas como: ¿me sirve este menú? ¿o tenemos que hacer un control de navegación propio?

Finalmente os dejo otros posts relacionados con este tema que se han publicado en el blog:

SharePoint2010_thumb

SharePoint 2010: Pasos para instalar una solución!

A la hora de instalar soluciones de SharePoint (más conocidas como WSPs), tenemos tres o cuatro posibilidades en función del tipo de solución:

  • Por cuestiones de compatibilidad, usar la herramienta de administración de líneas de comandos STSADM que dispone de las opciones necesarias para instalar la solución, desplegarla, instalar las características correspondientes y activarlas. La secuencia completa sería la siguiente:
   1: 1. Añadir la solución:

   2:  stsadm -o addsolution -filename {WSPFILENAME}

   3:  

   4: 2. Desplegar la solución:

   5:  stsadm -o deploysolution -name {WSPFILENAME} -url {SITEURL}

   6:  

   7: 3. Instalar la(s) característica(s):

   8:  stsadm -o installfeature -filename {FeatureFolder}\feature.xml

   9:  

  10: 4. Activar la(s) característica(s):

  11:  stsadm -o activatefeature -id {FEATUREID} -url {SITEURL} -force

  12:  

  13: 5. Desactivar la(s) característica(s):

  14:  Stsadm.exe -o deactivatefeature -filename “C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\ViewFormPagesLockDown\feature.xml” -ur http://servername/

  15:  

  16: 6. Desinstalar la(s) característica(s):

  17:  stsadm -o uninstallfeature -filename

  18:  

  19: 7. Hacer el retract de la solución:

  20:  stsadm -o retractsolution -name {WSPFILENAME} -url {SITEURL}

  21:  

  22: 8.Borrar la solución:

  23:  stsadm -o deletesolution -name {WSPFILENAME}

SharePoint 2010: Cancelación de eventos y páginas de error personalizadas (II)!

Hace unos cuantos meses os comentaba la posibilidad que tenemos con SharePoint 2010 de definir a priori para cancelar un evento síncrono e indicar además una página personalizada de cancelación. En el ejemplo en cuestión utilizaba como página de cancelación una que se desplegaba en el directorio LAYOUTS del servidor. Esta aproximación es válida para soluciones de tipo granja, ¿y para soluciones de tipo SandBox? Pues lógicamente no, ya que estamos desplegando una página físicamente en el servidor. Por suerte, es posible especificar una página que resida en la biblioteca Site Pages del sitio o bien se haya provisionado directamente en el sitio, lo que habilita que podamos usar las páginas personalizadas de error para eventos síncronos en soluciones de tipo SandBox:

image image image

A la hora de especificar la Url de redirección podemos especificar la ruta completa de la página de error personalizada:

   1: properties.Status =

   2:     SPEventReceiverStatus.CancelWithRedirectUrl;

   3: properties.RedirectUrl =

   4:     "http://demo2010a:300/SitePages/ErrorPage.aspx";

o bien especificar una ruta relativa de nuestro sitio:

   1: properties.Status =

   2:     SPEventReceiverStatus.CancelWithRedirectUrl;

   3: properties.RedirectUrl =

   4:     "/SitePages/ErrorPage.aspx";

Y hasta aquí llega este segundo post sobre cancelación de eventos y páginas personalizadas de error.

Office 365: Guía de planning de SharePoint Online!

Cada vez queda menos para que Office 365 vea la luz de forma global y la versión online de nuestro servidor favorito irrumpa en los escenarios Guiño. Para facilitar el movimiento por parte de las empresas a SharePoint Online, Microsoft ha creado la correspondiente guía de planning cuyos contenidos son los siguientes:

En la misma línea de esta guía, podemos encontrar otros dos recursos más que interesantes:

Graphical overview of the planning process