Общие сведения о .NET для приложений Магазина Windows

В .NET Framework имеется набор управляемых типов, которые можно использовать для создания приложений Магазин Windows с помощью C# или Visual Basic. Это подмножество управляемых типов называется Приложения .NET для Магазина Windows и позволяет разработчикам .NET Framework для создавать приложения Магазин Windows с использованием привычной платформы программирования. Все типы, не относящихся к разработке приложений Магазин Windows, не входят в это подмножество.

Эти управляемые типы должны использоваться с типами API Среда выполнения Windows для создания приложения Магазин Windows. Как правило, различия между использованием управляемых типов и типов Среда выполнения Windows незаметны, за исключением того, что управляемые типы находятся в пространствах имен, начинающихся с System, а типы Среда выполнения Windows находятся в пространствах имен, начинающихся с Windows. Вместе Приложения .NET для Магазина Windows и Среда выполнения Windows обеспечивают полный набор типов и членов, доступных для разработки приложений Магазин Windows на языках C# или Visual Basic.

Подмножество управляемых типов и членов было разработано с акцентом на разработку приложений Магазин Windows. В результате оно не содержит следующее:

  • типы и члены, неприменимые к разработке приложений Магазин Windows (например, типы консоли и ASP.NET);

  • устаревшие типы;

  • типы, пересекающиеся с типами Среда выполнения Windows;

  • типы и члены, которые обеспечивают оболочку для функций операционной системы (например, EventLog и счетчики производительности);

  • члены, вызывающие путаницу (например, метод Close в типах ввода-вывода).

В некоторых случаях тип, который использовался в приложении рабочего стола .NET Framework, не существует в Приложения .NET для Магазина Windows. Вместо него можно использовать тип из Среда выполнения Windows. Например, класс System.IO.IsolatedStorage.IsolatedStorageSettings не содержится в Приложения .NET для Магазина Windows, однако класс Windows.Storage.ApplicationDataContainer обеспечивает аналогичное поведение для хранения параметров приложения. Примеры типовых изменений, которые может потребоваться вносить, описаны в разделе Преобразование существующего кода .NET Framework.

При создании приложения Магазин Windows с помощью C# или Visual Basic в проект автоматически включаются ссылки на весь набор сборок Приложения .NET для Магазина Windows. Поэтому вы можете использовать в проекте любые типы, поддерживаемые Приложения .NET для Магазина Windows, без каких-либо дополнительных действий. Список объединенных пространств имен, входящих в Приложения .NET для Магазина Windows и Среда выполнения Windows (сгруппированный по функциональным областям), представлен в разделе Пространства имен .NET Framework и среды выполнения Windows.

Список пространств имен и типов, входящих в подмножество .NET Framework, см. в разделе .NET for Windows Store apps – supported APIs.

Также можно создать проект Переносимая библиотека классов для разработки библиотеки .NET Framework, которая может использоваться из приложения Магазин Windows. В качестве одной из целевых платформ проект должен включать .NET для приложений Магазина Windows. Переносимая библиотека классов особенно полезна, когда требуется создавать классы, которые можно использовать из приложений для различных типов платформ, таких как приложения Windows Phone, настольные приложения и приложения Магазин Windows. См. раздел Portable Class Libraries.

В этом разделе содержатся следующие подразделы.

В этих разделах содержатся сведения о преобразовании других частей приложения для среды выполнения Windows.

Как правило, разработчики не осуществляют простое преобразование имеющегося приложения .NET Framework в приложение Магазин Windows; вместо этого они перерабатывают приложение .NET Framework с учетом новых возможностей пользовательского интерфейса. Однако может потребоваться преобразовать часть имеющегося приложения .NET Framework для ее использования в новом приложении Магазин Windows. При преобразовании существующего кода .NET Framework необходимо помнить о следующих изменениях, которые, возможно, нужно будет внести в приложение Магазин Windows.

BR230302.collapse_all(ru-ru,VS.120).gifИзменения пользовательского интерфейса

При преобразовании кода пользовательского интерфейса из приложения Silverlight или приложения Windows Phone можно использовать многие похожие типы пользовательского интерфейса, но теперь они находятся в пространстве имен Windows.UI.Xaml, а не в пространстве имен System.Windows. Эти новые типы пользовательского интерфейса аналогичны предыдущим типам пользовательского интерфейса .NET Framework, но содержат ряд других членов.

Заменить

На

Типы пользовательского интерфейса в пространствах имен System.Windows.*

Типы пользовательского интерфейса в пространствах имен Windows.UI.Xaml.*

(например, класс Border расположен в пространстве имен Windows.UI.Xaml.Controls)

Дополнительные сведения о портировании кода пользовательского интерфейса см. в разделе Миграция приложения Windows Phone 7 в XAML.

