تیم PowerShell بهتازگی نسخهی PowerShell Core 6.2 را به صورت عمومی عرضه کرد. از زمان انتشار، مایکروسافت شروع به کار بر روی نسخهی بعدیِ آن کار کرده است. نسخهی بعد PowerShell 7 نامگذاری شده است.
نسخه PowerShell 7 بهجای 6.3
در دو سال گذشته استفاده از PowerSell Core بهمیزان چشمگیری افزایش یافته است، خصوصا، بخش عمدهای از این افزایش مربوط به کاربرد لینوکس بوده است، که با توجه به سرمایهگذاری مایکروسافت برای عملی کردن گستردگی PowerShell در سایر پلتفرمهای غیر ویندوزی ، این آماربرای تیم PowerSell دلگرمکننده است. جدول زیر تعداد دفعاتی را نشان میدهد که Pwsh.exe یاPwsh on Linux/macOS اجرا شده است.
همانطور که تصویر فوق مشخص است، استفاده از ویندوز به همان میزانِ قابلتوجه افزایش پیدا نکرده است، این مسئله باتوجه به رایج شدن پاورشل در پلتفرم ویندوز تعجبآور است. احتمالا این وضعیت به این دلیل است که کاربران Windows PowerShell، اتوماسیونی دارند که بخاطر ماژولها و APIهایی که پشتیبانی نمیشوند و این مورد باعث ناسازگاری PowerSell Core میشود. این کاربران نمیتوانند از ویژگیهای جدید PowerShell Core، با کارایی افزایشیافته که باگهایش هم برطرفشده استفاده کنند. برای پرداختن به این مسئله تیم PowerSell در تلاش است تا در نسخهی بعد Windows PowerShell 5.1 را بهطور کامل جایگزین کند.
به این معنا که کاربران Windows PowerShell و PowerShell Core میتوانند برای خودکارسازی در سرتاسر ویندوز، لینوکس و macOS ، از یک ورژن مشترک از PowerSell استفاده کنند و کاربران PowerShell 7 سازگاری بسیار زیادی با واحدهای Windows PowerShellای خواهند داشت که امروزه به آنها متکی هستند.
همچنین در ارجاعات به PowerShell در مستندات و صفحات مربوط به این محصول کلمهی Core را بهمنظور تسهیل ارجاعات از PowerShell 7 حذف شده است. در نسخهی PSEdition کلمهی Core همچنان حفظ و تکرار میشود اما این تنها تمایزی فنی در APIها و مستندات است.
باید به این نکته توجه داشت که در ورژن اصلی به این مورد اشاره نمیشود که تیم پاورشل درحال ایجاد تغییرات قابل توجه تقسیم بندی شده خواهد بود. درحالیکه تغییراتی از این دست را در ورژن 6.0 اعمال شده است، بسیاری از آنها توافقاتی بودند که تطبیقپذیری و سازگاری با پلتفرمهای غیر ویندوزی را تضمین میکردند. علاوه بر این، Windows PowerSell طبق روال گذشته ورژن اصلیاش را براساس نسخههای جدید ویندوز آپدیت کرده است و نه براساس Semantic Versioning.
Net Core 3.0 چیست؟
PoweShell Core 6.1 با بسیاری از ماژولهای درونیِ PowerShell ویندوز تناسب دارد و طبق تخمینها PowerShell 7 میتواند با بیش از 90% ماژولهای Windows PowerShell اینباکس سازگاری پیدا کند. PoweShell 7 با استفادهی صددرصدی از تغییرات NET Core 3.0 این سازگاری را ایجاد میکند که بسیاری از APIهایی را که برای ماژولهای ساخته شده روی چارچوب NET لازم هستند بازگردانده شود تا به این ترتیب با .NET Core runtime کار کنند. برای مثال، انتظار داریم دستور Out-GridView بازگردد .
یک تلاش مهم برای PowerShell 7 انتقال پایگاهِ PowerShell Core 6 به .NET Core 3.0 است و همچنین کار کردن با شریکهای ویندوز برای تصدیق کردن ماژولهای آنها در قیاس با PowerSell 7 میباشد.
حمایت از تغییرات Lifecycle
در حال حاضر، PowerShell Core تابع سیاستهای مدرن Lifecycle مایکروسافت است. به این معنا که PowerShell Core 6 یک اصلاح رو به جلو است. برای رفع مشکلات امنیتی و باگهای خطرناک، ورژنهای خدماتی تولید میشود و باید آخرین نسخهی قابل اعتماد را شش ماه بعد از انتشار یک نسخهی فرعی، نصب کرد. در PowerShell 7 با NET Core support lifecycle بیشتر همسو خواهد شد، به این صورت که برای PoweShell 7 این قابلیت در نظر گرفته شده است که هم نسخه پشتیبانی خدمات درازمدت داشته باشد و هم پشتیبانی خدمات کوتاه مدت. هر ماه یک نسخه Preview عرضه میشود تا سریعا بازخورد دریافت شود.
زمان عرضه PowerSell 7
اولین عرضهی خصوصی PowerShell 7 احتمالا در ماه مه خواهد بود. با این حال باید در نظر داشت که این مورد به یکپارچهسازی و معتبرسازیِ PowerShell با .NET Core 3.0 بستگی دارد. از آنجایی که PowerShell 7 با تایملاین NET Core. همسو است، انتظار میرود نسخهی عمومی کمی بعد از زمان انتشار نسخهی خصوصی .NET Core 3.0، به بازار عرضه شود.
عرضهPowerSell نسخه ویندوز
مایکروسافت در نهایت تصمیم گرفت PowerShell 7 را بههمراه نسخهی ویندوز به بازار عرضه کند، بهعنوان یک ویژگی همراه با Windows PowerShell 5.1، اما تیم پاورشل هنوز باید روی بعضی از جزئیات دربارهی چگونگیِ مدیریت کردن این نسخه اینباکس از PowerShell 7 کار کند. و از آنجا که تایملاین .NET Core با ویندوز همسو نیست، فعلا نمیتوان گفت چه زمانی بهصورت ورژن آتیِ ویندوز 10 یا ویندوز سرور منتشر خواهد شد.