SSD: el síndrome de la Sharepoint dependencia

Sharepoint me proporciona seguridad y me hace sentir más fuerte. Las 10 cosas que más me gustan de Sharepoint.

10 puntos para entender a Project Server 2010

Microsoft Project es quizá la herramienta de gestión de proyectos más conocida y utilizada por los líderes de proyectos...

Diseño Gráfico en SharePoint

Serie de artìculos que nos ayudan a incorporar diseño gráfico en las implementaciones de SharePoint...

Revista CompartiMOSS

Artículos publicados en la revista especializada en SharePoint: CompartiMOSS.

Contacto

Enviame un correo :-)

miércoles, 14 de diciembre de 2011

Un poco de #branding en #SharePoint 2010

En este artículo voy a dar algunos ejemplos sencillos para cambiar el aspecto de nuestro sitio en SharePoint 2010. ¿Tunning? ¿Cirugía estética? Algo así.

La idea es llegar a un sitio como este:

image

Espero que les resulte útil.

1. Esquema de colores

En un primer paso vamos a crear un esquema de colores que se adapte a nuestras necesidades. Para ello utilizamos Power Point 2010. Los pasos a seguir son:

1) Ir a la sección DESIGN

2) Dentro de COLOR abrir el combo y elegir CREATE NEW THEME COLORS

3) Elegir los colores de acuerdo a nuestra necesidades:

image

4) Dentro de FONTS abrir el combo y elegir CREATE NEW THEME FONTS

image

5) Exportar el tema. Dentro de ALL THEMES elegir SAVE CURRENT THEME

6) Agregar el tema a nuestra colección de sitios dentro de THEME GALLERY.

7) Ir a nuestro sitio y seleccionar el nuevo tema creado.

 

2. CSS

En el segundo paso vamos a agregar nuestra hoja de estilos para hacer algunos cambios en el aspecto de nuestro sitio. Existen varios métodos para realizar esto, con o sin programación. En mi caso optaré por agregar una línea de código en la página maestra del sitio utilizando SharePoint Designer.

1) Creamos una nueva hoja de estilos con nuestro editor preferido y subimos el archivo “CSS” a la librería STYLE LIBRARY.

2) Abrimos nuestro sitio en SharePoint Designer. Dentro de la sección MASTER PAGES editamos V4.MASTER. Importante: no confundir, no editar DEFAULT.MASTER. Recuerden que se utiliza en los casos en que estemos migrando sitios desde la versión 2007 de SharePoint únicamente.

En nuestro caso vamos a agregar la siguiente línea de código:

<SharePoint:CssRegistration name="<% $SPUrl:~sitecollection/Style Library/SURPOINT.css %>" After="corev4.css" runat="server"/>

Esto puede variar de acuerdo a varios puntos. Les recomiendo leer está entrada de blog para definir la mejor variante para sus proyectos: http://erikswenson.blogspot.com/2010/01/sharepoint-2010-css-references-in.html

Salvamos:

image

Y listo, nuestro sitio ya posee una hoja de estilos adicional. Ahora el próximo paso es empezar a “jugar” con los estilos.

 

3. Jugar con los estilos

Una de las maneras más sencillas para detectar las clases a modificar es utilizar las herramientas para el desarrollador de Internet Explorer. Presionar F12 y utilizar el selector de elementos para detectar estilos aplicados, tal como se ve en la imagen:

image

También pueden utilizar Firebug de Firefox:

image

Una vez que encuentre los estilos, sólo resta empezar a aplicarlos. A continuación les dejo algunos ejemplos de los estilos que he utilizado en este caso. Siempre tengan cuidado al usar estilos porque pueden estar afectando alguna funcionalidad estándar de SharePoint. Y lo que funciona en un sitio podría no funcionar en otro. Eso depende mucho de nuestra parametrización.

Si van a trabajar con la Ribbon, no olviden que tienen que utilizar la “contrabarra”. Más información en: http://surpoint.blogspot.com/2011/12/los-puntos-en-los-ids-de-la-ribbon-de.html.

/***************************************/
/* Ocultamiento de secciones en Ribbon */
/***************************************/

/* Edición de Página */
#Ribbon\.WebPartPage, #Ribbon\.WebPartPage-title {
    display: none;
}

/* Configuración de Lista */
#Ribbon\.List, #Ribbon\.List-title {
    display: none;
}

/* Configuración de Librería */
#Ribbon\.Library, #Ribbon\.Library-title {
    display: none;
}

/******************************/
/* LOOK & FEEL BARRA SUPERIOR */
/******************************/

/* Fondo*/
.s4-title {
    background-image: url("/SurPoint/Style%20Library/PS.png");
    background-repeat: no-repeat;
    background-position-x: 10px;
    background-position-y: 23px;
}

/* Ocultar logo */
.s4-titlelogo {
    display: none;
}

/* Posicionar título */
.s4-titletext {
    position: relative;
    left: 206px;
}

/* Posicionar descripción de la lista */
.ms-listdescription {
    position: relative;
    left: 2px;
    top: 1px;
    font-family: Arial !important ;
    font-size: 7pt !important;
}

/* Ocultar global navigation */
#zz16_TopNavigationMenuV4 {
    display: none
}

/* Ocultar búsqueda */
#s4-searcharea {
    display: none
}

/* Formato y posición del título del sitio */
.s4-title H1 A {
    font-family: Segoe UI Light;
    font-size: 35px;
    color: #547590
}
.s4-title H1 {
    position: relative;
    top: 12px;
}

/* Formato y posición del sub-título del sitio y los separadores*/
.s4-titlesep {
    position: relative;
    top: 3px;
}
.s4-title H2 {
    position: relative;
    top: 5px;
}
.s4-title H2 {
    font-size: 20px;
    font-family: Segoe UI Light;
}

/* Posición de iconos sociales */
.s4-socialdata-notif {
    position: relative;
    top: 15px;
}

/* Quitar línea que separa la global navigation del título del sitio */
body #s4-topheader2 {
    border-top-style: none;
}

/* Ocultar Site Settings*/
.ms-siteactionsmenu {
    display: none;
}

/*****************************/
/* LOOK & FEEL INICIO RAPIDO */
/*****************************/

/* Inicio rápido: fondo */
body #s4-leftpanel-content {
    background-color: #547590;
}

/* Formato de los ítems de primer nivel */
.s4-ql UL.root > LI > .menu-item {
    color: white;
    font-family: Segoe UI Light;
    font-size: 14px;
    font-weight: bold;
}

/* Formato de los ítems de segundo nivel */
.s4-ql UL.root UL > LI > A {
    color: white;
    padding-left: 20px;
    font-family: Segoe UI Light;
    font-size: 12px;
}

/* Ocultar view all site content*/
#ctl00_PlaceHolderLeftNavBar_PlaceHolderQuickLaunchBottom_PlaceHolderQuickLaunchBottomV4_idNavLinkViewAllV4 {
    display: none;
}

/* Formato de papelera */
#ctl00_PlaceHolderLeftNavBar_PlaceHolderQuickLaunchBottom_PlaceHolderQuickLaunchBottomV4_idNavLinkRecycleBin {
    color: white;
    font-family: Segoe UI Light;
    font-size: 12px;
    position: relative;
    top: 7px;
}
 
 
/********************/
/* LOOK & FEEL BODY */
/********************/

/* Derecha */
.ms-WPBorderBorderOnly, .ms-WPBorderBorderOnly .ms-alternating {
    background-color: #F2F0E7;
    border: none !important;
}
.ms-listviewtable .ms-vb2, .ms-listviewtable .ms-vb-user {
    padding-right: 8px;
    padding-left: 8px;
    padding-top: 8px;
    padding-bottom: 8px;
}
.ms-WPBorderBorderOnly .ms-vh2-nograd, .ms-WPBorderBorderOnly .ms-viewheadertr .ms-vb {
    font-weight: bold;
}

/* Izquierda */
.s4-wpcell .s4-wpTopTable {
    border-top-color: #F2F0E7;
    border-right-color: #F2F0E7;
    border-bottom-color: #F2F0E7;
    border-left-color: #F2F0E7;
}

4. Cuando CSS no alcanza

Por supuesto encontrarán casos en las hojas de estilo y los temas no alcanzan. Aquí es muy común utilizar soluciones de jQuery y JavaScript, pero esto ya escapa al alcance de este artículo.

Hasta la próxima!

martes, 13 de diciembre de 2011

Los puntos en los IDs de la Ribbon de #SharePoint 2010 #CSS

Quizá en algún momento se preguntaron como ocultar controles de las Ribbon de SharePoint 2010 utilizando sólo CSS. Por supuesto que esto es posible y bastante simple, pero hay un pequeño detalle que puede llevar a la confusión: los IDs de la Ribbon contienen puntos.

Por ejemplo:

<span class="ms-cui-ctl-large " id="Ribbon.ListItem.New.NewListItem-Large" aria-describedby="Ribbon.ListItem.New.NewListItem_ToolTip" unselectable="on" mscui:controltype="">

Entonces, el detalle, es que hay que usar la contrabarra antes del punto dentro de la CSS. Por ejemplo

#Ribbon\.ListItem\.New\.NewListItem-Large
{
display:none;
}
Gracias al post de Doug Ware por poner algo de luz sobre este tema. Pueden leerlo en: http://online.appdev.com/edge/blogs/doug_ware/archive/2011/08/02/hiding-a-sharepoint-ribbon-button-with-css.aspx
Hasta la próxima!

jueves, 8 de diciembre de 2011

HTML en una columna dentro de una vista de #SharePoint con #JavaScript o #jQuery

Hace unos días preguntaban en un foro cómo agregar HTML dentro de una columna para generar cierto comportamiento en una vista. Hay varias soluciones y creo que dependen un poco del objetivo que se persiga.

Mi primera recomendación es el método mediante el cual se escribe el código HTML en una columna calculada y luego de hace el render mediante JavaScript o jQuery. Se usó mucho durante un tiempo, creo que por su facilidad de implementación y su potencial. La famosa HTML calculated column. Acá los enlaces:

http://blog.pathtosharepoint.com/2008/09/01/using-calculated-columns-to-write-html/

http://www.pathtosharepoint.com/HTMLcc/default.aspx

https://www.nothingbutsharepoint.com/sites/eusp/Pages/jquery-for-everyone-html-calculated-column-plugin.aspx

Si queremos profundizar un poco más, otras soluciones que no necesitan ser instaladas en el servidor pueden implementarse con jQuery o Client Object  Model. Un script muy básico de jQuery que se puede usar para tomar de base y luego hacerlo todo lo complejo que necesitemos se encuentra en: http://www.sharepointkings.com/2010/04/sharepoint-custom-so-called-kpi.html

Client Object Model es quizá lo más potente. Sólo funciona en SharePoint 2010. Acá les dejo una introducción: http://surpoint.blogspot.com/2011/10/introduccion-al-modelo-de-objetos-de.html

Espero que les sea útil. Pueden ver la discusión en el foro en este enlace: http://social.msdn.microsoft.com/Forums/es-ES/mossdeves/thread/42671890-3f5c-49ee-b432-17282c1e3e5a/ (Html en una custom list)

Hasta la próxima!

lunes, 5 de diciembre de 2011

Aplicaciones de servicio en SharePoint 2010

Tres artículos más que interesantes de tres que saben:

Juan Carlos González
Gustavo Vélez
Fabián Imaz

Les dejo los enlaces:

Qué los disfruten!

miércoles, 30 de noviembre de 2011

Earned Value en #Project 2007

Revisando el tema de “valor ganado” encontré un par de videos que explican en forma bastante didáctica cómo trabajar con este tema en Project 2007. Me pareció un material muy interesante para compartir, así que aquí les dejo los videos. Como siempre, si tienen algún material para recomendar, será bienvenido.

Gracias al autor Jerry Robbins (www.jerryrobbins.net/evm)

martes, 29 de noviembre de 2011

#SharePoint redondeado

Les dejo algunos enlaces que contienen ideas de como generar “esquinas redondeadas” en SharePoint:

Ambos surgieron luego de un intercambio en los foros que pueden consultar en este enlace: http://social.technet.microsoft.com/Forums/en-US/sharepoint2010customization/thread/e25c901c-264b-498d-b944-97c8565a9621/ (How to replace QuickLaunch SharePoint 2010).

Espero les sea útil y si conocen algunas otras soluciones, les agradezco que las compartan.

Saludos!

Copio algunas imágenes de los posts originales para que vean de qué se trata:

miércoles, 23 de noviembre de 2011

SharePoint 2010 extended migration db attach report

 

Hola a todos! Les paso una pequeña aplicación que nos permite obtener mayor información relacionado con el reporte de exportación de SharePoint 2007 a SharePoint 2010 que se ejecuta con PowerShell (Test-SPContentDatabase).

Aquí el link (en inglés): SharePoint 2010 extended migration db attach report

En mi caso, me ayudó en determinar qué ID corresponde a cada Web Part y dónde estaba instalada en los diferentes sitios de proyectos.

Espero les sea de ayuda.

Saludos, Sebastián.

Choose the right business intelligence technology to suit your style (white paper)

 

¿Excel Services? ¿Reporting Services?

¿PerformancePoint Services? ¿Excel?

¿Report Builder? ¿Power Pivot?

 

Microsoft ofrece (por suerte) un buen conjunto de herramientas para BI y Reporting en general. Muchas de ellas (por suerte también) están integradas con SharePoint.

Pero, cómo determinar cuál es la que nuestro cliente necesita??

Un buen primer paso es leer este paper de Microsoft que pone bastante claridad a una zona un tanto oscura para los recién llegados.

Lectura recomendada!

Pueden descargarla desde: http://technet.microsoft.com/en-us/library/gg537617.aspx (Choose the right business intelligence technology to suit your style (white paper))

image

image

Seguridad a nivel de ítem en una lista

Muchas veces nos consultan sobre cómo aplicar seguridad a nivel de ítem de lista, basado en el valor de una columna. En estos se puede crear un manejador de eventos que modifique la seguridad del elemento.

Un muy buen material para empezar con manejadores de eventos en SharePoint 2007 lo pueden encontrar en http://msdn.microsoft.com/en-us/magazine/cc163318.aspx

La consulta original en el foro la pueden encontrar en este enlace: http://social.msdn.microsoft.com/Forums/en-US/sharepointcustomization/thread/9769e32c-0a9a-42b6-bdc0-01ceaa2938c3/ (Creating a custom View based on column in a list)

Cualquier consulta adicional me avisan. Saludos!

Colores en estados de vistas de SharePoint

Otra pregunta que suele aparecer en los foros es cómo manejar un color o un gráfico que indique el estado de los elementos en una vista de lista. Mi sugerencia en estos casos es utilizar lo propuesto en el blog de SharePoint Kings: http://www.sharepointkings.com/2010/04/sharepoint-custom-so-called-kpi.html

Es fácil de implementar con una CEWP y un poco de jQuery.

Aquí pueden encontrar la consulta en el foro: http://social.msdn.microsoft.com/Forums/en-US/sharepointcustomization/thread/38a64c42-e9b4-457e-9fe1-51c42e1fcf2e/ (police field values(the color))

Espero les sea  útil :-)

Filtros por URL aplicados a 2 WebParts

Hace poco hacían una pregunta en un foro sobre cómo aplicar el filtro por URL a dos elementos web dentro de la misma página de elementos web en SharePoint 2007. Este era el ejemplo:

https://......aspx/?View=%7BF7FE833E%2D59D4%2D4AB5%2D9BD8%2D606458AFB374%7D&FilterField1=Phase&FilterValue1=example.

La respuesta es que hay que sacar el parámetro “view” de la URL, pero no olvidar que en este caso, el mismo filtro aplicará a los dos elementos web.

Pueden ver la consulta en: http://social.msdn.microsoft.com/Forums/en-US/sharepointcustomization/thread/4888eb8f-3d39-4db1-920b-61ceb4dbb802/ (how to filter two lists in the same page)

Espero les sea útil.

Saludos!

lunes, 21 de noviembre de 2011

Topologías #SharePoint Server 2010

Un poster de Microsoft que describe como armar y escalar diferentes topologías de granjas de SharePoint. Pueden descargarlo desde este enlace: http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=6096.

image

jueves, 17 de noviembre de 2011

Calcular el tamaño de las bases de datos de #SharePoint

