Partager via


Modèle objet de la mise à niveau de Composants fonctionnels

Dernière modification : vendredi 9 juillet 2010

S’applique à : SharePoint Foundation 2010

Dans cet article
Événement FeatureUpgrading
Propriété Version
Méthode QueryFeatures
Méthode Upgrade

Pour fournir la fonctionnalité de mise à niveau de Composant fonctionnel, de nouveaux types et membres ont été ajoutés au modèle objet Microsoft SharePoint Foundation. Ce sont :

  • l’événement FeatureUpgrading ;

  • la propriété Version ;

  • les méthodes QueryFeatures ;

  • la méthode Upgrade.

Événement FeatureUpgrading

Les récepteurs de fonctionnalités (SPFeatureReceiver) permettent désormais de gérer les événements FeatureUpgrading(SPFeatureReceiverProperties, String, IDictionary<String, String>). Vous pouvez implémenter votre propre récepteur de fonctionnalités personnalisé pour mettre à niveau des instances de Composant fonctionnel.

Les paramètres FeatureUpgrading(SPFeatureReceiverProperties, String, IDictionary<String, String>) comprennent les propriétés du contexte d’exécution actuel, le nom de l’action de mise à niveau personnalisée à exécuter et un dictionnaire des paramètres d’action de mise à niveau personnalisée.

Pour un exemple illustrant l’utilisation de la méthode FeatureUpgrading(SPFeatureReceiverProperties, String, IDictionary<String, String>), voir Procédure : utiliser du code de mise à niveau pour activer un Composant fonctionnel comportant des dépendances.

Propriété Version

La classe SPFeatureDefinition existante possède déjà une propriété Version, tandis que la classe SPFeature dans SharePoint Foundation fournit également une nouvelle propriété Version. Toutefois, la version de Composant fonctionnel actuelle spécifiée dans le fichier Feature.xml est la version définie dans la classe SPFeatureDefinition. Version est une classe de version unique associée à une instance de Composant fonctionnel au niveau d’une étendue spécifiée, qui peut ne pas correspondre à la version de définition de Composant fonctionnel.

Un objet défini à une étendue spécifique, tel qu’on objet SPWebApplication ou SPSite, doit subir une mise à niveau si un ou plusieurs des Composants fonctionnels qui lui sont associés possèdent un numéro de version inférieur à celui spécifié dans le fichier Feature.xml associé à cette instance de Composant fonctionnel.

Le format de la version est xxxx. xxxx. xxxx. xxxxx représente un chiffre unique. Si le fichier Feature.xml ne spécifie pas d’attribut Version, « 0.0.0.0 » est la version par défaut.

Notes

SharePoint Foundation n’autorise pas les versions « courtes », dans lesquelles moins de quatre numéros d’une version sont spécifiés (par exemple, 1.0) ; si cela se produit, une exception est déclenchée.

Méthode QueryFeatures

Les nouvelles méthodes QueryFeatures vous permettent d’interroger les Composants fonctionnels dans différentes étendues à l’aide d’un ensemble de critères de filtrage. Les classes SPWebService, SPWebApplication, SPContentDatabase et SPSite fournissent chacune une méthode QueryFeatures, dont les surcharges vous permettent de spécifier différents critères pour déterminer les ensembles de résultats d’instance de Composant fonctionnel à retourner.

  • SPWebService : recherchez dans la batterie de serveurs les instances de Composant fonctionnel activées qui satisfont aux critères de filtrage.

  • SPWebApplication : recherchez les Composants fonctionnels dont l’étendue est définie au niveau de l’application Web, de la collection de sites et du site Web et qui satisfont aux critères de filtrage spécifiés. La requête est exécutée dans toutes les bases de données de contenu au sein de l’objet d’application Web et la collection retournée est classée par base de données de contenu.

  • SPContentDatabase : recherchez dans la base de données de contenu les Composants fonctionnels dont l’étendue est définie au niveau de la collection de sites et du site Web et qui satisfont aux critères de filtrage spécifiés. La collection retournée est classée par rapport à la hiérarchie de site Web. Par exemple, les Composants fonctionnels de site Web parents sont représentés avant les Composants fonctionnels de site Web enfants, et la hiérarchie est parcourue du haut vers le bas.

  • SPSite : recherchez tous les Composants fonctionnels dont l’étendue est définie au niveau de la collection de sites et du site Web et qui satisfont aux critères de filtrage spécifiés. La collection retournée est classée par rapport à la hiérarchie de site Web. Les Composants fonctionnels de site Web parents sont représentés avant les Composants fonctionnels de site Web enfants, et la hiérarchie est parcourue du haut vers le bas. Les surcharges de la méthode QueryFeatures pour cette classe sont disponibles dans les nouveaux modèles objet côté client.

Surcharges

Les quatre surcharges suivantes de la méthode QueryFeatures sont fournies pour chacune des classes répertoriées ci-dessus :

  • Retourner toutes les instances de Composant fonctionnel ayant l’étendue spécifiée. Vous pouvez utiliser le paramètre needsUpgrade pour retourner tous les Composants fonctionnels ayant besoin d’une mise à niveau.

    public Microsoft.SharePoint.SPFeatureQueryResultCollection 
    QueryFeatures(Microsoft.SharePoint.SPFeatureScope scope, bool needsUpgrade)
    
  • Retourner toutes les instances de Composant fonctionnel ayant l’ID de Composant fonctionnel spécifié. Vous pouvez utiliser le paramètre needsUpgrade pour retourner tous les Composants fonctionnels ayant besoin d’une mise à niveau.

    public Microsoft.SharePoint.SPFeatureQueryResultCollection 
    QueryFeatures(System.Guid featureId, bool needsUpgrade)
    
  • Retourner toutes les instances de Composant fonctionnel ayant l’ID de Composant fonctionnel et le numéro de version spécifiés.

    public Microsoft.SharePoint.SPFeatureQueryResultCollection 
    QueryFeatures(System.Guid featureId, System.Version featureVersion)
    
  • Retourner toutes les instances de Composant fonctionnel ayant l’ID de Composant fonctionnel spécifié.

    public Microsoft.SharePoint.SPFeatureQueryResultCollection    
    QueryFeatures(System.Guid featureId)
    

La classe SPFeatureQueryResultCollection permet d’énumérer les Composants fonctionnels retournés par le biais d’une opération QueryFeatures.

Pendant la mise à niveau, la méthode QueryFeatures détermine si une instance de Composant fonctionnel est obsolète lorsqu’elle détecte un numéro de version d’instance inférieur au numéro de version de définition Feature.xml actuel. En fonction des directives UpgradeActions se trouvant dans le fichier Feature.xml, la mise à niveau est appelée pour chaque instance de Composant fonctionnel qui la requiert. Une fois que la mise à niveau d’une instance de Composant fonctionnel s’est correctement déroulée, le numéro de version de l’instance est mis à jour avec le numéro de version de définition du fichier Feature.xml.

Méthode Upgrade

La classe SPFeature fournit désormais une méthode Upgrade(Boolean) qui permet d’effectuer une mise à niveau pour une instance de Composant fonctionnel à toutes les étendues : Farm, WebApplication, Site et Web.

Lorsqu’elle est appelée sur une instance de Composant fonctionnel dépendant, la méthode QueryFeatures met à niveau l’instance de Composant fonctionnel de niveau le plus élevé dans la hiérarchie appropriée, puis toutes les instances de Composant fonctionnel qui dépendent de ce Composant fonctionnel. Grâce à ce processus de mise à niveau hiérarchique, toutes les instances de Composant fonctionnel dépendant demeurent synchronisées avec l’instance de Composant fonctionnel dont elles dépendent.

Important

N’appelez pas la méthode Upgrade(Boolean) depuis un récepteur d’événements de mise à niveau de Composant fonctionnel. Par exemple, n’appelez pas cette méthode sur les Composants fonctionnels pouvant être obtenus par le biais d’un code tel que le suivant :

SPFeatureQueryResultCollection queryResults = myWebService.QueryFeatures(myScope, true);

IEnumerator<SPFeature> featureEnumerator = queryResults.GetEnumerator();