Introducción a .NET para aplicaciones de la Tienda

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 8.x con C# o Visual Basic. Este subconjunto de tipos administrados se denomina .NET para aplicaciones de la Tienda Windows 8.x y permite a los desarrolladores de .NET Framework crear aplicaciones de la Tienda Windows 8.x 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 8.x 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 8.x. Por lo general, no notarás diferencia alguna entre el uso de los tipos administrados y la Windows en tiempo de ejecución tipos salvo que los tipos administrados residen en los espacios de nombres que empiezan por Systemy el Windows en tiempo de ejecución tipos residen en los espacios de nombres que empiezan por Windows. En combinación, .NET para aplicaciones de la Tienda Windows 8.x y Windows en tiempo de ejecución proporcionan el conjunto completo de tipos y miembros disponibles para desarrollar aplicaciones de la Tienda Windows 8.x 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 8.x. Como resultado, se omite lo siguiente:

  • Los tipos y miembros que no son aplicables para desarrollar aplicaciones de la Tienda Windows 8.x (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 8.x. En su lugar, puede usar un tipo de Windows en tiempo de ejecución. Por ejemplo, el System.IO.IsolatedStorage.IsolatedStorageSettings clase no se incluye en el .NET para aplicaciones de la Tienda Windows 8.x, pero la Windows.Storage.ApplicationDataContainer clase ofrece un comportamiento similar para almacenar la configuración de la aplicación. Ejemplos de los cambios que es posible que deba realizar se incluyen en la sección convertir el código existente de .NET Framework.

Se hace referencia de forma automática en tu proyecto al conjunto completo de ensamblados para .NET para aplicaciones de la Tienda Windows 8.x cuando creas una aplicación de la Tienda Windows 8.x con C# o Visual Basic. Por consiguiente, puede usar cualquiera de los tipos compatibles con .NET para aplicaciones de la Tienda Windows 8.x en el proyecto sin necesidad de iniciar acción alguna. Para obtener una lista de los espacios de nombres combinado proporcionado por el .NET para aplicaciones de la Tienda Windows 8.x y Windows en tiempo de ejecución (agrupados por área funcional), vea el espacios de nombres de .NET Framework y Windows Runtime sección.

Para obtener una lista de espacios de nombres y tipos incluidos en el subconjunto de .NET Framework, vea .NET para aplicaciones Windows.

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 8.x. El proyecto debe incluir aplicaciones .NET para 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 8.x. Vea biblioteca de clases Portable.

En este tema se incluyen las secciones siguientes sobre .NET para Windows Runtime:

En estos temas se ofrece información sobre la conversión de otras partes de la aplicación a partes de Windows Runtime:

Por lo general, no solo cuando se convierte una aplicación existente de .NET Framework a una aplicación de la Tienda Windows 8.x, se rediseña la aplicación de .NET Framework para que el usuario disfrute de una experiencia nueva. Sin embargo, puede que quiera convertir partes de una aplicación existente de .NET Framework para su uso en una aplicación de la Tienda Windows 8.x. Cuando convierta código existente de .NET Framework, debe estar al tanto de los siguientes cambios que es posible que deba efectuar en la aplicación de la Tienda Windows 8.x:

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.

ReemplazarPor
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, el borde clase se encuentra en la Windows.UI.Xaml.Controls espacio de nombres)

Para obtener más información sobre cómo migrar código de interfaz de usuario, consulte migrar 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.

CambiaPor
Métodos System.IO.Stream.BeginRead y EndReadMétodo System.IO.Stream.ReadAsync

Para obtener un ejemplo, vea ReadAsync (Byte[], Int32, Int32).
Métodos System.IO.Stream.BeginWrite y EndWriteMétodo System.IO.Stream.WriteAsync

Para obtener un ejemplo, vea WriteAsync (Byte[], Int32, Int32).
Método Close() en clases de E/SMétodo Dispose() en clases de E/S.

o bien

