Question

Je souhaite créer une bibliothèque de documents personnalisée sur laquelle j'utilise l'interface utilisateur standard, mais implémente une couche de persistance différente. Fondamentalement, récupérer et afficher des documents à partir d'un système source différent. De cette façon, je peux utiliser mon modèle d’objet existant, tout en tirant parti de la formidable intégration bureautique dans SharePoint.

J'ai trouvé un article digne ici , mais ils trichent, ils ont codé un tout nouveau Interface utilisateur pour la persistance externe.

J'ai consulté les objets SPList et SPDocumentLibrary mais je ne peux pas remplacer les méthodes nécessaires.

J'ai examiné le cadre des événements et il est plus proche, mais il manque des événements importants tels que "GetFile" ou "PopulateList".

Avez-vous des idées?

Était-ce utile?

La solution

Ce n’est pas parfait (ou probablement même & "; bon &";) adapté à ce que vous essayez de faire, mais je le mentionne principalement pour la sensibilisation et éventuellement pour vous donner quelques informations supplémentaires. idées (et avertissements).

L'architecture de stockage de SharePoint exploite deux magasins principaux différents: un pour les métadonnées (toujours les bases de données SQL de SharePoint) et un autre pour le stockage BLOB (également SQL par défaut). Dans sa forme actuelle, cependant, SharePoint vous permet de & Quot; brancher & Quot; votre propre fournisseur de stockage BLOB via un type qui implémente l'interface ISPExternalBinaryProvider. Le câblage dans un type qui implémente cette interface vous permet de continuer à stocker des métadonnées en SQL tout en stockant des documents et d'autres types d'élément BLOB dans un magasin différent de votre choix.

Cela semble probablement prometteur, mais quelques considérations sérieuses s’imposent:

  1. Le câblage de votre propre ISPExternalBinaryProvider a un impact sur toute la batterie. C'est tout ou rien, donc une fois que le fournisseur est connecté, tous les sites et toutes les bibliothèques utiliseront le nouveau fournisseur.

  2. Vous devrez vous plonger dans le code non géré, comme le fait ISPExternalBinaryProvider pour vous obliger à utiliser certains IDL.

Vous pouvez en savoir plus ici: http://msdn.microsoft.com /en-us/library/bb802976.aspx

Mon avis est que le système de stockage externe BLOB (EBS) est en quelque sorte un & "prototype &"; à ce stade - pas prêt pour le prime-time. Si rien d'autre, cependant, cela vous donne quelque chose à penser. Espérons que SharePoint Server 2010 en fera plus et le rendra plus attrayant et facile à mettre en œuvre.

Pour ce que ça vaut!

Autres conseils

J'ai implémenté la persistance SQL dans une bibliothèque de formulaires en utilisant un workflow de persistance qui s'exécute lors de la création et de la mise à jour des documents de la bibliothèque.

J'ai créé un projet de flux de travail Office SharePoint 2007 dans Visual Studio 2008, extrait le contenu de mon document SPItem, extrait les données pertinentes du code XML généré par InfoPath WebForm et les conservant dans une base de données.

Si vous voulez vraiment utiliser votre propre persistance externe, jetez un coup d'œil à ce tout nouvel article complet de juin sur TechNet:

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

Maintenant, donnez-moi la prime. ;)

Désolé de le dire, mais ISPExternalBinaryProvider est le seul moyen de le faire. Je crains que vous ne souhaitiez utiliser une interface utilisateur standard.

P.S. Un autre inconvénient majeur est qu’il s’agit d’un cauchemar de sauvegarde / versioning. Pas même si la gestion des versions est prise en charge.

Peut-être que SharePoint 2010 disposera d'un meilleur moyen de le faire ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top