معرفی و راهنمایی جهت انتخاب پلتفرم های جدید مایکروسافت

اگر به تکنولوژی های شرکت مایکروسافت علاقه مند باشید و اخبار اون رو دنبال کرده باشید قطعا در جریان هستید که علاوه بر تکنولوژی های قدیمی (WPF, UWP, Xamarin) تکنولوژی های جدیدی (Project Reunion, Maui, WinUI, Uno, Xaml Island) بصورت همزمان در حال توسعه هستند. اکثر این تکنولوژی ها شبیه و نزدیک به هم هستند و برای کسی که تازه کار باشد ممکن است دچار سردرگمی شود. و چون بصورت همزمان در حال توسعه می باشند ممکن سوالاتی برای شما پیش بیاید.در این پست هر کدام از این تکنولوژی ها را معرفی کرده و در انتخاب صحیح به شما کمک خواهیم کرد.ساخت برنامه با WPFبه کمک تکنولوژی WPF ما میتوانیم نرم افزارهای دسکتاپ را توسعه دهیم. WPF هم چنان پشتیبانی میشود و در سال های اخیر بصورت متن باز منتشر شده است. اگر نیاز دارید که برنامه شما در ویندوز های 7 تا ویندوز 11 اجرا شود میتوانید از WPF استفاده کنید. لازم به ذکر است که برنامه های WPF به عنوان Win32 یا Desktop شناخته میشوند.سورس کدساخت برنامه با UWPUWP بعد از WPF و با انتشار ویندوز 10 معرفی شد. علت انتشار هماهنگی برنامه ها با سیستم عامل ویندوز 10 و امنیت بیشتر بود.به طور فنی برنامه ای که بصورت UWP ساخته میشود همان WPF است با این تفاوت که داخل SandBox اجرا میشود و با محیط خارج ارتباطی ندارد. بدلیل مسائل امنیتی بسیاری از کارهای ساده و مهم در UWP غیرممکن (البته راه حل هایی وجود دارد) می باشد و نیاز به دسترسی کاربر دارد. به عنوان مثال API های system.Io.File یا Process قابل استفاده نمی باشند.نرم افزارهایی که با UWP ساخته میشوند فقط بر روی ویندوز 10 به بالا قابلیت اجرا دارند و توزیع ان از طریق استور مایکروسافت امکان پذیر است. در صورت نیاز به توزیع دستی (فایل نصبی) توسعه دهنده باید فایل نصبی را بصورت دیجیتالی امضا کند که دردسر های خودش را دارد.ساخت برنامه با Xamarinاگر نیاز دارید که برای سیستم عامل اندروید و مک برنامه بنویسید زامارین میتواند به شما کمک کند.شروع با زامارینساخت برنامه با WinUIبعد از معرفی UWP نیاز به یک فریمورک رابط کاربری قوی جهت جذب کاربران به سمت UWP احساس شد. در نتیجه مایکروسافت فریمورک WinUI را ایجاد کرد. WinUI در 2 نسخه در حال توسعه می باشد.WinUI 2.Xاین نسخه از WinUI فقط قابلیت استفاده در برنامه های مبتنی بر UWP را دارد. اخیرا نسخه 2.6 آن منتشر شده که شامل تغییرات بصری عظیم می باشد. لازم به ذکر است که ویندوز 11 که اخیرا معرفی شد بر پایه WinUI 2.6 ایجاد شده است.WinUI 3.Xاین نسخه از WinUI قابلیت استفاده در پلتفرم های دیگر را محیا می کند. در حال حاظر بصورت پیش نمایش است و بر پایه WinUI 2.5 می باشد. در 3 ماهه آخر سال 2021 تمامی استایل ها بر پایه نسخه 2.6 خواهد بود.سورس کدبرنامه دمو شامل تمامی کنترل ها و استایل ها نسخه 2.6برنامه دمو شامل تمامی کنترل ها و استایل ها نسخه 3پلتفرم Unoپلتفرم اونو توسط مایکروسافت ایجاد نشده، اما توسط آن پشتیبانی میشود. شما به کمک پلتفرم اونو میتوانید به کمک WinUI 3 برنامه های خود را در ویندوز 7 (به کمک موتور رندر Skia ) تا ویندوز 11، لینوکس (به کمک Skia)، مک و حتی موبایل اجرا کنید.سورس کدوب سایتپلتفرم Mauiمائویی در واقع نسل بعدی زامارین می باشد و بصورت تک پروژه ای ایجاد شده است. در زامارین شما برای هر پلتفرم (ویندوز، اندروید، مک و...) یک پروژه جداگانه داشتید اما در مائویی فقط یک پروژه واحد وجود دارد. پس اگر نیاز دارید که برای گوشی های همراه برنامه نویسی کنید میتوانید از مائویی استفاده کنید. لازم به ذکر است که به کمک مائویی شما میتوانید برای لینوکس و مک هم برنامه ایجاد کنید. اما بدلیل وجود WinUI در سایر پلتفرم ها بهتر است از مائویی فقط برای ایجاد برنامه های موبایل استفاده کنید.سورس کدپلتفرم Project Reunionاخیرا نام این پروژه به Windows App SDK تغییر یافته است. به کمک این پروژه میتوانید از WinUI 3 در برنامه های WPF و سایر تکنولوژی های Desktop استفاده کنید. و کل برنامه خود را مدرن کنید.لازم به ذکر است که برنامه های ساخته شده توسط Reunion فقط در ویندوز 10 به بالا اجرا میشوند.در حال حاظر جهت اجرای برنامه نیاز هست که برنامه بصورت MSIX پکیج بشود.در نسخه 1.0 که تا چند ماه اینده منتشر خواهد شد نیازی به پکیج کردن نخواهد بود.سورس کدپلتفرم Xaml Islandاین پلتفرم در واقع پلی است که شما میتوانید از کنترل های UWP یا WinUI در برنامه های دسکتاپ (WPF) استفاده کنید. تفاوت این پلتفرم با Reunion در این است که شما فقط میتوانید بخشی از برنامه خود را مدرن کنید و قسمت های مدرن شده در ویندوز های پایین تر از ویندوز 10 کار نخواهند کرد. اما در Reunion تمام بخش های برنامه شما مدرن خواهد شد.سخن آخر اینکه اگر نیاز به برنامه های موبایل دارید بهتر است از مائویی استفاده کنید بدلیل اینکه:نسل بعدی زامارین استاز دات نت 6 به بالا استفاده می کندروان، سریع و انعطاف پذیر استخطاهای بسیار کمتری داردمخصوص موبایل طراحی شده استتجربه بیشتری نسبت به سایر پلتفرم ها دارداگر نیاز به اجرای برنامه بصورت کراس پلتفرم دارید (ویندوز/لینوکس/مک) بهتر است از Uno استفاده کنید بدلیل اینکه:مخصوص کراس پلتفرم طراحی شدهاز WinUI 3 استفاده می کندبرای ویندوز 10 به بالا از تکنولوژی UWP و برای ویندوز 7 و لینوکس از Skia استفاده می کنداگر نیاز دارید برنامه شما فقط در ویندوز 10 به بالا اجرا شود بهتر است از Project Reunion استفاده کنید بدلیل اینکه:از WinUI 3 استفاده می کندتمام ویژگی های UWP را داردمحدودیت های UWP را نداردبصورت Full Trust اجرا میشودپیچیدگی های UWP را ندارداز پلتفرم WPF برای اجرا استفاده می کنداگر نیاز دارید که برنامه شما در ویندوز 7 به بالا اجرا شود و در ویندوز 10 ظاهر مدرن تری به خود بگیرد بهتر است از Xaml Island استفاده کنید بدلیل اینکه:فقط بخشی از برنامه را مدرن می کندقسمت های مدرن شده در نسخه های قبل ویندوز 10 اجرا نمیشود