На последней конференции Build был анонс одного из мостов Windows под названием Project Cenntenial. Так как он до сих пор не был упомянут в русскоговорящем сегменте интернета, то я сейчас постараюсь восполнить этот пробел.
Project C – это технология, которая позволит вам упаковать ваши классические приложения .Net и Win32 в AppX контейнер, который можно загрузить в Windows Store. Вы получите возможность опубликовать приложение в Store, а ваши пользователи получат приложения которые устанавливаются и удаляются не оставляя после себя всякий разный мусор.
Кроме того, разработчики получат возможность вызывать API и сервисы UWP из своих .Net приложений.
Давайте, для начала, рассмотрим то, чем отличаются UWA (Universal Windows Applications) приложения от классических приложений CWA (Classic Windows Applications). Одним из глобальных различий является то, что у них есть App Model. Что это значит? Это значит то, что приложения UWP строго регламентированы. Вся информация о возможностях приложения описывается в манифесте приложения. Манифест приложения – это xml файл, который можно редактировать как вручную, так и с помощью графического редактора.
Что же такое App Model? Это информация о том как приложение будет установлено, какие ресурсы оно будет использовать, как будет происходить обновление, как оно будет коммуницировать с другими приложениями, как будет сохранять свое текущее состояние…
Всем известна ситуация, когда после нескольких лет работы, «винда» может начать тормозить. После того как было установлено и удалено большое количество приложений засоряется реестр, остаются лишние dll, лишние файлы. Много мусора. Это отчасти связано с тем, что у приложений нет четкой модели. Они могут записывать информацию в различные части реестра, хранить информацию непонятно где, любое приложение может быть запущено с правами администратора и т.п.
Таких проблем нет у приложений Windows 8.x и UWP. Они удаляются полностью, не засоряя реестр и каталоги и не оставляя после себя лишних компонентов. Отсутствие dll-hell-ов вам тоже обеспечено.
Приложения Windows Store это файлы AppX. Соответственно, приложения Project C будут также упакованы в контейнер AppX. О том как происходит процесс упаковки вам красочно расскажет следующая иллюстрация:
Кроме того что приложения будут протестированы они будут еще и проверены на отсутствие вредоносного кода (используется технология аналогичная kill-bit).
Далее я приведу вам информацию, которую получил из перевода доклада Джона Sheehan:
- Технология очень похожа на App-V. Если вы создадите приложение Project C, то оно будет работать и с App-V
- Приложения Project C будут работать только на PC
- Приложения Project C не выполняются в песочнице как приложения UWP. Они более ограничены, чем Win32 приложения и выполняются только в контексте пользователя — full user-level trust, но без прав администратора
- Не отображают UAC, имеют доступ к COM и WMI и даже доступ к некоторым устройствам, которые недоступны для приложений UWP
- Project C приложение не может получить доступ к библиотекам другого Project C приложения (хотя какую-то связь каким-то особым образом сделать постараются)
Напоминаю, что в приложениях Project C можно будет использовать API и сервисы UWP.
Какие возможности API, скорее всего, будут доступны для .Net разработчика? Я так полагаю, что это, например, такие возможности как: контракт Share, тайлы (secondary and live tiles), фоновые задания, голосовой помощник Cortana, toast и push notifications а также многие другие.
Делаем ставки, господа, что еще будет доступно для .Net разработчиков.
Попытаться принять участие в тестировании можно здесь:
Windows Developer Preview Programs
Вы можете заметить, что в списке программ конвертации приложений имеются также мосты для конвертации iOs (Project Islandwood) и Android (Project Astoria) приложений, а также Silverlight. В списке отсутствует, но уже стал довольно известен проект Westmister, который позволяет конвертировать веб-сайты в приложения UWP.
Проект Cenntenial находится в стадии разработки. Больше никакой информации на данный момент все еще нет. Разработчики Project C отдают себе отчет в том, что возможны уязвимости, вероятно, поэтому пока что никаких поспешных релизов все еще нет.
Название проекта переводится как «столетний» (оно происходит не от слова cent, а от слова century). Надеюсь, что релиз произойдет все-таки в ближайшее время, а не через сто лет.