Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Чтобы включить модульное тестирование объектов 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.
В Visual Studio щелкните правой кнопкой мыши решение в обозревателе решений.
Выберите "Добавить>новый проект...".
Выберите шаблон библиотеки классов WinUI и нажмите кнопку "Далее".
Замечание
Убедитесь, что выбрана библиотека классов WinUI, а не только библиотека классов. Шаблон библиотеки классов WinUI содержит ссылки на платформу Windows App SDK и WinUI.
Назовите проект
WinUINotes.Busи выберите Создать.Удалите файл по умолчанию
Class1.cs.
Добавление ссылок на проект
Ссылки на проекты позволяют проекту приложения WinUI использовать ViewModels и службы, определенные в проекте библиотеки классов:
- Щелкните правой кнопкой мыши проект WinUINotes и выберите "Добавить>ссылку на проект...".
- Проверьте проект WinUINotes.Bus и нажмите кнопку "ОК".
Проект Bus содержит ViewModels, модели и сервисы, что позволяет протестировать их независимо от уровня пользовательского интерфейса.
Замечание
Термин "Шина" обозначает проект, который служит слоем связи или посредником. Он содержит логику презентации (ViewModels), бизнес-логику (модели) и службы, которые можно совместно использовать и тестировать независимо от пользовательского интерфейса.
Windows developer