Поделиться через


Создание проекта библиотеки классов

Чтобы включить модульное тестирование объектов ViewModels и служб, создайте отдельный проект библиотеки классов. Вам нужен этот проект, так как проекты модульного теста WinUI не могут напрямую ссылаться на проекты приложений WinUI.

Общие сведения о шаблоне библиотеки классов WinUI

Шаблон проекта библиотеки классов WinUI создает библиотеку управляемых классов .NET (DLL), специально предназначенную для использования с классическими приложениями WinUI. Этот шаблон является частью пакета SDK для приложений Windows и предоставляет важные возможности, которые не включают стандартную библиотеку классов .NET.

Основные отличия от библиотеки классов .NET

Шаблон библиотеки классов WinUI отличается от стандартной библиотеки классов .NET несколькими важными способами:

  • Предназначение для Windows: он предназначен для конкретной платформы Windows (например net8.0-windows10.0.19041.0), а не кроссплатформенной платформы .NET, предоставляя доступ к API Windows.
  • Интеграция Windows App SDK: включает ссылки на Microsoft.WindowsAppSDKMicrosoft.Windows.SDK.BuildTools пакеты NuGet, обеспечивающие доступ к API WinUI и Windows App SDK.
  • Поддержка WinUI включена: проект включает <UseWinUI>true</UseWinUI> в себя его конфигурацию, включив задачи сборки, относящиеся к WinUI, и компиляцию XAML.
  • Идентификаторы среды выполнения Windows: настройки выполнены для идентификаторов среды выполнения Windows (win-x86, win-x64, win-arm64).

Зачем использовать библиотеку классов WinUI?

Используйте шаблон библиотеки классов WinUI вместо обычной библиотеки классов .NET , когда библиотеке необходимо:

  • Ссылочные типы и элементы управления WinUI: шаблон библиотеки классов WinUI позволяет использовать типы из Microsoft.UI.Xaml пространства имен и других API пакета SDK для приложений Windows в коде библиотеки.
  • Включите ресурсы XAML: если библиотека содержит UserControls, пользовательские элементы управления или другие ресурсы XAML, вам потребуется шаблон библиотеки классов WinUI для правильной компиляции и упаковки этих ресурсов.
  • Интеграция с приложениями WinUI: шаблон настраивается для эффективной работы с классическими приложениями WinUI, обеспечивая совместимость со средой выполнения и моделью развертывания пакета SDK для Приложений Windows.
  • Поддержка компиляции разметки XAML: шаблон включает необходимые задачи сборки для компиляции XAML-файлов в библиотеку.

Когда следует использовать обычную библиотеку классов .NET

Используйте стандартный проект библиотеки классов .NET , если ваша библиотека:

  • Содержит только чистый код .NET (ViewModels, модели, службы, служебные программы)
  • Не ссылается ни на какие типы winUI или пакета SDK для приложений Windows
  • Не включает в себя код XAML или код, связанный с пользовательским интерфейсом
  • Необходимо совместно использовать разные типы приложений (а не только приложения WinUI)
  • Предназначено для нескольких платформ (например, .NET MAUI или ASP.NET Core) или операционных систем (например, Linux или macOS)

Руководство по добавлению библиотеки классов .NET в решение см. в статье Расширение консольного приложения C# и отладка в Visual Studio.

В этом руководстве используйте шаблон библиотеки классов WinUI , так как он позволяет ссылаться на типы WinUI, если это необходимо в будущем, и оно специально предназначено для интеграции с приложениями WinUI. Хотя наши ViewModel и службы в настоящее время не требуют типов WinUI, использование этого шаблона обеспечивает гибкость и правильную интеграцию со средой Windows App SDK.

Создание проекта WinUINotes.Bus

Создайте проект библиотеки классов WinUI с именем WinUINotes.Bus, чтобы хранить ViewModels, модели и сервисы в том же решении, что и проект приложения WinUI.

  1. В Visual Studio щелкните правой кнопкой мыши решение в обозревателе решений.

  2. Выберите "Добавить>новый проект...".

  3. Выберите шаблон библиотеки классов WinUI и нажмите кнопку "Далее".

    Замечание

    Убедитесь, что выбрана библиотека классов WinUI, а не только библиотека классов. Шаблон библиотеки классов WinUI содержит ссылки на платформу Windows App SDK и WinUI.

  4. Назовите проект WinUINotes.Bus и выберите Создать.

  5. Удалите файл по умолчанию Class1.cs .

Добавление ссылок на проект

Ссылки на проекты позволяют проекту приложения WinUI использовать ViewModels и службы, определенные в проекте библиотеки классов:

  1. Щелкните правой кнопкой мыши проект WinUINotes и выберите "Добавить>ссылку на проект...".
  2. Проверьте проект WinUINotes.Bus и нажмите кнопку "ОК".

Проект Bus содержит ViewModels, модели и сервисы, что позволяет протестировать их независимо от уровня пользовательского интерфейса.

Замечание

Термин "Шина" обозначает проект, который служит слоем связи или посредником. Он содержит логику презентации (ViewModels), бизнес-логику (модели) и службы, которые можно совместно использовать и тестировать независимо от пользовательского интерфейса.