آموزش Prism #1
نویسنده: مسعود پاکدل
تاریخ: ۱۳۹۲/۰۴/۰۱ ۸:۱۵
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
هر کدوم از فریم ورکهای بالا مزایا، معایب و طرفداران خاص خودشون رو دارند(^) ولی به جرات میتونیم Prism رو به عنوان قویترین فریم ورک برای پیاده سازی پروژهای بزرگ و قوی و ماژولار با تکنولوژی WPF یا Silverlight بنامیم. در این پست به معرفی و بررسی مفاهیم اولیه Prism خواهیم پرداخت و در پستهای دیگر به پیاده سازی عملی همراه با مثال میپردازیم.
*اگر به هر دلیلی مایل به یادگیری و استفاده از Prism نیستید، بهتون پیشنهاد میکنم از WAF استفاده کنید.
پیش نیازها:
برای یادگیری PRISM ابتدا باید با مفاهیم زیر در WPF یا Silverlight آشنایی داشته باشید.(فرض بر این است که به UserControl و Xaml و Dependency Properties، تسلط کامل دارید)
چرا Prism ؟
*توضیح درباره برنامههای ماژولار
در تولید پروژهای نرم افزاری بزرگ هر چه قدر هم اگر در تهیه فایلهای اسمبلی، کلاس ها، اینترفیسها و کلا طراحی پروژه به صورت شی گرا دقت به خرج دهیم باز هم ممکن است پروژه به صورت یک پارچه طراحی نشود. یعنی بعد از اتمام پروژه، توسعه، تست پذیری و نگهداری آن سخت و در بعضی مواقع غیر ممکن خواهد شد. برنامه نویسی ماژولار این امکان را فراهم میکنه که یک پروزه با مقیاس برزگ به چند پروژه کوچک تقسیم شده و همه مراحل طراحی و توسعه و تست برای هر کدام از این ماژولها به صورت جدا انجام شود.
Prism امکاناتی رو برای طراحی و توسعه این گونه پروژهها به صورت ماژولار فراهم کرده است:
در شکل زیر مراحل بالا قابل مشاهده است:
Bootstrapper چیست؟
در هر پروژه ماژولار (مختص Prism نیست) برای اینکه ماژولهای مختلف یک پروژه، قابلیت استفاده به صورت یک پارچه رو در یک Application داشته باشند باید مفهومی به نام Bootstapper رو پیاده سازی کنیم که وظیفه اون شناسایی و پیکربندی و لود ماژول هاست. در Prism دو نوع Bootstrapper پیش فرض وجود دارد.
تصویری از ارتباط Bootstrapper با ماژولهای سیستم
مفهوم Shell
در پروژههای WPF، در فایل App.xaml توسط یک Uri نقطه شروع پروژه را تعیین میکنیم. در پروژههای Silverlight به وسیله خاصیت RootVisual نقطه شروع سیستم تعیین میشود. در Prism نقطه شروع پروژه توسط bootsrapper تعیین میشود. دلیل این امر این است که Shell در پروژههای مبتنی بر Prism متکی بر Region Manager است. از Region برای لود و نمایش ماژولها استفاده خواهیم کرد.
ادامه دارد...