نحوه استفاده از دات نت 6 در Azure مایکروسافت

در نسخه جدید Azure مایکروسافت از دات نت 6 نیز استفاده شده است، در این مطلب درباره استفاده از دات نت 6 در Azure مایکروسافت صحبت خواهیم کرد.

نسخه نوامبر 2021 دات نت 6 اولین نسخه پشتیبانی طولانی مدت یا LTS از پلتفرم یکپارچه سازی شده مبتنی بر Net core. را نیز معرفی کرد. این نسخه تا سال 2024 پشتیبانی خواهد شد. دات نت 6 برای کدهای تولیدی خود نیازمند پایه ای پایدارتر خواهد بود. در حال حاضر شما می توانید در این نسخه کدهای خود را بسازید و مطمئن باشید که تا پس از راه اندازی دات نت 8 کدهای شما نیازمند تغییرات عمده و مهمی نخواهند بود.

در نتیجه تعجب آور نیست که مشاهده کنید ابزارهای اصلی PaaS متعلق به Azure نیز به سرعت با این نسخه از دات نت سازگار شده و پشتیبانی از آن به اپلیکیشن های Azure Static Web ،Azure App Service و Azure Functions اضافه شده باشد. در ادامه قصد داریم درباره پشتیبانی سرویس Azure از نسخه جدید دات نت صحبت کنیم و اطلاعات جامع و کاملی را در این خصوص در اختیار شما قرار دهیم.

دقت داشته باشید که انتقال به دات نت 6 برای Azure کاملا یک مسئله منطقی است چرا که نسخه قبلی LTS و NET core 3.1. تا پایان سال 2022 از پشتیبانی خود خارج می شود. با توجه به همپوشانی یک ساله ای که در این بین وجود دارد انتظار می رفت که Azure خود را با نسخه 6 دات نت سازگار کند.

ساخت توابع serverless با استفاده از دات نت 6

شاید واضح ترین و مهمترین اتفاقی که در Azure Functions 4.0 قابل مشاهده است و مرتبط با انتشار نسخه 6 دات نت می باشد همین ویژگی باشد. پلتفرم serverless مایکروسافت به صورت مرتب به روزرسانی می شود تا نسخه های جدید تمام ران تایم های خود را اضافه کند. برای Functions 4.0 این مسئله شامل Node.js 14 برای کدهایی که به زبان جاوا اسکریپت نوشته می شوند، پایتون 3.7 و 3.9، جاوا 8 و جاوا 11 و PowerShell 7.0 که مبتنی بر NET core 3.1. است ( که در نهایت باید به PowerShell 7.2 مبتنی بر نسخه 6 دات نت ارتقا پیدا کند) می باشد. با استفاده از Azure Functions 4.0 و ران تایمی که پیشنهاد می کند شما باید آن را به عنوان کدهای جدید و هدف خود در زمان به روزرسانی اپلیکیشن ها قرار دهید.

نیازی به جا به جایی فوری کدها نیست

یک نکته بسیار کلیدی و مهم که باید به آن دقت داشته باشید این است که نیازی نیست کدهای خود را بلافاصله جا به جا کنید. برنامه هایی که در نسخه Azure Functions 3.x اجرا می شوند همچنان کار می کنند، اگرچه بهتر است به اطلاعیه های سرویس Azure دقت کنید تا اگر تغییراتی به وجود آمده و برخی از ویژگی ها در حال کنار گذاشته شدن بودند سریع متوجه شوید و بتوانید راهکارهای مناسبی را پیش بگیرید. نکته مهم دیگری که باید به آن دقت داشته باشید این است که نسخه های Azure Functions 1.x و 2.x در حالت نگهداری قرار دارند. این به آن معناست که شما می توانید از آنها تنها برای کدهای موجود استفاده کنید که نیازمند ویژگی های خاصی هستند و نمی توانید آنها را در نسخه های جدید اجرا کنید.

کار با Azure Functions 4.0 و دات نت 6

شروع کار با Azure Functions 4.0 نباید چندان سخت باشد. کدهایی که برای Azure Functions 3.x نوشته شده اند بر پایه.Net core 3.1. و Net 5.0. خواهند بود و به علت سازگاری بسیار زیادی که بین این دو نسخه وجود دارد مهاجرت بین آنها کار چندان سخت و پیچیده ای نیست. البته دقت داشته باشید که کدهای قدیمی شما ممکن است نیازمند کمی کار و زمان باشند، به خصوص اگر در حال انتقال از فریم ورک دات نت 4 به نسخه متن باز جدید آن باشید. برای ارتقا دادن آن شما نیاز دارید که ابتدا محیط توسعه محلی و محیط تست را به روزرسانی کرده و سپس اپلیکیشن خود را روی Azure به روزرسانی کنید.

به روزرسانی Azure Functions دات نت قدیمی

برای انجام این کار و ارتقا آن شما نیازمند این هستید که کدهای TargetFramework و AzureFunctionsVersion خود را برای پشتیبانی از دات نت 6 و Azure Functions 4.0 به روزرسانی کنید. در همان زمان باید کتابخانه ها و پکیج های خود را نیز از طریق NuGet به روزرسانی کنید تا اطمینان حاصل کنید که نسخه های سازگار را اجرا می کنید. در داخل Azure شما باید از CLI استفاده کنید تا نسخه هدف Azure Functions خود را برای اپلیکیشنی که در حال طراحی آن هستیم تنظیم کنید.

دقت داشته باشید که نیازی نیست این کار را به صورت یک انفجار بزرگ انجام دهید و کل کدهای خود را به صورت همزمان به روزرسانی کنید. شما می توانید اپلیکیشن های مختلف را در زمان های مختلف به روزرسانی کنید یا این که اگر از Azure Functions برای میزبانی API ها( در همان لحظه ای که به روزرسانی های دات نت و Azure Functions منتشر می شود به شما اجازه می دهد تا ویژگی های جدید را اضافه کنید) استفاده می کنید بتوانید یک نسخه اصلی جدید از اپلیکیشن های خود را ایجاد کنید. اگرچه حفظ نسخه های مختلف یک API می تواند به میزان زیادی به حجم کاری شما اضافه کند، البته نباید فراموش کنید که می تواند به شما کمک کند تا endpoint های خود را به شکل بهتری حذف کنید و به کاربران خود کمک کنید تا به نسخه های جدید مهاجرت کنند.

عوامل موثر در مهاجرت به Azure Functions 4

برخی از تغییرات ممکن است به میزان بسیار زیادی روی مهاجرت از Azure Functions 3 به Azure Functions 4 تاثیرگذار باشند که بیشتر این تغییرات تحت ران تایم دات نت 6 رخ می دهند. برخی از این مشکلات شامل مواردی مانند موارد زیر هستند:

– حذف پشتیبانی از پروکسی های Azure Functions

– نیاز به استفاده از سرویس های جایگزین Azure services

– گزینه های دیگر نیازمند تغییرات کد یا تغییرات کتابخانه هستند.

به عنوان مثال Azure Functions در حال حاضر حداقل نسخه ها را برای افزونه ها اعمال می کند. به همین علت نیز شما باید اطمینان حاصل کنید که کدهای شما پیش از انتشار در Azure به روزرسانی شده اند.

استفاده از حساب های ذخیره سازی جداگانه در دات نت 6 و Azure Functions 4

یکی از تغییراتی که ممکن است باعث بروز مشکل در مهاجرت به Azure Functions 4 شود الزام استفاده از حساب های ذخیره سازی جداگانه برای برنامه هایی که نام میزبان و هاست یکسانی دارند می باشد( معمولا به علت طولانی بودن آنها یا گسترش خودکار آنها شاهد آن هستیم که 30 درصد از اپلیکیشن ها در Azure Functions 3 اجرا می شوند) که همین عامل نیز می تواند شروع کدهای شما را متوقف کند. البته این مسئله در عمل نباید مشکل چندانی را برای شما به وجود بیاورد اما امروزه برای برخی از برنامه ها مشکل ساز شده است و آنها را دچار خطا کرده و حتی بعضا باعث از کار افتادن آنها نیز شده است. این ویژگی در نسخه قبلی تنها یک هشدار تولید می کرد و باعث از کار افتادن برنامه ها نمیشد.

دات نت 6 در سرویس Azure App

Azure Functions تنها PaaS متعلق به Azure نیست که پیشنهاد پشتیبانی از دات نت 6 را به شما ارائه می دهد. سرویس Azure App نیز در حال حاضر از دات نت 6 برای ابزارهای مبتنی بر .NET خود استفاده می کند. شما می توانید به راحتی از سرویس Azure App استفاده کنید تا بک اند اپلیکیشن های خود را با استفاده از ASP.NET Core 6.0 طراحی کنید که این کار با استفاده از ابزارهای مشابه ویژوال استودیو صورت می گیرد. مجددا باید دقت داشته باشید که مزیت بسیار مهم استفاده از این روش این است که پشتیبانی طولانی مدتی از محیط های توسعه و استقرار کد به شما ارائه می شود و علاوه بر این باید دقت داشته باشید که پشتیبانی از cross-platform برای ران تایم دات نت نیز به شما ارائه می شود. به همین علت نیز شما به راحتی می توانید ویندوز یا لینوکس را برای میزبانی کدهای خود انتخاب کنید.

