
آموزش کار با TabControl در پریزم Prism
آموزش کار با TabControl در پریزم Prism یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته ی آموزشی مسائل و راه حل ها در Prism: کار با TabControl در Prism است که با نام اصلی Prism Problems & Solutions: Mastering TabControl از شرکت Pluralsight منتشر شده است.
اپلیکیشن های مرکب (Composite Application ها)
اپلیکیشن مرکب و یا composite شامل ماژول های loosely coupled متعددی است که به صورت پویا کشف شده و در زمان runtime ایجاد می گردند. این ماژول ها می توانند شامل کامپوننت های بصری و غیر بصری باشند. هر کدام از این کامپوننت ها نمایانگر برش های عمودی و یا vertical slice هایی از کل سیستم می باشند. یک کامپوننت بصری مانند یک view از یک shell مشترک که نقش یک میزبان برای تمامی content و یا محتوای اپلیکیشن را ایفا می کند ساخته می شود. اپلیکیشن های composite سرویس هایی را ایجاد می کنند تا این کامپوننت های مربوط به ماژول ها در کنار یکدیگر قرار بگیرند. ماژول ها می توانند سرویس های بیشتری را نیز که مربوط به عملکرد و یا functionality خاصی در برنامه است، ارائه بدهند. در یک نگاه سطح بالا، یک اپلیکیشن composite پیاده سازی الگوی طراحی composite view است. این الگوی طراحی، واسط کاربری برنامه را به صورت بازگشتی توصیف می کند. در این توصیف بازگشتی view ها می توانند شامل فرزند هایی باشند که خود آن فرزند ها نیز view می باشند. سپس در زمان runtime، این view ها ایجاد شده و این موضوع در قیاس با ایجاد شدن این view ها در زمان design time و به صورت ایستا می باشند.
Prism چیست؟
تکنولوژی هایی از قبیل WPF و Silverlight امکان این را فراهم می کنند تا برنامه نویسان بتوانند با یک روش ساده به سرعت و به سادگی اپلیکیشن هایی را ایجاد کنند که تجربه کاربری قوی دارند. اما علی رغم اینکه این تکنولوژی ها در ایجاد کردن تفکیک بین presentation layer و logic layer موفق عمل کردهاند، چالش مربوط به ساختن اپلیکیشن هایی که قابلیت نگهداری بالایی را دارند را حل نکردند. طبیعتاً در پروژه های کوچک برنامه نویسانی که حداقل تجربه در توسعه نرم افزار را دارند می توانند اپلیکیشن هایی را طراحی و ایجاد کنند که قابلیت نگهداری بالایی دارند. اما با افزایش تعداد نیازمندیها و پیچیدگی تشکیل نرم افزار، کنترل کردن اجزای تشکیل دهنده نرم افزار مورد نظر دشوارتر خواهد شد. راه حل چنین مشکلاتی، استفاده کردن از اپلیکیشن های مرکب composite می باشد.
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 است.
استفاده از TabControl در Prism چگونه انجام میشود؟
در برنامههایی که با Prism توسعه داده میشوند، TabControl امکان نمایش چند View را در قالب تبهای جداگانه فراهم میکند. این قابلیت بهخصوص در اپلیکیشنهای مرکب مفید است؛ جایی که بخشهای مختلف برنامه بهصورت ماژولار طراحی شدهاند و کاربر باید بتواند میان چند نمای متفاوت جابهجا شود. آشنایی با نحوه استفاده از TabControl در Prism به توسعهدهندگان کمک میکند رابط کاربری منظمتری بسازند و نمایش Viewها را با ساختار معماری برنامه هماهنگ کنند.

در این آموزش پیشرفته، کار با TabControl در Prism و شیوه مدیریت Tab Itemها بررسی میشود. این موضوع برای برنامههایی اهمیت دارد که محتوای رابط کاربری آنها در طول اجرای برنامه تغییر میکند. درک ارتباط میان TabControl، Viewها و سازوکارهای Prism میتواند به پیادهسازی رابطهایی کمک کند که توسعه و نگهداری آنها سادهتر باشد و با نیازهای پیچیدهتر کاربران هماهنگ شوند.
چگونه Tab Item را در Prism ببندیم؟
در رابطهای کاربری مبتنی بر تب، گاهی لازم است کاربر بتواند یک تب را پس از پایان کار ببندد؛ برای مثال، زمانی که چند صفحه یا نمای مختلف بهطور همزمان باز هستند. پیادهسازی این رفتار در یک برنامه مبتنی بر Prism نیازمند توجه به نحوه مدیریت Viewها و ارتباط آنها با ساختار رابط کاربری است. مدیریت صحیح تبها به جلوگیری از باقی ماندن نماهای غیرضروری در رابط کاربری کمک میکند و تجربه کار با برنامه را منسجمتر میسازد.
در این دوره، بستن Tab Itemها یکی از موضوعات اصلی کار با TabControl است. یادگیری این قابلیت برای توسعهدهندگانی مفید است که میخواهند رابطهایی با تبهای قابل مدیریت طراحی کنند. هنگام پیادهسازی چنین رفتاری باید به چرخه عمر Viewها و نحوه کنترل وضعیت رابط کاربری توجه داشت تا حذف یک تب با ساختار کلی برنامه سازگار باشد و رفتار سایر بخشها را مختل نکند.
Child Navigation در Prism چیست؟
Navigation در Prism روشی برای مدیریت جابهجایی میان Viewها در برنامههای مبتنی بر این فریمورک است. در ساختارهای پیچیدهتر، ممکن است یک View شامل بخشهای داخلی دیگری باشد که هرکدام به مسیریابی یا نمایش محتوای مستقل نیاز دارند. Child Navigation به این سناریوها مربوط میشود و در کنار ساختار ماژولار Prism، امکان طراحی رابطهایی را فراهم میکند که اجزای داخلی آنها نیز بتوانند متناسب با نیاز برنامه تغییر کنند.

