Disponible el número 11 de la revista compartimos

Otro número más tengo el placer y el privilegio de formar parte del índice de un número de la revista CompartiMOSS, y esta vez como entrevistado. Es la primera vez que hago esto así que no me lo tengáis en cuenta 😛

Os dejo aquí el índice de la revista que, como veréis, viene plagado de grandes artículos.

•Editorial
•Conexiones BCS en el servicio de perfiles (Miguel Tabera Pacheco)
•Combinando SharePoint y Project Server (Arnau Roca Palà, Marc Bàguena Cuéllar)
•Linq To SharePoint (Juan Pablo Capdevila)
•Sitios de Publicación de SharePoint 2010 (Santiago J. Porras Rodríguez)
•Creando documentos profesionales en Microsoft Word 2010 (Alejandro Garrido)
•Entrevista con David Martos
•Lista personalizada con Excel (Marcus Vinícius Bittencourt)
•¿Cómo tener éxito con la adopción de usuario de soluciones SharePoint? (Edin Kapic)
•UXDesignPoint
•Exposición de un sitio web con autenticación por claims usando ADFS – Parte 1 (Diego Gatti)
•Customización y ampliación de estadísticas de uso (Víctor Cea Espejo)
•Firma Electrónica sobre SharePoint: principales ventajas y aplicaciones (Miguel López)
•Client Object Model en SharePoint 2010 / Modificando la seguridad (Juan Pablo Pussacq Laborde)
•El concepto de Nube Privada (Daniel S. Levi)

Si queréis descargar la revista podéis hacerlo aquí.

[EVENTO] CHARLA CON LOS EXPERTOS: TODO LO QUE SIEMPRE QUISISTE SABER SOBRE SHAREPOINT, PERO NO TE ATREVISTE A PREGUNTAR

El próximo miércoles, 14 de Marzo, a las 16:00 horas (GMT+1), está preparado un webcast donde intentaremos aclarar todas aquellas dudas que tengáis en relación a SharePoint. Os dejo la descripción del evento y el enlace de registro a continuación.

Los grupos de usuarios de SharePoint de habla hispana os proponemos un evento online un tanto diferente: os proponemos durante aproximadamente 90 minutos charlar con los principales expertos de la plataforma en países de habla de hispana. Ven con nosotros, plantéanos tus dudas y cuestiones sobre nuestro servidor favorito y averigua todo aquello que siempre quisiste saber, pero nunca te atreviste a preguntar.
Entre los participantes en la charla contaremos con algunos de los mayores conocedores de la plataforma SharePoint como: Gustavo Vélez, David Martos, Ricardo Muñoz, Juan Andrés Valenzuela, Juan Carlos González, Alberto Díaz, Daniel Seara, Héctor Insua, Manuel Herrera, Haarón González Fabian Imaz, Mario Cortés Flores, Juan Pablo Pussacq Laborde.

https://msevents.microsoft.com/CUI/EventDetail.aspx?culture=en-US&eventid=1032506778&flag=1

Características: receivers y scopes

A raíz de una consulta en los foros de SharePoint he pensado que valía la pena dedicar un rato a explicar un concepto que, pese a ser aparentemente simple, suele causar más de un problema a todo aquel que trabaja con SharePoint. La problemática radica en el concepto feature scope o ámbito de la característica. Voy a intentar introducir primeramente el tema.

Sabréis que SharePoint, en su versión 2007, introdujo el tema de característica o feature que podría definirse como elemento mínimo de despliegue de funcionalidad y que, en ocasiones, tienen asociado un receiver que es un código manejado que se ejecuta cuando la característica se instala, se activa, se desactiva y se desinstala. Bien, resulta que las características pueden tener cuatro ámbitos diferentes en función del elemento o elementos a desplegar: granja, aplicación web, colección de sitios y sitio. Cuando no hay receiver el asunto suele ser bastante simple ya que suele haber una única posibilidad a la hora de seleccionar el ámbito. Si, por la razón que sea, existe más de una posibilidad tampoco es problema, porque en cualquiera de esas posibilidades el elemento se desplegará correctamente o saltará un error indicando que la característica no está bien definida.

