Share via


Procedura dettagliata: Creare un SDK con C# o Visual Basic

In questa procedura dettagliata si apprenderà come creare un SEMPLICE SDK per la libreria matematica usando Visual C# e quindi creare il pacchetto dell'SDK come estensione di Visual Studio (VSIX). Verranno completate le procedure seguenti:

Prerequisiti

Per seguire questa procedura dettagliata, è necessario installare Visual Studio SDK. Per altre informazioni, vedere Visual Studio SDK.

Per creare il componente SimpleMath Windows Runtime

  1. Nella barra dei menu scegliere File>Nuovo>Progetto.

  2. Nell'elenco dei modelli espandere Visual C# o Visual Basic, scegliere il nodo Windows Store e quindi scegliere il modello Componente Windows Runtime.

  3. Nella casella Nome specificare SimpleMath e quindi scegliere il pulsante OK .

  4. In Esplora soluzioni aprire il menu di scelta rapida per il nodo del progetto SimpleMath e quindi scegliere Proprietà.

  5. Rinominare Class1.cs in Arithmetic.cs e aggiornarla in modo che corrisponda al codice seguente:

    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);
            }
        }
    }
    
  6. In Esplora soluzioni aprire il menu di scelta rapida per il nodo Soluzione 'SimpleMath' e quindi scegliere Configuration Manager.

    Verrà visualizzata la finestra di dialogo Gestione configurazione .

  7. Nell'elenco Configurazione soluzione attiva scegliere Rilascio.

  8. Nella colonna Configurazione verificare che la riga SimpleMath sia impostata su Release e quindi scegliere il pulsante Chiudi per accettare la modifica.

    Importante

    L'SDK per il componente SimpleMath include una sola configurazione. Questa configurazione deve essere la build di versione o le app che usano il componente non passeranno la certificazione per Microsoft Store.

  9. In Esplora soluzioni aprire il menu di scelta rapida per il nodo del progetto SimpleMath e quindi scegliere Compila.

Per creare il progetto di estensione SimpleMathVSIX

  1. Nel menu di scelta rapida per il nodo Soluzione 'SimpleMath' scegliere Aggiungi>nuovo progetto.

  2. Nell'elenco dei modelli espandere Visual C# o Visual Basic, scegliere il nodo Estendibilità e quindi scegliere il modello progetto VSIX.

  3. Nella casella Nome specificare SimpleMathVSIX e quindi scegliere il pulsante OK .

  4. In Esplora soluzioni scegliere l'elemento source.extension.vsixmanifest.

  5. Sulla barra dei menu scegliere Visualizza>Codice.

  6. Sostituire il codice XML esistente con il codice XML seguente:

    <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="SimpleMath" Version="1.0" Language="en-US" Publisher="[YourName]" />
        <DisplayName>SimpleMath Library</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="SimpleMath" SdkVersion="1.0" />
      </Installation>
      <Prerequisites>
        <Prerequisite Id="Microsoft.VisualStudio.Component.CoreEditor" Version="[14.0,16.0]" />
      </Prerequisites>
      <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. In Esplora soluzioni scegliere il progetto SimpleMathVSIX.

  8. Nella barra dei menu scegliere Progetto>Aggiungi nuovo elemento.

  9. Nell'elenco elementi comuni espandere Dati e quindi scegliere File XML.

  10. Nella casella Nome specificare SDKManifest.xmle quindi scegliere il pulsante Aggiungi.

  11. In Esplora soluzioni aprire il menu di scelta rapida per SDKManifest.xml, scegliere Proprietà e quindi modificare il valore della proprietà Includi in VSIX su True.

  12. Sostituisci il contenuto del file con il codice XML riportato di seguito:

    C#

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

    Visual Basic

    <FileList
      DisplayName="WinRT Math Library (VB)"
      MinVSVersion="11.0"
      TargetFramework=".NETCore,version=v4.5"
      AppliesTo="WindowsAppContainer"
      SupportsMultipleVersions="Error"
      MoreInfo="https://msdn.microsoft.com/">
    </FileList>
    
  13. In Esplora soluzioni aprire il menu di scelta rapida per il progetto SimpleMathVSIX, scegliere Aggiungi e quindi scegliere Nuova cartella.

  14. Rinominare la cartella in references.

  15. Aprire il menu di scelta rapida per la cartella Riferimenti , scegliere Aggiungi e quindi scegliere Nuova cartella.

  16. Rinominare la sottocartella in commonconfiguration, creare una sottocartella al suo interno e denominare la sottocartella neutral.

  17. Ripetere i quattro passaggi precedenti, questa volta rinominare la prima cartella in redist.

    Il progetto contiene ora la struttura di cartelle seguente:

    references\commonconfiguration\neutral
    redist\commonconfiguration\neutral
    
  18. In Esplora soluzioni aprire il menu di scelta rapida per il progetto SimpleMath e quindi scegliere Apri cartella in Esplora file.

  19. In Esplora file passare alla cartella bin\Release, aprire il menu di scelta rapida per il file SimpleMath.winmd e quindi scegliere Copia.

  20. In Esplora soluzioni incollare il file nella cartella references\commonconfiguration\neutral nel progetto SimpleMathVSIX.

  21. Ripetere il passaggio precedente incollando il file SimpleMath.pri nella cartella redist\commonconfiguration\neutral nel progetto SimpleMathVSIX .

  22. In Esplora soluzioni scegliere SimpleMath.winmd.

  23. Sulla barra dei menu scegliere Visualizza>proprietà (tastiera: scegliere il tasto F4).

  24. Nella finestra Proprietà modificare la proprietà Azione di compilazione in Contenuto e quindi impostare la proprietà Includi in VSIX su True.

  25. In Esplora soluzioni ripetere questo processo per SimpleMath.pri.

  26. In Esplora soluzioni scegliere il progetto SimpleMathVSIX.

  27. Nella barra dei menu scegliere Compila>sempliceMathVSIX.

  28. In Esplora soluzioni aprire il menu di scelta rapida per il progetto SimpleMathVSIX e quindi scegliere Apri cartella in Esplora file.

  29. In Esplora file passare alla cartella \bin\Release e quindi eseguire SimpleMathVSIX.vsixper installarla.

  30. Scegliere il pulsante Installa , attendere il completamento dell'installazione e quindi riavviare Visual Studio.

