Помощь - Поиск - Пользователи - Календарь
Полная версия: Что значит выпуск Юбилейного обновления Windows 10 для разработчиков
Форум «Всё о Паскале» > Системы, Сети, Технологии > ОС и ПО
OCTAGRAM
История подсистемы универсальных приложений начинается с выпуска Windows 8, а он случился 1 августа 2012 года. Это те самые приложения, которые были заточены под запуск на планшетах и довольно забавно смотрелись на моноблоках во всю стену. Microsoft довольно много посвятил материалов перспективам Metro приложений, как они тогда назывались. Появился Магазин приложений Windows. Да, были, конечно, и раньше менеджеры, у Intel что–то было предустановленное для ультрабуков, и есть более линуксовый Chocolatey. Но рынок у них был невелик, а тут–то нечто встроенное в Windows появляется, с возможностью получать деньги от покупок приложения и внутри приложений. Ну а нас случай, если пряником плохо доходит, то был и кнут. Некоторые возможности операционной системы были доступны только в Metro. Это, например, живые плитки и оповещения. Также эти приложения, будучи запущенными, занимали особое место на рабочем столе. Пространство рабочего стола можно было поделить между двумя такими приложениями, при этом все так называемые классические приложения работали на обычном Рабочем столе, который был сам как приложение Metro, а всё, что в нём запущено — получалось вложенным в него, то есть, даже визуально в как бы подчинённом положении.

И разработчики ждали от поставщиков, ну когда же, когда будет поддержка Metro в их инструментах разработки. Android осилили, Mac OS X осилили, iOS осилили, а тут почти та же Windows. Ан нет, не тут–то было. Ведь не только Embarcadero и AdaCore делают компиляторы для Windows, у Microsoft–то, оказывается, тоже есть какие–то свои наработки, и они настолько захотели осчастливить ими весь мир, что сделали их единственно приемлемым инструментарием для разработки Metro приложений. Когда вы читаете рекламные агитки, там этого не напишут, но если вы попытаетесь сделать свой компилятор, вы либо не сможете скомпилировать дееспособное приложение, либо ваше приложение не пройдёт проверки, необходимые для принятия в Магазин. Почему? А потому что у компиляторов Microsoft все запретные функции WinAPI вызываются из DLL, для которых сделано особое исключение, а для rtl**.bpl, libgnat-*.dll и т. п. такого исключения нет и не будет. Если вы понимаете английский, вы можете прочитать пару статеек на эту тему:
Why Delphi Cannot (currently) Support WinRT
Delphi and WinRT or Windows 8 "Dirty Little Secret"

На Аду это не так сильно повлияло. В тех областях, где её основная ниша, разработчики компилятора — более сильная сторона, чем просто разработчики и пользователи. Партия сказала нафиг PIC, будет только AVR, LEON и ARM — комсомол ответил: «Есть!» Партия сказала нафиг Metro, ну и так далее. Ну кто там будет через Магазин Windows покупать софт для координации самолётов или смотреть на живые плитки?

Embarcadero и их предшественники Borland и CodeGear за 2000ные в результате своей политики подрастеряли устойчивость, и такого влияния не имели. Пришлось корячиться. И вот весь мир увидел в Delphi XE3 вместо Metro так называемый Metropolis, который только по виду похож на приложения Metro, а по сути в терминологии Microsoft — классические приложения. Но справедливости ради плитки–таки сделали. И вот, каким образом: их показывает специальное удовлетворяющее драконовским требованиям Microsoft приложение, а получает оно их через специальную службу Windows, в которую, в свою очередь, отправляют свои плитки эти самые классические приложения. Если вы понимаете английский, вы можете прочитать об этом в статье Live Tile Support for Metropolis UI Applications

