اگر به تکنولوژیهای شرکت مایکروسافت علاقمند باشید و اخبار آن را دنبال کرده باشید قطعا در جریان هستید که علاوه بر تکنولوژیهای قدیمی (WPF, UWP, Xamarin) تکنولوژیهای جدیدی (Project Reunion, Maui, WinUI, Uno, Xaml Island) نیز بصورت همزمان در حال توسعه هستند. اکثر این تکنولوژیها شبیه و نزدیک به هم هستند و برای کسی که تازه کار باشد ممکن است دچار سردرگمی شود و چون بصورت همزمان در حال توسعه میباشند ممکن سوالاتی برای شما پیش بیاید. در این مطلب هر کدام از این تکنولوژیها را معرفی کرده و در انتخاب صحیح به شما کمک خواهیم کرد.
ساخت برنامه با WPF
به کمک تکنولوژی WPF میتوانیم نرم افزارهای دسکتاپ را توسعه دهیم. WPF همچنان پشتیبانی میشود و در سالهای اخیر بصورت متن باز نیز منتشر شدهاست. اگر نیاز دارید که برنامه شما در ویندوزهای 7 تا ویندوز 11 اجرا شود، میتوانید از WPF استفاده کنید. لازم به ذکر است که برنامههای WPF به عنوان Win32 یا Desktop نیز شناخته میشوند.
ساخت برنامه با UWP
UWP بعد از 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 خواهد بود.
پلتفرم 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 اجرا نمیشود