۱۳۸۹ آذر ۷, یکشنبه

WPF چیست؟

WPF مخفف عبارت Windows Presentation Foundation، نسل جدید روشهای تولید نرم افزارهای سمت کاربر مایکروسافت است.

کسانی که پیش از این تجربه کار با سایر تکنولوژی های تولید نرم افزار و سایر محیطهای برنامه نویسی را داشته اند احتمالا این تکنولوژی را بسیار متفاوت خواهند یافت. این تکنولوژی در ابتدا همراه با Net framework 3.0. عرضه شد و هم اکنون نیز با کمی تغییرات روی نگارش 4 آن ارائه می گردد.

هنگام شروع کار با WPF بزرگترین تفاوت را در شیوه طراحی ظاهر یا همان رابط گرافیکی کاربر (GUI) خواهید دید. طراحی ظاهر نرم افزار بیشتر از اینکه به سایر زبانها و تکنولوژی های ویژوال شبیه باشد به طراحی صفحات HTML شباهت دارد. مایکروسافت از ایده جدیدی در این تکنولوژی استفاده کرده است که پیش از این چیزی شبیه به آن را در ASP.NET ارائه کرده بود. جدایی کد نرم افزار از ظاهر آن. اگر با ASP.NET آشنا باشید می دانید که در این تکنولوژی کدهای xHTML همراه با بعضی تگهای ASP.NET که عموما مربوط به ظاهر صفحات وب است در فایلهایی با پسوند aspx. ذخیره شده و سپس کد پشت هر صفحه که در سمت سرور کامپایل و اجرا می شوند، بسته به نوع زبان برنامه نویسی استفاده شده در فایهایی با پسوند aspx.cs. و یا aspx.vb ذخیره شده و یا حتی کامپایل شده و در فایلهای dll. ذخیره می شوند. این مسئله جدایی کد سمت سرور و طراحی ظاهری را تا حدود زیادی مهیا می ساخت. می شد طراحی ظاهر را به طراح و متخصص گرافیک وب سپرد و برنامه نویس با خیال آسوده به نوشتن کدهای سمت سرور بپردازد.

مایکروسافت از این شیوه برای جدا کردن طراحی رابط کاربری نرم افزار و همینطور کد پشت آن استفاده کرده است. در WPF از XAML (بخوانید زَمِل) برای طراحی رابط کاربری و در واقع ظاهر پنجره های نرم افزار استفاده می شود. XAML از قوانین XML برای نوشتن کدهای طراحی ظاهر پنجره ها استفاده می کند. متن زیر نمونه ای از یک کد XAML است:

<Window>
<Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="120"/>
            <RowDefinition Height="2*" />
            <RowDefinition Height="1*" x:Name="rw1"/>
            <RowDefinition Height="30" />
        </Grid.RowDefinitions>
   <Label Name="lblF1" Content="از تاریخ" Grid.Column="0" Grid.Row="0"                 HorizontalContentAlignment="Right" />
        <Label Name="lblF2" Content="تا تاریخ" Grid.Column="4" HorizontalContentAlignment="Right" />
.
.
.
.
</Grid>
</Window>

کد های نرم افزار نیز با یکی از زبانهای NET. مثل #C یا VB نوشته می شود.

البته این تنها تفاوت WPF با تکنولوژی های پیشین نیست، بلکه همانطور که پیشتر گفتم شاید بارز ترین تفاوت آن باشد. WPF برای نمایش کنترل ها روی پنجره و حتی نمایش خود پنجره از DirectX استفاده می کند که نتیجه آن پشتیبانی از گرافیک بسیار جذاب از نوع برداری است که با هر مقدار بزرگ نمایی باز جزئیات آن حفظ می شود. می توانید از انواع انیمیشن ها برای ساخت پنجره های غنی از گرافیک استفاده کنید. در ضمن جدا بودن کد نرم افزار از کد رابط کاربری یا همان XAML این امکان را فراهم کرده که نرم افزار های جانبی زیادی از سوی شرکت مایکروسافت و همینطور سایر شرکتها برای طراحی ظاهر گرافیکی بسیار جذاب و غنی تولید شوند. نرم افزارهایی مثل Microsoft Expression Blend که به طور خاص و با تمرکز بروی گرافیک برای طراحی پنجره های نرم افزار طراحی شده اند که طراح با استفاده از آنها نیاز چندانی به نوشتن کدهای XAML ندارد و می تواند بسیار راحت تر به تولید محتوای گرافیکی صفحات و پنجره های نرم افزار بپردازد.

خصوصیات WPF تنها محدود به گرافیک و رابط کاربری نیستند. Databinding در WPF تغییرات عمده ای کرده است. می توانید هر کنترلی در پنجره برنامه را به هر نوع مجموعه داده مثل آرایه ها، لیست ها،Dataset ها و ... متصل (Bind) کنید. کلاً Databinding بسیار کاربردی تر و جذاب تر از پیش شده است.

از جمله تغییرات دیگر می توان به مباحثی مثل Globalization و Localization اشاره کرد.

با کمی کار کردن باWPF و نوشتن یک نرم افزار کاربردی با تفاوتهای عمده آن با روشهای پیشین طراحی نرم افزار آشنا خواهید شد، چه پیش از این از Net. استفاده کرده باشید چه نه!

با روشهای مشابهی توسط WPF می توانید نرم افزارهای قابل نمایش در web browser یا Browser Hosted Application ها را طراحی کنید.

برای اطلاعات بیشتر می توانید به  MSDN مراجعه کنید.

با تشکر از همراهی شما

۱ نظر: