Domanda

Ho codificato una soluzione che utilizza l'API 2007 per attraversare il modello a oggetti di SharePoint. Ora devo supportare anche SP 2003. Qual è il modo migliore per farlo?

È possibile / consigliato utilizzare l'API 2007 per accedere a una farm di SharePoint 2003?

Se utilizzo l'API 2007, devo utilizzare le classi obsolete per (ad esempio) fare riferimento a un database di configurazione o utilizzare le classi 2007, come SPFarm?

O uso l'API 2007 per SP 2007 e l'API 2003 per SP 2003 ...? Il problema è che entrambi usano gli stessi spazi dei nomi e gli stessi nomi delle classi. Quindi può diventare disordinato. (Tranne forse se uso gli alias per fare riferimento ai diversi spazi dei nomi?)

È stato utile?

Soluzione

Per quanto ne so, l'API 2007 e l'API 2003 sono incompatibili. Quindi sì? dovrai implementare entrambi.

Posso suggerire di avere l'interfaccia ISharePointAPI e due implementazioni SharePoint2007API e SharePoint2003API. Queste implementazioni possono anche essere impacchettate in assiemi diversi, quindi non avrai riferimenti infernali :). Questo ti proteggerà anche dalle modifiche dell'API del 2010 poiché ciò di cui avrai bisogno è implementare SharePoint2010API ...

Altri suggerimenti

Le interfacce sono (principalmente) compatibili in uno spazio dei nomi / classe / membro USAGE ma devi usare la versione corretta dell'API per la versione corretta di SharePoint. Bisogna anche considerare che WSS2 / SPS2003 utilizza .NET1.1 per impostazione predefinita.

La mia soluzione è utilizzare MSBEE e alcuni MSBUILD ninja si sposta per sputare due versioni dal tuo codice sorgente.

Il primo riguarda .NET2 e fa riferimento a Microsoft.SharePoint.dll v12 (WSS3 / MOSS2007) e il secondo riguarda .NET1.1 e fa riferimento a Microsft.Sharepoint.dll v11 (WSS2 / SPS2003).

È piuttosto un difetto da configurare, ma funziona molto bene dopo. In presenza di differenze di codice è possibile utilizzare la compilazione condizionale: -

#if FX1_1
   // WSS2/SPS2003 specific code
#else
   // WSS3/MOSS2007 specific code
#endif

Questo articolo fornisce qualche dettaglio in più. È un argomento importante e ho intenzione di scrivere un post sul blog con qualche suggerimento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top