Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais
Informations
Le sujet que vous avez demandé est indiqué ci-dessous. Toutefois, ce sujet ne figure pas dans la bibliothèque.

Exemple d'application console de mise en service

Découvrez les concepts fondamentaux de l'utilisation du moteur de mise en service Plug and Play pour créer et conserver, puis appliquer des modèles de mise en service pour les nouvelles collections de sites SharePoint.

Dernière modification :jeudi 15 octobre 2015

Note Remarque

Le nom « Applications pour SharePoint » est remplacé par « Compléments SharePoint ». Lors de la période de transition, il se peut que la documentation et l’interface utilisateur de certains produits SharePoint et outils Visual Studio utilisent toujours le terme « applications pour SharePoint ». Pour plus d’informations, voir Nouveau nom des applications pour Office et SharePoint.

Pour prendre en charge le nouveau modèle complément, le programme Office 365 pour les développeurs modèles et pratiques (Plug and Play) a lancé une infrastructure de mise en service qui permet aux utilisateurs de créer des modèles de site personnalisés simplement en pointant sur un modèle de site, conserver le modèle comme un modèle de mise en service et ensuite appliquer le modèle personnalisé pour des collections de sites existante ou nouvelle selon vos besoins.

Dans cet exemple, nous avons créer une application de console de base qui implémente des classes dans la bibliothèque principale Plug and Play mise en service pour permettre au moteur de mise en service Plug and Play effectuer ces tâches essentielles de mise en service :

  • Concevoir et modéliser de personnalisation de votre site. Il peut s'agir d'une nouvelle conception de site, ou vous pouvez pointer vers un site existant et enregistrez-le sous un modèle de mise en service.

  • Enregistrez et conserver le modèle de site comme modèle de mise en service afin que vous pouvez réutiliser.

  • Appliquer le modèle de mise en service pour une collection de sites existante ou nouvelle.

Remarque Remarque

Cette procédure pas à pas exemples est associée à un échantillon actuellement disponible sur les référentiels : Mise en route avec le moteur de mise en service Plug and Play. Le code (Program.cs) et les fichiers de la solution de l'exemple sont disponibles en téléchargement.

Également vous trouverez une présentation vidéo 20 minutes de ce processus (avec un code légèrement différent) sur le site Microsoft Channel 9: Mise en route avec le moteur de mise en service Plug and Play.

Pour commencer, créez un projet de Visual Studio. Dans cet exemple, pour plus de simplicité, nous créer une application de console de base qui implémente le moteur de mise en service Plug and Play à l'aide de la bibliothèque de plug and Play principale de l'infrastructure de mise en service. Cependant, pour prendre en charge de l'exemple de solution, nous devons télécharger et installer la bibliothèque de plug and Play Core infrastructure mise en service. Instructions pour le faire suivent.

