Общие сведения о .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.
В этом разделе содержатся следующие подразделы.
Преобразование существующего кода .NET Framework
Методы расширения для преобразования типов
Пространства имен .NET Framework и среды выполнения Windows
В этих разделах содержатся сведения о преобразовании других частей приложения для среды выполнения Windows.
Преобразование существующего кода .NET Framework
Как правило, разработчики не осуществляют простое преобразование имеющегося приложения .NET Framework в приложение Магазин Windows; вместо этого они перерабатывают приложение .NET Framework с учетом новых возможностей пользовательского интерфейса. Однако может потребоваться преобразовать часть имеющегося приложения .NET Framework для ее использования в новом приложении Магазин Windows. При преобразовании существующего кода .NET Framework необходимо помнить о следующих изменениях, которые, возможно, нужно будет внести в приложение Магазин Windows.
Изменения пользовательского интерфейса
Изменения ввода-вывода
Изменения хранилища
Изменения сети
Изменения в потоках
Изменения отражения
Изменения системы безопасности
Изменения ресурсов
Изменения исключений
Изменения WCF
Изменения в обычных типах .NET Framework
Изменения пользовательского интерфейса
При преобразовании кода пользовательского интерфейса из приложения Silverlight или приложения Windows Phone можно использовать многие похожие типы пользовательского интерфейса, но теперь они находятся в пространстве имен Windows.UI.Xaml, а не в пространстве имен System.Windows. Эти новые типы пользовательского интерфейса аналогичны предыдущим типам пользовательского интерфейса .NET Framework, но содержат ряд других членов.
Заменить |
На |
---|---|
Типы пользовательского интерфейса в пространствах имен System.Windows.* |
Типы пользовательского интерфейса в пространствах имен Windows.UI.Xaml.* (например, класс Border расположен в пространстве имен Windows.UI.Xaml.Controls) |
Дополнительные сведения о портировании кода пользовательского интерфейса см. в разделе Миграция приложения Windows Phone 7 в XAML.
Изменения ввода-вывода
Типы ввода-вывода включают новые члены, поддерживающие новое ключевое слово await в асинхронной модели программирования.
Изменения хранилища
Вместо класса System.IO.IsolatedStorage используйте для хранения локальных данных и файлов типы в пространствах имен Windows.Storage.
Заменить |
На |
---|---|
Класс System.IO.IsolatedStorage.IsolatedStorageFile |
Свойство LocalFolder в классе Windows.Storage.ApplicationData
|
Класс System.IO.IsolatedStorage.IsolatedStorageSettings |
Свойство LocalSettings в классе Windows.Storage.ApplicationData
|
Дополнительные сведения см.в разделе Доступ к данным приложения с помощью среды выполнения Windows (приложения среды выполнения Windows).
Изменения сети
Заменить |
На |
---|---|
Класс System.Net.WebClient |
Класс HttpClient для отправки HTTP-запросов и получения HTTP-ответов -или- Типы в пространстве имен Windows.Networking.BackgroundTransfer для отправки или скачивания больших объемов данных |
Типы в пространстве имен System.Net.Sockets |
Типы в пространстве имен Windows.Networking.Sockets |
Относительные URI при передаче в типы Среда выполнения Windows |
Абсолютные URI Дополнительные сведения см. в разделе Передача URI в среду выполнения Windows. |
Код обработки исключения, который перехватывает исключение UriFormatException |
Код, который перехватывает исключение FormatException, являющееся родительским классом для UriFormatException |
Изменения в потоках
Некоторые члены потоков .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 |
|
Класс System.Threading.ThreadPool |
|
Код, помещающий задания в очередь в пуле |
|
Код, помещающий задания в очередь в пуле и ожидающий их завершения |
|
Код, создающий рабочий элемент, который выполняется длительное время |
|
Изменения отражения
Большинство членов класса 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.
Изменения системы безопасности
Многие типы безопасности, аутентификации и операций шифрования доступны через типы Среда выполнения Windows. Полный список пространств имен безопасности, которые доступны для приложений Магазин Windows, см. в списке пространств имен безопасности далее в этом разделе.
Изменения ресурсов
Для приложений Магазин Windows создается один файл ресурсов, вместо модели "звезда", которая использовалась в настольных приложениях. Кроме того, используйте типы ресурсов в пространствах имен Windows.ApplicationModel.Resources и Windows.ApplicationModel.Resources.Core вместо пространства имен System.Resources.
Дополнительные сведения см. в разделе Создание и извлечение ресурсов в приложениях для Магазина Windows.
Изменения исключений
В некоторых случаях управляемый тип создает исключение, которое не входит в Приложения .NET для Магазина Windows. В этих случаях можно перехватить родительский класс исключения, который не включен. Например, в настольном приложении для обработки недопустимого URI перехватывается исключение UriFormatException; однако в приложении Магазин Windows следует перехватывать исключение FormatException, поскольку UriFormatException не включено в Приложения .NET для Магазина Windows. FormatException является родительским классом для UriFormatException.
Изменения WCF
В приложениях Магазин Windows можно с помощью функциональности клиента Windows Communication Foundation (WCF) извлекать данные из службы WCF, но нельзя создать службу WCF для предоставления данных.
Изменения в обычных типах .NET Framework
Заменить |
На |
---|---|
Метод System.Xml.XmlConvert.ToDateTime |
Метод XmlConvert.ToDateTimeOffset |
Интерфейс System.ICloneable |
Пользовательский метод, который возвращает соответствующий тип |
Методы System.Array.AsReadOnly и System.Collections.Generic.List<T>.AsReadOnly |
Новый экземпляр класса ReadOnlyCollection, создаваемый следующим образом:
|
Методы расширения для преобразования типов
В большинстве случаев приложения Магазин Windows разрабатываются с использованием и типов .NET Framework, и типов Среда выполнения Windows без каких-либо специальных ограничений и преобразований. Однако в некоторых случаях в .NET Framework имеются методы расширения, упрощающие взаимодействие между типами .NET Framework и типами Среда выполнения Windows. Эти методы расширения принадлежат к следующим классам.
WindowsRuntimeStreamExtensions — для преобразования между управляемыми потоками и потоками в Среда выполнения Windows.
WindowsRuntimeStorageExtensions — для открытия файлов и папок Среда выполнения Windows как управляемых потоков.
WindowsRuntimeBufferExtensions — для преобразования в и из IBuffer.
Пространства имен .NET Framework и Среда выполнения Windows
В следующих разделах перечислены пространства имен, предоставляемые в Приложения .NET для Магазина Windows и Среда выполнения Windows, упорядоченные по функциональным возможностям.
Коллекции
Ядро
Данные и содержимое
Устройства
Диагностика
Файлы и папки
Глобализация
Графика
Managed Extensibility Framework (MEF)
Чтобы установить следующие пространства имен, откройте проект в Visual Studio 2012 или более поздней версии, выберите в меню Проект пункт Управление пакетами NuGet и найдите в Интернете пакет Microsoft.Composition.
Мультимедиа
Сеть
Представление
Печать
Отражение
Ресурсы
Безопасность
Социальные функции
Работа с потоками
Автоматизация пользовательского интерфейса
Взаимодействие с пользователем
Языки и компиляторы
См. также
Основные понятия
Создание компонентов среды выполнения Windows в C# и Visual Basic
Другие ресурсы
.NET for Windows Store apps – supported APIs
Поддержка приложений для Магазина Windows и среды выполнения Windows в .NET Framework