Procédure pas à pas : Création d’un kit de développement à l’aide de c# ou Visual BasicWalkthrough: Creating an SDK using C# or Visual Basic

Dans cette procédure pas à pas, vous allez apprendre à créer un kit de développement de bibliothèque mathématique simple à l’aide de Visual c#, puis d’empaqueter le Kit de développement comme une Extension Visual Studio (VSIX).In this walkthrough, you'll learn how to create a simple Math Library SDK by using Visual C# and then package the SDK as a Visual Studio Extension (VSIX). Vous devez effectuer les procédures suivantes :You'll complete the following procedures:

PrérequisPrerequisites

Pour suivre cette procédure pas à pas, vous devez installer le Kit de développement logiciel (SDK) Visual Studio.To follow this walkthrough, you must install the Visual Studio SDK. Pour plus d’informations, consultez Visual Studio SDK.For more information, see Visual Studio SDK.

Pour créer le composant SimpleMath Windows RuntimeTo create the SimpleMath Windows Runtime component

  1. Dans la barre de menus, choisissez fichier, nouveau, nouveau projet.On the menu bar, choose File, New, New Project.

  2. Dans la liste des modèles, développez Visual C# ou Visual Basic, choisissez le du Windows Store nœud, puis choisissez le composant Windows Runtime modèle.In the list of templates, expand Visual C# or Visual Basic, choose the Windows Store node, and then choose the Windows Runtime Component template.

  3. Dans le nom , spécifiez SimpleMath, puis choisissez le OK bouton.In the Name box, specify SimpleMath, and then choose the OK button.

  4. Dans l’Explorateur de solutions, ouvrez le menu contextuel pour le SimpleMath nœud de projet, puis choisissez propriétés.In Solution Explorer, open the shortcut menu for the SimpleMath project node, and then choose Properties.

  5. Renommer Class1.cs à Arithmetic.cs et mettre à jour pour utiliser le code suivant :Rename Class1.cs to Arithmetic.cs and update it to match the following code:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace WinRTMath
    {
        public sealed class Arithmetic
        {
            public float add(float firstNumber, float secondNumber)
            {
                return (firstNumber + secondNumber);
            }
    
            public float subtract(float firstNumber, float secondNumber)
            {
                return (firstNumber - secondNumber);
            }
    
            public float multiply(float firstNumber, float secondNumber)
            {
                return (firstNumber * secondNumber);
            }
    
            public float divide(float firstNumber, float secondNumber)
            {
                return (firstNumber / secondNumber);
            }
        }
    }
    
    Public NotInheritable Class Arithmetic
        Public Function Add(ByVal firstNumber As Single, ByVal secondNumber As Single) As Single
            Return (firstNumber + secondNumber)
        End Function
    
        Public Function Subtract(ByVal firstNumber As Single, ByVal secondNumber As Single) As Single
            Return (firstNumber - secondNumber)
        End Function
    
        Public Function Multiply(ByVal firstNumber As Single, ByVal secondNumber As Single) As Single
            Return (firstNumber * secondNumber)
        End Function
    
        Public Function Divide(ByVal firstNumber As Single, ByVal secondNumber As Single) As Single
            Return (firstNumber / secondNumber)
        End Function
    End Class
    
  6. Dans l’Explorateur de solutions, ouvrez le menu contextuel pour le Solution 'SimpleMath' nœud, puis choisissez Configuration Manager.In Solution Explorer, open the shortcut menu for the Solution 'SimpleMath' node, and then choose Configuration Manager.

    Le Configuration Manager boîte de dialogue s’ouvre.The Configuration Manager dialog box opens.

  7. Dans le configuration de solution Active , choisissez version.In the Active solution configuration list, choose Release.

  8. Dans le Configuration colonne, vérifiez que SimpleMath ligne est définie sur version, puis choisissez le fermer bouton pour accepter le modification.In the Configuration column, verify that SimpleMath row is set to Release, and then choose the Close button to accept the change.

    Important

    Le Kit de développement logiciel pour le composant SimpleMath ne comprend qu’une seule configuration.The SDK for the SimpleMath component includes only one configuration. Cette configuration doit être la version Release, ou les applications qui utilisent le composant ne sera pas passer de certification leMicrosoft StoreMicrosoft Store.This configuration must be the release build, or apps that use the component won't pass certification for theMicrosoft StoreMicrosoft Store.

  9. Dans l’Explorateur de solutions, ouvrez le menu contextuel pour le SimpleMath nœud de projet, puis choisissez Build.In Solution Explorer, open the shortcut menu for the SimpleMath project node, and then choose Build.

