الگوی MVVM
MVVM مخفف Model-View-View Model می باشد. این الگو از اتصال داده دو سویه بین نما و مدلِ نما پشتیبانی می کند. الگوی MVVM انتشار خودکار تغییرات را در حالت مدلِ نما به نما میسر می کند. معمولا مدلِ نما از الگوی ناظر برای اطلاع رسانی تغییرات ایجاد شده در مدلِ نما به مدل استفاده می کند. شکل۴ الگوی MVVM را نشان می‌دهد :

model
مدل: مدل شامل مجموعه ای از کلاس‌ها می باشد که منطق کار را مشخص می کنند، مدل همچنین قوانین کار برای داده‌ها را نیز مشخص می کند، به عبارت دیگر مشخص می‌کند که چگونه باید داده تغییر و دستکاری گردد.
نما: نما نشان دهنده ی کامپوننت های واسط کاربر از قبیل CSS، jQuery، html و غیره می باشد. نما تنها مسئول نمایش داده‌هایی می باشد که از به عنوان یک نتیجه از سمت مدلِ نما دریافت می‌شود. نما همچنین مدل را به واسط کاربری تبدیل می‌کند.
مدلِ نما: مدلِ نما مسئول نمایش متدها، دستورات و دیگر خصوصیت‌هایی است که به حفظ حالت نما کمک کرده، مدل را به عنوان نتیجه عملیات انجام شده بر روی نما تغییر داده و رویداد ها را در نما ایجاد می کند.
این الگو معمولا توسط WPF، Silverlight، Caliburn، nRoute و غیره استفاده می‌شود. نقاط کلیدی در مورد الگوی MVVM :

کاربر با نما در تعامل است.
رابطه ی چند-به-یک بین نما و مدلِ نما وجود دارد. به عبارت دیگر چند نما می تواند به یک مدلِ نما ، نگاشت شود.
نما دارای یک مرجع به مدلِ نما می باشد اما مدلِ نما هیچ اطلاعاتی در مورد نما ندارد.
از اتصال داده دو سویه بین نما و مدلِ نما پشتیبانی می کند.