Declara y crea una instancia del objeto de E/S dentro de una instrucción using (C#) o Using (Visual Basic) para asegurarte de que se desecha correctamente; por ejemplo:

 using (StreamReader sr = new StreamReader(await passedFile.OpenStreamForReadAsync())) { while ((nextLine = await sr.ReadLineAsync()) != null) { contents.Append(nextLine); } }

 Using sr As StreamReader = New StreamReader(Await passedFile.OpenStreamForReadAsync()) While (nextLine = Await sr.ReadLineAsync()) <> Nothing contents.Append(nextLine) End While End Using
Método System.IO.File::ReadAllTextEl ReadTextAsync método en el Windows.Storage.PathIO (clase)
Código para recuperar y abrir un archivopublic static async void ReadFileSamples() { // Read a file from package StorageFolder packageFolder = ApplicationModel.Package.Current.InstalledLocation; StorageFile packagedFile = await packageFolder.GetFileAsync("FileInPackage"); // Read a file from AppData StorageFolder localFolder = ApplicationData.Current.LocalFolder; StorageFile localFile = await localFolder.GetFileAsync("FileInAppData"); }

 Public Async Shared Sub ReadFileSamples() ' Read a file from package Dim packageFolder As StorageFolder = ApplicationModel.Package.Current.InstalledLocation Dim packagedFile As StorageFile = Await packageFolder.GetFileAsync("FileInPackage") ' Read a file from AppData Dim localFolder As StorageFolder = ApplicationData.Current.LocalFolder Dim localFile As StorageFile = Await localFolder.GetFileAsync("FileInAppData ") End Sub

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.

CambiaPor
Clase System.IO.IsolatedStorage.IsolatedStorageFileEl LocalFolder propiedad de la clase Windows.Storage.ApplicationData

 ApplicationData.Current.LocalFolder
Clase System.IO.IsolatedStorage.IsolatedStorageSettingsEl LocalSettings propiedad de la clase Windows.Storage.ApplicationData

 >ApplicationData.Current.LocalSettings

Para obtener más información, consulte datos de la aplicación.

Cambios de red

ReemplazarPor
Clase System.Net.WebClientSystem.Net.Http.HttpClient clase para enviar solicitudes HTTP y recibir respuestas HTTP

O bien

Tipos en el Windows.Networking.BackgroundTransfer espacio de nombres para cargar o descargar grandes cantidades de datos
Tipos en el espacio de nombres System.Net.SocketsTipos en el Windows.Networking.Sockets espacio de nombres
Identificadores URI relativos, cuando se pasan a los tipos de Windows en tiempo de ejecuciónIdentificadores URI absolutos

Para obtener más información, consulte pasar un identificador URI a Windows Runtime.
Excepciones de código que detecta el UriFormatException (excepción)Código que detecta el FormatException excepción, lo 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.

CambiaPor
Método System.Threading.Thread.MemoryBarrierInterlocked.MemoryBarrier método en el espacio de nombres System.Threading
Propiedad System.Threading.Thread.ManagedThreadIdEnvironment.CurrentManagedThreadId propiedad en el espacio de nombres del sistema
Propiedad System.Threading.Thread.CurrentCultureCultureInfo.CurrentCulture propiedad en el espacio de nombres System.Globalization
Propiedad System.Threading.Thread.CurrentUICultureCultureInfo.CurrentUICulture propiedad en el espacio de nombres System.Globalization
Clase System.Threading.TimerWindows.System.Threading.ThreadPoolTimer (clase)
Clase System.Threading.ThreadPoolWindows.System.Threading.ThreadPool (clase)
Código que pone en cola trabajos para el grupoTask.Run(() => { // work goes here });

 Task.Run( Sub() ' work goes here End Sub)
Código que pone en cola trabajo para el grupo y espera a que finaliceawait Task.Run(() => { // work goes here });

 Await Task.Run( Sub() ' work goes here End Sub)
Código que crea un elemento de trabajo de ejecución prolongadaTask.Factory.StartNew(() => { // work goes here }, TaskCreationOptions.LongRunning);

 Task.Factory.StartNew( Sub() ' work goes here End Sub, TaskCreationOptions.LongRunning)

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.

CambiaPor
type.Assemblytype.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.CreateDelegateMethodInfo.CreateDelegate (método)

Para obtener más información, consulte reflexión en .NET Framework para almacén de aplicaciones de 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 Tienda Windows 8.x aplicaciones, consulte el espacios de nombres security lista más adelante en este tema.

Cambios de recursos

Para las aplicaciones de la Tienda Windows 8.x, se crea un único archivo de recursos en lugar del modelo de concentrador y radio que se usa en aplicaciones de escritorio. Además, usar los tipos de recursos en el Windows.ApplicationModel.Resources y Windows.ApplicationModel.Resources.Core espacios de nombres en lugar del espacio de nombres System.Resources.

Para obtener más información, consulte crear y recuperar recursos en aplicaciones de Windows Runtime.

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 8.x. En estos casos, puede detectar la clase primaria de la excepción que no se incluye. Por ejemplo, en una aplicación de escritorio, detectas la UriFormatException excepciones para controlar un URI no válido; pero en un Tienda Windows 8.x aplicación, detectar el FormatException excepción porque UriFormatException no se incluye en el .NET para aplicaciones de la Tienda Windows 8.x. FormatException es la clase primaria de UriFormatException.

Cambios de la WCF

En las aplicaciones de la Tienda Windows 8.x, 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

ReemplazarPor
Método System.Xml.XmlConvert.ToDateTimeXmlConvert.ToDateTimeOffset (método)
Interfaz System.ICloneableMétodo personalizado que devuelve el tipo adecuado
Métodos System.Array.AsReadOnly y System.Collections.Generic.List < T>. Métodos de AsReadOnlyUna nueva instancia de la System.Collections.ObjectModel.ReadOnlyCollection < T> (clase), creado como sigue:

 new ReadOnlyCollection<string>(selectedList)

 New ReadOnlyCollection(Of String)(selectedList)

En la mayoría de los casos, se desarrollan aplicaciones de la Tienda Windows 8.x 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:

En las secciones siguientes se enumeran los espacios de nombres que se proporcionan en .NET para aplicaciones de la Tienda Windows 8.x 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, abra el proyecto en Visual Studio 2012 o posterior, elija administrar paquetes de NuGet desde el proyecto menú y busque en línea el paquete Microsoft.Composition.

Multimedia

Redes

Presentación

Impresión

Reflexión

Recursos

Seguridad

Social

Subprocesos

Automatización de la interfaz de usuario

Interacción del usuario

Lenguaje y compiladores

.NET para aplicaciones de Windows
Crear componentes de Windows en tiempo de ejecución en C# y Visual Basic
Compatibilidad con .NET framework para aplicaciones de la tienda de Windows y en tiempo de ejecución de Windows

Mostrar:
© 2017 Microsoft