Pour créer le projet d’extension SimpleMathVSIXTo create the SimpleMathVSIX extension project

  1. Dans le menu contextuel pour le Solution 'SimpleMath' nœud, choisissez ajouter, nouveau projet.On the shortcut menu for the Solution 'SimpleMath' node, choose Add, New Project.

  2. Dans la liste des modèles, développez Visual C# ou Visual Basic, choisissez le extensibilité nœud, puis choisissez le projet VSIX modèle.In the list of templates, expand Visual C# or Visual Basic, choose the Extensibility node, and then choose the VSIX Project template.

  3. Dans le nom , spécifiez SimpleMathVSIX, puis choisissez le OK bouton.In the Name box, specify SimpleMathVSIX, and then choose the OK button.

  4. Dans l’Explorateur de solutions, choisissez le source.extension.vsixmanifest élément.In Solution Explorer, choose the source.extension.vsixmanifest item.

  5. Dans la barre de menus, sélectionnez Afficher, Code.On the menu bar, choose View, Code.

  6. Remplacez le code XML existant par le code XML suivant :Replace the existing XML with the following XML:

    <PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011" xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">
      <Metadata>
        <Identity Id="WinRTMathCS" Version="1.0" Language="en-US" Publisher="[YourName]" />
        <DisplayName>WinRT Math Library (CS)</DisplayName>
        <Description xml:space="preserve">Basic arithmetic operations in a WinRT-compatible library. Implemented in C#.</Description>
      </Metadata>
      <Installation Scope="Global" AllUsers="true">
        <InstallationTarget Id="Microsoft.ExtensionSDK" TargetPlatformIdentifier="Windows" TargetPlatformVersion="v8.0" SdkName="WinRT Math (CS)" SdkVersion="1.0" />
      </Installation>
      <Dependencies>
        <Dependency Id="Microsoft.Framework.NDP" DisplayName="Microsoft .NET Framework" d:Source="Manual" Version="4.5" />
      </Dependencies>
      <Assets>
        <Asset Type="Microsoft.ExtensionSDK" d:Source="File" Path="SDKManifest.xml" />
      </Assets>
    </PackageManifest>
    
  7. Dans l’Explorateur de solutions, choisissez le SimpleMathVSIX projet.In Solution Explorer, choose the SimpleMathVSIX project.

  8. Dans la barre de menus, choisissez projet, ajouter un nouvel élément.On the menu bar, choose Project, Add New Item.

  9. Dans la liste des éléments communs, développez données, puis choisissez fichier XML.In the list of Common Items, expand Data, and then choose XML File.

  10. Dans le nom , spécifiez SDKManifest.xml, puis choisissez le ajouter bouton.In the Name box, specify SDKManifest.xml, and then choose the Add button.

  11. Dans l’Explorateur de solutions, ouvrez le menu contextuel pour SDKManifest.xml, choisissez propriétés, puis modifiez la valeur de la inclure dans VSIX propriété True.In Solution Explorer, open the shortcut menu for SDKManifest.xml, choose Properties, and then change the value of the Include in VSIX property to True.

  12. Remplacez le contenu du fichier par le code XML suivant :Replace the contents of the file with the following XML:

    C#C#

    <FileList
      DisplayName="WinRT Math Library (CS)"
      MinVSVersion="11.0"
      TargetFramework=".NETCore,version=v4.5"
      AppliesTo="WindowsAppContainer"
      SupportsMultipleVersions="Error"
      MoreInfo="http://www.msdn.microsoft.com/">
    </FileList>
    

    Visual BasicVisual Basic

    <FileList
      DisplayName="WinRT Math Library (VB)"
      MinVSVersion="11.0"
      TargetFramework=".NETCore,version=v4.5"
      AppliesTo="WindowsAppContainer"
      SupportsMultipleVersions="Error"
      MoreInfo="http://www.msdn.microsoft.com/">
    </FileList>
    
  13. Dans l’Explorateur de solutions, ouvrez le menu contextuel pour le SimpleMathVSIX de projet, choisissez ajouter, puis choisissez nouveau dossier.In Solution Explorer, open the shortcut menu for the SimpleMathVSIX project, choose Add, and then choose New Folder.

  14. Renommer le dossier en references.Rename the folder to references.

  15. Ouvrez le menu contextuel pour le références dossier, choisissez ajouter, puis choisissez nouveau dossier.Open the shortcut menu for the References folder, choose Add, and then choose New Folder.

  16. Renommez le sous-dossier dans commonconfiguration, créez un sous-dossier et le sous-dossier neutral.Rename the subfolder to commonconfiguration, create a subfolder within it, and name the subfolder neutral.

  17. Répétez les quatre étapes précédentes, cette fois le changement de nom du premier dossier vers redist.Repeat the previous four steps, this time renaming the first folder to redist.

    Le projet contient maintenant la structure de dossiers suivante :The project now contains the following folder structure:

    references\commonconfiguration\neutral  
    redist\commonconfiguration\neutral  
    
  18. Dans l’Explorateur de solutions, ouvrez le menu contextuel pour le SimpleMath de projet, puis choisissez ouvrir le dossier dans l’Explorateur de fichiers.In Solution Explorer, open the shortcut menu for the SimpleMath project, and then choose Open Folder in File Explorer.

  19. Dans l’Explorateur de fichiers, accédez au dossier bin\Release, ouvrez le menu contextuel pour le fichier SimpleMath.winmd, puis choisissez copie.In File Explorer, navigate to the bin\Release folder, open the shortcut menu for the SimpleMath.winmd file, and then choose Copy.

  20. Dans l’Explorateur de solutions, collez le fichier dans le dossier references\commonconfiguration\neutral dans le SimpleMathVSIX projet.In Solution Explorer, paste the file into the references\commonconfiguration\neutral folder in the SimpleMathVSIX project.

  21. Répétez l’étape précédente, collez le fichier SimpleMath.pri dans le dossier redist\commonconfiguration\neutral dans le SimpleMathVSIX projet.Repeat the previous step, pasting the SimpleMath.pri file into the redist\commonconfiguration\neutral folder in the SimpleMathVSIX project.

  22. Dans l’Explorateur de solutions, choisissez SimpleMath.winmd.In Solution Explorer, choose SimpleMath.winmd.

  23. Dans la barre de menus, choisissez vue, propriétés (clavier : appuyez sur la touche F4).On the menu bar, choose View, Properties (Keyboard: Choose the F4 key).

  24. Dans le propriétés fenêtre, de modifier le Action de génération propriété contenu, puis modifiez le inclure dans VSIX propriété True.In the Properties window, change the Build Action property to Content, and then change the Include in VSIX property to True.

  25. Dans l’Explorateur de solutions, répétez ce processus pour SimpleMath.pri.In Solution Explorer, repeat this process for SimpleMath.pri.

  26. Dans l’Explorateur de solutions, choisissez le SimpleMathVSIX projet.In Solution Explorer, choose the SimpleMathVSIX project.

  27. Dans la barre de menus, choisissez générer, SimpleMathVSIX de Build.On the menu bar, choose Build, Build SimpleMathVSIX.

  28. Dans l’Explorateur de solutions, ouvrez le menu contextuel pour le SimpleMathVSIX de projet, puis choisissez ouvrir le dossier dans l’Explorateur de fichiers.In Solution Explorer, open the shortcut menu for the SimpleMathVSIX project, and then choose Open Folder in File Explorer.

  29. Dans l’Explorateur de fichiers, naviguez jusqu’au dossier \bin\Release, puis exécutez SimpleMathVSIX.vsix pour l’installer.In File Explorer, navigate to \bin\Release folder, and then run SimpleMathVSIX.vsix to install it.

  30. Choisissez le installer bouton, attendez que l’installation se termine, puis redémarrez Visual Studio.Choose the Install button, wait for the installation to finish, and then restart Visual Studio.

