jueves, 6 de octubre de 2011

El número 9 de CompartiMOSS ya está aquí

El número 9 de CompartiMOSS ya está aquí !! A disfrutarlo!!:


•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)

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

¿Solución al error en Add Solution utilizando la clase SPWebConfigFileChanges?

Hace días me ocurrió que al añadir una solución a la granja de mi SharePoint 2010 me saltaba un error diciendo que el name no podía contener un corchete ([). Mi solución solamente creaba una key en el web.config utilizando la clase SPWebConfigFileChanges.
Dicha clase permite añadir cambios al webconfig, pues bien, no sé por qué razón(ni la he encontrado por ningún hilo) parece ser que la clase se corrompe y te aparece dicho error.
Para solucionarlo cree una consola con el siguiente código:


using (SPSite site = new SPSite("http://test/"))
{
SPWebApplication webApp = site.WebApplication;
webApp.WebConfigModifications.Clear();
webApp.Update();
SPWebService service = SPWebService.ContentService;
service.WebConfigModifications.Clear();
service.Update();
service.ApplyWebConfigModifications();
}


Este código hace un clear de las modificaciones que se quedan en la base de datos de configuración y en el servicio.
En principio debería de arreglar el problema!

lunes, 21 de marzo de 2011

CompartiMOSS Número 7 ya está aquí !!!

Pues eso, ya tenemos aquí el número 7 de compartiMOSS dónde un servidor y muchos más SharePointistas escriben grandes artículos sobre SharePoint. Os dejo un el índice de este número 7 de Marzo de 2011 y el link para poder descargarla. Todos los interesados pueden participar, contra más mejor!!

Animaros!!!

  • Editorial
  • El lado social de SharePoint (Alberto Díaz Martín)
  • Autenticación en SharePoint 2010 (I) (David Martos)
  • Entrevista con Fabian Imaz
  • Business Intelligence en SharePoint 2010: Integración de Reporting Services (II) (Juan Carlos González Martín)
  • Los elementos web de Project Server 2010 (Juan Pablo Pussacq Laborde)
  • Custom Actions en los menús de SharePoint 2010 (Victor Cea Espejo)
  • Office 365 y SharePoint Online (Mario Cortés Flores)
  • Personalización de UI con OPENXML y VS 2010 en Microsoft Office 2010 (Alejandro Garrido)
  • Microsoft Dynamics CRM 2011 y SharePoint 2010. Mejor juntos... (Pablo Peralta)
http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx

jueves, 17 de febrero de 2011

10 de Marzo Webcast MSDN: SUGES- SharePoint 2010 no es solo intranets, monta tu sitio público

Hola!

Como habéis podido leer en el título, se avecina un webcast muy muy interesante por parte de Suges y como responsables, David Martos y Mario Cortés.

Sin duda los sitios públicos en SharePoint, y más hoy en día con la web 2.0, redes sociales y demás, es un tema que no debemos dejar escapar por su gran potencial para empresas, webs, etc...

Lo dicho, os pongo aquí la url del evento y el post de David Martos que es de dónde he leído esta notícia. Allí me tendréis!

Post:
http://david-martos.blogspot.com/2011/02/webcast-msdn-suges-sharepoint-2010-no.html

Evento:
https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032478934&EventCategory=4&culture=es-ES&CountryCode=ES

martes, 15 de febrero de 2011

Mi experiencia en los SharePoint Camps Barcelona 2011

Hoy quiero dar mi opinión y a la vez explicar mi experiencia en los SharePoint Camps de Barcelona.
Este evento está en Barcelona esta semana y he tenido la suerte de estar durante ayer lunes y hoy. Estos primeros días estaba dedicado a una formación sobre los siguientes temas:

-Visual Studio 2010 Tools para SharePoint 2010.
-Listas & Esquemas.
-Modelo de objetos en cliente.
-Acceso a datos externos.
-Modelo de objetos en cliente.
-ECM en SharePoint 2010.
-Soluciones SandBox.
-Workflows en plataforma SharePoint 2010.
-LINQ To SharePoint.

Solo puedo decir cosas buenas de este evento. Lo primero y más importantes lo mucho que aprendes ya que nos basamos en problemáticas del día a día con SharePoint. Han salido muchas y muy buenas preguntas y con ello, muchas y muy buenas respuestas que seguro que nos servirán el día de mañana.

Lo segundo es el conocer a personas del mundo de SharePoint para podernos respaldar si tenemos algún problema.

Por último felicitar al instructor Juan Carlos González (http://geeks.ms/blogs/ciin/default.aspx)(@jcgm1978) porque es todo un Master de SharePoint, ha resuelto todas nuestras dudas y además seguro que llevará alguna de nuestras inquietudes a Seattle! :)

Sin duda, no dudéis en asistir a cualquier evento de SharePoint que se haga porque de verdad que vale la pena, no se puede imaginar lo mucho que aprendes.

Iré poniendo aquí los eventos de los que me entere! Felicidades por los SharePoint Camps!!

Recorrer todas las carpetas de una biblioteca de SharePoint

Hace poco he necesitado este requerimiento en un proyecto y quiero explicar cómo lo he hecho.
Primero, es básico tener habilitado la creación de carpetas para la biblioteca en cuestión, sinó difícil poder crear carpetas, ésto se hace mediante la configuración avanzada de la lista.
Una vez tenemos creadas carpetas se pueden recorrer mediante este código:



using (SPSite site = new SPSite("http://sitecreado"))
{
using (SPWeb web = site.OpenWeb("webcreado"))
{
try
{
SPList list = web.Lists["Lista"];
SPListItemCollection colectionfolders = list.Folders;
if (colectionfolders.Count > 0)
{
foreach (SPListItem item in colectionfolders)
{
//GESTIÓN DE NUESTRAS FOLDERS CON item.folder del
tipo SPFolder
}
}
else
{
string s = "No existen carpetas en esta librería";
}
}catch(Exception ex)
{
throw new Exception(ex.message);
}
}
}




El código instancia la lista deseada y guarda todos los items de tipo folder. Una vez guardados, los utilizamos mediante el .folder de cada item y los gestionamos a nuestro antojo.

En el próximo post comentaré las características de las SPFolder y los SPFiles.

jueves, 27 de enero de 2011

Customizar los resultados de nuestras búsquedas (III)

Hola de nuevo!

Esta vez voy a acabar de explicar la customización de resultados de las búsquedas en SharePoint, añadiendo campos que nos interesen de los items indexados.

La última parte es corta pero un poco engorrosa, y es que toca manipular el xslt de los resultados.

Para ello, editamos la página de búsqueda como hemos hecho en las anteriores partes de la customización y editamos el Search Core Result.

Si habéis seguido los pasos anteriores ya tendremos añadida correctamente la columna en las Selected Columns del webpart.

El siguiente paso es abrir el xslt mediante el botón "Editor XSL" de las características del webpart:


Una vez tenemos abierto el xslt podemos crear funciones (o templates, como técnicamente es llamado) que nos permitan customizar los resultados. En mi caso he creado una función que devuelve las urls de los viewforms de los documentos y si no es un documento, entonces la vista por defecto, es decir, he indexado un nuevo campo que es el tipo de contenido, y si éste es de tipo STS_ListItem_DocumentLibrary entonces cambio la url del link del item que nos muestra la búsqueda. En resumen, la función que hace esto sería algo así:


<xsl:template name="DisplayViewPropertiesLink2">

  <xsl:param name="itemUrl" />

  <xsl:param name="siteUrl" />

  <xsl:param name="contentclass" />

  <xsl:if test="$contentclass='STS_ListItem_DocumentLibrary'">

    <xsl:variable name="docLibLoc" select="substring-before(substring-after($itemUrl, concat($siteUrl, '/')), '/')" />

    <xsl:variable name="viewform" select="concat($siteUrl, '/', $docLibLoc, '/Forms/DispForm.aspx?id=')"/>

<xsl:value-of select="$viewform"/>

  </xsl:if>

</xsl:template>




Y la llamada a esta template sería así:


<xsl:variable name="basename2">

    <xsl:call-template name="DisplayViewPropertiesLink2">

        <xsl:with-param name="itemUrl" select="url" />

        <xsl:with-param name="siteUrl" select="sitename" />

        <xsl:with-param name="contentclass" select="contentclass" />

    </xsl:call-template>

  </xsl:variable>



Dónde basename2 es lo que el template me retorna!

Espero que os haya gustado y sobretodo que os sea útil ;D