Windows forms wpf uwp

Переход от классического приложения к UWP Move from a desktop application to UWP

При наличии существующего классического приложения, созданного с помощью .NET Framework (включая WPF и Windows Forms) или API Win32 с + +, у вас есть несколько вариантов перехода на универсальная платформа Windows (UWP) и Windows 10. If you have an existing desktop application that was built using the .NET Framework (including WPF and Windows Forms) or C++ Win32 APIs, you have several options for moving to the Universal Windows Platform (UWP) and Windows 10.

Упаковка классического приложения в пакет MSIX Package your desktop application in an MSIX package

Вы можете упаковать настольное приложение в пакет MSIX, чтобы получить доступ ко многим другим функциям Windows 10. You can package your desktop application in an MSIX package to get access to many more Windows 10 features. MSIX — это современный универсальный формат пакетов для упаковки любых приложений для Windows, включая приложения UWP, WPF, Windows Forms и Win32. MSIX is a modern Windows app package format that provides a universal packaging experience for all Windows apps, including UWP, WPF, Windows Forms and Win32 apps. Упаковав классические приложения для Windows в MSIX-пакеты, вы получаете доступ к надежным возможностям установки и обновления, управляемой модели безопасности с гибкой системой возможностей, поддержке Microsoft Store, возможностям управления предприятием и многим пользовательским моделям распространения. Packaging your desktop Windows apps in MSIX packages gets you access to a robust installation and updating experience, a managed security model with a flexible capability system, support for the Microsoft Store, enterprise management, and many custom distribution models. Вы можете упаковать приложение независимо от наличия исходного кода или наличия только существующего файла установщика (например, MSI или App-V Installer). You can package your application whether you have the source code or if you only have an existing installer file (such as an MSI or App-V installer). После упаковки приложения можно интегрировать такие компоненты UWP, как расширения пакета и другие компоненты UWP. After you package your application, you can integrate UWP features such as package extensions and other UWP components.

Использование среда выполнения Windows API Use Windows Runtime APIs

Для интеграции современных возможностей, которые могут заинтересовать пользователей Windows 10, большинство API-интерфейсов среды выполнения Windows можно вызывать напрямую из классических приложений WPF, Windows Forms или C++ Win32. You can call many Windows Runtime APIs directly in your WPF, Windows Forms, or C++ Win32 desktop app to integrate modern experiences that light up for Windows 10 users. Например, вы можете вызывать API-интерфейсы среды выполнения Windows, чтобы добавлять всплывающие уведомления в приложение. For example, you can call Windows Runtime APIs to add toast notifications to your desktop app.

Перенос приложения .NET Framework в приложение UWP Migrate a .NET Framework app to a UWP app

Если приложение выполняется на .NET Framework, его можно перенести в приложение UWP, используя .NET Standard 2,0. If your application runs on the .NET Framework, you can migrate it to a UWP app by leveraging .NET Standard 2.0. Переместите как можно больше кода, как и в .NET Standard библиотеки классов 2,0, а затем создайте приложение UWP, которое ссылается на библиотеки .NET Standard 2,0. Move as much code as you can into .NET Standard 2.0 class libraries, and then create a UWP app that references your .NET Standard 2.0 libraries.

Читайте также:  Display windows file name

Совместное использование кода в библиотеке .NET Standard 2.0 Share code in a .NET Standard 2.0 library

Если приложение выполняется на .NET Framework, разместите как можно больше кода, как и в .NET Standard 2,0 библиотеки классов. If your application runs on the .NET Framework, place as much code as you can into .NET Standard 2.0 class libraries. Если в коде используются API-интерфейсы, определенные в этом стандарте, код можно многократно использовать в приложениях UWP. As long as your code uses APIs that are defined in the standard, you can reuse it in a UWP app. В стандарт .NET Standard 2.0 входит гораздо больше API-интерфейсов, поэтому совместное использование кода в библиотеках .NET Standard стало еще удобнее. It’s easier than it’s ever been to share code in a .NET Standard library because so many more APIs are included in the .NET Standard 2.0.

Ниже приведен видеоролик с дополнительными сведениями о нем. Here’s a video that tells you more about it.

Добавление библиотек .NET Standard Add .NET Standard libraries

Прежде всего, добавьте в вашей решение одну или несколько библиотек классов .NET Standard. First, add one or more .NET Standard class libraries to your solution.

Количество добавляемых в решение библиотек зависит от того, как вы будете организовывать свой код. The number of libraries that you add to your solution depends on how you plan to organize your code.

Убедитесь, что целевым объектом каждой библиотеки классов является .NET Standard 2.0. Make sure that each class library targets the .NET Standard 2.0.

Этот параметр находится на страницах свойств проекта библиотеки классов. You can find this setting in the property pages of the class library project.