BR230302.collapse_all(ru-ru,VS.120).gifИзменения ввода-вывода

Типы ввода-вывода включают новые члены, поддерживающие новое ключевое слово await в асинхронной модели программирования.

Заменить

На

Методы System.IO.Stream.BeginRead и EndRead

Метод System.IO.Stream.ReadAsync

Пример см. в разделе ReadAsync(Byte[], Int32, Int32).

Методы System.IO.Stream.BeginWrite и EndWrite

Метод System.IO.Stream.WriteAsync

Пример см. в разделе WriteAsync(Byte[], Int32, Int32).

Метод Close() в классах ввода-вывода

Метод Dispose() в классах ввода-вывода.

-или-

Объявите и создайте объект ввода-вывода в инструкции using (C#) или Using (Visual Basic), чтобы он правильно удалялся; например:

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

Метод System.IO.File.ReadAllText

Метод ReadTextAsync в классе Windows.Storage.PathIO

Код для получения и открытия файла

public 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");
}

BR230302.collapse_all(ru-ru,VS.120).gifИзменения хранилища

Вместо класса System.IO.IsolatedStorage используйте для хранения локальных данных и файлов типы в пространствах имен Windows.Storage.

Заменить

На

Класс System.IO.IsolatedStorage.IsolatedStorageFile

Свойство LocalFolder в классе Windows.Storage.ApplicationData

ApplicationData.Current.LocalFolder

Класс System.IO.IsolatedStorage.IsolatedStorageSettings

Свойство LocalSettings в классе Windows.Storage.ApplicationData

ApplicationData.Current.LocalSettings

Дополнительные сведения см.в разделе Доступ к данным приложения с помощью среды выполнения Windows (приложения среды выполнения Windows).

BR230302.collapse_all(ru-ru,VS.120).gifИзменения сети

Заменить

На

Класс System.Net.WebClient

Класс HttpClient для отправки HTTP-запросов и получения HTTP-ответов

-или-

Типы в пространстве имен Windows.Networking.BackgroundTransfer для отправки или скачивания больших объемов данных

Типы в пространстве имен System.Net.Sockets

Типы в пространстве имен Windows.Networking.Sockets

Относительные URI при передаче в типы Среда выполнения Windows

Абсолютные URI

Дополнительные сведения см. в разделе Передача URI в среду выполнения Windows.

Код обработки исключения, который перехватывает исключение UriFormatException

Код, который перехватывает исключение FormatException, являющееся родительским классом для UriFormatException

BR230302.collapse_all(ru-ru,VS.120).gifИзменения в потоках

Некоторые члены потоков .NET Framework изменились, и некоторые типы теперь доступны в API Среда выполнения Windows.

Заменить

На

Метод System.Threading.Thread.MemoryBarrier

Метод Interlocked.MemoryBarrier в пространстве имен System.Threading

Свойство System.Threading.Thread.ManagedThreadId

Свойство Environment.CurrentManagedThreadId в пространстве имен System

Свойство System.Threading.Thread.CurrentCulture

Свойство CultureInfo.CurrentCulture в пространстве имен System.Globalization

Свойство System.Threading.Thread.CurrentUICulture

Свойство CultureInfo.CurrentUICulture в пространстве имен System.Globalization

Класс System.Threading.Timer

Класс Windows.System.Threading.ThreadPoolTimer

Класс System.Threading.ThreadPool

Класс Windows.System.Threading.ThreadPool

Код, помещающий задания в очередь в пуле

Task.Run(() => 
{ 
  // work goes here
});

Код, помещающий задания в очередь в пуле и ожидающий их завершения

await Task.Run(() => 
{ 
  // work goes here
});

Код, создающий рабочий элемент, который выполняется длительное время

Task.Factory.StartNew(() => 
{ 
  // work goes here
}, TaskCreationOptions.LongRunning);

BR230302.collapse_all(ru-ru,VS.120).gifИзменения отражения

Большинство членов класса System.Type были перемещены в класс System.Reflection.TypeInfo. Объект TypeInfo можно получить, вызвав метод System.Reflection.IntrospectionExtensions.GetTypeInfo(System.Type), который является методом расширения для Type.

Заменить

На

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

Метод System.Delegate.CreateDelegate

Метод MethodInfo.CreateDelegate

Дополнительные сведения см. в разделе Reflection in the .NET Framework for Windows Store Apps в библиотеке MSDN.

BR230302.collapse_all(ru-ru,VS.120).gifИзменения системы безопасности

Многие типы безопасности, аутентификации и операций шифрования доступны через типы Среда выполнения Windows. Полный список пространств имен безопасности, которые доступны для приложений Магазин Windows, см. в списке пространств имен безопасности далее в этом разделе.

