Mostrando entradas con la etiqueta SPWeb. Mostrar todas las entradas
Mostrando entradas con la etiqueta SPWeb. Mostrar todas las entradas

viernes, 15 de junio de 2012

Tips/info #31 Sharepoint 2010

1-Saber el lenguaje global y los packs de idiomas instalados mediante programación

SPLanguage globalLanguage = SPRegionalSettings.GlobalServerLanguage; //con esta sentencia se determina el idioma en el cual fue instalado Sharepoint

SPLanguageCollection languagePacks = SPRegionalSettings.GlobalInstalledLanguages; //Obtiene la colección de paquetes de idiomas que están instalados en el servidor.

Para más informacíón: http://msdn.microsoft.com/en-us/library/ms461103

2-SPWeb.AllProperties vs SPWeb.Properties

SPWeb.Properties es un diccionario de string (StringDictionary), y no soportar and doesn’t support casing for keys/values (everything gets converted to lowercase)

3-Incrementar el límite de tamaño al guardar una lista o site como template

stsadm -o setproperty -propertyname max-template-document-size -propertyvalue 50000000

4-Save as template: que se guarda y que no en el wsp


Lo siguiente se incluye en los templates (wsp):


Lists
Libraries
External Lists
Data source connections
List views and data views
Custom forms
Workflows
Content Types
Custom Actions
Navigation
Site pages
Master pages
Modules
WebTemplates


Lo siguiente NO se guarda en los templates (wsp)


Customized permissions
Running workflow instances
List item version history
Workflow tasks associated with running workflows
People/group field values
Taxonomy field values
Publishing pages and publishing sites
My Sites


5-Errores en el deploy de soluciones Sharepoint con Visual Studio 2010


Error occurred in deployment step 'Recycle IIS Application Pool': The local SharePoint server is not available. Check that the server is running and connected to the SharePoint farm.


o


Error occurred in deployment step 'Recycle IIS Application Pool': Cannot connect to the SharePoint site: <ApplicationURL>. Make sure that this is a valid URL and the SharePoint site is running on the local computer. If you moved this project to a new computer or if the URL of the SharePoint site has changed since you created the project, update the Site URL property of the project.


o

Error occurred in deployment step 'Recycle IIS Application Pool': <nativehr>0x80070005</nativehr><nativestack></nativestack>Access denied.
Soluciones:


  • Add-SPShellAdmin -UserName domain\username: esa sentencia dará permisos sobre la base de configuración de Sharepoint.

  • Obtener el ID de la content database donde se deployará "Get-SPContentDatabase -WebApplication <Application URL>"

  • "Add-SPShellAdmin -UserName domain\username -database <Database Id del comando previo>": agregará permisos sobre la base de  contenidos

  • Agregar en la web application deseada al usuario que está ejecutando el visual studio con full control mediante User Policy(/_admin/WebApplicationList.aspx)

Recuerde reiniciar Visual Studio 2010.


6-Error: An unexpected error has occurred


A veces el detalle del error no se muestra de forma correcta, para ello deberemos hacer lo siguiente:



  • Ir a la carpeta donde está el web application del site que quiere depurar (posiblemente c:\inetpub\wwwroot\wss\VirtualDirectories\...)

  • Editar el web.config en la siguiente linea


<SafeMode MaxControls=“200“ CallStack=“false“ DirectFileDependencies=“10“TotalFileDependencies=“50“ AllowPageLevelTrace=“false“>



y has los siguientes cambios



<SafeMode MaxControls=“200“ CallStack=“true“ DirectFileDependencies=“10“TotalFileDependencies=“50“ AllowPageLevelTrace=“true“>



  • Y por último editar la siguiente línea


<customErrors mode=“On“ />



a



<customErrors mode=“Off“ />

sábado, 25 de febrero de 2012

Tips 1–Sharepoint 2010

  • En el modelo de objetos, se trabaja a menudo con un objeto SPWeb. En particular, con la propiedad SPWeb.Lists o SPList.Items para recuperar elementos de una lista. El uso de estas propiedades plurales viene con una penalización de rendimiento, ya que toda la matriz se carga tan pronto como usted lo utiliza en el código.
    Ejemplo: web.Lists ["prueba"] va a recuperar todas las listas. Lo mismo va para list.Items.Count, lo que se carga todos lose lementos de la lista, lo cual es un gran problema para las listas grandes. Utilizar los siguientes métodos:GetListByUrl ItemCount en su lugar.
  • Cuando usted necesite mostrar una vista de list items en una página(por ejemplo, en un webpart), puede utilizar SPListViewByQuery para ello. Dado un objeto SPQuery y añadirlo a la colección de controles de la webpart, SharePoint renderizará una lista entera.
  • SharePoint almacena cierta información por defecto en las listas por defecto, cómo User Information List. Se puede usar SPSite.GetCatalog, el cual toma un enumerado, y le devuelve la lista que desee.

  • Cuando haga un restore de una base de datos sobre una existente, puede surgir el siguiente error: System.Data.SqlClient.SqlError: Exclusive access could not be obtained because the database is in use. (Microsoft.SqlServer.Smo)

Para ello utilice :execute SP_WHO (lista de proceso de usuario que bloquean la base), y a continuación use KILL xxxxx

  • Obtener información de un usuario:

Cada usuario de un sitio tiene un ID propio (numérico). la fuente de este ID es la lista oculta (User Information List)
Esta lista puede accederse mediante el link " /_catalogs/users/simple.aspx" en cada sitio de Sharepoint.

Esta lista contiene todos los usuarios que fueron sumandos al sitio.
Para obtenet data de esa lista puede hacer lo siguiente:

   1:  SPSite spsite = new SPSite("http://MyWebApplication");
   2:   
   3:  SPWeb spweb = spsite.OpenWeb();
   4:   
   5:  SPList splist=spweb.SiteUserInfoList;
   6:   
   7:  SPListItem userInfo = splist.Items.GetItemById(SPContext.Current.Web.CurrentUser.ID);
   8:   
   9:  string pictureURL = Convert.ToString(userItem["Picture"]);




  • Borrar un objeto de Sharepoint.

      En la Configuration Database determino el objeto id.

         1:  SELECT id
         2:  ,classid
         3:  ,parentid
         4:  ,name
         5:  ,status
         6:  ,version
         7:  ,properties
         8:  FROM   objects WITH(nolock)
         9:  WHERE  name LIKE ' lo que quiero borrar'




        A continuación borro el objeto:


        stsadm -o deleteconfigurationobject -id "<object id>"