В проекте классического приложения добавьте ссылку на проект библиотеки классов. From your desktop application project, add a reference to the class library project.

Далее используйте специальные инструменты, чтобы определить, насколько ваш код соответствует стандарту. Next, use tools to determine how much of your code conforms to the standard. Таким образом, перед перемещением кода в библиотеку вы решите, какие его части можно использовать повторно, какие части требуют минимальных изменений, а какие будут предназначаться для конкретных приложений. That way, before you move code into the library, you can decide which parts you can reuse, which parts require minimal modification, and which parts will remain application-specific.

Проверка совместимости библиотеки и кода Check library and code compatibility

Начнем с пакетов NuGet и других DLL-файлов, полученных от стороннего поставщика. We’ll start with Nuget Packages and other dll files that you obtained from a third party.

Если в вашем приложении используются такие файлы, определите, совместимы ли они со стандартом .NET Standard 2.0. If your application uses any of them, determine if they are compatible with the .NET Standard 2.0. Для этого можно использовать расширение Visual Studio или служебную программу командной строки. You can use a Visual Studio extension or a command-line utility to do that.

Используйте эти же инструменты для анализа кода. Use these same tools to analyze your code. Скачайте инструменты по этой ссылке (dotnet-apiport) и просмотрите это видео, чтобы научиться ими пользоваться. Download the tools here (dotnet-apiport) and then watch this video to learn how to use them.

Если ваш код не соответствует стандарту, рассмотрите другие варианты использования этого кода. If your code isn’t compatible with the standard, consider other ways that you could implement that code. В первую очередь, откройте обозреватель API-интерфейсов .NET. Start by opening the .NET API Browser. С его помощью можно просматривать API-интерфейсы, доступные в стандарте .NET Standard 2.0. You can use that browser to review the API’s that are available in the .NET Standard 2.0. В качестве области списка выберите .NET Standard 2.0. Make sure to scope the list to the .NET Standard 2.0.

Читайте также:  Командная строка windows размер папок

Часть кода будет предназначена для определенной платформы и останется в проекте классического приложения. Some of your code will be platform-specific and will need to remain in your desktop application project.

Пример. Перенос кода доступа к данным в библиотеку .NET Standard 2.0 Example: Migrating data access code to a .NET Standard 2.0 library

Предположим, что у нас есть очень простое приложение Windows Forms, которое показывает клиентов из образца базы данных Northwind. Let’s assume that we have a very basic Windows Forms application that shows customers from our Northwind sample database.

Проект содержит библиотеку классов .NET Standard 2.0 со статическим классом с именем Northwind. The project contains a .NET Standard 2.0 class library with a static class named Northwind. Если переместить этот код в класс Northwind , он не будет компилироваться, поскольку в нем SQLConnection используются SqlCommand классы, и SqlDataReader , а также эти классы, недоступные в .NET Standard 2,0. If we move this code into the Northwind class, it won’t compile because it uses the SQLConnection , SqlCommand , and SqlDataReader classes, and those classes that are not available in the .NET Standard 2.0.

Мы можем использовать обозреватель API-интерфейсов .NET для получения альтернативного варианта. We can use the .NET API Browser to find an alternative though. Классы DbConnection , DbCommand и DbDataReader они доступны в .NET Standard 2.0, поэтому можно использовать их. The DbConnection , DbCommand , and DbDataReader classes are all available in the .NET Standard 2.0 so we can use them instead.

В данной исправленной версии эти классы используются для получения списка пользователей, но для создания класса DbConnection потребуется передать объект фабрики, созданный в клиентском приложении. This revised version uses those classes to get a list of customers, but to create a DbConnection class, we’ll need to pass in a factory object that we create in the client application.

На странице с кодом программной части Windows Form можно создать экземпляр фабрики и передать его нашему методу. In the code-behind page of the Windows Form, we can just create factory instance and pass it into our method.

Создание приложения UWP Create a UWP app

Теперь все готово для добавления приложения UWP в решение. Now you’re ready to add a UWP app to your solution.

Все равно потребуется спроектировать страницы пользовательского интерфейса в XAML и написать код для конкретного устройства или платформы, но после этого вы получите доступ к полному спектру устройств Windows 10, а страницы вашего приложения буду выполнены в современном стиле с эффективной адаптацией под различные размеры и разрешение экрана. You’ll still have to design UI pages in XAML and write any device or platform-specific code, but when you are done, you’ll be able to reach the full breadth of Windows 10 devices and your app pages will have a modern feel that adapts well to different screen sizes and resolutions.

