Información general de .NET para aplicaciones de la Tienda Windows
.NET Framework proporciona un subconjunto de tipos administrados que puedes usar para crear aplicaciones de la Tienda Windows con C# o Visual Basic. Este subconjunto de tipos administrados se denomina .NET para aplicaciones de la Tienda Windows y permite a los desarrolladores de .NET Framework crear aplicaciones de la Tienda Windows dentro en un marco de programación que resulta familiar. Los tipos que no estén relacionados con el desarrollo de aplicaciones de la Tienda Windows no se incluyen en el subconjunto.
Estos tipos administrados se usan con tipos de la API de Windows en tiempo de ejecución para crear aplicaciones de la Tienda Windows. Por lo general, no notarás diferencia alguna entre el uso de los tipos administrados y de los tipos de Windows en tiempo de ejecución, salvo que los tipos administrados residen en los espacios de nombres que comienzan con System y los tipos de Windows en tiempo de ejecución residen en los espacios de nombres que comienzan con Windows. En combinación, .NET para aplicaciones de la Tienda Windows y Windows en tiempo de ejecución proporcionan el conjunto completo de tipos y miembros disponibles para desarrollar aplicaciones de la Tienda Windows con C# o Visual Basic.
El subconjunto de tipos administrados y miembros se diseñó con un claro objetivo orientado al desarrollo de la aplicación de la Tienda Windows. Como resultado, se omite lo siguiente:
Los tipos y miembros que no son aplicables para desarrollar aplicaciones de la Tienda Windows (como la consola y los tipos de ASP.NET).
Tipos obsoletos y heredados.
Tipos que se superponen con los tipos de Windows en tiempo de ejecución.
Tipos y miembros que contienen funciones del sistema operativo (como System.Diagnostics.EventLog y contadores de rendimiento).
Miembros que llevan a confusión (como el método de Close en tipos de E/S).
En algunos casos, un tipo que habías usado en una aplicación de escritorio de .NET Framework no existe en .NET para aplicaciones de la Tienda Windows. En su lugar, puedes usar un tipo de Windows en tiempo de ejecución. Por ejemplo, la clase System.IO.IsolatedStorage.IsolatedStorageSettings no se incluye en .NET para aplicaciones de la Tienda Windows, pero la clase Windows.Storage.ApplicationDataContainer ofrece un comportamiento similar para almacenar la configuración de las aplicaciones. En la sección Convertir el código existente de .NET Framework, hay ejemplos de los cambios que podrías tener que efectuar.
Se hace referencia de forma automática en tu proyecto al conjunto completo de ensamblados para .NET para aplicaciones de la Tienda Windows cuando creas una aplicación de la Tienda Windows con C# o Visual Basic. Por consiguiente, puedes usar cualquiera de los tipos compatibles con .NET para aplicaciones de la Tienda Windows en el proyecto sin necesidad de iniciar acción alguna. Para obtener una lista de los espacios de nombres combinados que ofrece .NET para aplicaciones de la Tienda Windows y Windows en tiempo de ejecución (agrupados por área funcional), consulta la sección .NET Framework y espacios de nombres de Windows en tiempo de ejecución.
Para obtener una lista de espacios de nombres y tipos incluidos en el subconjunto de .NET Framework, consulta .NET para aplicaciones de la Tienda Windows: API admitidas.
También puedes crear un proyecto de Biblioteca de clases portable para desarrollar una biblioteca de .NET Framework que se pueda usar desde una aplicación de la Tienda Windows. El proyecto debe incluir .NET para aplicaciones de la Tienda Windows como una de las plataformas de destino. Biblioteca de clases portable es especialmente útil cuando se quieren desarrollar clases que se puedan usar desde aplicaciones para diferentes tipos de plataformas, como una aplicación de Windows Phone, una aplicación de escritorio y una aplicación de la Tienda Windows. Consulta Información general portable de biblioteca de clases.
En este tema, se incluyen las siguientes secciones:
Convertir el código existente de .NET Framework
Métodos de extensión para convertir tipos
Espacios de nombres de .NET Framework y de Windows en tiempo de ejecución
Convertir el código existente de .NET Framework
Por lo general, no solo cuando se convierte una aplicación existente de .NET Framework a una aplicación de la Tienda Windows, se rediseña la aplicación de .NET Framework para que el usuario disfrute de una experiencia nueva. Sin embargo, puede que quieras convertir partes de una aplicación existente de .NET Framework para su uso en una aplicación de la Tienda Windows. Cuando conviertas código existente de .NET Framework, debes estar al tanto de los siguientes cambios que es posible que debas efectuar en la aplicación de la Tienda Windows:
Cambios en la interfaz de usuario
Cambios de E/S
Cambios de almacenamiento
Cambios de red
Cambios de subprocesos
Cambios de reflexión
Cambios de seguridad
Cambios de recursos
Cambios de excepción
Cambios de la WCF
Cambios en los tipos generales de .NET Framework
Cambios en la interfaz de usuario
Cuando conviertas código de interfaz de usuario desde una aplicación basada en Silverlight o desde una aplicación de Windows Phone, puedes usar muchos de los mismos tipos de la interfaz de usuario, pero los tipos se encuentran ahora en los espacios de nombres Windows.UI.Xaml en lugar de en los espacios de nombres System.Windows. Estos nuevos tipos de interfaz de usuario son similares a los tipos anteriores de la interfaz de usuario de .NET Framework, pero contienen algunos miembros diferentes.
Replace |
With |
---|---|
Tipos de interfaz de usuario en el espacio de nombres System.Windows.* |
Tipos de la interfaz de usuario en espacios de nombres Windows.UI.Xaml.* (Por ejemplo, la clase Border se encuentra en el espacio de nombres Windows.UI.Xaml.Controls) |
Para obtener más información sobre cómo migrar código de interfaz de usuario, consulta el tema sobre cómo migrar o portar una aplicación de Windows Phone 7 a XAML.
Cambios de E/S
Los tipos de E/S incluyen nuevos miembros para prestar compatibilidad a la nueva palabra clave await en el modelo de programación asincrónica.
Cambios de almacenamiento
En lugar de usar la clase System.IO.IsolatedStorage, usa los tipos en los espacios de nombres Windows.Storage para almacenar datos locales y archivos.
Replace |
With |
---|---|
Clase System.IO.IsolatedStorage.IsolatedStorageFile |
La propiedad LocalFolder de la clase Windows.Storage.ApplicationData
|
Clase System.IO.IsolatedStorage.IsolatedStorageSettings |
La propiedad LocalSettings de la clase Windows.Storage.ApplicationData
|
Para obtener más información, consulta Datos de la aplicación.
Cambios de red
Replace |
With |
---|---|
Clase System.Net.WebClient |
Clase System.Net.Http.HttpClient para enviar solicitudes HTTP y recibir respuestas HTTP o bien Tipos en el espacio de nombres Windows.Networking.BackgroundTransfer para cargar o descargar gran cantidad de datos |
Tipos en el espacio de nombres System.Net.Sockets |
Tipos en el espacio de nombres Windows.Networking.Sockets |
Identificadores URI relativos, cuando se pasan a los tipos de Windows en tiempo de ejecución |
Identificadores URI absolutos Para obtener más información, consulta Pasar un URI a Windows en tiempo de ejecución. |
Código de control de excepciones que detecta la excepción de UriFormatException |
Código que detecta la excepción de FormatException, que es la clase primaria de UriFormatException |
Cambios de subprocesos
Algunos de los miembros de subprocesos de .NET Framework han cambiado y ahora se encuentran disponibles algunos en la API de Windows en tiempo de ejecución.
Replace |
With |
---|---|
Método System.Threading.Thread.MemoryBarrier |
Método Interlocked.MemoryBarrier en el espacio de nombres System.Threading |
Propiedad System.Threading.Thread.ManagedThreadId |
Propiedad Environment.CurrentManagedThreadId en el espacio de nombres System |
Propiedad System.Threading.Thread.CurrentCulture |
Propiedad CultureInfo.CurrentCulture en el espacio de nombres System.Globalization |
Propiedad System.Threading.Thread.CurrentUICulture |
Propiedad CultureInfo.CurrentUICulture en el espacio de nombres System.Globalization |
Clase System.Threading.Timer |
|
Clase System.Threading.ThreadPool |
|
Código que pone en cola trabajos para el grupo |
|
Código que pone en cola trabajo para el grupo y espera a que finalice |
|
Código que crea un elemento de trabajo de ejecución prolongada |
|
Cambios de reflexión
La mayoría de los miembros de la clase System.Type se han movido a la clase System.Reflection.TypeInfo. Puedes recuperar el objeto TypeInfo llamando al método System.Reflection.IntrospectionExtensions.GetTypeInfo(System.Type), que es un método de extensión para Type.
Replace |
With |
---|---|
type.Assembly |
type.GetTypeInfo().Assembly |
type.GetMethods(BindingFlags.DeclaredOnly) |
type.GetTypeInfo().DeclaredMethods |
type.GetMethod("MethodName", BindingFlags.DeclaredOnly) |
type.GetTypeInfo().GetDeclaredMethod("MethodName") |
type.GetNestedTypes() |
type.GetTypeInfo().DeclaredNestedTypes |
Método System.Delegate.CreateDelegate |
Método MethodInfo.CreateDelegate |
Para obtener más información, consulta Reflexión en .NET Framework para aplicaciones de la Tienda Windows en MSDN Library.
Cambios de seguridad
Muchos de los tipos de seguridad, la autenticación y las operaciones criptográficas están disponibles a través de los tipos de Windows en tiempo de ejecución. Para obtener una lista completa de los espacios de nombres de seguridad que están disponibles para las aplicaciones de la Tienda Windows, consulta la lista de espacios de nombres de seguridad más adelante en este tema.
Cambios de recursos
Para las aplicaciones de la Tienda Windows, se crea un único archivo de recursos en lugar del modelo de concentrador y radio que se usa en aplicaciones de escritorio. Además, puedes usar los tipos de recursos de los espacios de nombres Windows.ApplicationModel.Resources y Windows.ApplicationModel.Resources.Core en lugar del espacio de nombres System.Resources.
Para obtener más información, consulta Crear y recuperar recursos en aplicaciones de la Tienda Windows.
Cambios de excepción
En algunos casos, un tipo administrado produce una excepción que no está incluida en .NET para aplicaciones de la Tienda Windows. En estos casos, puedes detectar la clase primaria de la excepción que no se incluye. Por ejemplo, en una aplicación de escritorio, detectas la excepción UriFormatException para controlar un URI no válido; pero en una aplicación de la Tienda Windows, detectas la excepción FormatException porque UriFormatException no se incluye en .NET para aplicaciones de la Tienda Windows. FormatException es la clase primaria de UriFormatException.
Cambios de la WCF
En las aplicaciones de la Tienda Windows, puedes utilizar la funcionalidad de cliente de Windows Communication Foundation (WCF) para recuperar datos de un servicio WCF, pero no puedes crear un servicio WCF para servir datos.
Cambios en los tipos generales de .NET Framework
Replace |
With |
---|---|
Método System.Xml.XmlConvert.ToDateTime |
Método XmlConvert.ToDateTimeOffset |
Interfaz System.ICloneable |
Método personalizado que devuelve el tipo adecuado |
Métodos System.Array.AsReadOnly y System.Collections.Generic.List<T>.AsReadOnly |
Nueva instancia de la clase System.Collections.ObjectModel.ReadOnlyCollection<T>, que se ha creado como sigue:
|
Métodos de extensión para convertir tipos
En la mayoría de los casos, se desarrollan aplicaciones de la Tienda Windows con tipos de .NET Framework y tipos de Windows en tiempo de ejecución en combinación sin ninguna consideración o conversión especiales. Sin embargo, en algunos casos, .NET Framework aporta métodos de extensión para simplificar la interacción entre los tipos de .NET Framework y tipos de Windows en tiempo de ejecución. Estos métodos de extensión están en las clases siguientes:
System.IO.WindowsRuntimeStreamExtensions: para convertir entre secuencias administradas y secuencias en Windows en tiempo de ejecución.
System.IO.WindowsRuntimeStorageExtensions: para abrir archivos y carpetas de Windows en tiempo de ejecución como secuencias administradas.
System.Runtime.InteropServices.WindowsRuntime.WindowsRuntimeBufferExtensions: para conversiones a IBuffer y desde IBuffer.
.NET Framework y espacios de nombres Windows en tiempo de ejecución
En las secciones siguientes se enumeran los espacios de nombres que se proporcionan en .NET para aplicaciones de la Tienda Windows y Windows en tiempo de ejecución, organizados según su funcionalidad.
Colecciones
Principal
Datos y contenido
Dispositivos
Diagnóstico
Archivos y carpetas
Globalización
Gráficos
Managed Extensibility Framework (MEF)
Para instalar los espacios de nombres siguientes, abre el proyecto de Visual Studio 2012, elige Manage NuGet Packages en el menú Proyecto y busca en línea el paquete Microsoft.Composition.
Multimedia
Redes
Presentación
Impresión
Reflexión
Recursos
Seguridad
Social
Subprocesamiento
Automatización de la interfaz de usuario
Interacción del usuario
Lenguaje y compiladores
Vea también
Conceptos
.NET para aplicaciones de la Tienda Windows: API admitidas
Crear componentes de Windows en tiempo de ejecución en C# y Visual Basic