الگوی Model View Controller) MVC) یکی از اولین الگوهایی است که برای اپلیکیشنهای تحت وب توسعه یافت. یک الگوی MVC به ما اجازه میدهد که اپلیکیشن را با جداسازی نقاط تمرکزمان گسترش دهیم که در واقع این کار باعث تسهیل تست کردن، نگهداری و گسترشپذیری میشود. در روشهای قدیمی گسترش اپلیکیشن یک view را با استفاده از windows و یا user controlها میساختیم و یا یک page ایجاد میکردیم و همهی کدهای منطقی را در فایل code-behind مینوشتیم که کدها خود باید بخشی از کلاس تعریف view باشند. این کار باعث میشد تا حجم کلاس view زیاد شود و همچنین باعث وابستگی زیاد بین UI، منطق data binding و عملیات میشد. معماری MVC ایجاد شد تا کدهای سطح UI را کاهش دهد و همچنین کد را تمیزتر و قابل مدیریتتر کند.
معماری Model View ViewModel) MVVM) شکل اصلاحشدهی MVC است و اتصال دوطرفه بین View و ViewModel را پشتیبانی میکند.
این معماری اجازه میدهد که تغییرات ViewModel بطور خودکار روی View انجام شود.
معماری MVVM شامل سه بخش کلیدی است:
- بخش Model: دادهها را به همراه اعتبارسنجی و عملیات منطقی نمایش میدهد.
- بخش View :View با behaviorها، eventها و data binding فعال است. View با ViewModel هماهنگ است که امکان جداسازی نمایشها را فراهم میکند و متدها و دستورات مدیریت و دستکاری مدل را نشان میدهد.
- بخش ViewModel :View را از Model جدا میکند و حاوی متدها و دستورات دستکاری دادهها Model است.