Однако, с некоторых времён появился свет в конце туннеля. И имя ему — Project Centennial. Впервые о нём было объявлено на видеопрезентации (на английском) Project Centennial": Converting your Classic Windows App (Win32, .Net, COM) to a Universal Windows App for Distribution in the Windows Store, и датировалось она 30м апрелем 2015 года. Кроме видео, ничего толком и не было. Максмимум — можно было подписаться на уведомления по почте. Вообще не было ясно, будет это реализовано или нет. Microsoft по старинке соблюдает корпоративный дух, который выражается в том, чтобы не видеть, не слышать и не говорить ни про что, кроме того, что сделано в твоей корпорации, поэтому они пишут не про Delphi, Ada, Oberon, а про Win32, .Net, COM. Надо это иметь в виду и в уме постоянно переводить с корпоративного языка на понятный.

Кстати, как можно видеть, уже тогда Metro переименовали в универсальные приложения. Metro и UWP (Universal Windows Platform) — это одно и то же. Радикализм в Windows 8 вышел боком, и постепенно происходил откат: в 8.1 Пуск вернули и Metro приложения на Панели задач разместили, в Windows 10 Пуск и приложения стали не на весь экран, и чтобы совсем порвать с тяжёлым прошлым, отказались от названия «Metro».

В начале 2016 года инструментарий Project Centennial стал доступен в открытом доступе как бы, ну а на самом деле, чтобы приложения запустить, в операционной системе должен был быть специальный виртуализатор, и существовал он только в Insider Preview версиях, и то только для Pro и Enterprise. А даже если они и имелись, то работать приложения могли только у таких же инсайдеров. Шло томительное ожидание, ну когда же эти возможности сделают доступными для всех. Вот, например, в презентации десятой Студии (Сиэттл) на 5й странице читаем:

Цитата
В будущем значительное расширение через Microsoft Project Centennial


И вот — оно случилось. 2 августа 2016го, через 4 года и 1 день вышло в свободный доступ Юбилейное обновление Windows 10 с поддержкой нормальных языков программирования в универсальных приложениях. Со времён Windows XP не было такого масштабного события. До Юбилейного выпуска Windows 10 универсальных приложений, можно считать, и не было, настолько были дурацкими требования к ним, как видно на примере реализации живых плиток в Delphi. А теперь раз — и универсальные приложения появились. Финал многолетней драмы.
OCTAGRAM
То самое значительное расширение в продуктах Embarcadero состоялось. Если понимаете английскую речь, можете послушать доклад: Windows 10: From WinRT to Centennial with Marco Cantu. Совсем свежий, 20 января 2017 года!

Описанные возможности реализованы в Berlin 10.1 Update, которое тоже названо Юбилейным. Не очень понятно, юбилей чего, но, возможно, и правда, сначала у Windows юбилей, и там появляется лазейка для нормальных языков программирования, и тут очень удачно, когда эта возможность отлажена, у другого продукта тоже случается какой-то юбилей. Так или иначе, теперь очень легко запомнить: Юбилейное обновление RAD Studio 10 даёт доступ из коробки к фичам Юбильейного обновления Windows 10.

И эту версию Delphi можно сейчас получить бесплатно.

Кстати, если всерьёз надумаете попасть в Магазин, вам понадобится сертификат подписи кода. Дешевле всего получить его, будучи разработчиком проектов с открытым кодом, естественно, подходит только для проектов с открытым кодом, но и это уже неплохое начало. Предоставляет такие сертификаты Certum. Им нужны сканы паспорта и другого документа, удостоверяющего личность, я успешно получил цифровой сертификат по загранпаспорту, например. Так вот, некогда они раздавали бесплатно, а сейчас 1000рублей (на год), а с 1 февраля 2017 года стоимость не меняется, но получить сертификат можно только для неизвлекаемого ключа, хранящегося на токене из списка поддерживаемых Certum, то есть, такое косвенное существенное удорожание. Но до этой даты ещё можно успеть сделать сертификат для произвольного ключа. Просто пошлите им CSR, и им не важно, где хранится ключ. Тип хеша — SHA-256 для Магазина Windows, SHA-1 — для Windows XP.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.