Leyendo el blog del amigo Mario Cortés Flores (http://geeks.ms/blogs/mcortes), me encontré con un interesante artículo que nos ayuda a detectar las bases de datos que estamos utilizando en SharePoint y el tamaño que ocupan.

Lo interesante es que Mario nos cuenta qué scripts utilizar para calcular estos tamaños y además qué tipo de problemas podemos encontrar y cómo solucionarlos: por ejemplo sitios que ocupen más espacio de lo lógico.

Un tema muy interesante que les recomiendo que lean en este enlace: http://geeks.ms/blogs/mcortes/archive/2011/03/08/tips-sharepoint-2010-calcular-el-tama-241-o-de-nuestras-bases-de-datos.aspx.

miércoles, 16 de noviembre de 2011

Problemas con los controles Active X en Project Server 2007

Último momento. Transcribo:

Queríamos haceros partícipes de un problema detectado, que  nos puede dar unos cuantos dolores de cabeza, después de instalar las últimas actualizaciones disponibles. Pongamos que hemos terminado de instalar el Service Pack 3 y la actualización acumulativa de Octubre 2011, y nos vamos a nuestro Centro de Proyectos, donde se nos indica que debemos descargar una versión actualizada de los controles ActiveX. Procedemos a realizar dicha descarga, y vemos que a partir de ese momento ya no podemos acceder más a las páginas que dependan de los componentes ActiveX mencionados.

Se trata de un problema conocido, en el que se está trabajando. Mientras se resuelve dicho comportamiento de manera oficial, queríamos haceros llegar este método alternativo para arreglarlo. Es justo agradecer a Marc Biarnes por su excelente trabajo en esta solución, la cual fué publicada en su blog esta mañana:

http://blogs.technet.com/b/frenchpjblog/archive/2011/11/16/3465440.aspx

Para evitar que se revise la versión de los controles Active X, y nos cause el problema mencionado, podemos hacer lo siguiente:

Continuar leyendo en: http://blogs.technet.com/b/elfarodeprojectserver/archive/2011/11/16/project-server-2007-problema-controles-active-x.aspx.

Crear un ítem y redireccionar a la pantalla del ítem creado

Una pregunta bastante común en los foros es si es posible que luego de crear un ítem en una lista, SharePoint nos redireccione en forma automática a la pantalla DispForm o EditForm del ítem creado.

Si bien este no es el comportamiento estándar de SharePoint, otra ves Alexander Bautz (http://sharepointjavascript.wordpress.com) nos propone una solución que a continuación resumo:

  • Agregar una CEWP en NewForm para realizar el direccionamiento a la pantalla DispForm o EditForm.
  • Agregar una CEWP en la página DispForm que sólo se ejecuta cuando el ID es 0. Lo que hace es buscar el último elemento creado por el usuario y enviarnos a la pantalla correspondiente.

Un enfoque muy interesante que pueden descargar desde el blog del autor en http://sharepointjavascript.wordpress.com/2011/04/23/redirect-from-newform-to-dispform-or-editform/.

Espero les sea útil. Hasta la próxima!

Establecer o leer valores en las pantallas estándar de SharePoint

Una de las problemáticas más comunes que interesan resolver en SharePoint es cómo establecer u obtener un valor en las pantallas estándar de SharePoint sin romperlas. Nos referimos a estas pantallas:

  • NewForm
  • EditForm
  • DispForm

Existen algunos enfoques para realizar esto utilizando código JavaScript. Uno de los más nombrados es aquel sobre el que escribimos hace mucho en este artículo: http://surpoint.blogspot.com/2010/04/preseleccionar-u-ocultar-valores-en-las.html (data del año 2007).

Existe otro enfoque, que aún no he tenido tiempo de probar, pero que está desarrollado por Alexander Bautz (http://sharepointjavascript.wordpress.com), un astro de JavaScript, jQuery y SharePoint desde mi humilde punto de vista.

El enfoque que propone Alexander es muy interesante especialmente por las opciones que utilizan sus funciones:

  • getFieldValue
  • setFieldValue

image

image

Los invito a leer el artículo y probar esta herramienta que pueden encontrar en:

http://sharepointjavascript.wordpress.com/2010/05/28/get-or-set-value-for-sharepoint-field-in-newform-editform-and-dispform-get-only-in-dispform/

Espero que les sea útil. Hasta la próxima!

Project Server ¿Cuál es tu opinión acerca del caché?

Quien no haya tenido alguna vez problemas con el caché de Project Server que lance la primera piedra… Pero ¿cómo manejamos estos problemas? ¿Borramos el caché todos los días?

Brian Smith escribió un artículo sobre el tema y desde el blog de “El Faro de PS” hicieron una traducción en la que nos invitan a opinar. Entonces me hago eco, transcribo lo publicado en el Faro y les consulto a los lectores:

¿Cómo resuelven ustedes los problemas de caché de Project Server?

Transcribo desde http://blogs.technet.com/b/elfarodeprojectserver/archive/2011/10/17/project-server-2010-cuidadito-con-la-cache-de-project.aspx

Buenas,

Hace una semana Brian Smith publicó este excelente post, y nos ha parecido conveniente traducirlo, y publicarlo en este blog también:

http://blogs.msdn.com/b/brismith/archive/2011/10/10/project-server-2010-don-t-trash-the-cache.aspx

“Sé que hay mucha historia detrás de este hábito, y para aquellos que usabais Project Server 2007 desde los inicios tempranos, ha habido varios “desafíos” como la saga del “check-in pending” que motivó a mucha gente a acostumbrarse a borrar la caché de Project periódicamente. Arreglamos este problema, luego lo volvimos a arreglar (y otra vez incluso) así que no debiéramos seguir teniendo problemas, al dejar a la caché hacer su trabajo. Independientemente, mucho clientes con los que trato, están eliminando sistemáticamente proyectos de la caché local antes de abrirlos, y después de cerrarlos. ?¡¿Por qué?!? Su cometido es importante (hace que no tengas que solicitar esos datos otra vez al servidor, lo cual reducirá tráfico de red, y el impacto que tiene en el servicio web, y la base de datos, de tal manera que puedan hacer “cosas útiles”…

También añadiré otro concepto erróneo que he escuchado a varios clientes – la elección desde dónde cargar el proyecto – ¿cache o servidor? Pero no tenemos opción – Project lo cargará desde la caché, si está ahí, y luego cargará las piezas incrementales que necesite desde el servidor, para que tengamos la versión actual de ese proyecto. En la captura de pantalla de abajo:

20111017-103518-0001

podemos leer ‘Recuperar la lista de todos los proyectos de Project Server’. Lo que no aparece – ‘…y abrir cualquiera que elija después de pulsar sobre este enlace desde el servidor, e ignora la caché local.’ No tenemos este capacidad de elección, y no necesitamos elegir.

Estoy seguro much@s de vosotr@s no habrá llegado a esta parte del post sin haber pulsado antes sobre la opción de mandar un comentario para contarme todos los problemas que estáis teniendo (y estoy seguro que algun@ seguirá teniendo problemas.) Primero de todo debemos comprobar que tengamos instalado las últimas actualizaciones acumulativas y service pack. Si realmente sigues teniendo problemas, a no ser que borres la caché local, entonces necesitaremos escuchar / ver lo que pasa, de tal manera que podamos arreglar el problema más que teneros malgastando vuestro tiempo y recursos, haciendo algo que no debierais necesitar.

Hay que admitir que puedan existir veces donde haya ingenieros de soporte que os pidan que eliminemos la caché local, para solucionar problemas específicos a determinados escenarios. La caché tiene “inteligencia” que le permite decidir que pueda tener datos incorrectos – y decidirá traer una copia nueva de datos desde el servidor (síntomas de esto serán varios archivos en la carpeta de la caché con los números 1,2, 3 etc al final.) Hay que decir también que hay unos cuantos bugs en los cuales hemos trabajado recientemente, los cuales SÓLO aparecen cuando el usuario ha limpiado la caché….

Así que, por favor, si has decidido programar de manera rutinaria borrar la caché, decide parar con esto, o habla con la gente de IT, o de jefaturas de proyectos, y pregúntales por qué se hace esto – y si necesitamos arreglar algo, podemos entonces echarle un vistazo”

Bueno, espero os resulte de interés, y sigamos este consejo de Brian.

Gracias, un saludo

Jorge Puig

sábado, 5 de noviembre de 2011

Project Server y PowerShell

Una de las posibilidades más interesantes respecto a la administración de Project Server 2010 es que ahora podemos utilizar PowerShell para algunas tareas de configuración. Les dejo el enlace de MSDN con la referencia:

http://technet.microsoft.com/en-us/library/ee890097.aspx.

Transcribo una parte:

Get-SPProjectWebInstance

Returns an instance of a Project Server Service application.

New-SPProjectServiceApplication

Creates a new Project Server Service application.

New-SPProjectServiceApplicationProxy

Creates a proxy for a Project Server Service application.

New-SPProjectSiteAdministrator

Creates a Microsoft Project Server 2010 administrator account for the requested user.

New-SPProjectWebInstance

Creates a new instance of a Project Server Service application.

Remove-SPProjectSiteAdministrator

Removes an account from a Microsoft Project Web App (PWA) instance.

Remove-SPProjectWebInstance

Deletes an instance of a Project Server Service application.

Set-SPProjectServiceApplication

Sets properties of a Project Server Service application.

Set-SPProjectWebInstance

Sets the properties of an instance of a Project Server Service application.

Upgrade-SPProjectWebInstance

Upgrades a single Project Web App site.

Qué lo disfruten!

jueves, 3 de noviembre de 2011

viernes, 28 de octubre de 2011

Scale test report for very large scale document repositories (white paper)

Nuevo paper de Microsoft. Pueden descargarlo desde: http://technet.microsoft.com/en-us/library/hh547464.aspx.

Transcribo:

This white paper provides details about a test lab that was run at Microsoft to show large scale SharePoint Server 2010 content databases. It includes information about how two SharePoint Server 2010 content databases were populated with a total of 120 million documents over 30 terabytes (TB) of Microsoft SQL Server databases. It details how this content was indexed by FAST Search Server 2010 for SharePoint. It describes load testing that was performed on the completed SharePoint Server and FAST Search Server 2010 for SharePoint, shows results from that testing, and includes conclusions about the results from the testing.

Download the white paper: Scale Test Report for Very Large-Scale Document Repositories(http://go.microsoft.com/fwlink/?LinkId=229493).

image

Copiar listas de SharePoint con PowerShell

Vean este interesante artículo: http://get-spscripts.com/2011/10/copy-sharepoint-lists-and-document.html.

Transcribo:

This article is the first in a series on exporting and importing SharePoint objects using the Content Deployment API and PowerShell. I’m not going to cover the API itself, as there are lots of articles doing this already, notably this series from Stefan Goßner and MSDN, which I would urge you to check out for more details.

You can achieve some of this functionality with the Export-SPWeb and Import-SPWeb cmdlets provided with SharePoint 2010, but a) these are not available with SharePoint 2007 and b) using the Content Management API directly provides access to extra capabilities. I have written these scripts to work on SharePoint 2007 and 2010 (WSS and Foundation included), although to date I have only tested them on SharePoint Server 2010.

This first article provides a couple of functions for exporting a list or document library and all items contained within it from one site and importing it into another site. The destination site can be in a different site collection, web application and even farm. I have provided command parameters for what I think will be the most popular configuration options, but as we have full access to the API, the scripts can be adapted to suit requirements.

Continuar leyendo en: http://get-spscripts.com/2011/10/copy-sharepoint-lists-and-document.html.

miércoles, 26 de octubre de 2011

Y llegó el SP3 de SharePoint 2007…

Ayer fue anunciada la liberación del Service Pack 3 para la familia de productos de SharePoint 2007, incluyendo a Project Server.

Pueden leer la información en http://blogs.technet.com/b/office_sustained_engineering/archive/2011/10/25/office-2007-and-sharepoint-2007-service-pack-3-availability.aspx.

Transcribo:

We are pleased to announce the availability of Service Pack 3 (SP3) for our 2007 family of products.

This service pack contains all the Cumulative Updates and Public Updates for Office 2007 that have shipped since SP2 for both the Office client suites and applications, and the SharePoint server applications. The Project Server updates are included along with the SharePoint updates in the Office Servers SP3 updates. SP3 also contains additional new fixes which are described here. For a list of changes for each product, please refer to their individual KBs. The KB Articles referenced below will be updated throughout the day to include the live links to the published articles.

Starting today, SP3 is available from the Download center. The Downloads Table below provides links to the new packages for SP3. If you have installed all Office Automatic Updates, you will also see SP3 available as a manual download from Microsoft Update. After a 90 day period, SP3 will be offered as an automatic update through Microsoft Update.

Our deployment guidance for 2007 servers remains consistent with the guidance we have provided in the past. Office Client deployment for SP3 will also remain consistent with prior guidance. You can read more information in our previous post here.

Download Links for 2007 Service Pack 3

Seguir leyendo en: http://blogs.technet.com/b/office_sustained_engineering/archive/2011/10/25/office-2007-and-sharepoint-2007-service-pack-3-availability.aspx.

Introducción al Modelo de Objetos de Cliente de SharePoint 2010

Introducción

Septiembre 2011[ Artículo publicado originalmente en la revista CompartiMOSS número 9: http://jpussacq.me/2011/09/25/compartimoss-nmero-9-septiembre-2011/]

Trabajar con SharePoint implica conocer un conjunto de tecnologías y enfoques de programación que necesitan ser balanceados para obtener los mejores resultados y la mejor inversión del presupuesto de nuestros clientes. Muchas veces debemos combinar alternativas como:

  • Configuración de SharePoint
  • SharePoint Designer
  • Visual Studio
  • Herramientas (Excel Services o InfoPath por ejemplo)

Desde el punto de vista de programación, en la versión 2007 ya contábamos con un robusto modelo de objetos para programar en el servidor. Sin embargo el trabajo se volvía algo más complicado cuando necesitábamos interactuar con SharePoint desde el cliente, o cuando los administradores de SharePoint no nos permitían instalar componentes en el servidor, por el riesgo de desestabilizar la granja. Así surgieron gurúes y especialistas que se caracterizaban por:

  • Aprovechar los servicios web de SharePoint, no muy amigables.
  • Hacer maravillas con JavaScript y jQuery.
  • Hacer cosas increíbles con SharePoint Designer.

Estos métodos por momentos daban muy buenos resultados, otras veces no llegaban a convencer.

Pero esos días han terminado para el programador de SharePoint. Porque en la versión 2010 tenemos muchas mejoras y una de las que me parece más interesante (no es la única, ver imagen más abajo) es el Modelo de Objetos de Cliente de SharePoint 2010.

Sobre él, haremos hoy una breve introducción, simplemente para que el lector comience a imaginar todo lo que puede hacer…

Qué lo disfruten!

Platform stack for SharePoint 2010

Fuente de esta imagen: http://msdn.microsoft.com/en-us/library/gg552610.aspx

 

El modelo de objetos de cliente de SharePoint 2010

Lo primero que debemos saber es que el modelo de objetos de cliente de SharePoint 2010 es algo nuevo e introduce tres variantes:

  • Administrado
  • Silverlight
  • JavaScript

Cada una de estas variantes está contenida en una librería particular:

  • Administrado: Microsoft.SharePoint.Client.dll y Microsoft.SharePoint.ClientRuntime.dll (carpeta ISAPI)
  • Silverlight: Microsoft.SharePoint.Client.Silverlight.dll y Microsoft.SharePoint.Client.Silverlight.Runtime.dll (carpeta LAYOUTS\ClientBin)
  • JavaScript: SP.js (carpeta LAYOUTS)

Los tres modelos interactúan con SharePoint a través del servicio Client.svc. Los desarrolladores programamos entonces contra el modelo de objetos de cliente, pero las operaciones son enviadas en forma de lote como XML al servicio Client.svc. El servicio Client.svc ejecuta las operaciones contra el modelo de objetos del servidor y los resultados son enviados nuevamente al cliente en la forma de JavaScript Object Notation (JSON).

La siguiente imagen explica cómo se implementa (en SharePoint Online por ejemplo):

SharePoint client object models architecture

Fuente de esta imagen: http://msdn.microsoft.com/en-us/library/gg317460.aspx

Hay mucho, mucho más. Pero prefiero detenerme acá con la teoría y pasar a un ejemplo terrenal. Ya habrá otros artículos para profundizar o ustedes tendrán tiempo de consultar MSDN o algún libro.

¿MSDN? Aquí el enlace: http://msdn.microsoft.com/en-us/library/ee537247.aspx.

 

Un caso sencillo

Hasta antes de SP 2010, acceder al modelo de objetos de SharePoint desde JavaScript no era una opción. Imaginen sólo unos minutos todo lo que podemos hacer ahora a nivel de interfaces de usuario. Adicionen a eso que en principio no necesitamos ningún permiso especial del administrador de la granja de SharePoint, lo cual también significa que el modelo de objetos de cliente es más limitado que el del servidor.

Voy a darles un ejemplo muy sencillo para que vean el potencial de este modelo. Espero en próximos artículos mostrar ejemplos más complejos, pero siempre es conveniente arrancar por algo parecido al “hola mundo”.

En este caso vamos a:

  1. Insertar un elemento web de edición de contenido (CEWP).
  2. Leer los ítems de una lista del sitio raíz utilizando el modelo de objetos de cliente para JavaScript.
  3. Aplicar algo de estilo a través de CSS.

Sí, leyeron bien, vamos a leer datos de SharePoint a través de su modelo de objetos desde dentro de la simple y querida CEWP.

 

Paso 1: insertando la CEWP

Vamos a repasar rápidamente como insertar una CEWP, ya que hay algunos cambios (mejoras) en SharePoint 2010. Lo más interesante es que el contenido de la CEWP lo podemos tener almacenado en un archivo de texto, lo cual facilita el mantenimiento del código. En nuestro caso vamos a agregar un archivo llamado “CEWP.txt” dentro de una librería de documentos llamada “Scripts” tal como muestra la siguiente imagen:

image

 

Luego vamos a la página principal de nuestro sitio, hacemos clic en “Page” en la cinta y luego “Edit” para editar la página. Dentro de “Editing Tools”, hacemos clic en “Insert” y luego en “Web Part”:

image

 

Luego elegimos “Media and Content" / Content Editor” e insertamos el elemento web:

image

 

Finalmente editamos las propiedades del elemento web, en donde completaremos la ruta y el nombre del archivo que contiene el código de nuestra CEWP.

image

 

Paso 2: codificando

Abrimos nuestro archivo “CEWP.txt” desde algún editor, como puede ser el humilde Bloc de Notas, directamente desde la librería de SharePoint, insertamos el código que muestro a continuación y luego grabamos.

Nota: más adelante explicaré el código.

<div id="div1"></div>

<script type="text/javascript">

ExecuteOrDelayUntilScriptLoaded(cargar_productos, "sp.js");

function cargar_productos() {
    contexto = new SP.ClientContext.get_current();
    var lista = contexto.get_site().get_rootWeb().get_lists().getByTitle('Productos');
    var query = new SP.CamlQuery();
    query.set_viewXml('<View><ViewFields><FieldRef Name="Title"/></ViewFields></View>');
    this.items = lista.getItems(query);
    contexto.load(items);
    contexto.executeQueryAsync(Function.createDelegate(this, this.cargaok), Function.createDelegate(this, this.cargamal));
    }

function cargaok(sender, args) {
    var itemslista = this.items.getEnumerator();
    var strHtml ="<table id='box-table-a'><thead><tr><th scope='col' id='box-table-a'>Productos</th></tr></thead><tbody>";   

    while (itemslista.moveNext()) {
        var elitem = itemslista.get_current();
        strHtml += "<tr><td>";
        strHtml += elitem.get_item('Title');
        strHtml += "</td></tr>";
        }

    strHtml +="</tbody></table>";   
    document.getElementById("div1").innerHTML = strHtml;
    }
 
function cargamal(sender, args) {
    alert('ERROR: ' + args.get_message() + '\n' + args.get_stackTrace());
}

</script>

<style>

Aquí agregamos los estilos que más nos gusten. En el ejemplo, yo he tomado los estilos propuestos en este enlace:

http://coding.smashingmagazine.com/2008/08/13/top-10-css-table-designs/

Estos estilos mapean con los identificadores creados en el código JavaScript anterior:  id='box-table-a' para los <table> y <th>

Nota: no es este el lugar ideal para agregar estilos, pero prefiero no agregar complejidad en este ejemplo y que además el lector vea el potencial de la CEWP.

</style>

 

Paso 3: el resultado

Una vez que hayamos pegado nuestro código en la página principal de nuestro sitio, hacemos clic en “Home” y luego vemos los resultados, tal como grafica la siguiente imagen. Observen como sin ningún código de servidor hemos hecho una consulta a datos residentes en una lista de SharePoint:

image

 

Paso 4: entendiendo el código

Bien, vamos ahora a analizar un poco el código. Recuerden que estamos viendo un caso particular de modelo de objetos de cliente para javascript, el código puede variar si el JavaScript está por ejemplo en un página de aplicación, o si usamos Silverlight o una aplicación con código .net administrado.

Empecemos por analizar la primera línea importante de código:

ExecuteOrDelayUntilScriptLoaded(cargar_productos, "sp.js");

Esta es la instrucción que utilizamos para garantizar que SP.js esté cargada antes de que nuestra función comience a acceder a los datos de SharePoint a través del modelo de objetos de cliente.

Más información en http://msdn.microsoft.com/en-us/library/ff411788.aspx.

 

Lo segundo es obtener el contexto. A diferencia de Silverlight y el código administrado, no necesitamos especificar la URL:

contexto = new SP.ClientContext.get_current();

 

En la siguiente porción de código vamos a acceder a una lista. Si bien no podemos acceder a una lista de otra colección de sitios, si podemos acceder a una lista del sitio raíz :-), que es lo que estamos haciendo en este caso:

var lista = contexto.get_site().get_rootWeb().get_lists().getByTitle('Productos');

 

Luego entramos en un terreno un poco más conocido, preparamos una consulta CAML, en este caso para extraer el campo título de todos los ítems de esta lista:

var query = new SP.CamlQuery();
query.set_viewXml('<View><ViewFields><FieldRef Name="Title"/></ViewFields></View>');
this.items = lista.getItems(query);
contexto.load(items);

 

Por último, vamos a pedir al servidor que ejecute nuestra petición. En JavaScript sólo podemos hacerlo en forma asincrónica, motivo por el cual debemos indicarle el nombre de las funciones que llamaremos si nuestra ejecución es exitosa o no:

contexto.executeQueryAsync(Function.createDelegate(this, this.cargaok), Function.createDelegate(this, this.cargamal));

Más información en: http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.client.clientruntimecontext.executequeryasync.aspx

 

En caso que nuestro código se ejecute en forma correcta, lo que haremos es recorrer la lista y mostrar los resultados en una tabla HTML:

function cargaok(sender, args) {
var itemslista = this.items.getEnumerator();
var strHtml ="<table id='box-table-a'><thead><tr><th scope='col' id='box-table-a'>Productos</th></tr></thead><tbody>";

while (itemslista.moveNext()) {
var elitem = itemslista.get_current();
strHtml += "<tr><td>";
strHtml += elitem.get_item('Title');
strHtml += "</td></tr>";
}

strHtml +="</tbody></table>";
document.getElementById("div1").innerHTML = strHtml;
}

En caso de error, mostramos el mensaje por pantalla:


function cargamal(sender, args) {
alert('ERROR: ' + args.get_message() + '\n' + args.get_stackTrace());
}


Ahí termina nuestro código. Es un código simple en el que me tomé algunas licencias principalmente para que puedan ver el potencial del modelo de objetos de cliente, y como dije anteriormente, imaginar todo lo que podrían hacer…

 

Conclusiones

Creo que el modelo de objetos de cliente es uno de los cambios más importantes que la versión 2010 de SharePoint implementa frente a su antecesor en cuanto a sus capacidades de desarrollo. No es el único, también están las nuevas capacidades de flujos de trabajo en SharePoint Designer, Power Shell (cool), la integración con Visual Studio y las Sandboxed solutions (más cool), por nombrar sólo algunas.

Como siempre digo, SharePoint es una excelente plataforma para construir aplicaciones, y cada vez lo es más, afortunadamente para los que nos dedicamos a esto

:-)

Hasta la próxima!

 

Juan Pablo Pussacq Laborde

Sitio  personal: http://jpussacq.me/

Twitter: http://twitter.com/jpussacq

Blog: http://surpoint.blogspot.com/

martes, 25 de octubre de 2011

Mi blog en Facebook y Twitter

Para los usuarios de Facebook, ahora pueden seguir mis artículos desde esta red social.

Les dejo el enlace: http://www.facebook.com/pages/Surpoint/184782918267437

Si prefieren Twitter, estoy en:

http://twitter.com/jpussacq

Nos estamos viendo!

sábado, 22 de octubre de 2011

Branding en SharePoint 2010

Les dejo un enlace que agrupa un importante conjunto de artículos y herramientas para los que trabajan en SharePoint 2010 con branding:

http://www.thesharepointmuse.com/sharepoint-2010-branding/

Qué lo disfruten!

image

sábado, 8 de octubre de 2011

SharePoint 2007 Service Pack 3

Aún no se sabe la fecha, pero estaría por ver la luz el SP3 de SharePoint 2007. Estén atentos! Transcribo":

Today we’re pleased to announce the 3rd (and likely final) Service Pack release for Office 2007 and SharePoint Server 2007. We are targeting a release date within Calendar Q4 2011. As we approach the date we will have more to share on exact timing.

We are offering this release in preparation for the April 2012 end of mainstream support for the 2007 client and server products. The October 2011 release provides a 6-month window to test and deploy the release prior to exiting mainstream support…

Continuar leyendo en: http://blogs.technet.com/b/office_sustained_engineering/archive/2011/10/06/announcing-service-pack-3-for-office-2007-and-sharepoint-server-2007.aspx.

Hasta la próxima!

viernes, 7 de octubre de 2011

Lo que un administrador de SharePoint debería saber sobre Project Server

El propósito de este artículo es presentar un conjunto de diferencias que existen entre Project Server y SharePoint, en definitiva, un conjunto de tópicos que un administrador de SharePoint debería saber que existen, antes de embarcarse en la instalación de Project Server 2010.

[Agradezco al amigo Sebastián Torres por su revisión del artículo]

Arquitectura

Datos

Los datos en Project Server se almacenan en la base de datos de SharePoint, pero también en bases de datos propias de Project Server.

  • Draft: donde se almacenan los proyectos no publicados, que no pueden ser visible desde Project Web App (PWA).
  • Publish: información visible desde PWA. También contiene tablas específicas de PWA como la carga de horas y las vistas, así como también tablas globales como seguridad, metadata, etc.
  • Reporting: base de datos de sólo lectura, utilizada para la generación de reportes y OLAP. Actualizada prácticamente en tiempo real.
  • Archive: utilizada para funciones de respaldo y almacenamiento de versiones anteriores de proyectos.

    Cada proyecto posee un sitio de proyecto creado con la tecnología SharePoint. Esta información se almacena por lo tanto en la base de datos de contenido de SharePoint dónde se encuentra instanciado Project Server. Microsoft recomienda una base de contenido dedicada para este servicio.

    Por otro lado, Project Server utiliza SQL Server Analysis Services para consultar la información mediante OLAP.

    Servicios

    Project Server se ejecuta dentro de SharePoint como “Project Server Services App”.  Podrán notar dos nuevos servicios en Windows:

    • Microsoft Project Server Events Service 2010
    • Microsoft Project Server Queue Service 2010

    Así mismo, los binarios de Project Server necesita ser instalado en todos los servidores de la granja.

     

    Front end

    El usuario accede a la solución a través de dos aplicaciones:

  • Project Web App: una colección de sitios de SharePoint, con funcionalidades muy específicas de Project Server.
  • Project Professional: el cliente MS Project que muchos conocen, pero conectado con la base de datos de Project Server.

    image

    Arquitectura de Project Server

    Fuente: Microsoft Project 2010 “Ignite” training slide presentations

     

    Estructura de sitios

    Existen dos puntos clave a la hora de definir cómo resultará conveniente desplegar Project Server en nuestra organización.

    Integración de Project Server con el SharePoint corporativo

    En este primer punto deberemos pensar si resulta conveniente instalar PS dentro de nuestra Intranet SharePoint o en una granja separada. Algunos puntos a tener en cuenta:

  • Integración de Project Server con la Intranet.
  • Actualización del software.
  • Impacto de uno en la estabilidad del otro.
  • Seguridad.

    Esta es una decisión que conviene tomar en forma temprana y luego de una profunda discusión.

    Instancias de Project Server

    El otro punto clave es discutir qué unidades organizacionales requieren Project Server. Aquí existen dos posibilidades.

  • Compartir una instancia de PS entre varias unidades organizacionales.
  • Crear una instancia de PS para cada unidad organizacional.

    Puntos a tener en cuenta para tomar esta decisión:

  • Necesidad de integrar proyectos de distintas unidades organizaciones.
  • Seguridad.
  • Posibilidad de que la configuración pueda ser la misma para distintas unidades.

     

    Queue service

    La mayoría de las operaciones que el usuario ejecuta tanto desde Project Server (actualización de tareas, aprobación de tareas, etc) como desde Project Professional (cambios al calendario, asignación de tareas, etc) son procesadas por Project Server a través de su servicio de cola.  

    Al ser una parte central de la solución, este es un servicio que necesita ser monitoreado en forma continua, ya que es quién nos informa aquellas operaciones que culminaron en forma correcta o las que presentaron errores.

    Los principales puntos a tener en cuenta son:

  • La configuración del servicio para que posea un buen rendimiento.
  • El monitoreo del servicio.
  • El tratamiento de incidentes asociados al servicio de cola.
  • La interacción con el usuario final necesaria para resolver alguno de los incidentes que se producen.

    image

    Algunos de los parámetros que se configuran de este servicio son:

  • Queue Type
  • Maximum Number of Job Processor Threads
  • Polling Interval (in milliseconds)
  • Retry Interval (in milliseconds)
  • Retry limit
  • SQL retry interval (in milliseconds)
  • SQL retry limit
  • SQL Timeout (in seconds)
  • Cleanup Interval (in hours)
  • Cleanup Interval Offset (in minutes)
  • Cleanup Age Limit for Successful Jobs (in hours)
  • Cleanup Age Limit for Non-Successful Jobs (in hours)
  • Bookkeeping Interval (in milliseconds)
  • Queue Timeout (in minutes)
  • Fast Polling

     

    Sitios de proyectos

    Los sitios de proyectos constituyen una de las funcionalidades principales de Project Server, y terminan siendo la funcionalidad con más usuarios reales.

    ¿Qué debe saber un administrador acerca de ellos?

  • Que Project Server suele estar configurado para que se cree en forma automática un sitio cada vez que se publica un nuevo proyecto, lo que hace que crezca con bastante rapidez nuestra estructura de sitios, para lo cual debemos estar preparados.
  • Que los sitios se crean en base a plantillas de sitios que:
  • Siempre son modificadas respecto al estándar.
  • Que estás plantillas deben ser desplegadas en el sistema como soluciones.
  • Que no se permite cualquier modificación sobre las mismas, y una operación tan sencilla como la eliminación de una columna de SharePoint podría producir un error grave en el sistema.

    ¿Por qué estos sitios son particulares?

  • En principio porque poseen un conjunto de 4 listas (riesgos, issues, entregables y documentos) que están integradas a funcionalidad del sistema. Por ejemplo:

  • Se puede vincular un documento a una tarea de proyecto.
  • Se puede vincular un entregable a una tarea de proyecto. El entregable se visualiza en el Gantt dentro de Project Pro y además puede ser creado y vinculado dentro de Project Pro.
  • Algunas de estas listas / columnas son enviadas a la base de reporting.
  • Pueden estar configurados con elementos web propios de Project Server.

    Conclusión:

  • Estar preparado para la creación exponencial de sitios.
  • Admitir la personalización de plantillas de sitios.
  • Cuidado al personalizar las plantillas!

     

    Seguridad

    La seguridad es uno de los aspectos más importantes a tener en cuenta, principalmente porque Project Server tiene su propio modelo de seguridad conformado por:

  • Grupos
  • Categorías
  • Permisos sobre PWA
  • Permisos sobre Sitios de Proyectos sincronizados
  • RBS
  • Seguridad en vistas.

    El acceso a los datos está controlado por este modelo y se aplica tanto a:

  • Project Web App
  • Project Pro
  • Base OLAP
  • Sitios de proyectos

    Este modelo de seguridad restringe el acceso a los datos basado en reglas de negocio. Por ejemplo:

  • Un líder puede editar sus proyectos, pero no los de otro.
  • Un líder puede ver los proyectos de personas de su misma rama dentro de la estructura organizacional (RBS).

    La sincronización con los sitios de proyecto

  • Los sitios de proyectos utilizan seguridad estándar de SharePoint.

  • Sin embargo, la particularidad es que esta seguridad se sincroniza en el momento de publicar el proyecto, basando la misma en la seguridad de Project Server.

    Esta sincronización puede también hacerse en forma manual o eliminarse (no recomendado).

     

    Extensiones

    PSI

    Lo primero que debemos conocer es que existe una API de Project Server denominada PSI (Project Server Interface) disponible como servicios web ASMX y servicios WCF. Esta interfaz es utilizada por Project Pro, Project Web App y aplicaciones de terceros para interactuar con datos de las bases de datos Draft, Publish y Archive.

    SharePoint

    En principio se aceptan casi todos los métodos estándar de desarrollo en SharePoint para modificar Project Server, principalmente en los sitios de proyecto.

    Importante: PWA no puede ser editado con SharePoint Designer (los sitios de proyecto sí)

    Workflow

    La funcionalidad de gestión de la demanda es uno de los principales cambios de la versión 2010 de Project Server, que permite manejar flujos de trabajo a través de todo el ciclo de vida de la administración de los proyectos, incluso antes de que estos tomen la forma de proyectos.

    Estos flujos de de trabajo se construyen con Visual Studio, no con SharePoint Designer. La arquitectura posee una capa superior a SharePoint, propia de Project Server y un conjunto de entidades para manejar los datos que se configuran desde Project Web App:

  • Fases
  • Etapas
  • Campos personalizados
  • Project Details Pages

    Project Server workflow architecture

    Project Server Workflow Architecture

    Fuente: Workflow and Demand Management

     

    Workflow creation process

    Workflow Creation Process

    Fuente: Workflow and Demand Management

     

    Importante: en caso de usar herramientas de terceras partes para manejar flujos de trabajo, debemos revisar que dichas herramientas estén preparadas para Project Server, no sólo para SharePoint.

     

    Idioma

    Un punto a tener en cuenta, es que no todos los idiomas disponibles en SharePoint, están disponibles para Project Server.

    Por otro lado, debemos tener en cuenta que ciertas personalizaciones como los nombres de vistas o los campos personalizados no admiten configuración multi-idioma.

     

    Licenciamiento

    A modo de resumen, a nivel de servidor se requiere:

  • Project Server 2010
  • SharePoint Server 2010 Enterprise

    A nivel de cliente, se necesita:

  • Project Professional (para los usuarios que aplique)
  • Project Server CAL (incluida en Project Professional)
  • SharePoint Standard CAL
  • SharePoint Enterprise CAL
  • SQL Server CAL
  • Windows Server CAL

    image

    Fuente: Enterprise Project Management 2010 - Licensing Guide

    Reportes

    Como mencionamos anteriormente, Project Server utiliza una base de datos propia para la generación de reportes.

    A nivel OLAP, existen un conjunto de cubos predefinidos, sin embargo el usuario puede elegir campos personalizados para agregar a los mismos como medidas o dimensiones.

    Por otro lado, Project Server genera un Business Intelligence Center, que está soportado por distintas herramientas de reporting tales como:

  • Excel services
  • Performance Point Services
  • Visio Services.
  • Reporting Services

    imageMicrosoft Business Intelligence Tool Segmentation

    Fuente: Microsoft Project 2010 “Ignite” training slide presentations

    Reportes es una de las funcionalidades en donde más se trabaja en extender la plataforma, ya que el usuario suele necesitar informes a medida que no suelen estar cubiertos por las funcionalidades out of the box.

     

    Actualizaciones de software

    Cada dos meses Microsoft libera paquetes acumulativos de Project Server. A diferencia de SharePoint, también pueden existir actualizaciones para Project Pro (clientes) y es fundamental que las actualizaciones se hagan al mismo tiempo (servidores y clientes).

    Esta es una de las razones que llevan a evaluar si es conveniente integrar Project Server con la Intranet corporativa o conviene desplegarlo en una granja independiente.

     

    Backup

    Todo las políticas de SharePoint aplican pero!!!

  • Tenemos 4 bases de datos adicionales a tener en cuenta.
  • Debemos tener implementado un mecanismo para recuperar sitios individuales.
  • Debemos tener implementado un mecanismo para recuperar proyectos individuales, usualmente a través de la base de datos de Archiving.

     

    Integración con Exchange

    La integración entre Project Server 2010 y Exchange Server permite a los usuarios ver (y actualizar) las tareas de Project como tareas de Outlook. Requiere configuración en Project Server y Exchange Server y activación de la sincronización para cada usuario.

    Esta es una funcionalidad muy pedida por los usuarios, por lo cual es conveniente contemplarla y entender las implicancias a nivel de administración y configuración.

     

    Una imagen vale más…

    A modo de resumen les dejo una captura de la página de administración de Project Server:

    image

     

    Bibliografía

     

  • Microsoft Project 2010 “Ignite” training slide presentations
  • Project Server 2010 Architecture
  • Project Server 2010 with SharePoint Server 2010 architecture
  • Project Server 2010 en Technet
  • Project 2010 SDK Documentation
  • Workflow and Demand Management
  • Enterprise Project Management 2010 - Licensing Guide
  • 10 Things SharePoint Admins Should Know About Project Server
  • Architectural Options for Multiple Organizational Units or Departments using Microsoft Project Server 2010
  • sábado, 1 de octubre de 2011

    MVP

    Al encender mi laptop, un correo electrónico con el título “¡Enhorabuena MVP de Microsoft 2011!” marca la concreción de un sueño que comenzó hace algunos años: ser reconocido por Microsoft como MVP. Me gusta, me pone contento y me anima a seguir con otros proyectos que, por casualidad o no, se juntaron con este. Y me confirma que “todo lo que eres capaz de soñar, eres capaz de conseguirlo”.

    Creo que profesionalmente es un logro importantísimo y me voy a tomar unos días para disfrutarlo, porque fue agotador llegar hasta aquí, casi a ciegas y con bastante suspenso e incertidumbre.

    Muchas personas hicieron esto posible. Algunas ni lo saben. Mis referentes, el que me nominó como candidato, mi familia, colegas que me apoyaron, los que me brindaron oportunidades y abrieron puertas, los lectores de mi blog, etc. Gracias

    Ahora voy a tomar un poco de aire y a seguir con todo lo que tengo en mente.

    Nos estamos viendo :-)

    image

    ¿Qué es un MVP?

    Transcribo desde la página: https://mvp.support.microsoft.com/

    Desde principios de la década de 1990, Microsoft reconoce las inspiradoras actividades de los MVP de todo el mundo con el programa MVP. Los MVP comparten gratuitamente sus profundos conocimientos, experiencia en situaciones reales y comentarios objetivos e imparciales para ayudar a que otras personas saquen mayor partido de la tecnología. De más de 100 millones de usuarios que participan en las comunidades tecnológicas, se reconoce a unos 4.000 como MVP de Microsoft.

    Los MVP realizan excepcionales contribuciones a las comunidades tecnológicas, compartiendo su pasión, conocimientos y destrezas. Por otro lado, dado que escuchan las opiniones y necesidades de muchos otros miembros de la comunidad tecnológica, pueden compartir sugerencias muy concretas con Microsoft.

    Los MVP son expertos independientes a los que se ofrece una conexión muy cercana con los técnicos de Microsoft. Para reconocer el liderazgo de los MVP y proporcionar una plataforma que contribuya a sus esfuerzos, Microsoft suele proporcionar a los MVP un pronto acceso a sus productos, así como la oportunidad de transmitir sus concretas sugerencias y recomendaciones sobre el diseño, desarrollo y soporte técnico del producto.

    Con premios en más de noventa áreas tecnológicas, los MVP reflejan la base de clientes mundial de Microsoft y la amplitud de las tecnologías de Microsoft. Una significativa proporción de los nuevos MVP representan a mercados emergentes en China, Rusia y Corea, así como mercados de menor tamaño como Ghana, Nepal y Kazajistán.

    Cifras de MVP

    • Presencia en más de 90 países

    • Hablan casi 40 idiomas

    • Responden a más de 10 millones de preguntas cada año

    • Ofrecen conocimientos en unas 90 tecnologías de Microsoft

    image

    Más información en: https://mvp.support.microsoft.com/gp/mvpfaqs.

    domingo, 25 de septiembre de 2011

    CompartiMOSS Número 9 - Septiembre 2011

    Ha sido liberado el nuevo número de esta fabulosa revista en la que nuevamente he tenido el honor de participar. Contenido de esta edición:

    • Septiembre 2011Editorial
    • Consejos prácticos de cómo aplicar el Branding Corporativo en SharePoint 2010 sin modificar la página maestra (Juan Manuel Herrera)
    • El lado social de SharePoint - III (Alberto Díaz Martín)
    • SolidQ Managed Matadata Exporter: Herramienta para exportar Metadatos Administrados de SharePoint 2010 (José Quinto Zamora)
    • Instrucciones para organizar un simposio de SharePoint (Vielka Rojas)
    • Integración de Windows Azure y SharePoint 2010 (I) (Juan Carlos González Martín)
    • Entrevista con Ricardo Muñoz
    • SharePoint 2010 BI (Juan M. Alvarado)
    • Patrón MVP con SharePoint 2010 (Juan Pablo Capdevila)
    • Site Definitions vs. Web Templates (Carlos Ariel Dantiags)
    • Herramientas de Comunidad (Gustavo Velez)
    • Modelo de Objetos de Cliente (Juan Pablo Pussacq Laborde)

    Descarga: http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx

    Que la disfruten!

    martes, 20 de septiembre de 2011

    10.000 organizaciones utilizan Project Server

    Según información oficial de la página de Microsoft de Project, más de 20 millones de personas usan Microsoft Project y 10.000 organizaciones utilizan Microsoft Project Server. Un dato más que interesante…

    En la página se puede además acceder a una buena cantidad de casos de estudio de muchas organizaciones. Pueden encontrar esta información desde este enlace:

    http://www.microsoft.com/project/en/us/customer-success.aspx

    image

    jueves, 8 de septiembre de 2011

    miércoles, 7 de septiembre de 2011

    SharePoint Server 2010 performance and capacity test results and recommendations (paper)

    Paper publicado por Microsoft con el siguiente contenido:

    These white papers describe the performance and capacity impact of specific feature sets included in SharePoint Server 2010. These white papers include information about the performance and capacity characteristics of the feature and how it was tested by Microsoft, including:

    • Test farm characteristics
    • Test results
    • Recommendations
    • Troubleshooting performance and scalability

    Descargar desde: http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=12768

    viernes, 26 de agosto de 2011

    jueves, 18 de agosto de 2011

    PerformancePoint Services for Microsoft Project Server 2010 (paper)

    Microsoft liberó hace dos días un paper llamado PerformancePoint Services for Microsoft Project Server 2010. Pueden descargarlo desde este enlace: http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=27136. Es un material interesante escrito por Emmanuel Fadullon. Indispensable si vamos a trabajar con tableros e indicadores clave de performance en Project Server. 120 hojas para disfrutar…

    image

    image

    image

    25 de Agosto - Cuarto Encuentro de la Comunidad SharePoint de Argentina

    Transcribo esta importante información publicada por Ariel García Sobrino:

    image

    Hola Gente!
    Volvieron los encuentros de la Comunidad! Sí! Después de un largo tiempo tengo el gusto de contarles que nos volvemos a reunir.
    ¿Cuándo?
    - El jueves 25 de Agosto de 18:30 a 21:30 horas.
    ¿Dónde?
    - En las oficinas de Microsoft Argentina (Bouchard 710 4°)
    ¿Cuánto cuesta?
    - Gratis. Sólo tienen que registrarse y venir con la buena onda habitual y sus ganas de aprender y compartir conocimientos.
    ¿Agenda?
    - SharePoint 2010 – Disaster Recovery (Leandro Iacono – Desde New York)
    - Creación de SharePoint Visual Studio Project Templates (Ariel Kirsman)
    - Administrando e implementando Proyectos SharePoint (Ariel García Sobrino)
    ¿Cómo me registro?
    - Enviando un mail a comunidadsharepoint@live.com. No olviden incluir su nombre completo y su número de DNI.
    ¿Hasta cuándo me puedo registrar?
    - Hasta el lunes 22 de Agosto al mediodía (13 horas)
    ¿La reunión de la Comunidad es un evento de Microsoft?
    - NO. Es una reunión organizada por los miembros de la Comunidad. Microsoft sólo nos presta sus instalaciones y eventualmente nos ayuda con el catering.
    Importante: pedimos por favor a quienes se registren que se comprometan a venir. En la última reunión asistieron menos de la mitad de las personas registradas. Dedicamos mucho tiempo y esfuerzo para coordinar la reunión, lo hacemos por Uds., y por eso les pedimos el compromiso de asistir si confirmaron su presencia.
    Cualquier duda me avisan.
    Saludos!
    @arielgsobrino

    miércoles, 17 de agosto de 2011

    ¿Instancias en Project Server 2010?

    Les dejo un enlace muy enlace muy interesante para aquellos que se preguntan en qué casos se requiere instalar más de una instancia de Project Server 2010. El artículo analiza las ventajas y desventajas de estas tres opciones:

    • Misma instancia
    • Diferentes instancias
    • Diferentes granjas de SharePoint

    Verdaderamente recomendable. Puede leerlo en: http://www.epmarchitects.com/architectural-options-organizational-units-departments-microsoft-project-server-2010.

    Hasta la próxima!

    viernes, 5 de agosto de 2011

    5º Simposio Latinoamericano de Sharepoint

    Te invitamos a participar en el evento de SharePoint 2010 más grande de Latinoamérica, este 31 de agosto de 2011, en Pueblo Antiguo, San José, Costa Rica. Continuar leyendo en: http://www.sharepointcostarica.com/.

    CSS Reference Chart SharePoint 2007 y 2010

    Si trabajan con estilos en SharePoint habrán utilizado este imprescindible recurso provisto por Header Solomon:

    CSS Reference Chart for SharePoint 2007 (Microsoft Office SharePoint Server 2007 and Windows SharePoint Services v3)

    Pues bien, ya tenemos la versión 2010, a disfrutarla Sonrisa

    SharePoint 2010 CSS Reference Chart

    image

    Hasta la próxima!

    Aplicaciones en SharePoint con InfoPath 2010

    Estuve leyendo un artículo de David Gerhardt publicado en MSDN llamado Building SharePoint Applications with InfoPath 2010 (Part 1 of 2). A continuación dejo un breve resumen para aquellos que quieran interiorizarse en el mundo de InfoPath. Como siempre les digo, para analizar el tema en mayor profundidad, no dejen de consultar el artículo original.

    Uno de los primeros temas que nos propone analizar este artículo es cómo será capturada y almacenada la información, a través del siguiente árbol de decisión:

    Architecture decision tree

    Para poder tomar una buena decisión, debemos analizar las características de cada herramienta. ¿En qué se destaca InfoPath?

    • No requiere un programador avanzado
    • Permite código personalizado C#
    • Preparado para navegadores
    • Cliente fuera de línea
    • Habilidades para imprimir o exportar
    • Soporta integración con flujos de trabajo

    Ahora bien, si optamos por una solución InfoPath, tendremos que decidir el método de almacenamiento: librería de formularios o lista. ¿Cuáles son las diferencias?

      Formularios Listas
    Estructura de datos Jerárquica Plana
    Formato Archivos XML Ítems de lista
    Soporte de código personalizado Si No
    Soporte de cliente fuera de línea Info Path filler SharePoint Workspace
    Soporte de firma digital No

    Un punto importante es que las listas no soportan elementos repetitivos.

    Si trabajamos con el almacenamiento de tipo lista, cuando creamos un nuevo campo en InfoPath, se está creando una nueva columna en la lista. En cambio cuando trabajamos con el almacenamiento de tipo formulario, estamos creando en realidad un archivo XML, aunque disponemos de la posibilidad de mapear campos del formulario con columnas de SharePoint, lo que nos posibilita:

    • Usar filtros de vistas
    • Utilizar flujos de trabajo
    • Promover totales para los valores repetitivos

    Las diferencias son, a veces, sutiles. El artículo menciona la ventaja de los formularios, si tenemos que enviar los archivos a alguien que no interactúe con el sistema. A favor del modo lista, esta la vista de edición en hoja de datos para cambios masivos, aunque esto no es estrictamente exclusivo del modo lista.

    Respecto al código personalizado, debemos saber que el mismo se almacena en el archivo. Es sólo soportado por el método formulario, lo cual nos da una idea de que este método es recomendado a medida que aumenta la complejidad de la solución.

    En lo que refiere al soporte fuera de línea contamos con SharePoint Workspace (ex Groove) para la modalidad lista y con InfoPath filler para la modalidad formulario.

    Buenas prácticas

    Lo primero que debemos saber es que la complejidad de nuestros formularios puede afectar el rendimiento de la aplicación, por ejemplo cuando agregamos formato condicional, conexiones a datos externos o código personalizado. Todo esta lógica se procesa en tiempo de ejecución lo que afecta la forma en que el formulario se muestra.

    Otra buena práctica es manejar más de una vista de formulario, por ejemplo para distintos tipos de usuario, en lugar de una sola vista que contenga todas las reglas de negocio, como puede apreciarse en las siguientes imágenes:

    Requestor view for a hardware request

    Hardware request form approver view

    Respecto a las conexiones a datos externos, es lógico que cuanto más tengamos, más se degradará el rendimiento. Una buena práctica es no cargar todas las fuentes externas en el momento en que se abre el formulario, sino esperar hasta que realmente lo necesitemos, lo cual puede depender de algún valor cargado en un campo. También tenemos la opción de convertir la información de datos externos en XML estático, lo cual sólo es factible si los datos cambian con poca frecuencia.

    Existe una opción para evitar que se realicen postbacks. Si sirve para nuestro escenario, debemos considerar esta configuración. También existen consideraciones respecto al manejo de campos en cascada, que son analizadas en el segundo artículo del autor.

    Otras consideraciones

    Si trabajan con información de usuarios en los formularios, es importante saber que existen dos enfoques posibles: el selector de persona/grupo y el servicio de perfil de usuario.

    En caso que habilitemos las opciones de flujo de trabajo tenemos saber que debemos promover los campos del formulario como columnas de lista para que estén disponibles para el flujo de trabajo. Los campos repetitivos pueden promoverse con funciones de agregación como por ejemplo: primero, último, cuenta o concatenación. No olvidar que en forma predeterminada, los campos se promueven como columnas de sólo lectura, aunque esto podemos cambiarlo.

    A nivel de seguridad, tenemos tres niveles: restringido (no se puede acceder contenido externo al formulario), dominio (no se puede acceder contenido en otro máquina) y confianza completa.

    Fin

    Este fue un breve resumen del artículo de David Gerhardt que pueden encontrar en http://msdn.microsoft.com/en-us/library/ff961896.aspx. Espero que les haya servido para tener un primer contacto con InfoPath 2010. Hasta la próxima!