من خودم به شخصه هنوز تا به حال با WPF کار نکردهام؛ اما قصد دارم از امروز در هر فرصتی که پیش میآید به یادگیری این فناوری پر سر و صدا بپردازم. از آنجا که مجموعهی مرتب و به ترتیبی مثل MVC و EF در این زمینه در سایت موجود نبود، تصمیم گرفتم که خودم استارت این کار را بزنم که باعث میشه هم خودم بهتر یاد بگیرم و هم این سری برای افراد تازه کار موجود باشه.
آشنایی اولیه
WPF مخفف عبارات Windows Presentation Foundation است که ویکی پدیا این گونه ترجمه میکند : بنیاد نمایش ویندوزی. در برنامه نویسی «ویندوز فرم» ما تمرکز دقیقی بر ساخت رابط کاربری برنامه به خصوص در رزولوشنهای مختلف نداریم و در بسیاری از اوقات کد با رابط کاربری به شدت وابسته میشد که با ارائه WPF از نسخهی سوم دات نت فریم ورک به بعد، این مشکل حل شد و همچنین عملیات refactoring را بسیار سادهتر کرد. در حالت ویندوز فرم به خاطر وابستگی شدید کد و UI، عملیات بهینه سازی کد اصلا موفق نبود.
WPF از ترکیب عناصر دو بعدی و سه بعدی، اسناد، موارد چند رسانهای و رابط کاربری تشکیل شدهاست و موتور رندر آن بر اساس اطلاعات برداری از کارت گرافیک جهت نمایش ظاهر برنامه کمک میگیرد که باعث تهیه برنامهای با رابط کاربری سریعتر، مقیاس پذیرتر و بدون وابستگی به رزولوشن میشود.
آشنایی اولیه
WPF مخفف عبارات Windows Presentation Foundation است که ویکی پدیا این گونه ترجمه میکند : بنیاد نمایش ویندوزی. در برنامه نویسی «ویندوز فرم» ما تمرکز دقیقی بر ساخت رابط کاربری برنامه به خصوص در رزولوشنهای مختلف نداریم و در بسیاری از اوقات کد با رابط کاربری به شدت وابسته میشد که با ارائه WPF از نسخهی سوم دات نت فریم ورک به بعد، این مشکل حل شد و همچنین عملیات refactoring را بسیار سادهتر کرد. در حالت ویندوز فرم به خاطر وابستگی شدید کد و UI، عملیات بهینه سازی کد اصلا موفق نبود.
WPF از ترکیب عناصر دو بعدی و سه بعدی، اسناد، موارد چند رسانهای و رابط کاربری تشکیل شدهاست و موتور رندر آن بر اساس اطلاعات برداری از کارت گرافیک جهت نمایش ظاهر برنامه کمک میگیرد که باعث تهیه برنامهای با رابط کاربری سریعتر، مقیاس پذیرتر و بدون وابستگی به رزولوشن میشود.
جداسازی رفتارها و ظاهر برنامه
همانطور که گفتیم بخش رابط کاربری دیگر مستقل از کد برنامه شده است و ظاهر برنامه توسط زبان نشانه گذاری XAML ایجاد میشود و بخش کد هم با یکی از زبانهای موجود در مجموعه دات نت نوشته خواهد شد. نهایتا این دو بخش توسط رویدادها، فرامین و DataBinding با یکدیگر متصل میشوند. از مزایای جدا بودن این ویژگی:
- عدم وابستگی این دو بخش
- طراح و کدنویس میتوانند هر کدام به طور جداگانه کار کنند.
- ابزارهای طراحی میتوانند به طور جداگانهای بر روی اسناد XML کار کنند بدون اینکه نیاز به درگیری با کدنویسی داشته باشند.
یکی از برنامه هایی که به طراحی رابط کاربری با پشتیبانی از XAML میپردازد برنامه Microsoft Experssion Blend از مجموعه Blend است
Rich Composition
یکی از ویژگیهای XAML، ساخت اشیاء ترکیبی هست که به راحتی با ترکیب تگها با یکدیگر و قرار دادن هر شیء داخل یک شیء دیگر میتوان به یک شیء جدید دست یافت؛ مثل قرار دادن مجموعه ویدیوها در یک لیست. شیء زیر از ترکیب سه شیء تصویر و متن و دکمه ایجاد شده است:
<Button Margin="148,123,126,130"> <StackPanel Orientation="Horizontal"> <Image Source="speaker.png" Stretch="Uniform"/> <TextBlock Text="Play Sound" VerticalAlignment="Center" Margin="10" /> </StackPanel> </Button>
Highly Customizable
با استفاده از مفهوم Style همانند آنچه که در Html و CSS دارید میتوانید اشیاء خود را خصوصی سازی کنید و ظاهر آن شیء را به طور کل تغییر دهید.
Resolution Independence
عدم وابستگی به رزولوشن یا وضوح تصویر دارد و به جای واحد پیکسل، از یک واحد منطقی که یک نود و ششم اینچ است، بهره میبرد. از آنجا که این سیستم بر اساس وکتور ایجاد شده است، مقیاس پذیری آن در تغییر اندازه یا وضوح تصویر به شدت بالا رفته است.
به زودی در قسمت اول این سری کار را با XAML آغاز خواهیم کرد.