Blog Stats
  • Posts - 171
  • Articles - 1
  • Comments - 197
  • Trackbacks - 5

 

Sviluppare rapidamente Web Part su WSS 3.0

Le Web Parts rappresentano una caratteristica molto importante nel mondo Sharepoint in quanto tramite questi "componenti" è possibile dare la possibilità ad un utente di personalizzare il contenuto di una pagina, decidendo cosa e dove disporre tali contenuti.

Dal punto di vista di ASP.NET, la Web Part è una "web custom control" e su Sharepoint è possibile sviluppare due diverse tipologie di Web Parts: quelle che derivano direttamente dalla web part di ASP.NET(System.Web.UI.WebControls.WebParts.WebPart) e quelle che derivano dall'implementazione di Sharepoint(Microsoft.SharePoint.WebPartPages.WebPart).

Le ultime sono utili nel momento in cui ho bisogno di sfruttare le caratteristiche di personalizzazione e connettività che Sharepoint mette a disposizione all'interno della sua infrastruttura.

Ci sono molti articoli e post su Internet su come sviluppare Web Parts per Sharepoint e su come farne il deploy, ma questo non è l'obiettivo del post.

Qui voglio solo descrivere come è possibile realizzare rapidamente Web Parts per Sharepoint e metterle in produzione, evitandovi tutta la più o meno faticosa fase di ricerca delle informazioni sul come fare.
 

FASE 1) Sviluppare la Web Part

La Web Part ha una interfaccia grafica che rappresenta la UI verso l'utente. Le "best-practice" dicono che è consigliabile sviluppare tutta la Web Part da codice, scrivendo tutto quanto serve a gestire eventi e controlli a partire dal metodo CreateChildControls.

Ci sono soluzioni alternative, come le SmartPart di Jab Tielens. Io ho adottato una soluzione alternativa, anche se simile, ossia quella di creare degli User Controls da far caricare poi dalla Web Part effettiva.

Quindi, uso STSDEV per creare la mia soluzione in VS2005/2008 contenente tutto ciò che serve sia per il codice della web part che per i vari elementi(feature e manifesti wsp) necessari al deploy.

Poi creo un progetto web site standard dove invece vado a creare lo user control(ascx) che sarà legato alla web part. Tramite il web site, su cui mettero' comunque la referenza a Microsoft.Sharepoint.dll, posso testare velocemente lo user control durante lo sviluppo come fosse già incluso nella web part.

Nella web part devo solo scrivere del codice per caricare lo user control:

using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Microsoft.SharePoint;
 
namespace My.WebParts 
{
    
    public class MyWebPart : WebPart 
    {
        private SPWeb _web;
 
        protected override void  OnInit(EventArgs e)
        {
             base.OnInit(e);
 
             this._web = SPContext.Current.Web;
        }
 
        protected override void CreateChildControls() 
        {
            this.Controls.Clear();
            UserControl usercontrol = (UserControl)Page.LoadControl(@"/usercontrols/MyWebPart.ascx");
            this.Controls.Add(usercontrol);
        }
    
    }
 
}
 
 

 
FASE 2) Deploy della Web Part

Usando STSDEV, il deploy è molto semplice in quanto è sufficiente selezionare il tipo di Build che vogliamo eseguire e procedere.

Il deploy da STSDEV, dopo averlo opportunamento configurato la prima volta, in automatico penserà a:

  • compilare e creare il package wsp(la solution)
  • aggiungere la solution su Sharepoint
  • deployare la solution su Sharepoint
  • modificare il web.config aggiungendo la webpart nella sezione "safe controls"

Oltre a questo, manualmente dobbiamo creare una cartella \usercontrols nella root del web site di Sharepoint su cui facciamo il deploy per andare a copiarci i file .ascx (e relativi .ascx.cs del code-behind se ne abbiamo).

Fatto questo, è sufficiente collegarsi al nostro sito sharepoint, abilitare la feature delle web parts e testarle.

 

Conclusioni:

Usando STSDEV e gli UserControl è possibile creare, testare e fare il deploy di web part in modo molto semplice e veloce. L'uso dello user control ci permette di realizzare l'interfaccia utente usando il tipico approccio ASP.NET.

Il deploy richiede qualche operazione manuale in più in quanto è necessario posizionare correttamente gli user controls all'interno del web site di Sharepoint.

STSDEV deve essere opportunamento configurato nei file presenti nella folder DeploymentFiles e per ogni nuova web part aggiunta in RootFiles.

 

Referenze:

WSS 3.0 webparts development
Building Web Parts for Windows SharePoint Services 3.0
What to know about SmartPart, and LoadControl()


Feedback

# re: Sviluppare rapidamente Web Part su WSS 3.0

Gravatar Attenzione che il fatto di utilizzare il vecchio namespace Microsoft.SharePoint.WebPartPages.WebPart in realtà è sconsigliato per wss 3.0

E' più un tip nel caso in cui si deve fare in modo di interagire con infrastrutture di sharepoint "velocemente" (ovvero: senza stare a scrivere troppo codice).

Oppure viene utilizzato quando si fa un porting di una webpart da una versione precedente di sharepoint (tipicamente wss 2.0).

Diciamo che è una compatibilità verso il basso, che in alcuni casi può dare altri vantaggi. 29/04/2008 13:30 | Omar Damiani

# re: Sviluppare rapidamente Web Part su WSS 3.0

Gravatar Ma io ho sviluppato una soluzione in quel modo ma quando poi l' ha presa in mano il guru di MOSS, il buon vecchio Claudio Brrrr sono stato largamente cicchettato ... MOSS e WSS hanno davvero tante tante futures che si possono usare senza ricorrere a UserControl o simili. 29/04/2008 14:16 | Raffaeu

Comments have been closed on this topic.
 

 

Copyright © Luca Mauri