Modernización de las aplicaciones de escritorioModernize your desktop apps

Windows 10 y la Plataforma universal de Windows (UWP) ofrecen muchas características que puedes usar para ofrecer una experiencia moderna en las aplicaciones de escritorio.Windows 10 and the Universal Windows Platform (UWP) offer many features you can use to deliver a modern experience in your desktop apps. La mayoría de estas características están disponibles como componentes modulares que puedes adoptar en las aplicaciones de escritorio a tu propio ritmo sin tener que volver a escribir la aplicación para una plataforma diferente.Most of these features are available as modular components that you can adopt in your desktop apps at your own pace without having to rewrite your application for a different platform. Puedes mejorar las aplicaciones de escritorio existentes eligiendo qué partes de Windows 10 y UWP adoptar.You can enhance your existing desktop apps by choosing which parts of Windows 10 and UWP to adopt.

En este artículo se describen las características de Windows 10 y UWP que puedes usar en las aplicaciones de escritorio hoy mismo.This article describes the Windows 10 and UWP features that you can use in your desktop apps today. Para ver un tutorial que muestra cómo modernizar una aplicación existente para que pueda usar muchas de las características descritas en este artículo, consulte Modernización de una aplicación WPF.For a tutorial that demonstrates how to modernize an existing app to use many of the features described in this article, see the Modernize a WPF app tutorial.

Nota

¿Necesitas ayuda para migrar las aplicaciones de escritorio a Windows 10?Do you need assistance migrating desktop apps to Windows 10? El servicio Asesoría de aplicaciones de escritorio proporciona soporte directo y gratuito a los desarrolladores que porten sus aplicaciones a Windows 10.The Desktop App Assure service provides direct, no-cost support to developers who are porting their apps to Windows 10. Este programa está disponible para todos los fabricantes de software independiente y las empresas aptas.This program is available to all ISVs and eligible enterprises. Para más información sobre los requisitos que hay que cumplir y sobre el propio programa, visita https://aka.ms/DesktopAppAssure.For more details on eligibility and about the program itself, visit https://aka.ms/DesktopAppAssure. Para empezar a trabajar ahora, envía la solicitud.To get started now, submit your request.

Paquetes MSIXMSIX packages

MSIX es un formato moderno de paquete de la aplicación de Windows que proporciona una experiencia de empaquetado universal para todas las aplicaciones de Windows, incluidas las aplicaciones de UWP, WPF, Windows Forms y 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. MSIX reúne los mejores aspectos de las tecnologías de instalación de MSI, .appx, App-V y ClickOnce, y está compilado para ser seguro y confiable.MSIX brings together the best aspects of MSI, .appx, App-V and ClickOnce installation technologies and is built to be safe, secure, and reliable.

El empaquetado de las aplicaciones de escritorio de Windows en paquetes MSIX le permite acceder a una sólida experiencia de instalación y actualización, a un modelo de seguridad administrado con un sistema de funcionalidades flexible, a compatibilidad con Microsoft Store, a la administración empresarial y a muchos modelos de distribución personalizados.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.

Para más información, consulta Empaquetar aplicaciones de escritorio en la documentación de MSIX.For more information, see Package desktop applications in the MSIX documentation.

.NET Core 3.NET Core 3

.NET Core 3 es la última versión principal de .NET Core..NET Core 3 is the latest major release of .NET Core. Lo más destacado de esta versión es la compatibilidad con aplicaciones de escritorio de Windows, incluidas las aplicaciones de Windows Forms y WPF.The highlight of this release is support for Windows desktop apps, including Windows Forms and WPF apps. Puedes ejecutar aplicaciones de escritorio de Windows nuevas y existentes en .NET Core 3 y disfrutar de todas las ventajas que ofrece .NET Core.You can run new and existing Windows desktop apps on .NET Core 3 and enjoy all the benefits that .NET Core has to offer. Los controles de UWP que se hospedan en islas XAML también se pueden usar en las aplicaciones de Windows Forms y WPF que tienen como destino .NET Core 3.UWP controls that are hosted in XAML Islands can also be used in Windows Forms and WPF apps that target .NET Core 3.

Para obtener más información, consulta el tema sobre novedades de .NET Core 3.0.For more information, see What's new in .NET Core 3.0.

Api de UWPUWP APIs

Puedes llamar a muchas API de UWP directamente en la aplicación de escritorio de WPF, Windows Forms o C++ Win32 para integrar las experiencias más actuales creadas para los usuarios de Windows 10.You can call many UWP APIs directly in your WPF, Windows Forms, or C++ Win32 desktop app to integrate modern experiences that light up for Windows 10 users. Por ejemplo, puedes llamar a las API de UWP para que agreguen notificaciones del sistema a la aplicación de escritorio.For example, you can call UWP APIs to add toast notifications to your desktop app.

Para más información, consulta Uso de API de UWP en aplicaciones de escritorio.For more information, see Use UWP APIs in desktop apps.

Hospedaje de controles de UWP (islas XAML)Host UWP controls (XAML Islands)

A partir de Windows 10, versión 1903, puede agregar controles XAML para UWP directamente en cualquier elemento de la interfaz de usuario de una aplicación de WPF, Windows Forms o C++ Win32 que esté asociada a un identificador de ventana (HWND).Starting with the Windows 10, version 1903, you can add UWP XAML controls directly to any UI element in a WPF, Windows Forms, or C++ Win32 app that is associated with a window handle (HWND). Esto significa que puedes integrar totalmente las características más recientes de UWP como, por ejemplo, Windows Ink y los controles que admiten Fluent Design System en ventanas y en otras superficies de presentación de las aplicaciones de escritorio.This means that you can fully integrate the latest UWP features such as Windows Ink and controls that support the Fluent Design System into windows and other display surfaces in your desktop apps. Este escenario para desarrolladores se denomina a veces islas XAML.This developer scenario is sometimes called XAML islands.

Para más información, consulta Uso de controles de UWP en aplicaciones de escritorio.For more information, see UWP controls in desktop apps

Uso de una capa visual en aplicaciones de escritorioUse the Visual layer in desktop apps

Ahora puedes usar las API de UWP en aplicaciones de escritorio que no son de UWP para mejorar la apariencia, aspecto y funcionalidad de las aplicaciones de WPF, Windows Forms y C++ Win32 y aprovechar las ventajas de las características más recientes de la interfaz de usuario de Windows 10 que solo están disponibles a través de UWP.You can now use UWP APIs in non-UWP desktop apps to enhance the look, feel, and functionality of your WPF, Windows Forms, and C++ Win32 apps, and take advantage of the latest Windows 10 UI features that are only available via UWP. Esto es útil cuando necesitas crear experiencias personalizadas que van más allá de los controles integrados de UWP que puedes hospedar mediante islas XAML.This is useful when you need to create custom experiences that go beyond the built-in UWP controls you can host by using XAML Islands.

Para más información, consulta Modernización de una aplicación de escritorio mediante la capa visual.For more information, see Modernize your desktop app using the Visual layer.

Características adicionales disponibles para aplicaciones con la identidad de paqueteAdditional features available to apps with package identity

Algunas experiencias modernas de Windows 10 solo están disponibles en las aplicaciones de escritorio que tienen la identidad de paquete.Some modern Windows 10 experiences are available only in desktop apps that have package identity. Estas características incluyen algunas API de UWP, extensiones de paquete y componentes de UWP.These features include certain UWP APIs, package extensions, and UWP components. Para más información, consulta Características que requieren identidad del paquete.For more information, see Features that require package identity.

Hay varias maneras de conceder identidad a una aplicación de escritorio:There are several ways to grant identity to a desktop app:

  • Empaquetarla en un paquete de MSIX.Package it in an MSIX package. MSIX es un formato moderno de paquete de la aplicación que proporciona una experiencia de empaquetado universal para todas las aplicaciones Windows, WPF, Windows Forms y Win32.MSIX is a modern app package format that provides a universal packaging experience for all Windows apps, WPF, Windows Forms and Win32 apps. Proporciona una sólida experiencia de instalación y actualización, un modelo de seguridad administrado con un sistema de funcionalidades flexible, compatibilidad con Microsoft Store, administración empresarial y muchos modelos de distribución personalizados.It provides 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. Para más información, consulta Empaquetar aplicaciones de escritorio en la documentación de MSIX.For more information, see Package desktop applications in the MSIX documentation.
  • Si no puedes adoptar el empaquetado de MSIX para implementar la aplicación de escritorio, a partir de la compilación de Windows 10 Insider Preview 10.0.19000.0 puedes conceder la identidad de paquete al crear un paquete disperso de MSIX que solo contenga un manifiesto de paquete.If you are unable to adopt MSIX packaging for deploying your desktop app, starting in Windows 10 Insider Preview Build 10.0.19000.0 you can grant package identity by creating a sparse MSIX package that contains only a package manifest. Para obtener más información, consulta Concesión de identidad a aplicaciones de escritorio no empaquetadas.For more information, see Grant identity to non-packaged desktop apps.

Controles UWP optimizados para aplicaciones de escritorioUWP controls optimized for desktop apps

Tanto si va a compilar una aplicación para UWP centrada exclusivamente en la familia de dispositivos de escritorio como si desea usar los controles de UWP en una aplicación de escritorio de WPF, Windows Forms o C++ Win32, los siguientes controles de UWP nuevos y actualizados están diseñados para ofrecer experiencias optimizadas para escritorio gracias a Fluent Design System.Whether you're building a UWP app that exclusively targets the desktop device family or you want to use UWP controls in a WPF, Windows Forms, or C++ Win32 desktop app, the following new and updated UWP controls are designed to offer desktop-optimized experiences with the Fluent Design System. Estos controles se introdujeron en Windows 10, versión 1809 (actualización de octubre de 2018 o versión 10.0.17763).These controls were introduced in Windows 10, version 1809 (the October 2018 Update, or version 10.0.17763).