Per creare un'app di esempio che usa la libreria di classi

  1. Nella barra dei menu scegliere File>Nuovo>Progetto.

  2. Nell'elenco dei modelli espandere Visual C# o Visual Basic e quindi scegliere il nodo Windows Store .

  3. Scegliere il modello App vuota, assegnare al progetto il nome ArithmeticUI e quindi scegliere il pulsante OK .

  4. In Esplora soluzioni aprire il menu di scelta rapida per il progetto AritmeticUI e quindi scegliere Aggiungi>riferimento.

  5. Nell'elenco dei tipi di riferimento espandere Windows e quindi scegliere Estensioni.

  6. Nel riquadro dei dettagli scegliere l'estensione Libreria matematica WinRT.

    Vengono visualizzate informazioni aggiuntive sull'SDK. È possibile scegliere il collegamento Altre informazioni per aprire https://msdn.microsoft.com/, come specificato nel file di SDKManifest.xml in precedenza in questa procedura dettagliata.

  7. Nella finestra di dialogo Gestione riferimenti selezionare la casella di controllo Libreria matematica WinRT e quindi scegliere il pulsante OK.

  8. Sulla barra dei menu scegliere Visualizza>visualizzatore oggetti.

  9. Nell'elenco Sfoglia scegliere Semplice matematica.

    È ora possibile esplorare le informazioni disponibili nell'SDK.

  10. In Esplora soluzioni aprire MainPage.xaml e sostituirne il contenuto con il codice XAML seguente:

    C#

    <Page
        x:Class="ArithmeticUI.MainPage"
        IsTabStop="False"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="using:SimpleMath"
        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 Basic

    <Page
        x:Class="ArithmeticUI.MainPage"
        IsTabStop="False"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="using:SimpleMath"
        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. Aggiornare MainPage.xaml.cs in modo che corrisponda al codice seguente:

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 ArithmeticUI
{
    /// <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);

                SimpleMath.Arithmetic math = new SimpleMath.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 #";
            }
        }
    }
}
  1. Scegliere il tasto F5 per eseguire l'app.

  2. Nell'app immettere due numeri, scegliere un'operazione e quindi scegliere il = pulsante.

    Viene visualizzato il risultato corretto.

    È stato creato e usato un SDK di estensione.