El problema viene cuando tenemos un receiver el código del cual estamos desarrollando nosotros, y se debe al hecho que la característica se puede definir con cualquier ámbito y somos nosotros los que tenemos que actuar en consecuencia para que nuestro código funcione de manera adecuada. Voy a poner un ejemplo muy extremo para que veáis el tipo de cosas que se pueden hacer porque el sistema lo permite, pero que no deberían hacerse salvo que sepamos exactamente por qué lo estamos haciendo de esa manera.

Digamos que quiero desplegar una característica que, cuando se active, acceda al servicio de perfiles de usuario y haga un tratamiento sobre cada uno de los perfiles. Al estar tratando sobre una aplicación de servicio, lo lógico sería que su ámbito fuera aplicación web o granja (la decisión depende de la aplicación de servicio pero abordar este asunto está fuera del alcance de este artículo). Sin embargo, yo puedo decidir crear mi característica con ámbito de sitio y, en el código de activación hacer lo siguiente:

var web = properties.Feature.Parent as SPWeb;
var webApplication = web.Site.WebApplication;

Ahora tendría acceso al objeto SPWebApplication correspondiente al sitio donde estoy activando la característica. Esto no debería ser un problema pero, a la hora de la verdad, si tienes un código que está haciendo algo relacionado con el objeto SPWebApplication es probable que lo acabes utilizando en el futuro en otro proyecto y, en general, te encontrarás con un problema relacionado porque en ese nuevo proyecto, habrás pensado de otra manera, y esta vez tu característica la habrás definido con alcance aplicación web y el código anterior compilará, funcionará aparentemente, pero dará un error de NullReferenceException porque la primera línea de arriba devolverá un objeto nulo.

Si queréis dejar vuestro receiver totalmente protegido de cara a futuras reutilizaciones deberíais tratar las cuatro posibilidades que se os pueden llegar a dar. La idea sería obtener el tipo del objeto properties.Feature.Parent del ejemplo anterior y, en base al resultado, ejecutar un código u otro, o incluso devolver un error controlado y evitar el NullReferenceException que, si bien da toda la información, no va a ayudar a aquella persona que quiere reutilizar vuestro receiver.

En cualquier caso es importante intentar siempre escoger el ámbito más correcto para vuestra característica y, en ese caso, dependerá del código que vayáis a escribir. Si veis que vuestro código hace algo como lo de arriba, muy probablemente hayáis decidido mal y el ámbito correcto debería ser aplicación web. La idea es plantearse cual va a ser el objeto que va a recibir tratamiento por parte de nuestro código y establecerlo como el Parent de la característica a crear.

MVP Summit 2012

Por segundo año consecutivo he tenido el placer y el privilegio de venir a Seattle para asistir al MVP Summit. Ahora que ha acabado, y recogiendo ya las cosas para volver a casa, puedo deciros que he vuelto a disfrutar como un enano del acontecimiento. Ya no sólo por el hecho de estar en el campus y por poder ver información interesante de primera mano, sino sobretodo por la posibilidad de reencontrarme con mucha gente y conocer a personas realmente interesantes.

Para que os hagáis una idea de la magnitud del evento, aquí os dejo una foto donde aparecemos la mayoría de los asistentes al Summit. La foto se tomó en el estadio de fútbol de Seattle.

Si no lo podéis ver bien en esta página, podéis visitar el siguiente enlace:

http://photosynth.net/view.aspx?cid=37d2fb67-a580-427e-a63d-22d57b32f259

Una vez acabado, prometo ponerme al día con este blog que tan abandonado tengo. De momento ya os habréis dado cuenta de que estoy cambiando el aspecto poco a poco (dadme tiempo que ya sabéis que no me llevo muy bien con el HTML y con el CSS). Sé que tengo pendientes varios artículos sobre ALM y también alguna que otra cosita que introduje en su momento pero que acabó quedándose en el tintero. Si no hay nada que lo impida, durante este mes acabaré alguna de las cosas que tengo a medias y lo publicaré.

Seguimos…