Membuat proyek perpustakaan kelas

Untuk mengaktifkan pengujian unit pada ViewModel dan layanan Anda, buat proyek pustaka kelas terpisah. Anda memerlukan project ini karena proyek pengujian unit WinUI 3 tidak dapat langsung mereferensikan proyek aplikasi WinUI.

Memahami templat Pustaka Kelas WinUI

Templat WinUI Class Library project membuat pustaka kelas terkelola (DLL) .NET yang dirancang khusus untuk digunakan dengan aplikasi desktop WinUI. Templat ini adalah bagian dari Windows App SDK dan menyediakan kemampuan penting yang tidak disertakan pustaka kelas .NET standar.

Perbedaan utama dari Pustaka Kelas .NET

Templat Pustaka Kelas WinUI berbeda dari Pustaka Kelas .NET standar dengan beberapa cara penting:

  • penargetan khusus Windows: Ini menargetkan kerangka kerja khusus Windows (seperti net8.0-windows10.0.19041.0) daripada kerangka kerja .NET lintas platform, memberikan akses ke API Windows.
  • integrasi Windows App SDK: Ini termasuk referensi ke paket NuGet Microsoft.WindowsAppSDK dan Microsoft.Windows.SDK.BuildTools, yang menyediakan akses ke WinUI dan API Windows App SDK.
  • dukungan WinUI diaktifkan: Proyek mencakup <UseWinUI>true</UseWinUI> dalam konfigurasinya, memungkinkan tugas build yang spesifik untuk WinUI dan kompilasi XAML.
  • Pengidentifikasi runtime Windows: Pengidentifikasi runtime khusus untuk Windows dikonfigurasi (win-x86, win-x64, win-arm64).

Mengapa menggunakan Pustaka Kelas WinUI?

Ketika perpustakaan Anda membutuhkan, gunakan template WinUI Class Library sebagai pengganti dari Perpustakaan Kelas .NET biasa.

  • Referensi jenis dan kontrol WinUI: Templat Pustaka Kelas WinUI memungkinkan Anda menggunakan jenis dari namespace Microsoft.UI.Xaml dan API Windows App SDK lainnya dalam kode pustaka Anda.
  • Sertakan sumber daya XAML: Jika pustaka Anda berisi UserControls, kontrol kustom, atau sumber daya XAML lainnya, Anda memerlukan templat Pustaka Kelas WinUI untuk mengkompilasi dan mengemas sumber daya ini dengan benar.
  • Integrasi dengan aplikasi WinUI: Templat telah dikonfigurasi untuk bekerja secara lancar dengan aplikasi desktop WinUI, memastikan kompatibilitas dengan model runtime dan penyebaran Windows App SDK.
  • Mendukung kompilasi markup XAML: Templat menyertakan tugas build yang diperlukan untuk mengkompilasi file XAML ke pustaka.

Kapan menggunakan Pustaka Kelas .NET standar

Gunakan proyek Class Library .NET standar saat pustaka Anda:

  • Hanya berisi kode .NET murni (ViewModels, model, layanan, utilitas)
  • Tidak mereferensikan jenis WinUI atau Windows App SDK
  • Tidak menyertakan file XAML atau kode terkait UI
  • Perlu dibagikan di berbagai jenis aplikasi (bukan hanya aplikasi WinUI)
  • Menargetkan beberapa platform (misalnya, .NET MAUI atau ASP.NET Core) atau sistem operasi (misalnya, Linux atau macOS)

Untuk tutorial tentang menambahkan Pustaka Kelas .NET ke dalam solusi Anda, lihat Mengembangkan aplikasi konsol C# dan debugging di Visual Studio.

Untuk tutorial ini, gunakan templat Pustaka Kelas WinUI karena memungkinkan Anda untuk mereferensikan jenis WinUI jika diperlukan di masa depan, dan dirancang khusus untuk diintegrasikan dengan aplikasi WinUI. Meskipun ViewModels dan layanan kami saat ini tidak memerlukan jenis WinUI, menggunakan templat ini memberikan fleksibilitas dan memastikan integrasi yang tepat dengan lingkungan Windows App SDK.

Buatlah proyek WinUINotes.Bus

Buat proyek Perpustakaan Kelas WinUI baru bernama WinUINotes.Bus untuk menyimpan ViewModel, model, dan layanan Anda dalam solusi yang sama dengan proyek aplikasi WinUI Anda.

  1. Di Visual Studio, klik kanan solusi di Solution Explorer.

  2. Pilih Tambah>Proyek Baru....

  3. Pilih templat Pustaka Kelas WinUI dan pilih Berikutnya.

    Nota

    Pastikan Anda memilih Pustaka Kelas WinUI, bukan hanya Pustaka Kelas. Templat Pustaka Kelas WinUI mencakup referensi ke kerangka kerja Windows App SDK dan WinUI.

  4. Beri nama project WinUINotes.Bus dan pilih Buat.

  5. Hapus file default Class1.cs .

Tambahkan referensi proyek

Referensi proyek memungkinkan aplikasi WinUI Anda menggunakan ViewModels dan layanan yang ditentukan di proyek pustaka kelas.

  1. Klik kanan WinUINotes project dan pilih Tambahkan>Project Referensi... .
  2. Periksa WinUINotes.Bus project dan pilih OK.

Bus project berisi ViewModel, model, dan layanan Anda, sehingga Anda dapat mengujinya secara independen dari lapisan UI.

Nota

Istilah "Bus" menunjukkan project yang bertindak sebagai lapisan komunikasi atau perantara. Ini berisi logika presentasi (ViewModels), logika bisnis (model), dan layanan yang dapat Anda bagikan dan uji secara independen dari UI.