
آموزش پریزم (Prism) در دبلیو پی اف (WPF)
آموزش پریزم Prism در دبلیو پی اف WPF یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته ی آموزشی مقدمه ای بر Prism می باشد که با نام اصلی Introduction To PRISM توسط شرکت Pluralsight منتشر شده است.
Prism چیست؟
Prism یک الگوی طراحی برنامه در ساخت اپلیکیشن های WPF و Silverlight و Windows Phone است. این الگو با در نظر داشتن دو اصل بسیار مهم در ساخت برنامه ها: Loose Coupling (تنیدگی سست)، Separation of Concerns (جداسازی وابستگی ها) ما را در ساخت برنامه های مرکب (Composite) یاری می دهند. برنامه هایی که بر اساس الگوی Prism طراحی شده اند در واقع برای تغییر (Built for Change) و ماندگاری (Built for Last) ساخته شده اند.

الگوی Prism با تعریف کردن قسمت های مختلفی از قبیل Shell و Region و Bootstrapper برنامه را به قسمت های مختلفی می شکند. در صورت استفاده از الگوی Prism می توان برنامه های ماندگارتر، اصولی تر و دقیق تری را در پلت فرم های ذکر شده ساخت. گفتنی است که این الگو به نحوی که در WPF و Silverlight و Windows Phone قابل استفاده است، در Windows Forms Application ها قابل استفاده نیست. دلیل این موضوع هم عدم وجود قابلیت های مورد نیاز برای پیاده سازی آن در پلت فرم Windows Forms Application است.
معماری ماژولار در WPF با استفاده از Prism
در اپلیکیشنهای دسکتاپی که با WPF ساخته میشوند، افزایش تعداد صفحهها و قابلیتها میتواند باعث پیچیده شدن ساختار پروژه شود. Prism مجموعهای از الگوها و ابزارها را برای طراحی برنامههای ماژولار فراهم میکند تا بخشهای مختلف برنامه بتوانند مسئولیتهای مشخصی داشته باشند. در این رویکرد، بهجای قرار دادن تمام قابلیتها در یک بخش بزرگ، میتوان قسمتهای مستقل را به شکل ماژولهایی سازماندهی کرد که در کنار یکدیگر برنامه نهایی را تشکیل میدهند.
ماژولار کردن برنامه به جداسازی مسئولیتها و کاهش وابستگی مستقیم میان بخشها کمک میکند. برای مثال، در یک نرمافزار مدیریتی میتوان قابلیتهای مربوط به گزارشها، کاربران و تنظیمات را به بخشهای جداگانه تقسیم کرد. این ساختار توسعه و نگهداری برنامه را منظمتر میکند، زیرا تغییر در یک بخش لزوماً نباید باعث تغییر گسترده در سایر بخشها شود. البته رسیدن به این مزایا به طراحی مناسب وابستگیها و تعیین مرزهای روشن میان ماژولها نیاز دارد.
Region و View در Prism چه کاربردی دارند؟
در Prism، View نمایی از رابط کاربری است که میتواند شامل کنترلها و اجزای بصری موردنیاز برنامه باشد. Regionها نواحی مشخصی از رابط کاربری هستند که امکان قرار دادن و مدیریت Viewهای مختلف را فراهم میکنند. این ساختار به توسعهدهنده اجازه میدهد بخشهایی از رابط را بهصورت پویا تغییر دهد یا متناسب با ماژول فعال، نمای مناسب را در ناحیه موردنظر نمایش دهد. برای مثال، یک پنجره اصلی میتواند ناحیهای برای نمایش محتوای هر بخش از برنامه داشته باشد.
استفاده از Regionها و Viewها به جدا شدن ساختار کلی رابط کاربری از محتوای هر بخش کمک میکند. در نتیجه، لازم نیست تمام صفحهها مستقیماً به یکدیگر وابسته باشند یا تغییرات رابط کاربری در یک نقطه متمرکز شوند. این روش بهویژه در برنامههایی که چندین بخش مستقل دارند، میتواند سازماندهی کد را بهبود دهد. آشنایی با نحوه تعریف Region و مدیریت Viewها به شما کمک میکند رابطهای کاربری انعطافپذیرتری در WPF طراحی کنید.
مدیریت Navigation و ارتباط میان ماژولها در Prism
در برنامههای ماژولار، جابهجایی میان صفحهها و برقراری ارتباط میان بخشهای مختلف باید با ساختار مشخصی انجام شود. Prism امکاناتی برای مدیریت Navigation ارائه میکند که به کمک آنها میتوان View موردنظر را در یک Region نمایش داد. بسته به ساختار برنامه، Navigation میتواند بر اساس نام View یا وضعیت مشخصی انجام شود. این قابلیت به توسعهدهندگان کمک میکند منطق جابهجایی میان صفحهها را از جزئیات پیادهسازی هر بخش جدا نگه دارند.
ارتباط میان ماژولها نیز موضوع مهمی در طراحی برنامههای مبتنی بر Prism است. اگر بخشهای مختلف برنامه نیاز داشته باشند از تغییرات یا رخدادهای یکدیگر مطلع شوند، بهتر است این ارتباط با وابستگی مستقیم و غیرضروری همراه نباشد. استفاده از سازوکارهای ارتباطی مناسب میتواند به حفظ استقلال ماژولها کمک کند. در کنار Navigation، شناخت روشهای ارتباطی در Prism به شما امکان میدهد ساختاری طراحی کنید که در آن بخشهای برنامه بتوانند با حفظ مسئولیتهای جداگانه، با یکدیگر تعامل داشته باشند.
این آموزش Prism برای چه کسانی مناسب است؟
این دوره برای توسعهدهندگانی مناسب است که با مفاهیم پایه C# و WPF آشنا هستند و میخواهند معماری ماژولار را در اپلیکیشنهای دسکتاپ بهتر درک کنند. اگر در پروژههای WPF با تعداد زیادی View و قابلیت روبهرو هستید، یادگیری Prism میتواند به شما کمک کند مسئولیتهای برنامه را جدا کنید و ساختار منظمتری برای رابط کاربری و منطق بخشهای مختلف در نظر بگیرید. سطح متوسط دوره نیز برای افرادی مناسب است که تجربه اولیه توسعه رابط کاربری در دات نت را دارند.
همچنین این آموزش برای برنامهنویسانی مفید است که میخواهند نحوه راهاندازی برنامه با Bootstrapper و Shell، سازماندهی Moduleها و مدیریت Navigation را بشناسند. آشنایی با این مفاهیم دید روشنتری از چگونگی ترکیب بخشهای مستقل در یک اپلیکیشن بزرگتر ایجاد میکند. Prism تنها راه طراحی معماری ماژولار نیست، اما شناخت آن برای توسعهدهندگانی که با پروژههای مبتنی بر WPF سروکار دارند، میتواند درک آنها را از جداسازی مسئولیتها و کاهش وابستگی میان اجزای برنامه تقویت کند.
سرفصل مطالب آموزش ویدئویی Prism در WPF
فصل اول: شروع به کار با Prism- معرفی Prism
- مزیت های استفاده از Prism در WPF
- دانلود و راه اندازی Prism
- نصب Prism
- اجزای تشکیل دهنده ی Prism
- Region ها
- View ها
- Module ها
- طراحی برنامه بر اساس Prism
- ساخت اولین برنامه با Prism
- تعریف Bootstrapper
- راه اندازی پروژه ی مورد نظر
- ساخت یک Unity Bootstrapper
- ساخت یک MEF Bootstrapper
- تعریف Shell
- ایجاد یک Unity Shell
- ایجاد یک MEF Shell
- تعریف Region ها
- تعریف RegionManager
- ساخت یک Region
- تعریف Custom Region ها
- ساخت یک Custom Region
- تعریف Module ها
- ساخت Module
- استفاده از RegisteringDiscovering در Module ها
- استفاده از RegisterLoad در کار با Module ها در کد
- استفاده از RegisterLoad در کار با Module ها در Directory
- استفاده از RegisterLoad در کار با Module ها در فایل XAML
- استفاده از RegisterLoad در کار با Module ها در فایل App.config
- استفاده از RegisterLoad در کار با Module ها در کد در MEF
- راه اندازی ماژول ها
- تعریف View
- ساخت View ی ساده
- ساخت View بر اساس الگوی MVVM
- تعریف View Composition
- تعریف View Discovery
- پیاده سازی View Discovery
- تعریف View Injection
- پیاده سازی View Injection
- تعریف ارتباط در برنامه های Prism
- بررسی و معرفی کار با Command ها
- معرفی DelegateCommand ها
- کار با DelegateCommand ها
- معرفی CompositeCommand ها
- کار با CompositeCommand ها
- معرفی Event Aggregation
- کار با Event Aggregation و اینترفیس IEventAggregator
- معرفی Shared Service ها
- کار با Shared Service ها
- معرفی RegionContext
- کار با RegionContext
- معرفی Stated-Based Navigation
- استفاده از Stated-Based Navigation در بازتاب تغییرات حالت برنامه
- استفاده از Stated-Based Navigation در نمایش داده ها
- استفاده از Stated-Based Navigation در کنترل Interaction های کاربر
- معرفی Region Navigation
- پیاده سازی Region Navigation
- بررسی نقش View و ViewModel
- پیاده سازی نقش View و ViewModel
- بررسی ارسال پارامتر در Navigation
- پیاده سازی ارسال پارامتر در Navigation
- بررسی پیمایش به View های موجود در برنامه
- پیاده سازی پیمایش به View های موجود در برنامه
- بررسی تایید و لغو Navigation
- پیاده سازی تایید و لغو Navigation
- بررسی Navigation Journal برای پیاده سازی قابلیت Back و Forward
- پیاده سازی Navigation Journal برای پیاده سازی قابلیت Back و Forward