Pour créer un exemple d’application qui utilise la bibliothèque de classesTo create a sample app that uses the class library

  1. Dans la barre de menus, choisissez fichier, nouveau, nouveau projet.On the menu bar, choose File, New, New Project.

  2. Dans la liste des modèles, développez Visual C# ou Visual Basic, puis choisissez le du Windows Store nœud.In the list of templates, expand Visual C# or Visual Basic, and then choose the Windows Store node.

  3. Choisissez le application vide modèle, nommez le projet ArithmeticUI, puis choisissez le OK bouton.Choose the Blank App template, name the project ArithmeticUI, and then choose the OK button.

  4. Dans l’Explorateur de solutions, ouvrez le menu contextuel pour le ArithmeticUI de projet, puis choisissez ajouter, référence.In Solution Explorer, open the shortcut menu for the ArithmeticUI project, and then choose Add, Reference.

  5. Dans la liste des types référence, développez Windows, puis choisissez Extensions.In the list of reference types, expand Windows, and then choose Extensions.

  6. Dans le volet détails, choisissez le Simple mathématiques SDK extension.In the details pane, choose the Simple Math SDK extension.

    Des informations supplémentaires sur votre Kit de développement logiciel s’affiche.Additional information about your SDK appears. Vous pouvez choisir le plus lien pour ouvrir http://www.msdn.microsoft.com, que vous avez spécifié dans le fichier SDKManifest.xml plus haut dans cette procédure pas à pas.You can choose the More Information link to open http://www.msdn.microsoft.com, as you specified in the SDKManifest.xml file earlier in this walkthrough.

  7. Dans le Gestionnaire de références boîte de dialogue, sélectionnez le Simple mathématiques SDK case à cocher, puis choisissez le OK bouton.In the Reference Manager dialog box, select the Simple Math SDK check box, and then choose the OK button.

  8. Dans la barre de menus, choisissez vue, Explorateur d’objets.On the menu bar, choose View, Object Browser.

  9. Dans le Parcourir , choisissez mathématiques simples.In the Browse list, choose Simple Math.

    Vous pouvez maintenant Explorer Nouveautés dans le Kit de développement.You can now explore what's in the SDK.

  10. Dans l’Explorateur de solutions, ouvrez MainPage.xaml et remplacez son contenu par le code XAML suivant :In Solution Explorer, open MainPage.xaml, and replace its contents with the following XAML:

    C#C#

    <Page
        x:Class="WinRTMathTestCS.MainPage"
        IsTabStop="False"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="using:WinRTMathTestCS"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d">
    
        <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
            <TextBox x:Name="_firstNumber" HorizontalAlignment="Left" Margin="414,370,0,0" TextWrapping="Wrap" Text="First Number" VerticalAlignment="Top" Height="32" Width="135" TextAlignment="Center"/>
            <TextBox x:Name="_secondNumber" HorizontalAlignment="Left" Margin="613,370,0,0" TextWrapping="Wrap" Text="Second Number" VerticalAlignment="Top" Height="32" Width="135" TextAlignment="Center"/>
            <Button Content="+" HorizontalAlignment="Left" Margin="557,301,0,0" VerticalAlignment="Top" Height="39" Width="49" Click="OnOperatorClick"/>
            <Button Content="-" HorizontalAlignment="Left" Margin="557,345,0,0" VerticalAlignment="Top" Height="39" Width="49" Click="OnOperatorClick"/>
            <Button Content="*" HorizontalAlignment="Left" Margin="557,389,0,0" VerticalAlignment="Top" Height="39" Width="49" Click="OnOperatorClick"/>
            <Button Content="/" HorizontalAlignment="Left" Margin="557,433,0,0" VerticalAlignment="Top" Height="39" Width="49" Click="OnOperatorClick"/>
            <Button Content="=" HorizontalAlignment="Left" Margin="755,367,0,0" VerticalAlignment="Top" Height="39" Width="49" Click="OnResultsClick"/>
            <TextBox x:Name="_result" HorizontalAlignment="Left" Margin="809,370,0,0" TextWrapping="Wrap" Text="Result" VerticalAlignment="Top" Height="32" Width="163" TextAlignment="Center" IsReadOnly="True"/>
        </Grid>
    </Page>
    

    Visual BasicVisual Basic

    <Page
        x:Class="WinRTMathTest.MainPage"
        IsTabStop="False"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="using:WinRTMathTest"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d">
    
        <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
            <TextBox x:Name="_firstNumber" HorizontalAlignment="Left" Margin="414,370,0,0" TextWrapping="Wrap" Text="First Number" VerticalAlignment="Top" Height="32" Width="135" TextAlignment="Center"/>
            <TextBox x:Name="_secondNumber" HorizontalAlignment="Left" Margin="613,370,0,0" TextWrapping="Wrap" Text="Second Number" VerticalAlignment="Top" Height="32" Width="135" TextAlignment="Center"/>
            <Button Content="+" HorizontalAlignment="Left" Margin="557,301,0,0" VerticalAlignment="Top" Height="39" Width="49" Click="OnOperatorClick"/>
            <Button Content="-" HorizontalAlignment="Left" Margin="557,345,0,0" VerticalAlignment="Top" Height="39" Width="49" Click="OnOperatorClick"/>
            <Button Content="*" HorizontalAlignment="Left" Margin="557,389,0,0" VerticalAlignment="Top" Height="39" Width="49" Click="OnOperatorClick"/>
            <Button Content="/" HorizontalAlignment="Left" Margin="557,433,0,0" VerticalAlignment="Top" Height="39" Width="49" Click="OnOperatorClick"/>
            <Button Content="=" HorizontalAlignment="Left" Margin="755,367,0,0" VerticalAlignment="Top" Height="39" Width="49" Click="OnResultsClick"/>
            <TextBox x:Name="_result" HorizontalAlignment="Left" Margin="809,370,0,0" TextWrapping="Wrap" Text="Result" VerticalAlignment="Top" Height="32" Width="163" TextAlignment="Center" IsReadOnly="True"/>
        </Grid>
    </Page>
    
  11. MainPage.xaml.cs de mise à jour pour faire correspondre le code suivant :Update MainPage.xaml.cs to match the following code:

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using Windows.Foundation;
    using Windows.Foundation.Collections;
    using Windows.UI.Xaml;
    using Windows.UI.Xaml.Controls;
    using Windows.UI.Xaml.Controls.Primitives;
    using Windows.UI.Xaml.Data;
    using Windows.UI.Xaml.Input;
    using Windows.UI.Xaml.Media;
    using Windows.UI.Xaml.Navigation;
    
    // The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238
    
    namespace WinRTMathTestCS
    {
        /// <summary>
        /// An empty page that can be used on its own or navigated to within a Frame.
        /// </summary>
        public sealed partial class MainPage : Page
        {
            public static string operation = null;
    
            public MainPage()
            {
                this.InitializeComponent();
            }
    
            /// <summary>
            /// Invoked when this page is about to be displayed in a Frame.
            /// </summary>
            /// <param name="e">Event data that describes how this page was reached.  The Parameter
            /// property is typically used to configure the page.</param>
            protected override void OnNavigatedTo(NavigationEventArgs e)
            {
            }
    
            /// <summary>
            /// Sets the operator chosen by the user
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void OnOperatorClick(object sender, RoutedEventArgs e)
            {
                operation = (sender as Button).Content.ToString();
            }
    
            /// <summary>
            /// Calls the SimpleMath SDK to do simple arithmetic
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void OnResultsClick(object sender, RoutedEventArgs e)
            {
                try
                {
                    float firstNumber = float.Parse(this._firstNumber.Text);
                    float secondNumber = float.Parse(this._secondNumber.Text);
    
                    WinRTMath.Arithmetic math = new WinRTMath.Arithmetic();
    
                    switch (operation)
                    {
                        case "+":
                            this._result.Text = (math.add(firstNumber, secondNumber)).ToString();
                            break;
                        case "-":
                            this._result.Text = (math.subtract(firstNumber, secondNumber)).ToString();
                            break;
                        case "*":
                            this._result.Text = (math.multiply(firstNumber, secondNumber)).ToString();
                            break;
                        case "/":
                            this._result.Text = (math.divide(firstNumber, secondNumber)).ToString();
                            break;
                        default:
                            this._result.Text = "Choose operator";
                            break;
                    }
                }
                catch
                {
                    this._result.Text = "Enter valid #";
                }
            }
        }
    }
    
    ' The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238
    
    ''' <summary>
    ''' An empty page that can be used on its own or navigated to within a Frame.
    ''' </summary>
    Public NotInheritable Class MainPage
        Inherits Page
    
        ''' <summary>
        ''' Invoked when this page is about to be displayed in a Frame.
        ''' </summary>
        ''' <param name="e">Event data that describes how this page was reached.  The Parameter
        ''' property is typically used to configure the page.</param>
        Protected Overrides Sub OnNavigatedTo(e As Navigation.NavigationEventArgs)
        
        End Sub
    
        Public Shared operation As String = Nothing
    
        ''' <summary>
        ''' Sets the operator chosen by the user
        ''' </summary>
        ''' <param name="sender"></param>
        ''' <param name="e"></param>
        Private Sub OnOperatorClick(ByVal sender As Object, ByVal e As RoutedEventArgs)
            operation = If(TypeOf sender Is Button, CType(sender, Button), Nothing).Content.ToString()
        End Sub
    
    
        ''' <summary>
        ''' Calls the SimpleMath SDK to do simple arithmetic
        ''' </summary>
        ''' <param name="sender"></param>
        ''' <param name="e"></param>
        Private Sub OnResultsClick(ByVal sender As Object, ByVal e As RoutedEventArgs)
    
            Try
    
                Dim firstNumber As Single = Single.Parse(Me._firstNumber.Text)
                Dim secondNumber As Single = Single.Parse(Me._secondNumber.Text)
    
                Dim math As New WinRTMath.Arithmetic()
    
                Select Case (operation)
    
                    Case "+"
                        Me._result.Text = (math.Add(firstNumber, secondNumber)).ToString()
    
                    Case "-"
                        Me._result.Text = (math.Subtract(firstNumber, secondNumber)).ToString()
                    Case "*"
                        Me._result.Text = (math.Multiply(firstNumber, secondNumber)).ToString()
                    Case "/"
                        Me._result.Text = (math.Divide(firstNumber, secondNumber)).ToString()
                    Case Else
                        Me._result.Text = "Choose operator"
    
                End Select
    
            Catch
                Me._result.Text = "Enter valid #"
            End Try
        End Sub
    End Class
    
  12. Appuyez sur la touche F5 pour exécuter l’application.Choose the F5 key to run the app.

  13. Dans l’application, entrez tous les deux numéros, choisissez une opération, puis le = bouton.In the app, enter any two numbers, choose an operation, and then choose the = button.

    Le résultat correct s’affiche.The correct result appears.

    Vous avez créé et utilisé un SDK d’Extension.You have successfully created and used an Extension SDK.

Voir aussiSee Also

Procédure pas à pas : Création d’un kit de développement à l’aide de C++ Walkthrough: Creating an SDK using C++
Procédure pas à pas : Création d’un kit de développement à l’aide de JavaScript Walkthrough: Creating an SDK using JavaScript
Création d’un Kit de développement logiciel (SDK)Creating a Software Development Kit