BR230302.collapse_all(ru-ru,VS.120).gifИзменения ресурсов

Для приложений Магазин Windows создается один файл ресурсов, вместо модели "звезда", которая использовалась в настольных приложениях. Кроме того, используйте типы ресурсов в пространствах имен Windows.ApplicationModel.Resources и Windows.ApplicationModel.Resources.Core вместо пространства имен System.Resources.

Дополнительные сведения см. в разделе Создание и извлечение ресурсов в приложениях для Магазина Windows.

BR230302.collapse_all(ru-ru,VS.120).gifИзменения исключений

В некоторых случаях управляемый тип создает исключение, которое не входит в Приложения .NET для Магазина Windows. В этих случаях можно перехватить родительский класс исключения, который не включен. Например, в настольном приложении для обработки недопустимого URI перехватывается исключение UriFormatException; однако в приложении Магазин Windows следует перехватывать исключение FormatException, поскольку UriFormatException не включено в Приложения .NET для Магазина Windows. FormatException является родительским классом для UriFormatException.

BR230302.collapse_all(ru-ru,VS.120).gifИзменения WCF

В приложениях Магазин Windows можно с помощью функциональности клиента Windows Communication Foundation (WCF) извлекать данные из службы WCF, но нельзя создать службу WCF для предоставления данных.

BR230302.collapse_all(ru-ru,VS.120).gifИзменения в обычных типах .NET Framework

Заменить

На

Метод System.Xml.XmlConvert.ToDateTime

Метод XmlConvert.ToDateTimeOffset

Интерфейс System.ICloneable

Пользовательский метод, который возвращает соответствующий тип

Методы System.Array.AsReadOnly и System.Collections.Generic.List<T>.AsReadOnly

Новый экземпляр класса ReadOnlyCollection, создаваемый следующим образом:

new ReadOnlyCollection<string>(selectedList)

В большинстве случаев приложения Магазин Windows разрабатываются с использованием и типов .NET Framework, и типов Среда выполнения Windows без каких-либо специальных ограничений и преобразований. Однако в некоторых случаях в .NET Framework имеются методы расширения, упрощающие взаимодействие между типами .NET Framework и типами Среда выполнения Windows. Эти методы расширения принадлежат к следующим классам.

  • WindowsRuntimeStreamExtensions — для преобразования между управляемыми потоками и потоками в Среда выполнения Windows.

  • WindowsRuntimeStorageExtensions — для открытия файлов и папок Среда выполнения Windows как управляемых потоков.

  • WindowsRuntimeBufferExtensions — для преобразования в и из IBuffer.

В следующих разделах перечислены пространства имен, предоставляемые в Приложения .NET для Магазина Windows и Среда выполнения Windows, упорядоченные по функциональным возможностям.

BR230302.collapse_all(ru-ru,VS.120).gifКоллекции

BR230302.collapse_all(ru-ru,VS.120).gifЯдро

BR230302.collapse_all(ru-ru,VS.120).gifДанные и содержимое

BR230302.collapse_all(ru-ru,VS.120).gifУстройства

BR230302.collapse_all(ru-ru,VS.120).gifДиагностика

BR230302.collapse_all(ru-ru,VS.120).gifФайлы и папки

BR230302.collapse_all(ru-ru,VS.120).gifГлобализация

BR230302.collapse_all(ru-ru,VS.120).gifГрафика

BR230302.collapse_all(ru-ru,VS.120).gifManaged Extensibility Framework (MEF)

Чтобы установить следующие пространства имен, откройте проект в Visual Studio 2012 или более поздней версии, выберите в меню Проект пункт Управление пакетами NuGet и найдите в Интернете пакет Microsoft.Composition.

BR230302.collapse_all(ru-ru,VS.120).gifМультимедиа

BR230302.collapse_all(ru-ru,VS.120).gifСеть

BR230302.collapse_all(ru-ru,VS.120).gifПредставление

BR230302.collapse_all(ru-ru,VS.120).gifПечать

BR230302.collapse_all(ru-ru,VS.120).gifОтражение

BR230302.collapse_all(ru-ru,VS.120).gifРесурсы

BR230302.collapse_all(ru-ru,VS.120).gifБезопасность

BR230302.collapse_all(ru-ru,VS.120).gifСоциальные функции

BR230302.collapse_all(ru-ru,VS.120).gifРабота с потоками

BR230302.collapse_all(ru-ru,VS.120).gifАвтоматизация пользовательского интерфейса

BR230302.collapse_all(ru-ru,VS.120).gifВзаимодействие с пользователем

BR230302.collapse_all(ru-ru,VS.120).gifЯзыки и компиляторы

Показ:
© 2014 Microsoft