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 انتخاب بهتری‌ست.

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

  • ارسال پیام و چت با دوستان در محیطی گرافیکی
  • ذخیره داده هایی مثل پاسخ به پیام قبلی یا ذخیره زمان ارسال در سرور (این 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)

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

<

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


 سلام. و با عرض پوزش بابت تاخیر بلند مدت بنده. این بار با نرم افزار پروژه ساختمان های داده ترم سوم مون در خدممتون هستم که شامل پروژه های زیره:

  • برش مستطیل: پیدا کردن مساحت بزرگ ترین مستطیل ممکن از اتصال چند مستطیل به هم چسبیده.
  • فشرده سازی هافمن: فشرده کردن فایل متنی به وسیله الگوریتم فشرده سازی هافمن
  • هرم جستجوی دودویی: ساخت Treap متوازن با ورودی دلخواه
  • بازی مسیر یابی مارپیچ: پیاده سازی الگوریتم های جستجوی عمق اول (DFS) و جستجوی سطح اول (BFS) روی یک صفحهMaze

دانلود نرم افزار به صورت تکی (بدون پروژه)

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

Project Informations
Name: Guilan Data Structure Projects (Persian)
Type: Project + Single Runnable Application
Language: C# with .NET Framework 4.5
Developer: Aryan Ebr
License: Open Source, Aryan Software Productions
Project Type: Visual Studio 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

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

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