بیایید با هم WPF یاد بگیریم!

24 04 2009

ما تا به حال در محیط ویندوز و پلت فرم برنامه نویسی دات نت برای طراحی رابط کاربری با دو انتخاب روبرو بودیم : فرم های ویندوز و فرم های وب. در مطلبی نوشتم که بسیاری از شرکت های نرم افزاری به اسفاده از فرم های وب تمایل بیشتری دارند، چرا که وب مدل توزیع آسان تر و قابل انعطاف تری به تولید کنندگان نرم افزار ارائه می کند و البته در قبال آن نیاز به مدل توسعه پیچیده تری دارد. در مقابل فرم های ویندوز امکان استفاده از نرم افزار کاربردی در حالت آفلاین و استفاده از کنترل های غنی را به توسعه دهندگان می دهد.

ظاهر فرم های وب با استفاده از کدهای HTML و CSS ایجاد می شوند و مرورگر وب وظیفه رندر کردن این صفحات وب را بر عهده می گیرد. در فرم های ویندوز ظاهر فرم با استفاده از کامپوننت ها و کنترل های نرم افزاری شکل می گیرد و کتابخانه های GDI و فایل USER32.dll در زیر سیستم گرافیکی ویندوز وظیفه رندر کردن ویندوز فرم ها را بر عهده دارند. رابط کاربری را از دو نظر می توان مورد بررسی قرار داد، از نظر زیبایی و غنی (Rich) بودن. فرم های وب به علت باز بودن دست شما در استفاده از فایل های مالتی مدیا معمولاً زیبایی بیشتری نسبت به فرم های ویندوز دارند. صفحات وب می توانند از فایل های عکس و ویدئو به راحتی استفاده کنند و با استفاده از کدهای CSS ظاهری زیبا داشته باشند. در فرم های ویندوز این زیبایی به راحتی وب بدست نمی آید، اما به جای آن کنترل های غنی بسیار زیادی که برای فرم های ویندوز وجود دارد در وب کمتر یافت می شود. غنی یا Rich بودن یک کنترل به این معنی است که آن کنترل به خوبی به رفتارهای کاربر و رویدادهایی که برایش اتفاق می افتد پاسخ می دهد. البته با آمدن تکنولوژی AJAX فرم های وب تا حدودی در این زمینه بهبود یافته اند.

wpf_logo

Windows Presentation Foundation یا به اختصار WPF زیر سیستم گرافیکی جدید ویندوز است که روشی واحد برای طراحی رابط کاربری غنی و زیبا که می تواند از فایل های مالتی مدیا و افکت های دو بعدی و سه بعدی نیز استفاده کند، به توسعه دهندگان دات نت ارائه می کند. این سیستم جدید روشی فوق العاده قابل انعطاف تر از روشی که در Win32 و فرم های ویندوزی استفاده می شود به شما ارائه می کند. شما با استفاده از زبان XAML که در سیلورلایت هم مورد استفاده قرار می گیرد، رابط کاربری خود را می سازید. زبان XAML بر اساس فرمت XML به شما اجازه ساختن کنترل های WPF را می دهد و استفاده از آن به راحتی HTML خواهد بود.WPF کاملاً رابط کاربری نرم افزار شما را از منطق آن جدا خواهد کرد.

برای ایجاد فرم های WPF باید ویژوال استادیو 2008 را باز کنید و از قمست New / Project گزینه WPF Application را برگزینید. همانطور که در شکل زیر مشاهده می کنید، همانند فرم های ویندوزی، WPF نیز پنجره ای را در اختیار شما قرار می دهد تا کنترل های خودتان را روی آن قرار دهید. این کنترل های را می توان به صورت دستی با کدهای XAML ایجاد کرد و یا از Toolbox ویژوال استادیو روی پنچره قرار داد. با استفاده از این کنترل ها می توانید زیبایی خیره کننده ای به برنامه هایتان ببخشید.

مثالی از WPF

مثالی از WPF

یادگیری تکنولوژی های جدید همیشه برای بسیاری از افراد جالب و هیجان انگیز است و برای برخی هم سخت و دشوار. یادگیری WPF کار مشکلی نیست، فقط باید کمی روی آن وقت بگذارید و تمرین کنید. مقالات آموزشی بسیار زیادی در مورد یادگیری WPF در وب سایت های مختلف پیدا خواهید کرد. حتی می توانید کتاب های زیادی هم در مورد WPF به زبان انگلیسی روی اینترنت پیدا کنید. توجه داشته باشید که مایکروسافت تاکید بسیار زیادی بر روی WPF دارد و رابط کاربری سیستم عامل ویندوز 7 و دیگر نرم افزارهای خود را با استفاده از همین WPF توسعه می دهد. در واقع توصیه مایکروسافت به همه تولید کنندگان نرم افزار، استفاده از WPF در ایجاد رابط کاربری نرم افزارهای نسل آینده است. به احتمال بسیار زیاد هدف بلند مدت مایکروسافت از توسعه WPF حذف فرم های ویندوز و وب در آینده خواهد بود، پس از همین حالا شروع به یادگیری WPF و زبان XAML کنید.

شاید این مطالب هم برای شما خواندنی باشند :

پ.ن 1: اگر وقت اجازه بدهد، حتماً مطالب آموزشی در مورد WPF، XAML و سیلورلایت در این وبلاگ بیشتر مشاهده خواهید کرد.

پ.ن 2: Datefa را به CodePlex منتقل کردم، می توانید آخرین نسخه 2.4 پایدار به همراه سورس کد آن را از این سایت دریافت کنید.

پ.ن 3: مطلب آقای افشار محبی در مورد مفایسه WPF و WinForms برای مطالعه پیشنهاد میکنم.

پ.ن 4: وبلاگ Hyper Web مطالب تحلیلی با کیفیتی در مورد فناوری های روز می نویسد، خواندن این وبلاگ هم پیشنهاد می شود.


کارها

اطلاعات

18 جواب

24 04 2009
سروش

با خوندن این مطلب کلی ذوق کردم چون همین امروز برای اولین بار (غیر از مثال های کتاب های آموزشی ) از wpf و xaml برای طراحی پنجره های برنامه ام استفاده کردم. با همین تجربه ی کمم در استفاده از این بخش مطمئنا ترجیح میدم که در برنامه های بعدیم هم به جای فرم های ویندوزی از پنجره های wpf استفاده کنم

25 04 2009
ایمان

خوبه، البته به این زودی ها WPF جای ویندوز فرم را نخواهد گرفت. اما یادگیری و استفاده از اون لازم هست.

25 04 2009
افشار محبی

من هم مطلب کوچکی راجع به مقایسه WPF و Winforms نوشته‌ام: http://afsharm.blogspot.com/2009/03/wpf-winforms.html

25 04 2009
ایمان

مطلب خوبی بود، لینکش را در مطلب گذاشتم

25 04 2009
علی افشار

سلام . این برنامه تاریخ شمسی دسکتاپ شما را دیدم . خیلی خوب و مفید بود .
فقط اگر امکان داشته باشه تعداد هشدا ها ( آلارم را بشه به سه تا یا 5 تا افزایش داد ) فکر کنم خیلی بهتر باشه . چون تو روز فکر می کنم کار های زیادی برای انجام و علامت گذاری وجود داشته باشه .
ضمنن اگر در زمینه گرافیکی قصذد توسعه اون را داشته باشید بنده با کمال میل می تونم GUI زیبایی را براتون طراحی کنم و المان های اون را بهتون بدم .

25 04 2009
ایمان

سلام. ممنون، فعلاً قصد اضافه کردن چنین امکانی را ندارم اما در نظر خواهم داشت. برای کمک به این برنامه می توانید در تدوین فایل راهنما و طراحی آیکون کمک کنید. با تشکر

26 04 2009
علی

در مطلب بالا در جایی که نوشته شده ظاهر جدید برای ویژوال استودیو 2008، ظاهرا اشتباه است و باید 2008 به 2010 تغییر کند

با تشکر از مطالب خوب شما. بیشتر بنویسید

26 04 2009
ایمان

تشکر از دقت نظر شما، تصحیح شد.

27 04 2009
Silverboy

ممنون از توضیحاتی که دادید
مفید و مختصر

27 04 2009
محسن شهرياري

سلام
من به ياد دارم كه وقتي يك كامپوننت در #c درست مي كرديم براي هر Property كه وجود نداشت يك دستور Set مي نوشتيم ؛ مي تونيد بگيد كه درون محيط Expression Blend به چه صورتي اين كار رو انجام بدم !!؟
مرسي از مطالبتون

دوستاني كه از اين مطلب بازديد مي كنند منابع بيشتر خواستيد برام ميل بزنيد !!!
moh3ngraphic@ymail.com

29 04 2009
ناشناس

سلام ایمان خان گل. مطلبت خیلی مفید بود. ممنون.
فایل راهنما را سعی میکنم بعد از امتحانات میانترم درست کنم، کامل! .

30 04 2009
ایمان

تشکر آقای ناشناس! امیدوارم امتحانات میان ترم را با موفقیت پشت سر بذاری.

1 05 2009
هدایت ناجوانمردانه ی بی ارادگان « صحبت

[...] در framework 3.5 دات نت و ویژوال استودیو 2008 است. در اینجا و اینجا کمی باهاش آشنا [...]

2 05 2009
Hyper Web

ممنون از لطف شما.

15 05 2009
18 05 2009
sk8er

merC
kheili mamnoon az maghale arzeshmandetoon
darzemn kheili khoshhalam ke az mohandes moosavi hemayat mikonid

15 07 2009
Warrior

جالبه

14 12 2009
اوژن استوار

با سلام و خسته نباشید
از مطلب مفیدی که گذاشتید ممنونم
من یک WPF در پروژه خودم اضافه کردم چه جوری میتونم اونو به یکی از فرمهام اضافه کنم ؟
اگر جواب رو میدونید ممنون میشم به من اطلاع بدید یا ادرس سایتی در این رابطه میتونه به من کمک بکنه ممنونم
ostovarit@yahoo.com

دیدگاه‌تان را بنویسید: