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