Windows Presentation Foundation

یا به اختصار WPF؛ تکنولوژی مایکروسافت برای طراحی نرم افزار های مدرن با تجربه کاربری بسیار قوی است که از ترکیب یکی از زبان های برنامه نویسی پشتیبانی شده توسط فریم ورک دات‌نت (معمولا C#) و زبان مارک‌آپ XAML بهره میبرد.

این زیرساخت بخشی از چهارچوب معروف مایکروسافت به نام  NET Framework. بوده و از مشهور ترین نرم افزار های ساخته شده توسط آن، محیط توسعه Visual Studio است. در این مطلب نگاهی اجمالی به ویژگی های این زیرساخت می‌اندازیم.

Microsoft Visual Studio, Written in C++ and C# with WPF Microsoft Visual Studio » and «Blend for Visual Studio», Written in C++ and C# with WPF»

امکانات WPF

  • Hardware Accelrated and Direct 3D: نرم‌افزار های توسعه داده شده با WPF به طور پیش‌فرض از امکانات مربوط به شتاب دهنده های گرافیکی، سخت افزاری و DirectX بهره میبرند. 
  • رابط کاربری XAML: رابط کاربری نرم افزار های WPF با مارک‌آپ XAML و Layout های بسیار کارا و قوی تعریف میشوند. به همین دلیل واکنش‌گرا کردن آن بسیار آسان و تغییرات رابط کاربری برای تغییرات احتمالی در آینده نیاز به تغییر بزرگی در بخش های متفاوت برنامه ندارد.
  • پشتیبانی از فرمت های چند رسانه ای: WPF انواع مختلفی از فرمت های چند رسانه ای و پخش کننده های آن ها را به طور پیش‌فرض در خود جای داده و پشتیبانی میکند.
  • تغییر آسان قالب ها و استایل ها: در WPF تغییر ظاهر کنترل ها و تعریف Template های جدید برای نمایش دیتا بسیار آسان است. به عنوان مثال میتوانید به محتوای یک لیست‌باکس کنترل های مختلف مثل عکس یا چک‌باکس اضافه کنید و تغییرات ظاهری متفاوتی را در آن اعمال کنید.
  • جهانی‌سازی: توسعه نرم افزار های چند زبانه و چند‌چینشی به وسیله امکاناتی که WPF در اختیار شما قرار میدهد بسیار آسان است.
  • پشتیبانی از اسناد XPS و PDF و ...: WPF از از امکانات مربوط به گزارش گیری و همچنین پردازش و ایجاد اسناد و کتاب های الکترونیکی بهره میبرد.
  • کتاب خانه ها: برای این زیر ساخت کتاب خانه ها و ابزار های متفاوت بسیاری توسعه داده شده است.
  • برنامه نویسی سه بعدی: در WPF، دقیقا همانند یک موتور بازی سازی امکانات مربوط به ایجاد اشیا گرافیکی و اعمال دوربین و انیمیشن بر روی آن ها تعبیه شده است. اگرچه طراحی سه بعدی در WPF سخت تر از موتور های بازی سازی ست.
  • انیمیشن: WPF از کتاب خانه ها و ابزار بسیار قدرتمندی در زمینه ساخت و توسعه انیمیشن روی کنترل ها و اشکال هندسی، تایم‌لاین ها و استوری‌برد ها بهره میبرد.
  • انقیاد داده: از آنجا که معماری ساخت نرم افزار در WPF مبتنی بر Model-View-ViewModel یا به اختصار MVVM است، انقیاد داده (Data Binding) به اشکال مختلف و بسیار کارآمد در آن پیاده سازی شده است.
  • گرافیک: رندر کننده گرافیکی WPF وابسته به وکتور ها و بردار های گرافیکی‌ست. لذا کیفیت تصاویر و همچنین ظاهر و ساختار برنامه در مانیتور ها با ریزولوشن های متفاوت حفظ می شود. همچنین در این زیرساخت تنظیمات متفاوتی مربوط به hdpi وجود دارد.

در مقایسه با Windows Forms

اگرچه که تکنولوژی فرم های ویندوزی (Windows Forms) تکنولوژی مرده ای نیست و همچنان پشتیبانی و استفاده می‌شود، اما کسانی که با هر دو تکنولوژی WPF و WinForms کار کرده اند و با جادوی WPF آشنایی دارند، برای طراحی نرم افزار های خود هرگز به سمت Windows Forms نمی روند. یکی از دلایلی که هنوز از Windows Forms استفاده می شود این است که امکانات کمتر ولی طراحی راحت تری دارد و برخلاف WPF؛ برای ساخت و توسعه نرم افزار ها شما نیاز به دانش عمیق در مورد اصول طراحی یک نرم افزار مهندسی شده ندارید. نقطه مشترک WPF و WinForms استفاده از رابط های برنامه نویسی Win32 یا همان Classic Desktop است.

در مقایسه با WinRT

نرم افزار های UWP نیز مانند WPF دارای رابط XAML هستند و به طور کلی، شباهت های بسیار زیادی از نظر کنترل ها و Layout با WPF دارند. برخلاف WPF که روی تمامی نسخه های ویندوز که دات نت فریم ورک روی آن نصب شده باشد قابل اجرا هستند، نرم افزار های UWP تنها روی ویندوز های 8 و بالاتر قابل اجرا هستند و بسته به نوع API میتوانند به سیستم عامل نسخه بالاتری نیاز داشته باشند.

نرم افزار های WPF نیز میتوانند به وسیله Desktop Bridge روی Windows Store قرار بگیرند و یا از امکانات ویژه سیستم عامل های به روز تر مانند Widnows 10 استفاده کنند. اما برای توسعه نرم افزار های ویژه این سیستم عامل ها، نرم افزار های Universal و WinRT انتخاب بهتری‌ست.

 نرم افزار نگهبان چشم، نرم افزاری فارسی و بومی برای محافظت از چشم های شما و ویژه کسانی هست که به مدت طولانی به مانیتور کامپیوتر و لپ تاپشون نگاه میکنند. با استفاده از این برنامه و تنظیم کردن زمان های دلخواه برای نمایش پیام میتونید وقت هایی رو به استراحت کردن اختصاص بدید.

ویژگی های نرم افزار:

    • تنظیم دو نوع استراحت کوتاه مدت و بلند مدت
    • تنظیم ساعات زمانی استراحت ها
    • قابلیت اجبار به استراحت ویژه کسانی که میخوان برنامه مجبورشون کنه که استراحت کنن
    • جمع آوری و مدیریت داده های آماری
    • اجرا با استارپ‌آپ ویندوز
    • رابط کاربری زیبا و در دسترس (تحت پروژه کیت رابط کاربری هستی Hasti UI Kit توسعه داده شده توسط آرین نرم افزار)
    • قابلیت توقف و ایست‌موقف نرم افزار
    • دسترسی آسان از Taskbar
    • اطلاع دادن به کاربر یک دقیقه قبل از استراحت بلند مدت
    • استراحت کوتاه یا بلند به صورت دستی
    • در صورتی که نرم افزار متوقف کنید، نرم افزار در اجرای بعدی نیز (استارت‌آپ) متوقف خواهد بود
سورس کد روی گیت هاب منتشر شد. همچنین منتظر نظرات و پیشنهادات به منظور بهبود نرم افزار هستم (:
نگارش فعلی نرم افزار: ۱.۰.۱
این نرم افزار برای اجرا نیاز به نرم افزار .Net Framework نسخه ۴.۵.۲ دارد که به طور پیشفرض روی اکثر سیستم های خانگی نصب است. در صورتی که این فریم ورک را ندارید و هنگام اجرای نرم افزار پیامی مبنی به نصب این فریم ورک دریافت میکنید از لینک داده شده، این پیش نیاز را نصب کنید.

دانلود فایل نصبی نرم افزار (فایل فشرده Zip)

سورس کد در گیت هاب

 این پروژه، نرم افزاری تحت شبکه مثل تلگرام ولی با امکاناتی مثل درخواست دوستی و یا ثبت چندین شماره برای یک کاربر است. ویژگی های زیر در نرم افزار پوشش داده شده:

  • ارسال پیام و چت با دوستان در محیطی گرافیکی
  • ذخیره داده هایی مثل پاسخ به پیام قبلی یا ذخیره زمان ارسال در سرور (این API در رابط کاربری نرم افزار پیاده سازی نشده)
  • درخواست دوستی به کاربری با شماره همراه و یا شناسه کاربری
  • جستجو در شبکه دوستان با عمق دلخواه و نمایش مسیر به فرد مورد نظر، (مثالی از یک جستجو با عمق چهار: آرین ← عرفان ← نیکان ← محمد)
  • کد نویسی شی گرا
  • لاگ نویسی سرور
  • کامنت و توضیحات در کد
  • استفاده از دیتابیس SQLite برای ذخیره سازی داده ها و Embed کردن آنها در کنار فایل های سرور و بهره گیری از Socket Programming
  • کنترل های شخصی سازی شده در رابط کاربری

توجهات
توجه ۱: این نرم افزار صرفا یک پروژه دانشجویی و طرح اولیه بوده و قطعا انگشت کوچیکه تلگرام هم نمیشه پس به دید آموزشی بهش نگاه کنید فقط (:
توجه ۲: اسم این نرم افزار به احترام استاد عزیزم دکتر میر روشندل در ابتدا «میروگرام» بود که در اواسط پروژه به دلایلی به «آریوگرام» تغییر نام پیدا کرد. تفاوت اسم نرم افزار و اسم برخی از پوشه ها هم به همین دلیله.

دانلود پروژه، نرم افزار ها و فایل پایگاه داده

روش تبادلات داده در نرم افزار:

اطلاعات پروژه:

Project Informations
Name: Aryogram (Mirogram)
Type: Server, Client and database file
Language: C# with .NET Framework 4.5 + XAML
Developer: Aryan Ebr
License: Open Source, Aryan Software Productions
Project Type: Visual Studio 2017 Solution (.sln)

اسکرین شات سرور

<

اسکرین شات های نرم افزار


 نرم افزار محاسبه گر عبارات منطقی + پروژه

 راهنمای نرم افزار


 عملگر های & و . برای عملگرAND،

 عملگر های | و + برای عملگرOR،

 عملگر های -> ، <- و <->برای عملگر هایشرطی،

 عملگر های T و 1 برای عملگرTrue،

 عملگر های F و 0 برای عملگرFalse

Project Informations
Name: Logical Experssion Solver
Type: Project + Single app
CPU Target: both
Language: C# WPF + Xaml
Developer: Aryan Ebr
License: Open Source, Aryan Software Productions
Project Type: Visual Studio sln File

دانلود نرم افزار به همراه پروژه 

دانلود نرم افزار بدون پروژه