Domanda

Vorrei creare una raccolta documenti personalizzata in cui utilizzo l'interfaccia utente standard ma implemento un livello di persistenza diverso. Fondamentalmente recuperare e visualizzare documenti da un sistema di origine diverso. In questo modo posso usare il mio modello a oggetti esistente ma sfruttare la grande integrazione dell'ufficio all'interno di SharePoint.

Ho trovato un articolo decente qui ma stanno imbrogliando, hanno codificato un completamente nuovo UI per la persistenza esterna.

Ho esaminato gli oggetti SPList e SPDocumentLibrary ma non posso ignorare i metodi necessari.

Ho esaminato il framework degli eventi ed è più vicino ma manca di eventi importanti come 'GetFile' o 'PopulateList'.

Qualche idea?

È stato utile?

Soluzione

Questo non è un perfetto (o probabilmente anche un " buono ") adatto a ciò che stai cercando di fare, ma lo menziono principalmente per la consapevolezza e per darti eventualmente qualche ulteriore idee (e avvertimenti).

L'architettura di archiviazione di SharePoint sfrutta due diversi archivi back-end: uno per i metadati (sempre database SQL di SharePoint) e un altro per l'archiviazione BLOB (anche SQL per impostazione predefinita). Nella sua forma attuale, tuttavia, SharePoint ti consente di & Quot; wire-in & Quot; il proprio provider di archiviazione BLOB tramite un tipo che implementa l'interfaccia ISPExternalBinaryProvider. Il cablaggio in un tipo che implementa questa interfaccia consente di continuare a memorizzare i metadati in SQL mentre si archiviano documenti e altri tipi di elementi BLOB in un archivio diverso di propria scelta.

Probabilmente sembra un po 'promettente, ma ci sono un paio di considerazioni serie:

  1. Il cablaggio nel proprio ISPExternalBinaryProvider ha un impatto a livello di farm. È tutto o niente, quindi una volta collegato il provider, tutti i siti e le librerie utilizzeranno il nuovo provider.

  2. Dovrai immergerti nel codice non gestito, come ISPExternalBinaryProvider sta facendo per richiedere di lavorare con alcuni IDL.

Puoi leggere di più qui: http://msdn.microsoft.com /en-us/library/bb802976.aspx

La mia opinione è che il sistema di archiviazione BLOB esterno (EBS) sia qualcosa di un " prototipo " a questo punto - non pronto per la prima serata. Se non altro, però, ti dà qualcosa a cui pensare. Si spera che SharePoint Server 2010 ne faccia di più e lo renda più attraente e facile da implementare.

Per quello che vale!

Altri suggerimenti

Ho implementato la persistenza SQL in una libreria di moduli utilizzando un flusso di lavoro di persistenza che viene eseguito sulla creazione e sull'aggiornamento dei documenti della libreria.

Ho creato un progetto del flusso di lavoro di Office SharePoint 2007 in Visual Studio 2008, ho recuperato il contenuto del mio documento SPItem ed estratto i dati rilevanti dall'XML generato da Web Form Form di InfoPath e li ho mantenuti in un database.

Se vuoi davvero ottenere la tua persistenza esterna, prova a dare un'occhiata a questo articolo nuovo di zecca di giugno su TechNet:

http://technet.microsoft.com/en-us /magazine/2009.06.insidesharepoint.aspx

Ora dammi la taglia. ;)

Mi dispiace dirlo, ma ISPExternalBinaryProvider è l'unico modo per farlo, temo che tu voglia usare l'interfaccia utente standard.

P.S. Un altro grande inconveniente è che è un incubo di backup / versioning. Non sono nemmeno sicuro che il controllo delle versioni sia supportato.

Forse SharePoint 2010 avrà un modo migliore per farlo ...

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