در این آموزش، Child Navigation در کنار قابلیتهای TabControl بررسی میشود تا ارتباط میان تبها و نمایش Viewهای داخلی بهتر درک شود. این موضوع برای توسعهدهندگان پیشرفتهای مناسب است که با مفاهیم پایه Prism آشنا هستند و میخواهند رفتارهای پیچیدهتری در رابط کاربری ایجاد کنند. شناخت نحوه مدیریت Navigation در نماهای تودرتو به طراحی ساختارمندتر برنامه و تفکیک بهتر مسئولیتهای بخشهای مختلف رابط کاربری کمک میکند.
این آموزش پیشرفته Prism برای چه کسانی مناسب است؟
این دوره برای توسعهدهندگان C# و برنامهنویسانی مناسب است که با مفاهیم پایه Prism آشنایی دارند و اکنون میخواهند امکانات پیشرفتهتری برای مدیریت رابط کاربری به کار بگیرند. اگر در حال ساخت یک اپلیکیشن مرکب هستید و به نمایش چند View در تبهای مختلف، بستن تبها یا مدیریت Navigation در نماهای داخلی نیاز دارید، موضوعات این آموزش میتوانند در درک راهکارهای مربوط به این سناریوها مفید باشند.
آشنایی قبلی با Viewها، ماژولها و اصول جداسازی مسئولیتها در Prism به استفاده بهتر از مباحث دوره کمک میکند. تمرکز آموزش بر مسائل مشخصی در کار با TabControl است؛ بنابراین برای افرادی مناسب است که میخواهند از شناخت کلی فریمورک فراتر بروند و با جزئیات بیشتری درباره ترکیب قابلیتهای رابط کاربری و سازوکارهای Navigation کار کنند.
سرفصل مطالب آموزش ویدئویی کار با TabControl در Prism
فصل اول: مقدمه- مقدمه
- دوره های آموزشی دیگر که باید استفاده کنید
- مسائلی که حل شده اند
- مسئله چیست؟
- مقدمه
- دمو: نقطه ی شروع
- مسئله: Inject کردن View ها
- راه حل: Inject کردن View ها
- سه گزینه برای Inject کردن View ها
- دمو: Inject کردن View ها
- Inject کردن View ها: چه راه حلی را استفاده کنیم؟
- مسئله: Header Text
- راه حل: یک Style ساده
- دمو: Header Text
- مسئله: کنترل کردن Tab Instance ها
- راه حل: اینترفیس INavigationAware
- دمو: کنترل کردن Tab Instance ها
- یک نکته ی کوچک
- چه چیزی باید در ادامه انجام داد؟
- مقدمه
- مسئله: اضافه کردن یک دکمه ی Close
- راه حل: اضافه کردن یک دکمه ی Close
- دمو: اضافه کردن یک دکمه ی Close
- مسئله: حذف کردن TabItem ها
- راه حل: حذف کردن TabItem ها
- دمو: حذف کردن TabItem ها
- مسئله: حذف کردن View از Region ها
- راه حل: حذف کردن View از Region ها
- دمو: حذف کردن View از Region ها
- مسئله: جلوگیری کردن از بسته شدن
- راه حل: جلوگیری کردن از بسته شدن
- دمو: جلوگیری کردن از بسته شدن
- مسئله: زمان بسته شدن یک TabItem را چگونه تشخیص بدهیم
- راه حل: زمان بسته شدن یک TabItem را چگونه تشخیص بدهیم
- دمو: زمان بسته شدن یک TabItem را چگونه تشخیص بدهیم
- چه چیزی باید در ادامه انجام داد؟
- مقدمه
- مسئله: جلوگیری کردن از Exception ها
- یک راه حل با یک مسئله
- این راه حل چه مشکلی دارد؟
- راه حل: یک RegionNaviagationContentLoader سفارشی
- دمو: ساختن یک RegionNaviagationContentLoader سفارشی
- مسئله: Navigate کردن در یک TabItem مناسب
- راه حل: Region Behavior ها
- دمو: ساختن یک RegionBehavior سفارشی
- چه چیزی باید در ادامه انجام داد؟







