Обзор приложений .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;
типы и члены, которые обеспечивают оболочку для функций операционной системы (например, System.Diagnostics.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 для Магазина Windows — поддерживаемые API.
Также можно создать проект Переносимая библиотека классов для разработки библиотеки .NET Framework, которая может использоваться из приложения Магазина Windows. В качестве одной из целевых платформ проект должен включать .NET для приложений Магазина Windows. Переносимая библиотека классов особенно полезна, когда требуется создавать классы, которые можно использовать из приложений для различных типов платформ, таких как приложения Windows Phone, настольные приложения и приложения Магазина Windows. См. раздел Переносимый общие сведения о библиотеке классов.
В этом разделе содержатся следующие подразделы.
Преобразование существующего кода .NET Framework
Методы расширения для преобразования типов
Пространства имен .NET Framework и среды выполнения 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
|
Дополнительные сведения см. в разделе Данные приложений.
Изменения сети
Заменить |
На |
---|---|
Класс System.Net.WebClient |
Класс System.Net.Http.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 |
Дополнительные сведения см. в разделе Отражение в .NET Framework для приложений для Магазина Windows в библиотеке 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 |
|
Интерфейс System.ICloneable |
Пользовательский метод, который возвращает соответствующий тип |
Методы System.Array.AsReadOnly и System.Collections.Generic.List<T>.AsReadOnly |
Новый экземпляр класса System.Collections.ObjectModel.ReadOnlyCollection<T>, создаваемый следующим образом:
|
Методы расширения для преобразования типов
В большинстве случаев приложения Магазина Windows разрабатываются с использованием и типов .NET Framework, и типов Среда выполнения Windows без каких-либо специальных ограничений и преобразований. Однако в некоторых случаях в .NET Framework имеются методы расширения, упрощающие взаимодействие между типами .NET Framework и типами Среда выполнения Windows. Эти методы расширения принадлежат к следующим классам.
System.IO.WindowsRuntimeStreamExtensions — для преобразования между управляемыми потоками и потоками в Среда выполнения Windows.
System.IO.WindowsRuntimeStorageExtensions — для открытия файлов и папок Среда выполнения Windows как управляемых потоков.
System.Runtime.InteropServices.WindowsRuntime.WindowsRuntimeBufferExtensions — для преобразования в и из IBuffer.
Пространства имен .NET Framework и Среда выполнения Windows
В следующих разделах перечислены пространства имен, предоставляемые в Приложения .NET для Магазина Windows и Среда выполнения Windows, упорядоченные по функциональным возможностям.
Коллекции
Ядро
Данные и содержимое
Устройства
Диагностика
Файлы и папки
Глобализация
Графика
Managed Extensibility Framework (MEF)
Чтобы установить следующие пространства имен, откройте проект в Visual Studio 2012, выберите в меню Проект пункт Управление пакетами NuGet и найдите в Интернете пакет Microsoft.Composition.
Мультимедиа
Сеть
Представление
Печать
Отражение
Ресурсы
Безопасность
Социальные функции
Работа с потоками
Автоматизация пользовательского интерфейса
Взаимодействие с пользователем
Языки и компиляторы
См. также
Основные понятия
Приложения .NET для Магазина Windows — поддерживаемые API
Создание компонентов среды выполнения Windows в C# и Visual Basic
Другие ресурсы
Поддержка приложений для Магазина Windows и среды выполнения Windows в .NET Framework