Путь развития PowerShell Core


В настоящее время есть два PowerShell — Windows PowerShell и PowerShell Core. Сразу возникает вопросы: как они соотносятся? что будет в будущем с каждой версией?

PowerShell Core это «fork» или ответвление Windows PowerShell сделанное в определенный момент с целью портирования на Unix системы.

Windows PowerShell базируется на .Net Framework — внутренней реализации стандарта .Net Standard компанией Microsoft.

PowerShell Core базируется на .Net Core — реализации стандарта .Net Standard в виде нового открытого проекта, который изначально поддерживает портирование на множество платформ (Windows, OSX, целый ряд дистрибутивов Linux).

Сегодня .Net Framework и .Net Core базируются на .Net Standard 2.0 и подвергаются сильной конвергенции. Тем не менее далеко не все API можно портировать на Unix системы. Поэтому две реализации .Net еще долго будут сосуществовать вместе, все более сближаясь.

Базовой версией входящей в Windows дистрибутивы в обозримом будущем останется Windows PowerShell. Версию PowerShell Core при необходимости нужно будет ставить из NuGet пакетов.

На Unix системах альтернативы нет и там основной версией будет PowerShell Core.

Так обе версии имеют общую кодовую базу, то возможны общие баги, которые будут исправляться в обоих версиях.

Развитие. Все инновации будет сначала появляться в PowerShell Core, а затем портироваться в Windows PowerShell.

Когда же PowerShell Core заменит Windows PowerShell? Не скоро. Сначала большая часть модулей должна заработать на PowerShell Core точно также, как и на PowerShell Core. Разработка PowerShell Core ведется так, чтобы обеспечить обратную совместимость. Полностью этого добиться невозможно в силу фундаментального различия платформ и всё ещё неполной реализации набора API в .Net Core. Легче всего портировать скриптовые модули. Большая их часть работает на PowerShell Core уже сейчас. С бинарными модулями сложнее. Мой тест показал, что около только 50% стандартных Windows модулей загружаются в PowerShell Core. В ближайшее время ситуация станет лучше: будет добавлена поддержка CDXML-модулей и улучшена поддержка бинарных модулей. Модули PSSnapIn придется переписать — поддержка этого формата удалена навсегда.

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: