مقایسه پلتفرم Windows Forms و WPF و UWP

بررسی Windows Formsپلتفرم Windows Forms در ابتدا در سال ۲۰۰۲ منتشر شد. این پلتفرم در حال حاضر قدیمی ترین، پر استفاده ترین و همچنین محبوبترین پلتفرم برای توسعه دسکتاپ اپلیکیشن ها بر اساس موتور GDI و یا همان Graphics Device Interface ویندوز به حساب می‌آید. پلتفرم Windows Forms به صورت مدیریت شده و یا Managed عمل می‌کند و در حال حاضر جزئیات مربوط به فریم ورک های Managed را مطرح نخواهیم کرد. با استفاده از پلتفرم Windows Forms به سادگی می توانیم User Interface برنامه در ویژوال استودیو را با قرار دادن کنترل های مختلف ایجاد کنیم. علاوه بر این موضوع، شما می توانید با کد نویسی نیز واسط کاربری برنامه را ایجاد کنید و البته استفاده کردن از کد نویسی برای انجام این کار محبوبیت بسیار کمی را دارد. برای یادگیری Windows Forms می توانید از آموزش بهترین روش های برنامه نویسی Windows Forms Application ها استفاده نمایید. در ادامه لیستی از ویژگی‌های این پلتفرم محبوب را بررسی خواهیم کرد:این تکنولوژی کاملاً بالغ است و در حال حاضر نمونه کد های بیشمار و مستندات زیادی برای آن وجود دارد.روند ایجاد کردن واسط کاربری در این پلتفرم کاملاً کاربردی و جذاب است و به سادگی می توانید با قرار دادن کنترل های مختلف UI برنامه را ایجاد کنید.یادگیری توسعه نرم‌افزار در این فریم ورک بسیار ساده است و روند یادگیری دشوار نیست.اپلیکیشن های توسعه داده شده بر اساس این پلتفرم، در ورژن های مختلف ویندوز پشتیبانی می شوند.این پلتفرم در .NET Core 3 و ورژن های بعدی پشتیبانی می شود.بررسی WPFپلتفرم WPF بر اساس زبان XAML کار می‌کند و می‌تواند برای پیاده‌سازی separation و یا تفکیک UI و کد برنامه مورد استفاده قرار بگیرند. در واقع با استفاده از XAML، شما قابلیت هایی از قبیل Templating، اضافه کردن استایل ها و Binding را در دسترس خواهید داشت. این موارد و بسیاری از موضوع‌های دیگر در ساختن اپلیکیشن های پیشرفته امروزی ضروری هستند. برای یادگیری WPF آموزش های بیشماری تا به حال بر روی وبسایت پرووید قرار گرفته اند که برای مثال می توانید از آموزش WPF دبلیو پی اف WPF و آموزش ساخت یک Enterprise Application با WPF و MVVM و Entity Framework استفاده کنید. شبیه پلتفرم Windows Forms پلتفرم WPF نیز به صورت مدیریت شده و یا Managed عمل می‌کند. اما یکی از تفاوت‌های پلتفورم WPF نسبت به Windows Forms ماژولار بودن و Reusable بودن آن می باشد. در ادامه مهمترین ویژگی های پلتفرم WPF را بررسی خواهیم کرد:این تکنولوژی کاملاً بالغ است و در حال حاضر کد های بسیاری و مستندات کاملی در رابطه با آن در دسترس است.با استفاده از Designer به سادگی میتوانید واسط کاربری برنامه را ایجاد کرده و با بهره بردن از XAML ، UI به شکل کاملاً جذاب توسعه داده می شود.روند یادگیری نسبت به Windows Forms کمی کندتر است.بر روی ورژن های مختلف ویندوز پشتیبانی می شود.در .NET Core 3 و ورژن های بعدی پشتیبانی می گردد.در ادامه در رابطه با UWP و یا Universal Windows Platform صحبت خواهیم کرد.بررسی UWPپلتفرم UWP لزوماً یک Presentation Framework شبیه به WPF و یا Windows Forms نیست بلکه به صورت کامل یک پلتفرم به حساب می‌آید. این پلتفرم ویژگیهای زیر را داراست:API خاص خود را دارد و با نام Windows Runtime API شناخته می‌شود.یک سیستم Deployment جدید به نام MSIX دارد.یک Lifecycle Model بسیار مدرن دارد که برای مصرف کمینه از باتری سیستم ایجاد گردیده است.یک Resource Management System و یا سیستم مدیریت منابع بر اساس فایلهای PRI دارد.این پلتفرم برای پشتیبانی کردن از تمامی سیستم‌های ورودی اطلاعات از قبیل Ink و Touch و Game Pad و موس و کیبورد و Gaze و غیره ایجاد شده است. پلتفرم UWP و توسعه اپلیکیشن ها با استفاده از آن می‌توانند با Performance بسیار بالایی و با حداقل استفاده کردن از باتری سیستم عمل کند. به همین دلایل Shell مربوط به سیستم عامل ویندوز 10 از بخش‌هایی از پلتفرم UWP استفاده می کند. لطفاً تصویر زیر را نیز مشاهده کنید:پلتفرم UWP شامل یک Presentation Framework بر اساس XAML می باشد اما ویژگی های متمایز کننده دیگری را دارد که آن را نسبت به WPF منحصر به فرد می کند. برخی از این ویژگی ها را در ادامه بررسی خواهیم کرد:با استفاده از UWP اپلیکیشن ها در APP Container اجرا می‌شوند. در واقع APP Container مکانیزمی هستند که با استفاده از آن، می توان کنترل کرد یک اپلیکیشن UWP به چه Resource هایی دسترسی داشته باشد.فقط در ویندوز 10 پشتیبانی می‌شوند.اپلیکیشن ها ایجاد شده می‌توانند از طریق Microsoft Store به سادگی Deploy بشود.به عنوان بخشی از Windows Runtime API طراحی گردیده اند.شامل مجموعه‌ای از کنترل‌های Built-in و گسترده هستند و به سادگی می توان کنترل های جدید را از قبیل NuGet Package های Microsoft UI Library بدست آورد. این کتابخانه تقریبا هر چند ماه یکبار به روز رسانی می شود در رابطه با NuGet می توانید از آموزش رایگان نیوگت NuGet در دات نت استفاده کنید و در رابطه با UWP می توانید از آموزش پروژه محور ساخت اپلیکیشن های UWP استفاده نمایید.این درس قسمتی از درس های دوره آموزش رایگان برنامه نویسی ویندوز در .NET Core از وبسایت پرووید می باشد. در وبسایت پرووید می توانید به تمامی سرفصل ها و درس های این دوره به طور رایگان دسترسی داشته باشید.