Panduan: Membuat SDK menggunakan C# atau Visual Basic

Dalam panduan ini, Anda akan mempelajari cara membuat SDK Pustaka Matematika sederhana dengan menggunakan Visual C# lalu mengemas SDK sebagai Ekstensi Visual Studio (VSIX). Anda akan menyelesaikan prosedur berikut:

Prasyarat

Untuk mengikuti panduan ini, Anda harus menginstal Visual Studio SDK. Untuk informasi selengkapnya, lihat Visual Studio SDK.

Untuk membuat komponen SimpleMath Windows Runtime

  1. Dari bilah menu, pilih File>New>Project.

  2. Dalam daftar templat, perluas Visual C# atau Visual Basic, pilih simpul Windows Store , lalu pilih templat Komponen Runtime Windows.

  3. Dalam kotak Nama , tentukan SimpleMath, lalu pilih tombol OK .

  4. Di Penjelajah Solusi, buka menu pintasan untuk simpul proyek SimpleMath, lalu pilih Properti.

  5. Ganti nama Class1.cs menjadi Arithmetic.cs dan perbarui agar sesuai dengan kode berikut:

    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. Di Penjelajah Solusi, buka menu pintasan untuk node Solusi 'SimpleMath', lalu pilih Configuration Manager.

    Kotak dialog Configuration Manager terbuka.

  7. Di daftar Konfigurasi solusi aktif, pilih Rilis.

  8. Di kolom Konfigurasi, verifikasi bahwa baris SimpleMath diatur ke Rilis, lalu pilih tombol Tutup untuk menerima perubahan.

    Penting

    SDK untuk komponen SimpleMath hanya mencakup satu konfigurasi. Konfigurasi ini harus berupa build rilis, atau aplikasi yang menggunakan komponen tidak akan lulus sertifikasi untuk Microsoft Store.

  9. Di Penjelajah Solusi, buka menu pintasan untuk simpul proyek SimpleMath, lalu pilih Bangun.

Untuk membuat proyek ekstensi SimpleMathVSIX

  1. Pada menu pintasan untuk node Solusi 'SimpleMath', pilih Tambahkan>Proyek Baru.

  2. Dalam daftar templat, perluas Visual C# atau Visual Basic, pilih simpul Ekstensibilitas , lalu pilih templat Proyek VSIX.

  3. Dalam kotak Nama , tentukan SimpleMathVSIX, lalu pilih tombol OK .

  4. Di Penjelajah Solusi, pilih item source.extension.vsixmanifest.

  5. Pada bilah menu, pilih Tampilkan>Kode.

  6. Ganti XML yang sudah ada dengan XML berikut:

    <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. Di Penjelajah Solusi, pilih proyek SimpleMathVSIX.

  8. Pada bilah menu, pilih Project>Add New Item.

  9. Dalam daftar Item Umum, perluas Data, lalu pilih File XML.

  10. Dalam kotak Nama , tentukan SDKManifest.xml, lalu pilih tombol Tambahkan .

  11. Di Penjelajah Solusi, buka menu pintasan untuk SDKManifest.xml, pilih Properti, lalu ubah nilai properti Sertakan di VSIX menjadi True.

  12. Ganti konten file dengan XML berikut:

    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. Di Penjelajah Solusi, buka menu pintasan untuk proyek SimpleMathVSIX, pilih Tambahkan, lalu pilih Folder Baru.

  14. Ubah nama folder menjadi references.

  15. Buka menu pintasan untuk folder Referensi , pilih Tambahkan, lalu pilih Folder Baru.

  16. Ganti nama subfolder menjadi commonconfiguration, buat subfolder di dalamnya, dan beri nama subfolder neutral.

  17. Ulangi empat langkah sebelumnya, kali ini mengganti nama folder pertama menjadi redist.

    Proyek sekarang berisi struktur folder berikut:

    references\commonconfiguration\neutral
    redist\commonconfiguration\neutral
    
  18. Di Penjelajah Solusi, buka menu pintasan untuk proyek SimpleMath, lalu pilih Buka Folder di File Explorer.

  19. Di File Explorer, navigasikan ke folder bin\Release , buka menu pintasan untuk file SimpleMath.winmd , lalu pilih Salin.

  20. Dalam Penjelajah Solusi, tempelkan file ke dalam folder references\commonconfiguration\netral di proyek SimpleMathVSIX.

  21. Ulangi langkah sebelumnya, tempelkan file SimpleMath.pri ke folder redist\commonconfiguration\netral dalam proyek SimpleMathVSIX .

  22. Di Penjelajah Solusi, pilih SimpleMath.winmd.

  23. Pada bilah menu, pilih Tampilkan>Properti (Keyboard: Pilih tombol F4).

  24. Di jendela Properti , ubah properti Tindakan Build menjadi Konten, lalu ubah properti Sertakan di VSIX menjadi True.

  25. Dalam Penjelajah Solusi, ulangi proses ini untuk SimpleMath.pri.

  26. Di Penjelajah Solusi, pilih proyek SimpleMathVSIX.

  27. Pada bilah menu, pilih Bangun SimpleMathVSIX>.

  28. Di Penjelajah Solusi, buka menu pintasan untuk proyek SimpleMathVSIX, lalu pilih Buka Folder di File Explorer.

  29. Di File Explorer, navigasikan ke \bin\Release folder, lalu jalankan SimpleMathVSIX.vsix untuk menginstalnya.

  30. Pilih tombol Instal , tunggu hingga penginstalan selesai, lalu mulai ulang Visual Studio.

Untuk membuat aplikasi sampel yang menggunakan pustaka kelas

  1. Dari bilah menu, pilih File>New>Project.

  2. Dalam daftar templat, perluas Visual C# atau Visual Basic, lalu pilih simpul Windows Store .

  3. Pilih templat Aplikasi Kosong, beri nama proyek ArithmeticUI, lalu pilih tombol OK.

  4. Di Penjelajah Solusi, buka menu pintasan untuk proyek AritmeticUI, lalu pilih Tambahkan>Referensi.

  5. Dalam daftar jenis referensi, perluas Windows, lalu pilih Ekstensi.

  6. Di panel detail, pilih ekstensi Pustaka Matematika WinRT.

    Informasi tambahan tentang SDK Anda muncul. Anda dapat memilih tautan Informasi Selengkapnya untuk membuka https://msdn.microsoft.com/, seperti yang Anda tentukan dalam file SDKManifest.xml sebelumnya dalam panduan ini.

  7. Dalam kotak dialog Manajer Referensi, pilih kotak centang Pustaka Matematika WinRT, lalu pilih tombol OK .

  8. Pada bilah menu, pilih Tampilkan>Browser Objek.

  9. Di daftar Telusuri, pilih Matematika Sederhana.

    Anda sekarang dapat menjelajahi apa yang ada di SDK.

  10. Di Penjelajah Solusi, buka MainPage.xaml, dan ganti kontennya dengan XAML berikut:

    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. Perbarui MainPage.xaml.cs agar sesuai dengan kode berikut:

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. Pilih kunci F5 untuk menjalankan aplikasi.

  2. Di aplikasi, masukkan dua angka apa pun, pilih operasi, lalu pilih tombol = .

    Hasil yang benar muncul.

    Anda telah berhasil membuat dan menggunakan Extension SDK.