ControlControl DescripciónDescription
MenuBarMenuBar Proporciona una manera rápida y sencilla de exponer un conjunto de comandos para las aplicaciones que podrían necesitar una mayor organización o agrupación que las que permite un control CommandBar.Provides a quick and simple way to expose a set of commands for apps that might need more organization or grouping then a CommandBar allows.
DropDownButtonDropDownButton Muestra un botón de contenido adicional como un indicador visual que tiene un control flotante asociado que contiene más opciones.Shows a chevron as a visual indicator that it has an attached flyout that contains more options.
SplitButtonSplitButton Proporciona un botón que tiene dos partes que se pueden invocar por separado.Provides a button has two parts that can be invoked separately. Una parte se comporta como un botón estándar e invoca una acción inmediata.One part behaves like a standard button and invokes an immediate action. La otra parte invoca un control flotante que contiene opciones adicionales entre las que puede elegir el usuario.The other part invokes a flyout that contains additional options that the user can choose from.
ToggleSplitButtonToggleSplitButton Proporciona un botón que tiene dos partes que se pueden invocar por separado.Provides a button has two parts that can be invoked separately. Una parte se comporta como un botón de alternancia que se puede activar o desactivar.One part behaves like a toggle button that can be on or off. La otra parte invoca un control flotante que contiene opciones adicionales entre las que puede elegir el usuario.The other part invokes a flyout that contains additional options that the user can choose from.
CommandBarFlyoutCommandBarFlyout Permite mostrar las tareas comunes de usuario en el contexto de un elemento en el lienzo de la interfaz de usuario.Lets you show common user tasks in the context of an item on your UI canvas.
ComboBoxComboBox Ahora ya puedes realizar un cuadro combinado editable para que el usuario escriba los valores que no aparecen en el control.You can now make a combo box editable so the user can enter values that aren't listed in the control.
TreeViewTreeView Ya puedes configurar una vista de árbol que permita el enlace de datos, las plantillas de elementos y la opción para arrastrar y colocar.You can now configure a tree view to enable data binding, item templates, and drag and drop.
DataGridViewDataGridView Ofrece una manera flexible de mostrar una colección de datos en filas y columnas.Provides a flexible way to display a collection of data in rows and columns. Este control está disponible en el kit de herramientas de la comunidad Windows.This control is available in the Windows Community Toolkit.

Biblioteca de interfaz de usuario de WindowsWindows UI Library

La biblioteca de interfaz de usuario de Windows es un conjunto de paquetes NuGet que proporciona nuevos controles y otros elementos de interfaz de usuario para aplicaciones de UWP.The Windows UI Library is a set of NuGet packages that provide new controls and other user interface elements for UWP apps. Las API de la biblioteca de interfaz de usuario de Windows funcionan en versiones anteriores de Windows 10, por lo que la aplicación funcionará incluso aunque los usuarios no estén ejecutando la última versión de Windows 10.Windows UI Library APIs work on earlier versions of Windows 10, so your app works even if users aren't running the latest version of Windows 10. Esto te permitirá adoptar nuevos controles a medida que se publican en la biblioteca de interfaz de usuario de Windows sin tener que preocuparte de incluir comprobaciones de la versión o XAML condicionales.This lets you adopt new controls as they are released in the Windows UI Library without having to worry about including version checks or conditional XAML.

Consulta Biblioteca de interfaz de usuario de Windows.See Windows UI Library.

Otras tecnologías para aplicaciones modernas de escritorioOther technologies for modern desktop apps

Microsoft GraphMicrosoft Graph

Microsoft Graph es una colección de API que puede usar para compilar aplicaciones para las organizaciones y consumidores que interactúan con los datos de millones de usuarios.Microsoft Graph is a collection of APIs you can use to build apps for organizations and consumers that interact with the data of millions of users. Microsoft Graph expone las API REST y las bibliotecas de cliente para acceder a los datos de:Microsoft Graph exposes REST APIs and client libraries to access data on the following:

  • Azure Active DirectoryAzure Active Directory
  • Servicios de Office 365: SharePoint, OneDrive, Outlook, Exchange, Microsoft Teams, OneNote, Planner y ExcelOffice 365 services: SharePoint, OneDrive, Outlook/Exchange, Microsoft Teams, OneNote, Planner, and Excel
  • Servicios de Enterprise Mobility + Security: Identity Manager, Intune, Advanced Threat Analytics y Advanced Threat Protection.Enterprise Mobility and Security services: Identity Manager, Intune, Advanced Threat Analytics, and Advanced Threat Protection.
  • Servicios de Windows 10: actividades y dispositivosWindows 10 services: activities and devices

Para más información, consulta los documentos de Microsoft Graph.For more information, see the Microsoft Graph docs.

Tarjetas adaptablesAdaptive Cards

Tarjetas adaptables es un marco abierto, multiplataforma que puedes usar para intercambiar contenido de la interfaz de usuario basado en tarjetas de forma común y coherente entre los distintos dispositivos y plataformas.Adaptive Cards is an open, cross-platform framework that you can use to exchange card-based UI content in a common and consistent way across devices and platforms.

Para más información, consulta los documentos de Tarjetas adaptables.For more information, see the Adaptive Cards docs.