SharePoint 2010: Como añadir “verbos” personalizados a una WebPart!

Las WebParts en SharePoint 2010, como casi toda la plataforma, son muy extensibles de manera que podemos añadir nuevas personalizaciones a distintos niveles: propiedades en la Toolpart, conexiones de Webparts, o verbos. Precisamente sobre estos últimos trata este post….¿Qué es un “verbo” en una WebPart? pues no es más qué cualquier opción de menú disponible en el menú contextual de la misma:

image

Para añadir nuevos “verbos” a una WebPart tenemos que sobreescribir la propiedad Verbs disponible en la clase base WebPart. Esta propiedad nos devuelveun WebPartVerbCollection teniendo en cuenta que tenemos tres tipos de verbos:

  • Del lado del servidor, es decir, se necesita hacer una petición al servidior.
  • Del lado del cliente, es decir, todo se hace en el cliente vía JavaScript.
  • Del lado del cliente y del lado del servidor, es decir, primero se ejecuta algo de trabajo en el cliente y luego algo en el servidor.

Dicho esto, para añadir nuestros verbos a la WebPart basta con sobreescribir la propiedad comentada como por ejemplo:

   1: using System;

   2: using System.ComponentModel;

   3: using System.Web;

   4: using System.Web.UI;

   5: using System.Web.UI.WebControls;

   6: using System.Web.UI.WebControls.WebParts;

   7: using Microsoft.SharePoint;

   8: using Microsoft.SharePoint.WebControls;

   9:  

  10: namespace SPLINQWP.SPLINQToSPCRWP

  11: {

  12:     [ToolboxItemAttribute(false)]

  13:     public class SPLINQToSPCRWP : WebPart

  14:     {

  15:         // Visual Studio might automatically update this path when you change the Visual Web Part project item.

  16:         private const string _ascxPath = @"~/_CONTROLTEMPLATES/SPLINQWP/SPLINQToSPCRWP/SPLINQToSPCRWPUserControl.ascx";

  17:         protected Label lblMessage;

  18:  

  19:         protected override void CreateChildControls()

  20:         {

  21:             Control control = Page.LoadControl(_ascxPath);

  22:             lblMessage = new Label();

  23:             Controls.Add(control);

  24:             Controls.Add(lblMessage);

  25:         }

  26:  

  27:         public override WebPartVerbCollection Verbs

  28:         {

  29:             get

  30:             {

  31:                 WebPartVerb ssWebPartVerb = new WebPartVerb("serverSiteVerbId", handlessWebPartVerb);

  32:                 ssWebPartVerb.Text = "Verbo en el lado del servidor";

  33:                 WebPartVerb csWebPartVerb = new WebPartVerb("clientSideVerbId", "javascript:alert('Has pulsado un verbo en el lado del cliente');");

  34:                 csWebPartVerb.Text = "Verbo en el lado del cliente";

  35:                 WebPartVerb cssWebPartVerb = new WebPartVerb("clientAndServerSideVerbId",

  36:                     handlessWebPartVerb, "javascript:alert('Has pulsado un verbo en el lado del cliente');"

  37:                     );

  38:                 cssWebPartVerb.Text = "Verbo en el lado del cliente y del servidor";

  39:                 WebPartVerbCollection wpvcColeccionVerbos= new WebPartVerbCollection(

  40:                     new WebPartVerb[] {

  41:                         ssWebPartVerb, csWebPartVerb, cssWebPartVerb,

  42:                     }

  43:                     );

  44:                 return (new WebPartVerbCollection(base.Verbs, wpvcColeccionVerbos));

  45:             }

  46:         }

  47:  

  48:  

  49:         protected void handlessWebPartVerb(Object source, WebPartEventArgs args)

  50:         {

  51:             EnsureChildControls();

  52:             this.lblMessage.Text = "Se ha realizado una llamada al servidor";

  53:         }

  54:     }

  55: }

Hacemos el despliegue de la WebPart y comprobamos:

  • Que los nuevos verbos están disponibles.
  • Que el verbo en el lado del cliente funciona como se ha configurado.
  • Que el verbo en el lado del servidor funciona también como se espera.

 

image image image

SharePoint 2010: Herramientas de desarrollo (I)!

Aunque a la hora de desarrollar para SharePoint 2010, tenemos un soporte mucho mayor que el que teníamos en SharePoint 2007, igualmente necesitaremos de otra serie de herramientas de desarrollo que complementen lo que tenemos en Visual Studio 2010. Por eso, siguiendo la idea de un post que se publicó en torno a herramientas de desarrollo para SharePoint 2007, la idea de este post y siguientes es ir creando una referencia a herramientas de desarrollo útiles para SharePoint 2010…espero que los lectores de este blog me ayuden en dicha labor. A continuación os dejo las que he recopilado para esta primera entrada:

Herramienta

Enlace de descarga / referencia

Using Visual Studio for SharePoint Development

http://msdn.microsoft.com/en-us/library/ee539321.aspx

Using SharePoint Designer for SharePoint Development

http://msdn.microsoft.com/en-us/library/ff458496.aspx

Debugging and Logging Capabilities in SharePoint 2010

http://msdn.microsoft.com/en-us/library/gg512103.aspx

SharePoint Developer Center

http://msdn.microsoft.com/en-us/sharepoint

SharePoint Log Reader

http://sharepointlogreader.codeplex.com/

ULS Viewer

http://archive.msdn.microsoft.com/ULSViewer

SharePoint ULS Log Viewer

http://ulsviewer.codeplex.com/

U2U CAML Builder

http://www.u2u.be/res/tools/camlquerybuilder.aspx

SharePoint Manager 2010

http://spm.codeplex.com/

.NET Reflector

http://www.reflector.net/

Stramit CAML Viewer

http://spcamlviewer.codeplex.com/

SharePoint Designer 2010

http://www.microsoft.com/download/en/details.aspx?id=16573

CKS for SharePoint 2010 Development

http://cksdev.codeplex.com/

CAML.NET Intelisense for Visual Studio 2010

http://visualstudiogallery.msdn.microsoft.com/15055544-fda0-42db-a603-6dc32ed26fde

Virtual Box

https://www.virtualbox.org/

CloudShare

http://www.cloudshare.com/

Fiddler

http://www.fiddler2.com/fiddler2/