نمایش نتایج 1 تا 35 از 35

نام تاپیک: بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #4
    کاربر تازه وارد آواتار Somayeh_Zamani
    تاریخ عضویت
    دی 1387
    محل زندگی
    Tehran
    پست
    63

    نقل قول: بحث و تبادل نظر در مورد MVVM Pattern در Wpf Programming

    Patterns، به بیان ساده؛ یعنی استفاده از Solutionهای ارائه شده برای یک مسئله خاص، در حل مسائل مشابه. به عبارت دیگر با استفاده از Design Patterns، می توانیم به استفاده مجدد از تجربه برسیم (Experience Reuse).
    دوستان توجه داشته باشند که قبلا یک تاپیک هم با عنوان Design Pattern، در همین سایت، ساخته شده بوده.
    http://www.barnamenevis.org/sh...ad.php?t=99235

    همراه با تکنولوژی Wpf مایکروسافت، یک Pattern جدید به نام MVVM) Model-View-ViewModel)، متولد شد. این Pattern، ترکیبی از همان Patternهای قدیمی MVC و MVPهست.
    چرا یک Pattern جدید ارائه شد؟ (این Pattern از قبل ارائه شده بود و این تکنولوژی Wpf بود که با هدف کار با این Pattern، توسط مایکروسافت ارائه شد. و اصلا مایکروسافت Wpfرو برای اجرای MVVMعرضه کرد.)

    1. اول از همه، تکنولوژی Wpf، نوعی از تکنولوژی رو به ما ارائه کرده که به طور کامل می تونه نگرش ما رو نسبت به طراحی و کد تغییر بده. با پیروی از MVVM Pattern که در خورِ این تکنولوژی است، ما می توانیم کاملا به طراحی UI بپردازیم، در حالی که این لایه، هیچ چیز راجع به لایه Model نداند.
    2. نکته دوم، استفاده مجدد هست. مثلا ما به راحتی می توانیم یک Wpf Application رو به یک Silverlight app تبدیل کنیم.

    Model: هر کسی که از قبل بر روی Applicationهای چند لایه کار کرده، می دونه که Model چیه؟ مدل، گروه entityهای موجودِ برنامه است. من این لایه رو معمولا با Linq2Sql یا Entity framework مایکروسافت ایجاد می کنم. شما چطور؟

    View: همان کدهای XAML گرافیکی است که برای تولید UI استفاده می شود و هیچ چیز بیش از آن نیست. (طراحی User Interface یک Application حرفه ای اصلا کار ساده ای نیست. اینکه در نظر بگیریم، UI قراره یک سیستم اساسی رو نمایش بده و در عین حال، نیازهای سلیقه ای و پیش بینی نشده ی کاربرانش رو ارضا کنه، می تونه باعث بشه که UI، تبدیل به فرارترین ناحیه ی بیشتر Applicationها بشه.)

    ViewModel: بر خلاف Presenter در MVP Pattern، یک ViewModel، به هیچ Referenceی به View، نیاز ندارد. View به Propertyهای موجود در ViewModel، بایند می شود. که این Propertyها، همان Propertyهایی هستند که دیتاهای مربوط به آبجکت های لایه Model رو ارائه می دهند. بایندیگ ها بین Viewو ViewModel راحت انجام می شود. یک آبجکتِ ViewModel، به عنوان DataContext یک Set ، View می شود. اگر مقادیرِ Propertyها در ViewModel، تغییری کنه، مقادیر جدید، از طریق Data Binding به صورت خودکار به View اعمال می شه.
    زمانی که کاربر، بر روی یک Button در View، کلیک می کند، یک Command موجود در ViewModel، به منظور انجام عمل درخواست شده، اجرا می شود.
    ViewModel (نه View!)، همه تغییراتی که می خواهیم تو دیتاهای لایه Model بدهیم، اعمال می کند. کلاس های View، اصلا نمی دانند که کلاس های Model، وجود دارند یا نه! این در حالی است که ViewModel و Model هم از View، هیچ خبری ندارند. و در واقع، Model به طور کامل، نسبت به وجود یا عدم وجودِ Viewو ViewModel، بی اطلاع است. (هر لایه ای فقط لایه ی یه دونه پایین تر رو می شناسه تا می رسیم به Model، که فقط خودشو می شناسه!)

    Great
    ! این یعنی یک طراحی بسیار Loosely Coupled) .Loosely Coupled یک اصطلاح متداول در برنامه نویسی است؛ بدین معنا که یک زوج لایه یا یک کوپل لایه، دارای وابستگی و درهم تنیدگی سستی باشند. یعنی در واقع از هم مستقل بوده و جدا کردن این دو لایه از هم، هیچ مشکلی برای دیگری بوجود نیاورد. )


    " اگر فونتش یه کم بد شده بود، عذر می خوام چون تو Word، تایپ کرده بودم و بعد کپی کردم. "

    SoZa
    آخرین ویرایش به وسیله Somayeh_Zamani : شنبه 05 دی 1388 در 13:15 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •