Сегодня Microsoft поделился некоторыми важными подробностями о том, как работает Windows 10X, включая выпуск эмулятора, чтобы разработчики могли приступить к оптимизации приложений для работы с двумя экранами.
Тем не менее, Windows 10X запускает все приложения в контейнерах. Вот что это означает, почему это хорошо, и какие типы приложений вы сможете использовать на Windows 10X и таких устройствах, как Surface Neo.
Три контейнера, но один опыт
Думайте о контейнерах как о изолированных контейнерах, которые абстрагированы от операционной системы, что позволяет лучше контролировать поведение приложений.
В Windows 10X все приложения выполняются в контейнерах, но при этом нет никаких настроек или каких-либо изменений на высоком уровне, необходимых разработчикам для их использования; они просто являются частью архитектуры операционной системы.
В частности, существует три типа контейнеров, одним из которых является новый Win32.
Контейнер Win32: запускает «классические» x86 32- и 64-разрядные приложения Win32, WinForms, WPF, Electron и т. д. Он представляет собой среду, аналогичную обычной операционной системы. Существует только один контейнер для всех приложений Win32 и он «очень совместим» со всем существующим программным обеспечением.
Контейнер MSIX с полным доверием: высокая совместимость с существующими приложениями. Они работают изолированно от других приложений Win32, а также работают в качестве контейнера в контейнере Win32 в Windows 10X.
Все приложения UWP: минимальные требования системы, лучшая производительность и время автономной работы, а также лучший контроль безопасности и конфиденциальности всех систем.
Для потребителей это не принципиально. Большинство приложений Win32 и все приложения UWP должны работать как есть на Windows 10X. Вы нажимаете на приложение, оно открывается и запускается. Также не имеет значения, откуда вы его устанавливаете, будь то Microsoft Store, интернет или USB-накопитель.
Независимо от того, решат ли разработчики продолжить работу с «классическими» настольными приложениями Win32, Progressive Web Apps (PWA) или UWP, это решать только им. По понятным причинам UWP является наиболее оптимизированными для Windows 10X, но Microsoft сделала все возможное, чтобы обычные приложения тоже работали нормально.
Контейнеры оптимизируют время автономной работы и производительность
Приложения UWP по-прежнему остаются наиболее оптимизированной платформой приложений для Windows 10X. Это не должно быть откровением, так как они были изначально разработаны с учетом Windows Phone (Windows Mobile) и созданы для мобильности. Приложения UWP максимально повышают безопасность, сохраняют заряд батареи, улучшают производительность и учитывают события приостановки и возобновления на уровне ОС.
Приложения Win32 были созданы в основном для настольных компьютеров. Им не хватает мобильной оптимизации UWP. В результате, хотя они имеют тенденцию быть более мощными, чем UWP, но вместе с тем быть хуже по скорости и времени автономной работы. Но «классические» приложения Win32 все еще очень важны, даже в 2020 году, для современных мобильных вычислений.
Microsoft «исправляет» эту проблему с приложениями Win32 (и MSIX) через контейнер Win32. Вот как:
Контейнеры Win32 + MSIX сокращают ресурсы приложений, когда окна свернуты.
Приложения полностью приостанавливаются, когда нет открытых окон.
Приложения Win32 и MSIX, когда они свернуты (и закрыты), полностью не работают в фоновом режиме. В результате это экономит системные ресурсы и батарею. И наоборот, когда приложение Win32 активно используется, оно получает больше ресурсов для обеспечения производительности.
Однако есть два последствия этого изменения. С одной стороны, «классические» приложения Win32, скорее всего, не смогут запускать фоновые задачи — по крайней мере, не очень долго — до приостановки работы контейнера. Другое — приложения Win32 не могут автоматически запускаться с Windows 10X. Это в основном связано с тем, что в Windows 10X нет системного трея, поэтому «классические» приложения не могут непрерывно работать в фоновом режиме.
Интересно, что Microsoft может позволить пользователям контролировать это поведение, чтобы контейнер Win32 (и приложения Win32) могли работать в фоновом режиме. Но этот вопрос все еще остается открытым.
Наконец, благодаря особенностям контейнеров Win32 и MSIX, антивирусные системы также не нужны или будут иметь значительно уменьшенные системные требования, что, опять же, приведет к повышению производительности системы и увеличению времени автономной работы.
Все приложения должны поддерживаться
Интересно, что только то, что приложения Win32 контейнеризованы в Windows 10X, не делает их менее мощными. Microsoft заявляет, что эти приложения по-прежнему получают полный доступ к таким функциям, как:
Мышь, клавиатура, ручка, сенсорный дисплей.
DirectX графика, аудио, медиа.
Сеть.
Печать.
Это означает, что старая модель «подключи и работай» все еще действует, и компьютер на базе Windows 10X, такой как Surface Neo, должен иметь возможность поддерживать все, что вы подключите к нему, включая внешние мониторы и периферийные устройства.
Также повышена безопасность, поскольку пользователь может запретить доступ всем классическим приложениям Win32 к таким функциям, как камера, микрофон и даже местоположение. Приложения UWP уже делают это в отдельной системе разрешений на уровне приложений, но в Windows 10X пользователи могут отключить все приложения Win32 на уровне контейнера, если они того пожелают.
Поскольку в Windows 10X нет системного трея, эти «классические» приложения не могут его использовать. Но даже если эти приложения обращаются к функциям Windows 10X, которые отсутствуют, это не означает нестабильность приложения. Microsoft говорит, что эти приложения могут работать «как есть» (то есть без изменений в реестре), но из-за контейнера эти вызовы никогда не коснутся ОС. Перевод: не должно произойти сбоя приложения из-за ограничений, наложенных контейнером Win32.
Два файловых менеджера
Слева — опыт современного File Explorer; справа — «классический» инструмент выбора файлов Win32.
Отражение двойственной природы взаимодействия с Windows 10X, когда приложения UWP и Win32 рабоают бок о бок, заключается в использовании двух файловых менеджеров, в том числе, для функции «Сохранить как».
Этот факт звучит странно, но это не так. Приложения Win32 могут по-прежнему использовать «классический» File Explorer и диалог для выбора файлов в масштабе всей системы, включая доступ к системным папкам. Эта функция жизненно важна, так как приложения Win32 ожидают, что существует диалоговое окно для выбора и сохранения файлов, необходимых для программы.
Однако при использовании диалогового окна файлов в приложении UWP или Windows 10X («операционной системе хоста») открывается «современный» Проводник файлов, который ограничен необходимыми библиотеками, такими как Видео, Музыка, Избранное, Документы, Изображения и т. д.
Для пользователя это означает, что они получают базовый уровень доступа к основным библиотекам, но не файловую структуру на уровне ОС, как в настольной ОС (Windows 10). Но приложения Win32 по-прежнему работают так, как должны, без какого-либо изменения кода.
Все приложения для Windows 10X развернуты … пока
Кевин Галло, CVP платформы Microsoft Developer говорит, что в настоящее время приложения в Windows 10X работают в полноэкранном режиме (то есть развернуты). Это похоже на то, как приложения запускались в Windows 8 и в текущем режиме Windows 10 Tablet Mode.
Причиной такого выбора является размер экрана: чем меньше дисплей, тем более насыщенной является информация. Запуск пяти приложений с маленькими окнами на одном 9-дюймовом дисплее (с диагональю 13,1 на обоих дисплеях) вряд ли будет популярным сценарием.
Ситуация с постоянно развернутыми окнами очень спорна, и Microsoft не является негибким в этом вопросе. Если разработчики предпочитают использовать в Windows 10X возможность меньших оконных приложений, компания может разрешить это.
Windows 10X сложен, но в тоже время прост
Microsoft спроектировал Windows 10X так, чтобы он был нейтральным для приложений. Electron, UWP, Win32, WinForms, WPF — все это не важно. Все эти приложения работают на Windows 10X, в основном без каких-либо существенных изменений в коде.
Я думаю, что самый простой способ думать об этом — это учитывать разный дизайн и назначение операционных систем:
Windows 10 Home / Pro: Создан для приложений Win32, но также может работать с UWP
Windows 10X: Разработан для запуска UWP приложений, но также может запускать Win32.
Microsoft, вероятно, не классифицирует это так, но Windows 10X построен так, чтобы быть быстрой, гибкой, мобильной и безопасной операционной системой. Действительно, обновление ОС должно занимать не более 90 секунд.
Хорошая новость для потребителей или тех, кто покупает компьютеры с двумя экранами, например Surface Neo, заключается в том, что все это не имеет значения. Вы можете установить любое приложение по вашему желанию, и ожидаемое поведение приложения будет соблюдено. У разработчиков также не должно быть каких-либо существенных изменений в их приложениях — даже более старых — для Win32 — чтобы они могли работать на Windows 10X.
Кроме того, Галло напоминает нам, что эти приложения, оптимизированные для работы с двумя экранами, также должны обеспечивать лучшее взаимодействие с настольными системами Windows 10. Эта функция является ярким примером того, как Windows 10X возвращается к Windows 10.
Конечно, как это все работает, еще неизвестно, но Microsoft говорит, что разница в производительности между приложениями Win32 и UWP в Windows 10X не должна быть заметна для пользователей. Это захватывающая перспектива, поскольку мы вступаем в новую эру мобильных компьютеров, когда пользователям не придется идти на компромиссы.