jump to navigation

notatki programisty (usar log4net en sharepoint) July 16, 2009

Posted by npaez in .NET, sharepoint.
Tags: ,
add a comment

Ja! puede que se pregunten que es “notatki programisty”, bueno resulta que como es costumbre por estos dias estabamos trabajando con SharePoint. En particular en esta ocasión intentábamos configurar log4net y mientras haciamos troubleshooting dimos con un blog en un idioma desconocido para nosotros (aunque Charly aventuró correctamente que se trataba de polaco). Si bien ninguno de nosotros manejaba ese idioma, entendimos lo suficiente para resolver nuestro issue. Por si les interesa el blog en cuestión es este:este blog (http://notatkiprogramisty.blogspot.com/2008/04/szybki-start-z-log4net.html)

Saludos!

Como crear una master page propia en Sharepoint June 18, 2009

Posted by matiassnoop in .NET, Diseño, coding, sharepoint.
Tags: , , , ,
add a comment

A continuación describiré los pasos que se deben seguir para crear un feature con una master page:

1) Creamos un proyecto de tipo Class Library( llamemosle por ejemplo: DemoMasterPageFeature)

2)Creamos una carpeta llamada 12.

3) Agregamos una carpeta en 12, y le llamamos Template.

4) Agregamos una carpeta en Template, y le llamamos Features.

5) Agregamos una carpeta en Features, y le llamamos DemoMasterPage.

6)Agregamos tres carpetas en DemoMasterPage, y les llamamos MasterPages, Images y Styles.

7)En la carpeta MasterPages hacemos nuestra masterpage, llamemosla: demomasterpage.master

8)Por otro lado en las carpetas Images y Styles agregaremos las imágenes y los css correspondientes.

9)Agregamos un archivo xml llamado feature.xml  a la carpeta DemoMasterPage.

10)En el escribiremos el siguiente código:

<Feature Id=”95F25D4A-D256-4158-96FE-010F599149CC” Title=”Demo Master Page”
Scope=”Site” Version=”1.0.0.0″ Hidden=”FALSE” DefaultResourceFile=”core” xmlns=http://schemas.microsoft.com/sharepoint/ Description=”This Feature contains the demo master page”>
<ElementManifests>
<ElementManifest Location=”elements.xml” />
<ElementFile Location=”MasterPages\demomasterpage.master” />
</ElementManifests>
</Feature>

11)Agregamos un archivo xml llamado elements.xml  a la carpeta DemoMasterPage.

12) En el escribiremos el siguiente código:

<Elements xmlns=”http://schemas.microsoft.com/sharepoint/”>
<Module Name=”DemoMasterPage” Url=”_catalogs/masterpage” Path=”MasterPages” RootWebOnly=”FALSE”>
<File Url=”demomasterpage.master” Type=”GhostableInLibrary” />
</Module>
</Elements>

13)Realizamos un build en el proyecto para guardar los cambios.

Una vez que realizamos todos estos pasos debemos deployar el feature:

1)Copiamos la carpeta DemoMasterPage en %Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES.

2)Abrimos una command prompt del visual studio e ingresamos lo siguiente:

cd C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN.

3)Posteriormente ingresamos lo siguiente: stsadm -o installfeature -name DemoMasterPage -force

4)Finalmente: stsadm -o activatefeature -name DemoMasterPage -url http://mysitecollectionpath -force

Ahora debemos setear la nueva Master Page.

1)Trabajando en MOSS debemos ir a la configuración del sitio y acceder dentro de Aspecto al link Página Maestra.

2)Seleccionamos en el combo nuestra página y aceptamos.

Con todo estos pasos cumplidos ya tendríamos nuestra nueva MasterPage.

Para realizar el post me guíe en la siguiente pagina: http://sharepointmagazine.net/technical/development/deploying-the-master-page

Estilos en Sharepoint June 4, 2009

Posted by dariofederico in .NET, Diseño.
Tags: , ,
add a comment

Holas!! en mis andanzas por sharepoint me toco investigar los estilos que utiliza y me parece ideal comentar cuales fueron los sitios que me ayudaron a poder customizar un sitio en base a uno echo o a retocarlo desde 0.

Empezemos por mencionar este site el cual nos demuestra como crear un proyecto desde 0 para poder activar tema mediante un feature. http://sharepoint-puntodeencuentro.blogspot.com/

http://www.sharepointblogs.com/jeanmarc/archive/2007/07/20/3201.aspx (Exelente sitio que detalla el nombre de cada clase)

http://www.heathersolomon.com/content/sp07cssreference.htm(Otro exelente sitio con mas detalles)

http://www.sharepointcustomization.com/resources/tipstricks/wss_cssguide.htm(Otra guia de clases de css)

Bueno  con estos links es suficiente informacion para poder empezar a diseñar un sitio sharepoint a tu gusto.

Consejos para no cometer errores: procuren leer bien el primer site el cual nos dice cual es la hoja de estilo que se quiere retocar (mayormente se llama theme.css) . NUNCA se deberia de tocar la hoja de estilo default de sharepoint llamada core.css (ubicada en la carpeta  _layous) ya que podrian obtenerse resultados distintos.

PD: Nunca debe faltar el IE Developer Toolbar para poder inspeccionar algunas clases que no se encuentran en estas paginas o detalles muy pequeños para poder sobreescribirlos en la hoja de estilo que se ha creado ;)

Demonios en Sharepoint (timer jobs) May 29, 2009

Posted by npaez in .NET, Tools.
Tags: , ,
add a comment

Si bien es común ver a SharePoint como una herramienta demoniaca, este post no tiene nada que ver con el diablo o las particularidades demoniacas de este producto, sino con la posibilidad que ofrece SharePoint de ejecutar aplicaciones tipo “demonios” tambien conocidos en el mundo Microsoft como Windows Services. Bien, el nombre con que comunmente se conoce a estas aplicaciones en el mundo SharePoint Timer Jobs.

O sea, si necesitamos crear demonio que se ejecute en el contexto de SharePoint, simplemente debemos crear una clase que implemente Microsoft.SharePoint.Administration.SPJobDefinition. Dentro de dicha clase podremos redefinir el método Execute y hacer nuestro cometido.  Como es común en el desarrollo SharePoint esta clase deberá estar dentro de un assembly firmado que será instalado en la GAC.

Hasta aquí el desarrollo de la funcionalidad, ahora… ¿como lo hacemos correr? Bien, la cuestiones no es tan compleja, lo que debemos hacer es crear un feature que al activarse se encargue de la registración del Job y su calendarización. Hecho esto, solo resta la instalación de la feature y su activación lo cual es igual que con cualquier otra feature. Para tener un detalle del proceso completo recomiendo leer estos artículos de Andrew Connell: uno y otro.

Les dejo este pequeño detalle que me insumió un buen rato hasta que lo descubrí: típicamente este tipo de features suelen crearse como “ocultas”, lo que hace que su activación no pueda hacerse desde la interface web de SharePoint, sino que hay que hacerlas utilizados la herramienta de consola stsadm.exe.

Espero les haya resultado útil.

See U.

Como crear un WebPart en Sharepoint May 26, 2009

Posted by dariofederico in .NET.
Tags: , ,
add a comment

Buenas!! Como sabran estamos utilizando sharepoint y estamos en plena practica. Aca les muestro un mini tutorial de como agregar un web part en un proyecto del tipo sharpoint.

En nuestro caso lo que hicimos fue crear un proyecto del tipo web y ahi añadimos un user control.

Dentro del proyecto de sharepoint añadimos un web part con el nombre del user control ( ej: UserControlWebPart). En la carpeta del web part creado apareceran 3 archivos: UserControlWebPart.cs, UserControlWebPart.webpart y UserControlWebPart.xml.En el UserControlWebPart.cs debemos escribir la lógica para cargar el control

Una vez creado el web part debemos proceder a añadir un template en el proyecto sharepoint, el cual tendra un link al UserControl creado en el proyecto web. Para ello añadimos un template. Dentro de la carpeta template creamos el link añadiendo un archivo existente, elegimos el user control creado y en la opcion de agregar tenemos que elegir “Add As link”.

Una vez realizado estos pasos nos queda por definir que cargue el control en el UserControlWebPart.cs. Para ello debemos poner la siguiente linea de codigo:

protected override void CreateChildControls()
{
base.CreateChildControls();

try
{
//Loads a user control

UserControl userControl= (UserControl)Page.LoadControl(“~/_controltemplates/UserControl.ascx”);
this.Controls.Add(userControl);
}
catch (HttpException ex)
{
this.Controls.Add(new LiteralControl(“<br />An unexpected error occurred loading Web Part. ” + ex.Message));
}
}

Con esto ya tenemos cargado el control.

Si realizamos todos los pasos correctamente si ningun error, cuando ejecutemos deploy y levante el sharpoint, dentro de la aplicacion deberiamos entrar a los WebPart y elegir el control generado, el cual aparecera con un aviso de new! al lado (UserControlWebPart new!). Accedemos al web part y podremos ver la visualizacion del control que fue creado.

protected override void CreateChildControls()
{
base.CreateChildControls();

try
{
//Loads a user control

DetalleOferta detalleOferta = (DetalleOferta)Page.LoadControl(“~/_controltemplates/Ofertas/DetalleOferta.ascx”);
detalleOferta.Web = SPContext.Current.Web;
this.Controls.Add(detalleOferta);
}
catch (HttpException ex)
{
this.Controls.Add(new LiteralControl(“<br />An unexpected error occurred loading Web Part. ” + ex.Message));
}

Visual Studio Extension for Sharepoint issue May 22, 2009

Posted by npaez in .NET, Visual Studio.
Tags: , , , ,
add a comment

Continuando con la saga de Sharepoint esta vez tenemos para reportar un issue que nos causó un par molestias.

Resulta que una de nuestras máquinas de desarrollo tiene un windows 2003 en español. Una vez seteado todo el entorno con las herramientas correspondientes (iis, vs, sharepoint, y las extensiones para vs) comenzamos nuestro desarrollo utilizando los templates provistos por las extensiones de VS, pero resulta que al momento de querer desplegar nos tira un error quejándose por un caracter no válido. Si, el error es así de genérico. El problema está en que el proceso de despliegue quiere copiar un conjunto de archivo que genera al directorio temporal de windows, y resulta que dicho directorio cuando el windows está en español apunta a un directorio …..”configuración”….., si tal cual lo leen con acento y todo, y ese es precisamente el problema: el caracter con acento.

Para solucionar este issue basta con cambiar las variable de entorno “tmp” y “temp” para que apunten a una dirección simple como por ejemplo :”c:\temporal”.

Espero esto resulte de utilidad.

Saludos!