Un nuevo desafío “Desarrollar sobre el Modelo de Objetos de SharePoint”

Buenas tardes a todos.

Mi nombre es Constanza Herrera, Llevo aproximadamente 2 años y fracción trabajando con SharePoint, pero ya hace un año comencé a especializarme en esta herramienta, formando parte del equipo de Colaboración, liderado por Juan Andrés Valenzuela.

Dentro de los desafíos que han aparecido en este camino, se me dio la “oportunidad” de comenzar a Desarrollar sobre esta plataforma (Razón por la cual escribo esta entrada), ¿nunca les ha pasado que cuando están trabajando con SharePoint (sea WSS 3.0 o MOSS) les aparece la necesidad de enviar un archivo a distintos lugares?, claro! existe la opción de “Enviar a”, pero esto nos ayuda en una sola… por lo cual, el trabajo es RE PE TI TI VO…

Bueno, Manos a la obra!.

(Si se ha trabajado antes con SharePoint + C# es una gran ayuda).

Lo primero que tenemos que hacer es iniciar un nuevo proyecto WSPBuilder. (si no lo tenemos, se puede descargar aqui: http://wspbuilder.codeplex.com/).

Una vez hecho esto, debemos comenzar a crear nuestro “árbol”

Los archivos que componen este tipo de “features” son diversos, la idea, es trabajar con la MasterPage por defecto del propio SharePoint (cosa que aveces VS2008 no lo muestra en “preview” a diferencia de VS2005), y en ésta crear la nueva .aspx que nos enviará el documento.

Se necesita, además, los archivos “feature.xml” y “elements.xml”, en los cuales tendremos la información de la Feature, imagen que aparecerá en el menú asociado al nombre del archivo, nombre de la Feature, etc.

Por supuesto, no podemos dejar atrás nuestra .aspx, con su respectivo código, el cual será quien haga la magia en nuestro Site.

Es en este punto donde WSPBuilder nos ayuda… quienes han desarrollado antes para SharePoint saben lo incómodo que era generar la .dll, luego copiarla a la GAC, y luego firmarla como SafeControl, sin contar que hay que generar la key asociada… bueno, el WSPBuilder hace esta magia, además de ayudarnos en compilar, deployar, etc hacia SharePoint (adiós stsadm!!!).

Siguiendo con el tema, ¿donde está la magia?, bueno, el modelo de objetos de SharePoint cuenta con un método “MoveTo” que lo que hace es poder copiar el archivo a un/os Destino/s Asociados, manteniendo la Metadata. (ideal! ya que respeta el historial de versiones, a diferencia de su hermano CopyTo, que pisa al 100% el documento y no mantiene éste).

El resto va en la imaginación de cada uno, en mi caso, presente las URL’s en una Grilla separadas, así el ciclo recorre cada uno de los campos de la grilla y envía el archivo.

Finalmente, les dejo un extracto del código… para que vean como interactuan…

protected void Button1_Click(object sender, EventArgs e)        {
SPFile file = SPContext.Current.Web.GetFile(this.TextBox1.Text);
if (destino != null)            {

for (int var = 0; var < celda.Length; var++)                {

if (destino[destino.Length – 1] == Path.AltDirectorySeparatorChar)                    {

file.MoveTo(celda[var] + file.Name, true);

}              else                    {

file.MoveTo(celda[var] + Path.AltDirectorySeparatorChar.ToString() + file.Name, true);                                           }
} Response.Redirect(file.ParentFolder.ServerRelativeUrl);
}            else            {

this.TextBox1.Text = listItem.Url;

this.DataGrid1.Visible = false;

this.TextBox2.Visible = true;

this.TextBox2.Text = “Este documento no tiene asociado ninguna dirección de Destino”;

this.Button2.Visible = true;

this.Button1.Visible = false;

}

}

Esperando que les haya gustado este primer post, me despido…!!!!

Saludos y gracias por leer y comentar! y hasta la próxima.

Acerca de conytaherrera

Ingeniero en Informática, algo raro eso si, pues siempre pensé que terminaría en otra cosa (xD), feliz de la mano con mi hijo.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s