بیایید با هم 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 مطالب تحلیلی با کیفیتی در مورد فناوری های روز می نویسد، خواندن این وبلاگ هم پیشنهاد می شود.





برنامه نویسی و آینده شما!

11 04 2009

نمیدونم هیچ وقت به این موضوع فکر کردید که تا چه موقع می توانید برنامه نویسی کنید و از این راه زندگی خودتان را بگذرانید! و در آخر که به زندگی حرفه ای خود می نگرید، آیا از آن راضی خواهید بود یا خیر!؟ منظورم کسانی که برای سرگرمی برنامه نویسی می کنند یا در کنار آن شغل دیگری برای گذراندن زندگی دارند نیست. منظورم دقیقاً کسانی است که از حرفه برنامه نویسی و تولید نرم افزار (نه فروش بسته های نرم افزاری آماده و سورس باز به ملت) خرج زندگی شان را در می آورند و به آن به عنوان یک شغل حرفه ای نگاه می کنند. این گروه به خوبی می دانند که حرفه برنامه نویسی با چه مشکلاتی در ایران مواجه است و چه سختی ها و بی محبتی هایی که در حق این حرفه انجام گرفته شده و خواهد گرفت اما باز هم حاضرند برای پیشرفت این حرفه در ایران تلاش کنند و زحمت و سختی را به جان بخرند.

برنامه نویسی و آینده شما

آینده خود را در برنامه نویسی چطور می بینید!؟

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

  • برنامه نویسان ماندگار و معروف : این افراد زندگی حرفه ای خود را وقف پیشرفت در یک زمینه خاص نرم افزار و برنامه نویسی می کنند و شاید هم در طول عمر خود مفاهیم جدیدی در این زمینه ایجاد کنند. نام این گونه افراد در تاریخ برنامه نویسی ایران یا حتی جهان ثبت می شود و کتاب هایشان به دانشجویان و برنامه نویسان جوان درس داده می شود. من هنوز در ایران کسی را که موفق به کسب این درجه شده باشد، نمی شناسم.
  • برنامه نویسان موفق : افرادی که در طول عمر حرفه ای خود آدم موفقی بوده اند و محصولاتی موفق ارائه داده اند و یک شرکت تجاری موفق را بر اساس این محصولات ایجاد کرده اند. شاید نام این افراد را خیلی ها حتی نشنوند اما نام شرکت و محصولاتشان زبانزد دیگران خواهد بود.
  • برنامه نویسان کارآمد : این افراد در طول عمر حرفه ای خود در شرکت های زیادی حضور داشته اند و در توسعه محصولات معروف و کاربردی مشارکت کرده اند. این برنامه نویسان علاوه بر حقوق خوبی که از این راه بدست می آوردند، از کار خود نیز نهایت لذت را می برده اند. درآخر این گونه افراد به رزومه کاری خود افتخار می کنند و اواخر عمر خود را با خیال راحت در کنار خانواده می گذارنند.
  • برنامه نویسان معمولی : این افراد هر روز سر کار خود حاضر می شدند و در هر پروژه ای که شرکت مربوطه روی آن کار میکرده مشارکت می کردند. همیشه هم به این گونه کار کردن راضی بودند. کارهای روزانه این افراد از قبل مشخص بوده و از کدنویسی تا نوشتن راهنما و خدمات پشتیبانی را انجام داده اند.
  • برنامه نویسان مستقل : افرادی که در کل دوران حرفه ای خود به صورت مستقل روی پروژه های سفارشی کار می کرده اند. این افراد تمایل به کار کردن برای دیگران را نداشته اند و همیشه سعی کرده اند برای خودشان کار کنند. هر چند ممکن است در زمان های مختلف با مشکلات مالی متعددی مواجه بشوند اما باز هم به خاطر علاقه به این کار، دست از آن برنداشته اند.
  • برنامه نویسان ساده : این گونه افراد قسمت عمده ای از عمر حرفه ای خود را در استخدام یک شرکت دولتی یا خصوصی که کار اصلی شان برنامه نویسی و تولید نرم افزار نیست اما به برنامه نویس احتیاج دارند، می گذرانند. این برنامه نویسان به علت دردسر و استرس کم در این کار و به موقع پرداخت شدن حقوق شان، خیلی از کارشان راضی هستند. (البته شاید اسم “ساده” برای این گروه درست نباشد، اما نام بهتری پیدا نکردم)

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

قبل از اینکه نظرات بقیه را بخوانم قصد جمع بندی این موضوع را نخواهم داشت. اگر دسته بندی دیگری به نظرتان می رسد یا پیشنهادی دارید، در قسمت نظرات عنوان کنید تا اثر بدهم.

به هر حال، میخواهم شما هم در این بحث شرکت کنید و بگویید الان در کدام دسته بندی بالا قرار می گیرید، یا می خواهید در آخر (آینده خودتان) متعلق به کدام دسته بندی باشید؟

ایده این نوشته از خواندن این مطلب Jeff Atwood به ذهنم رسید.