Créer et préparer un projet Visual Studio

  1. Lancement Visual Studio, puis choisissez fichier > Nouveau > projet.

  2. Dans l'Assistant Nouveau projet, sélectionnez Visual c#, puis choisissez Application Console.

  3. Nommez le projet « Program », puis cliquez sur OK. (Vous pouvez nommer le projet vous, mais vous ayant à l'esprit que cette procédure pas à pas référencent le nom du projet en tant que « programme ».)

  4. Téléchargez et installez la bibliothèque de plug and Play principale qui est disponible sous forme de package NuGet ici : OfficeDevPnP.Core packages.

    Remarque Remarque

    Il existe deux versions de la bibliothèque principale. Une version est la bibliothèque OfficeDevPnP.Core , qui cible les SharePoint Online et Office 365. La seconde version est OfficeDevPnP.Core (locale), qui cible les SharePoint 2013 local. Voici une capture d'écran des options disponibles.

    Deux options de téléchargement de bibliothèque de base

    Dans cette procédure pas à pas exemple, nous utilisons la première option pour cibler SharePoint Online.

    1. If, installez le client NuGet en allant vers le programme d'installation du client NuGet.

    2. Après la NuGet client est installé, exécutez le Gestionnaire de NuGet Package. Cliquez sur le nœud références dansl'Explorateur de solutionsVisual Studio, puis sélectionnez Gérer les Packages NuGet.

    3. Dans le Gestionnaire de Package, cliquez suren ligne, puis EntityFramework et entrez le terme « OfficeDev » pour exposer la bibliothèque OfficeDevPnP.Core.

    4. Suivez les instructions ci-dessous pour télécharger et installer la bibliothèque OfficeDevPnP.Core , en suivant les instructions données.

      Une fois que la bibliothèque principale Plug and Play est référencée dans votre projet Visual Studio, tous les membres de la bibliothèque sont disponibles en tant que méthodes d'extension sur des instances d'objets existants, pour les instances d'exemple, web et list .

  5. Assurez-vous que votre fichier Program.cs contienne toutes les instructions suivantes using .

    using Microsoft.SharePoint.Client;
    using OfficeDevPnP.Core.Framework.Provisioning.Connectors;
    using OfficeDevPnP.Core.Framework.Provisioning.Model;
    using OfficeDevPnP.Core.Framework.Provisioning.ObjectHandlers;
    using OfficeDevPnP.Core.Framework.Provisioning.Providers.Xml;
    using System;
    using System.Net;
    using System.Security;
    using System.Threading;
    

Une fois que nous avons configuré à votre projet

Une fois que votre projet est configuré, vous pouvez créer vos personnalisations de site. Vous pouvez le faire manuellement ou en pointant sur un site correspondant à ce modèle que vous souhaitez utiliser. Enregistrez simplement la conception du site que vous avez choisie comme un modèle de mise en service. Ou bien, vous pouvez utiliser une combinaison de ces deux approches. Pour les besoins de cet exemple, nous avons simplement pointe vers un site existant, puis enregistrez son composée et artefacts de site (mais pas son contenu) en tant qu'un modèle de mise en service.

Pour commencer, nous devons vous connecter au site que nous souhaitons modéliser en tant que notre modèle de mise en service. Commençons par collecter des informations de connexion, y compris le nom d'utilisateur, mot de passe et l'URL de la source.

Créer et extraire et conserver le modèle de mise en service

  1. Recueillir des informations de connexion de l'utilisateur. Notez que dans une routine de Main du programme, nous faire trois conditions simples : collecter des informations de connexion, obtenir le modèle de mise en service et appliquer le modèle de mise en service. Le gros du travail s'effectue par les méthodes GetProvisioningTemplate et ApplyProvisioningTemplate que nous définissons ci-dessous.

     static void Main(string[] args)
            {
                ConsoleColor defaultForeground = Console.ForegroundColor;
    
                // Collect information 
                string templateWebUrl = GetInput("Enter the URL of the template site: ", false, defaultForeground);
                string targetWebUrl = GetInput("Enter the URL of the target site: ", false, defaultForeground);
                string userName = GetInput("Enter your user name:", false, defaultForeground);
                string pwdS = GetInput("Enter your password:", true, defaultForeground);
                SecureString pwd = new SecureString();
                foreach (char c in pwdS.ToCharArray()) pwd.AppendChar(c);
    
                // GET the template from existing site and serialize
                // Serializing the template for later reuse is optional
                ProvisioningTemplate template = GetProvisioningTemplate(defaultForeground, templateWebUrl, userName, pwd);
    
                // APPLY the template to new site from 
                ApplyProvisioningTemplate(defaultForeground, targetWebUrl, userName, pwd, template);
    
                // Pause and modify the UI to indicate that the operation is complete
                Console.ForegroundColor = ConsoleColor.White;
                Console.WriteLine("We're done. Press Enter to continue.");
                Console.ReadLine();
            }
    
  2. Créer et utiliser une méthode privée GetInput pour obtenir les informations d'identification utilisateur requis.

    private static string GetInput(string label, bool isPassword, ConsoleColor defaultForeground)
            {
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine("{0} : ", label);
                Console.ForegroundColor = defaultForeground;
    
                string value = "";
    
                for (ConsoleKeyInfo keyInfo = Console.ReadKey(true); keyInfo.Key != ConsoleKey.Enter; keyInfo = Console.ReadKey(true))
                {
                    if (keyInfo.Key == ConsoleKey.Backspace)
                    {
                        if (value.Length > 0)
                        {
                            value = value.Remove(value.Length - 1);
                            Console.SetCursorPosition(Console.CursorLeft - 1, Console.CursorTop);
                            Console.Write(" ");
                            Console.SetCursorPosition(Console.CursorLeft - 1, Console.CursorTop);
                        }
                    }
                    else if (keyInfo.Key != ConsoleKey.Enter)
                    {
                        if (isPassword)
                        {
                            Console.Write("*");
                        }
                        else
                        {
                            Console.Write(keyInfo.KeyChar);
                        }
                        value += keyInfo.KeyChar;
    
                    }
    
                }
                Console.WriteLine("");
    
                return value;
            }
    
  3. Pointez sur le site qui est le modèle pour notre modèle de mise en service. Alors que œil GET sur le site source avec une seule ligne de code, recherchez GetProvisioningTemplate(), la méthode GET que nous avons défini.

    private static ProvisioningTemplate GetProvisioningTemplate(ConsoleColor defaultForeground, string webUrl, string userName, SecureString pwd)
            {
                using (var ctx = new ClientContext(webUrl))
                {
                    // ctx.Credentials = new NetworkCredentials(userName, pwd);
                    ctx.Credentials = new SharePointOnlineCredentials(userName, pwd);
                    ctx.RequestTimeout = Timeout.Infinite;
    
                    // Just to output the site details
                    Web web = ctx.Web;
                    ctx.Load(web, w => w.Title);
                    ctx.ExecuteQueryRetry();
    
                    Console.ForegroundColor = ConsoleColor.White;
                    Console.WriteLine("Your site title is:" + ctx.Web.Title);
                    Console.ForegroundColor = defaultForeground;
    
                    ProvisioningTemplateCreationInformation ptci
                            = new ProvisioningTemplateCreationInformation(ctx.Web);
    
                    // Create FileSystemConnector to store a temporary copy of the template 
                    ptci.FileConnector = new FileSystemConnector(@"c:\temp\pnpprovisioningdemo", "");
                    ptci.PersistComposedLookFiles = true;
                    ptci.ProgressDelegate = delegate(String message, Int32 progress, Int32 total)
                    {
                        // Only to output progress for console UI
                        Console.WriteLine("{0:00}/{1:00} - {2}", progress, total, message);
                    };
    
                    // Execute actual extraction of the template
                    ProvisioningTemplate template = ctx.Web.GetProvisioningTemplate(ptci);
    
                    // We can serialize this template to save and reuse it
                    // Optional step 
                    XMLTemplateProvider provider =
                            new XMLFileSystemTemplateProvider(@"c:\temp\pnpprovisioningdemo", "");
                    provider.SaveAs(template, "PnPProvisioningDemo.xml");
    
                    return template;
                }
            }
    

    Dans l'extrait de code ci-dessus, nous avons défini également une variable, de ProvisioningTemplateCreationInformationpcti. La variable obtenons l'option permettant de stocker des informations sur les artefacts que nous pouvons enregistrer en même temps que le modèle.

  4. Créez un objet de connecteur de système de fichiers afin que nous pouvons stocker une copie temporaire du modèle de mise en service que nous allons nous intéresser à appliquer à un autre site.

    Remarque Remarque

    Cette étape est facultative. Il n'est pas nécessaire que vous sérialisez le modèle de mise en service au format XML. À ce stade, le modèle est simplement du code c#. Non seulement sérialisation étape est facultative, mais vous pouvez également utiliser le format de sérialisation plus efficace.

  5. Exécuter l'extraction du modèle de mise en service en utilisant simplement cette ligne de code unique.
    ProvisioningTemplate template = ctx.Web.GetProvisioningTemplate(ptci);

  6. (Facultatif) Enregistrer et stocker une version sérialisée du modèle de mise en service de sorte que vous pouvez réutiliser. Vous pouvez sérialiser du modèle de mise en service dans n'importe quel format que vous préférez. Dans cet exemple, nous avons sérialiser vers un fichier XML nommé PnPProvisioningDemo.xml. Le fichier lui-même est un objet XMLFileSystemTemplateProvider dont nous avons fourni un emplacement de système de fichiers.

Une fois que nous avons extraire, enregistrer et conserver le modèle de mise en service

Une fois que nous avons extraire, enregistrer et conserver le modèle de mise en service, la prochaine étape consiste à appliquer le modèle de mise en service vers une nouvelle collection de sites SharePoint à l'aide de la méthode ApplyProvisioningTemplate .

Appliquer le modèle de mise en service à un site existant ou nouveau

  1. Obtenir des informations d'identification pour le site cible.

    // ctx.Credentials = new NetworkCredentials(userName, pwd);
                    ctx.Credentials = new SharePointOnlineCredentials(userName, pwd);
                    ctx.RequestTimeout = Timeout.Infinite;
    
  2. Capturer des artefacts de site qui ont été stockées à l'aide de la méthode ProvisioningTemplateCreationInformation à l'aide de la méthode Compagnon, ProvisioningTemplateApplyingInformation.

    ProvisioningTemplateApplyingInformation ptai
                            = new ProvisioningTemplateApplyingInformation();
                    ptai.ProgressDelegate = delegate(String message, Int32 progress, Int32 total)
                    {
                        Console.WriteLine("{0:00}/{1:00} - {2}", progress, total, message);
                    };
    
  3. Obtenez une association avec le connecteur de fichier pour les biens.

    // Associate file connector for assets
                    FileSystemConnector connector = new FileSystemConnector(@"c:\temp\pnpprovisioningdemo", "");
                    template.Connector = connector;
    
    
  4. (Facultatif) Le modèle de mise en service étant une instance de l'objet, nous pouvons écrire du code pour personnaliser les artefacts de site à la volée. Dans ce cas, nous ajoutons une nouvelle liste de « contacts ».

     // Since template is actual object, we can modify this using code as needed
                    template.Lists.Add(new ListInstance()
                    {
                        Title = "PnP Sample Contacts",
                        Url = "lists/PnPContacts",
                        TemplateType = (Int32)ListTemplateType.Contacts,
                        EnableAttachments = true
                    });
    
  5. Appliquer le modèle de mise en service pour le nouveau site, en utilisant une seule ligne de code.

    web.ApplyProvisioningTemplate(template, ptai);
    
Afficher: