in

SharePoint Blogs

The Best Place for SharePoint-related Blogs

Sharepoint desde cero

Mi aprendizaje en Sharepoint

July 2007 - Posts

  • Un poquito de humor: Vídeo "The Sharepoint 2007 song"

    Vía correo me llega este video que sin duda ha sido montado por un desarrollador en Sharepoint no muy contento. Sólo hay que ver la descripción del vídeo en Youtube: "dedicated to all frustrated sharepoint users and developers: the sharepoint 2007 song! long live this buggy tool!":

    http://www.youtube.com/watch?v=8P9QlojtrWs

    Posted Jul 31 2007, 06:04 PM by Serval with 1 comment(s)
    Filed under:
  • Cosas interesantes 31-07-2007

    Actualizaciones de Vista para mejorar el rendimiento, la estabilidad y la compatibilidad de aplicaciones Microsoft tiene en fase beta y a punto de lanzar dos actualizaciones. Entre otras cosas solucionan un problema que me alegra en gran medida y que más de uno habrá sufrido: Tal y cómo comenta Dani Matey: "los ficheros se copian más lento en Vista que en XP".

    Habilitar auto-completar en controles de Windows Forms Ejemplo sencillo y rápido en el que podemos ver como se puede habilitar el autocompletado en controles de Windows Forms con nuestras sugerencias de texto.

    Desaparece la marca Linksys Lo que hasta ahora es la "marca doméstica" de Cisco, desaparecerá próximamente para unificarse toda en la rediseñada marca Cisco. Esperemos que a pesar de unificarlo en la misma marca, siga teniendo bien diferencia los productos para el hogar más económicos y los productos para la empresa.

    Eco One, un coche hecho de vegetales que corre a más de 200 Km/h Han fabricado un "coche de carreras" a partir de vegetales y el cuál es biodegrable al 95%. Me llama la atención su combustible elaborado con fermento de trigo y remolacha azucarera. Chow time! uhm!

    Virtual Labs sobre SharePoint 2007 en Technet Medinav nos avisa de la publicación de una lista de los Virtual Labs publicados por Microsoft Technet sobre Sharepoint. Aquí podéis ver la lista en la página de Technet y aquí el rss de los Virtual Labs sobre Sharepoint para no perderos nuevos laboratorios.

    Un escritorio a medio camino entre lo virtual y lo real Vía Alt1040 vemos un vídeo gracioso de lo que podría ser un escritorio real "basado" en el escritorio de un ordenador:


    Reality Desktop - video powered by Metacafe

  • Fragmentos de código: Crear sitios a partir de plantillas

    Crear un sitio a partir de una plantilla programáticamente es bastante sencillo:

       1: public static void CrearSitio(string urlWebPadre,string NombrePlantilla,string urlRelativaNuevoSitio, string Titulo, string Descripcion, bool EliminarSiExiste)
       2: {
       3:     SPSite siteTop = new SPSite(urlWebPadre);
       4:     SPWeb siteRoot = siteTop.OpenWeb();
       5:     SPWebCollection myWebs = siteRoot.Webs;
       6:     //Obtenemos colección de plantillas
       7:     SPWebTemplateCollection webTemplateCollection = siteTop.GetCustomWebTemplates(3082);
       8:     //Obtenemos plantilla deseada
       9:     SPWebTemplate webTemplate = webTemplateCollection[NombrePlantilla];
      10:     //Eliminamos si existe
      11:     if (EliminarSiExiste && myWebs[urlRelativaNuevoSitio].Exists)
      12:     {
      13:         myWebs.Delete(urlRelativaNuevoSitio);
      14:     }
      15:     //Creamos sitio:            
      16:     myWebs.Add(urlRelativaNuevoSitio, Titulo, Descripcion, 3082, webTemplate, true, false);
      17: }

    Lo único que debemos fijarnos un poco más será en el "número del idioma" de la plantilla. En el caso del español usaremos el 3082 en el método para obtener la colección de plantillas y en la llamada Webs.Add() (líneas 7 y 16). Si vamos a usar una plantilla en inglés, sustituiremos este número por 1033.

    El nombre de la plantilla lo deberemos pasar sin la extensión .stp

  • Activar / Desactivar "Mi Sitio"

    Mi Sitio es una web personal que proporciona Sharepoint y nos permite almacenar nuestros documentos, contactos, etc., en general, información personal. Es un sitio web para que el resto de compañeros de la empresa puedan encontrar información personal. Por defecto, al realizar una búsqueda de cualquier portal MOSS, al encontrar personas enlazará con la web "Mi Sitio" de la persona encontrada.

    Tras la instalación de MOSS 2007, "Mi Sitio" de los usuarios no se genera automáticamente. En este momento podemos optar por 2 opciones diferentes. La primera es generar por código todos "Mis Sitios". Vía el blog de Gustavo Vélez tenemos la rutina que nos puede ayudar a ello:

    Creación Programática de MiSitio:

      static bool CrearMiSitio(string UrlServidor, string CuentaUsuario)
      {
          bool blnReturn = false;
           try
          {
              using (SPSite miSitio = new SPSite(UrlServidor))
              {
                  ServerContext miContexto = ServerContext.GetContext(miSitio);
                  UserProfileManager miManejadorPerfiles = new UserProfileManager(miContexto);
                  UserProfile miUsuario = miManejadorPerfiles.GetUserProfile(CuentaUsuario);
                  miUsuario.CreatePersonalSite();
              }
              blnReturn = true;    
          }
          catch (Exception ex)
          {
              Debug.WriteLine(ex.ToString());
          }
          return blnReturn;
      }
    

    Una llamada de ejemplo a la rutina podría ser:

    if (CrearMiSitio("http://mosses", "mosses\\usera") == true)
        Console.Write("Creado");
    else
        Console.Write("Imposible de crear");

    La otra opción para la generación de "Mis Sitios" sería que cada usuario se genera su sitio automáticamente al entrar por primera vez en "Mi Sitio". Para ello, debemos permitir la administracion de "Mi Sitio" de forma autónoma por parte de los usuarios. Por defecto, esta opción viene desactivada tras la instalación de MOSS. Para activarlo debemos seguir los siguientes pasos:

    1. En la Administración Central, en Administración de Aplicaciones, dentro del bloque Seguridad de Aplicaciones, hacemos click sobre la opción Administración de sitios sin intervención del Administrador.
       Administración de Aplicaciones
    2.  En la siguiente página, lo primero será seleccionar la aplicación web en la que tenemos alojadas "Mi sitio" de los usuarios dándole a Cambiar Aplicación Web:
      Cambiar Aplicación Web
      Seleccionar Aplicación Web
    3. Una vez seleccionada la aplicación web correcta, marcaremos "Activada" y haremos click sobre Aceptar.
      Activada

    En cualquier caso, os podéis encontrar con la posiblidad de que la empresa no le guste la idea de que sus empleados tengan sus sitios personales y os pidan que desactivéis esta opción. Dada mi experiencia, es lo más habitual. Lo primero sería asegurarnos de que no se puedan generar los sitios de forma automáticamente por parte de los usuarios. Para ello, seguiriamos los pasos anteriores, marcando en el último paso "Desactivada". A continuación deberiamos desactivar "Mi Sitios" lo que además supondrá que desaparezca el link "Mi Sitio" en la cabecera del portal:

    1. Deberemos ir a la página del Proveedor de Servicios Compartidos. Podemos llegar desde la Administración Central, en el menú de la izquieda y haciendo click sobre el nombre del Proveedor de Servicios compartidos, que por defecto es SharedServices1. En esta página, dentro del bloque Perfiles de Usuario y Mi Sitio, pincharemos sobre Permisos de servicios de personalización.
      6
    2. Haremos clic sobre los usuarios a los que queremos desactivar su sitio personal. Para todos los usuarios: NT AUTHORITY/Usuarios autentificados.
      7 
    3. Finalmente, en la página de Modificar permisos, desmarcariamos la opción "Crear un sitio personal". Si además queremos desactivar el menú superior "Mis vínculos" de cada usuario, también desmarcariamos la opción "Utilizar características personales".
      Modificar permisos
  • Fragmentos de código: Usar el servidor SMTP configurado en el Sharepoint

    Si necesitas mandar un correo en una aplicación desarrollada para Sharepoint, puedes definir el servidor smtp que quieras como en cualquier aplicación .net, pero lo más lógico, en este caso, es usar el servidor smtp configurado en la administración central del Sharepoint:

    ///
    /// Returns SharePoint smtp server
    ///
    private string GetSmtpServer()
    {
    SPWebApplicationCollection spWebApplicationCollection = SPWebService.ContentService.WebApplications;
    SPOutboundMailServiceInstance smtpServer = new SPOutboundMailServiceInstance();
    
    if (spWebApplicationCollection != null)
    {
    foreach (SPWebApplication spWebApplication in spWebApplicationCollection) {
    smtpServer = spWebApplication.OutboundMailServiceInstance;
    return smtpServer.Server.Address;
    }
    }
    return string.Empty;
    }

    Vía Covelle Corner: WSS v3 email smtp server

  • Fragmentos de código: Subir un documento con metadatos

    En esta nueva sección iré publicando pequeños fragmentos de código de ejemplo para realizar tareas en Sharepoint.

    En nuestro 1er ejemplo de código vemos como se realizaría la carga de un documento con metadatos.

    //Using required, especially System.IO;
    using System.Collections.Generic;
    using System.Collections;
    using System.Text;
    using Microsoft.SharePoint;
    using System.IO;
    
    namespace DocImport
    {
    public class DocManagement {
    //Some variables
    private string _DestUrlPath = string.Empty;
    private string _DestFolder = string.Empty;
    
    private SPSite _site = null;
    private SPWeb _web = null;
    
    public DocManagment(string DestUrl, string DestFolder) {
    _DestUrlPath = DestUrl;
    _DestFolder = DestFolder;
    _site = new SPSite(_DestUrlPath);
    _web = _site.OpenWeb();
    }
    
    private bool _uploadDocument(string pdfFile, string txtFile) {
    try {
    //This is mandatory for avoiding an error
    _web.AllowUnsafeUpdates = true;
    //Use the list as a folder
    SPFolder folder = _web.GetFolder(_DestFolder);
    SPFileCollection files = folder.Files;
    //Get the file
    FileStream fStream = File.OpenRead(pdfFile);
    HashTable MetaDataTable = new HashTable();
    MetaDataTable.Add("nom de colonne", "valeur");
    
    //Set the destination url for SharePoint
    string url = _DestUrlPath + _DestFolder + "/" + Path.GetFileName(pdfFile);
    //Add document to the list with metadata, and overwrite an existing document
    with the same name
    SPFile currentFile = files.Add(url, fStream, MetaDataTable, true);
    fStream.Close();
    return true;
    } catch (Exception x) {
    throw new Exception(x.Message);
    }
    }
    }

    Via: Antoine's blog for MOSS 2007 : SharePoint 2007: Upload a Document with Its Meta-Data

    Etiquetas de del.icio.us:

Need SharePoint Training? Attend a SharePoint Bootcamp!

Posts (c) their respective authors. Everything else (c) 2007 SharePoint Experts