Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Чтобы включить модульное тестирование ваших ViewModel и служб, создайте отдельный проект библиотеки классов. Вам нужен этот проект, потому что проекты модульного тестирования WinUI 3 не могут напрямую ссылаться на проекты приложений WinUI.
Общие сведения о шаблоне библиотеки классов WinUI
Шаблон проекта Библиотеки классов WinUI создает управляемую библиотеку классов .NET (DLL), специально предназначенную для использования с настольными приложениями WinUI. Этот шаблон является частью Windows App SDK и предоставляет важные возможности, которые не включают стандартную библиотеку классов .NET.
Основные отличия от библиотеки классов .NET
Шаблон библиотеки классов WinUI отличается от стандартной библиотеки классов .NET несколькими важными способами:
-
Ориентация на Windows: Она ориентирована на платформу, специфичную для Windows (например,
net8.0-windows10.0.19041.0), а не на кроссплатформенную платформу .NET, предоставляя доступ к API Windows. - интеграция Windows App SDK: содержит ссылки на пакеты NuGet
Microsoft.WindowsAppSDKиMicrosoft.Windows.SDK.BuildTools, обеспечивая доступ к API WinUI и API Windows App SDK. - включена поддержка WinUI: Этот проект включает
<UseWinUI>true</UseWinUI>в конфигурацию, что позволяет выполнять задачи сборки и компиляцию XAML, специфичных для WinUI. - Windows Runtime идентификаторы: настроено для Windows-специфических идентификаторов среды выполнения (win-x86, win-x64, win-arm64).
Зачем использовать библиотеку классов WinUI?
Используйте шаблон класса WinUI вместо обычной библиотеки классов .NET, если библиотека должна:
-
Типы и элементы управления WinUI: Шаблон библиотеки классов WinUI позволяет использовать типы из пространства имен
Microsoft.UI.Xamlи других API Windows App SDK в коде вашей библиотеки. - Включите ресурсы XAML: если библиотека содержит UserControls, пользовательские элементы управления или другие ресурсы XAML, вам потребуется шаблон библиотеки классов WinUI для правильной компиляции и упаковки этих ресурсов.
- Интеграция с приложениями WinUI: шаблон настроен для эффективной работы с настольными приложениями WinUI, обеспечивая совместимость с моделью среды выполнения и развертывания Windows App SDK.
- Поддержка компиляции разметки XAML: шаблон включает необходимые задачи сборки для компиляции XAML-файлов в библиотеку.
Когда следует использовать обычную библиотеку классов .NET
Используйте стандартный проект библиотеки классов .NET в случае, если ваша библиотека:
- Содержит только чистый код .NET (ViewModels, модели, службы, служебные программы)
- Не ссылается ни на какие типы WinUI или Windows App SDK
- Не включает в себя код XAML или код, связанный с пользовательским интерфейсом
- Необходимо совместно использовать разные типы приложений (а не только приложения WinUI)
- Предназначено для нескольких платформ (например, .NET MAUI или ASP.NET Core) или операционных систем (например, Linux или macOS)
Руководство по добавлению библиотеки классов .NET в решение см. в консольном приложении Extend C# и отладке в Visual Studio.
В этом руководстве используйте шаблон библиотеки классов WinUI , так как он позволяет ссылаться на типы WinUI, если это необходимо в будущем, и оно специально предназначено для интеграции с приложениями WinUI. Хотя наши ViewModel и службы в настоящее время не требуют типов WinUI, использование этого шаблона обеспечивает гибкость и гарантирует правильную интеграцию со средой Windows App SDK.
Создайте проект WinUINotes.Bus
Создайте новый проект библиотеки классов WinUI с именем WinUINotes.Bus для хранения ViewModels, моделей и служб в том же решении, что и проект приложения WinUI.
В Visual Studio щелкните правой кнопкой мыши решение в Solution Explorer.
Выберите Add>New Project... .
Выберите шаблон библиотеки классов WinUI и нажмите кнопку "Далее".
Замечание
Убедитесь, что выбрана библиотека классов WinUI, а не только библиотека классов. Шаблон библиотеки классов WinUI содержит ссылки на платформу Windows App SDK и WinUI.
Назовите project
WinUINotes.Busи выберите Create.Удалите файл по умолчанию
Class1.cs.
Добавить ссылки на проект
Ссылки на проект позволяют приложению WinUI использовать ViewModels и службы, определенные в библиотеке классов.
- Щелкните правой кнопкой мыши проект WinUINotes и выберите Добавить>Ссылка на проект....
- Проверьте WinUINotes.Bus project и выберите OK.
Проект Bus содержит ваши модели представления, модели и службы, так что вы можете тестировать их независимо от слоя пользовательского интерфейса.
Замечание
Термин "Шина" указывает на проект, который выступает в качестве уровня связи или посредника. Он содержит логику презентации (ViewModels), бизнес-логику (модели) и службы, которые можно совместно использовать и тестировать независимо от пользовательского интерфейса.
Windows developer