Приложение будет реагировать на механизмы ввода, отличные от клавиатуры с мышью, а пользоваться его возможностями и параметрами будет удобно на любых устройствах. Your app will respond to input mechanisms other than just a keyboard and mouse, and features and settings will be intuitive across devices. Это означает, что пользователям нужно научиться пользоваться приложением только один раз, так как оно работает практически одинаково независимо от устройства. This means that users learn how to do things one time, and then it works in a very familiar way no matter the device.

Это лишь несколько преимуществ UWP. These are just a few of the goodies that come with UWP. Дополнительные сведения см. в разделе Создавайте великолепные решения с помощью Windows. To learn more, see Build great experiences with Windows.

Добавление проекта UWP Add a UWP project

Прежде всего, добавьте проект UWP в свое решение. First, add a UWP project to your solution.

Затем в проекте UWP добавьте ссылку на проект библиотеки .NET Standard 2.0. Then, from your UWP project, add a reference the .NET Standard 2.0 library project.

Читайте также:  Windows filtering platform как отключить

Создание собственных страниц Build your pages

Добавьте страницы XAML и вызовите код в библиотеке .NET Standard 2.0. Add XAML pages and call the code in your .NET Standard 2.0 library.

Чтобы начать работать с UWP, обратитесь к разделу Что такое приложение UWP. To get started with UWP, see What’s a UWP app.

Доступ к устройствам iOS и Android Reach iOS and Android devices

Получить доступ к устройствам Android и iOS можно путем добавления проектов Xamarin. You can reach Android and iOS devices by adding Xamarin projects.

С помощью этих проектов можно использовать C# для создания приложений Android и iOS с полным доступом к API-интерфейсам для конкретных платформ и устройств. These projects let you use C# to build Android and iOS apps with full access to platform-specific and device-specific APIs. Эти приложения используют средства аппаратного ускорения с учетом конкретной платформы и компилируются для достижения естественной производительности. These apps leverage platform-specific hardware acceleration, and are compiled for native performance.

У них есть доступ ко всем функциям, предоставленным базовыми платформой и устройством, включая возможности конкретных платформ, такие как маяки iBeacon и фрагменты Android. Кроме того, вы сможете использовать стандартные собственные элементы управления для создания пользовательского интерфейса, оформление и возможности которого будут соответствовать ожиданиям пользователей. They have access to the full spectrum of functionality exposed by the underlying platform and device, including platform-specific capabilities like iBeacons and Android Fragments and you’ll use standard native user interface controls to build UIs that look and feel the way that users expect them to.

Как и в случае с приложениями UWP, стоимость добавления приложения Android или iOS ниже благодаря возможности многократно использовать бизнес-логику в библиотеке классов .NET Standard 2.0. Just like UWPs, the cost to add an Android or iOS app is lower because you can reuse business logic in a .NET Standard 2.0 class library. Необходимо спроектировать страницы пользовательского интерфейса в XAML и написать код для конкретного устройства или платформы. You’ll have to design your UI pages in XAML and write any device or platform-specific code.

Добавление проекта Xamarin Add a Xamarin project

Прежде всего, добавьте в решение проект Android, iOS или Межплатформенный проект. First, add an Android, iOS, or Cross-Platform project to your solution.

Эти шаблоны находятся в диалоговом окне Добавление нового проекта в группе Visual C#. You can find these templates in the Add New Project dialog box under the Visual C# group.

визуальный элемент с выбранным выпуском Visual C и Android, кросс-платформенный и i O S.» data-linktype=»relative-path»/>

Межплатформенные проекты подходят для приложений с минимальным набором возможностей для конкретных платформ. Cross-platform projects are great for apps with little platform-specific functionality. Эти проекты можно использовать для создания единого собственного пользовательского интерфейса на основе XAML, который будет работать в iOS, Android и Windows. You can use them to build one native XAML-based UI that runs on iOS, Android, and Windows. Дополнительные сведения см. здесь. Learn more here.

Затем добавьте ссылку на проект библиотеки классов через проект Android, iOS или межплатформенный проект. Then, from your Android, iOS, or cross-platform project, add a reference the class library project.

Создание собственных страниц Build your pages

В нашем примере показан список пользователей в приложении Android. Our example shows a list of customers in an Android app.

Инструкции по началу работы с проектами Android, iOS и межплатформенными проектами см. на портале Xamarin для разработчиков. To get started with Android, iOS, and cross-platform projects, see the Xamarin developer portal.

Дальнейшие действия Next steps

Получение ответов на вопросы Find answers to your questions

Есть вопросы? Have questions? Задайте их на Stack Overflow. Ask us on Stack Overflow. Наша команда следит за этими тегами. Our team monitors these tags. Вы также можете задать нам вопросы здесь. You can also ask us here.

Оставьте отзыв или предложите новые возможности для реализации Give feedback or make feature suggestions

Оцените статью