یک نکته مهم در خصوص سرویس Azure App

یکی از مهم ترین نکاتی که باید در این خصوص بدانید این است که هم برای استقرار استاندارد با ران تایم های اشتراکی یا مستقل و هم برای استقرار مبتنی بر container و به صورت پرتابل مورد استفاده قرار داد. انتخاب یک نوع استقرار مستقل در لینوکس یا ویندوز یک انتخاب کاملا منطقی است چرا که هم نسبت به سایر اپلیکیشن های خود و نسبت به ران تایم و کتابخانه هایی که دارید کاملا ایزوله خواهید بود. با این حال شما باید اطمینان حاصل کنید که به روزرسانی های مورد نیاز اپلیکیشن خود را به درستی مدیریت می کنید چرا که از این به بعد Azure دیگر آنها را مدیریت نخواهد کرد.

انتقال کدها در دات نت 6 و سرویس Azure App

از آنجایی که Azure App صرفا یک میزبان و هاست ASP.NET است شما باید خودتان کدها را منتقل کنید اگرچه این مسئله نیز چندان مشکل بزرگی نیست. مایکروسافت مجموعه بسیار خوبی از دستورالعمل های مربوط به مهاجرت کدها را برای ASP.NET Core 3.1 و ASP.NET 5 ارائه داده است که در صورت نیاز می توانید از آنها استفاده کنید. برخی از تغییرات مشکل ساز نیز در نسخه جدید وجود دارند ولی به خوبی مستندسازی شده و آموزش داده شده اند و به همین علت نیز چندان مشکل ساز نخواهند بود.

استفاده از دات نت 6 برای WebAssembly در Azure Static Web Apps

یکی دیگر از سرویس های Azure که در بدو راه اندازی دات نت 6 منتشر شد Azure Static Web Apps می باشد. در این جا همه چیز متفاوت است. در واقع به جای اجرای دات نت 6 در سرورهای Azure شما می توانید آن را در مرورگرهای خود اجرا کنید که این کار از طریق پشتیبانی WebAssembly در دات نت 6 با استفاده از Blazor صورت می گیرد. شاید بهتر باشد که از آن به عنوان مکملی برای Azure Functions Azure App Service استفاده کنید که یک فرانت اند را برای API هایی که در Azure میزبانی می شوند فراهم می کند.

نکاتی درباره Azure Static Web Apps

دقیقا مشابه Azure Static Web Apps که شما به صورت محلی همه چیز را می سازید باید از گیت هاب برای CI/CD(continuous integration and continuous delivery)  و Azure برای میزبانی و هاست استفاده کنید. با این حال باید دقت داشته باشید که به جای صفحات Jamstack محتوای وب شما اپلیکیشن های دات نت 6 را میزبانی خواهد کرد که با این حال پشتیبانی کامل از تکنولوژی هایی مانند WebUI components که متعلق به Uno است را برای شما فراهم می کند. ابزارهای Blazor ویژوال استودیو فرایند دریافت اپلیکیشن های دات نت و انتقال آنها به وب را برای شما ساده تر می کنند و شما می توانید از قابلیت کامپایل زودهنگام برای انتقال مستقیم کدها به مرورگر استفاده کنید و دیگر نیازی به صرف زمان برای اجرای کامل کدها وجود نخواهد داشت. شما حتی می توانید از یک طرح رایگان برای ساخت و تست کردن اپلیکیشن های Blazor قبل از انتقال آنها استفاده کنید.

صحبت پایانی

عرضه سریع دات نت 6 در Azure برای توسعه دهندگانی که می خواهند از آخرین ویژگی ها استفاده کنند بسیار مفید است. با کمک پشتیبانی طولانی مدت ما مشاهده می کنیم که توسعه دهندگان شخص ثالث و ابزارهای متن باز کتابخانه ها و کامپوننت های جدیدی را می سازند و اطمینان حاصل می کنند که شما به عنوان یک توسعه دهنده ابزارهایی که برای ارائه اپلیکیشن های خود به کاربران به آنها نیاز دارید را دریافت خواهید کرد. از آنجایی که مایکروسافت و تیم دات نت نسخه های به روزرسانی موقت را منتشر می کنند باید ببینیم آیا Azure به سرعت اقدام به استفاده از این مکانیزم های ارائه شده خواهد کرد یا خیر؟ با این حال معرفی های اولیه برای کاربران صورت گرفته است و استفاده از دات نت 6 در Azure بدون شک مفید و کاربردی خواهد بود.

خروج از نسخه موبایل