Model View Controller

[thumb|350px|Модел-Харагдац-Удирдлага ухагдахуун. Шулуун зураас нь шууд холбоосыг илэрхийлэх бөгөөд, тасархай шугам нь шууд биш виа [Observer pattern|observer ( жишээ нь) дамжсан холбоосыг илэрхийлнэ.]]

**Модел–Харагдац–Удирдлага** (**MVC**) нь ПХ-ийн архитектур бөгөөд, ө/х-л ПХ-ийн инженерчилэл-д ашиглагддаг архитектур загвар юм . Энэхүү загвар нь бизнес логикийг дэлгэцийн зохиомжоос тусгаарласнаар тест болон хөгжүүлэлтийн дараа арчилгаа тордолгоо хийхэд тус тусад нь хөгжүүлэх боломж олгоно. 

**Модел** нь мэдээллийг удирдах эсвэл мэдээлэл өөрчлөгдөхөд observer-үүдийг анхааруулахад ашиглагдна. Модел нь домайн логик гэж нэрлэгдэх бөгөөд түүхий өгөгдөл дээр боловсруулалт хийсэн хэсэг юм. Жишээ нь өнөөдөр хэрэглэгчийн төрсөн өдөр мөн эсэхийг бодох, мөнгөн дүнгүүд, татварууд, кредит картаар авсан барааны хүргэлтийн зардал бодох гэх мэт. 
Хэрвээ модел нь төлвөө өөрчилвөл түүнтэй холбоотой харагдац-ууд бас өөрчлөгднө. 

**Харагдац** гэдэг нь моделийг хувиргаж харагдах байдалд шилжүүлснийг хэлнэ, ихэвчлсэн дэлгэцийн харагдах байдал байна. Хэд хэдэн харагдах байдал нь ганцхан моделийг өөр өөр зорилгоор ашигласан байж болно.

**Удирдлага** нь оролтуудыг хүлээн аваад моделийг дуудаж хариу буцаах үйлдлийг бэлдэнэ. Удирдлага нь оролтуудыг зөвшөөрч тэрхүү оролтууд дээр үндэслэгдсэн үйлдлүүдийг моделийн тусламжтайгаар боловсруулах үүрэгтэй.

thumb|size=320|alt=Model View Controller Process|Model View Controller Процесс.

MVC загвар Вэб апликэйшн хөгжүүлэлтэнд их ажиглагддаг бөгөөд HTML эсвэл аппликэйшн-ээр хөрвүүлэгдсэн XHTML нь Харагдац-ын үүрэг гүйцэтгэдэг. Удирдлага нь GET эсвэл POST-оор өгөгдлийг аваад юу хийхээ шийднэ( голдуу Модел дээр байгаа обьектуудыг ашиглан бизнесийн үйл ажиллагааг хийнэ)

## MVC-г вэб төвтэй фрэймворкууд хэрэгжүүлсэн байдал 
### ABAP Objects 
* Business Server Pages (BSP)
* Web Dynpro ABAP

### Actionscript 
* PureMVC Framework for Actionscript.

### ASP 
* ASP Xtreme Evolution (AXE)

### C++ 
* Wt - Web toolkit A library and application server for web applications using a desktop-like event-driven MVC pattern.

### CFML - Adobe ColdFusion, Railo, and Open BlueDragon 
* ColdFusion on Wheels A convention over configuration framework similar to Ruby on Rails.
* Fusebox Fusebox does not force the Model–View–Controller (MVC) pattern or Object-Oriented Programming (OOP) on the developer. However, either or both of these development approaches can be used with Fusebox.
* Mach-II A framework that focuses on trying to ease software development and maintenance.
* Model-Glue Through a simple implementation of Implicit Invocation and Model–View–Controller, they allow applications to be well organized without sacrificing flexibility.
* PureMVC Framework for ColdFusion.

### Delphi 
* Delphi On Rails

### Erlang 
* Chicago Boss

### Flex 
* Cairngorm one of the primary open source frameworks for application architecture in Adobe Flex.
* PureMVC ActionScript 3 MVC framework for Flex, Flash and AIR development.

### Groovy 
* Grails

### Java 
MVC web application frameworks:
* Aranea
* Cocoon
* Induction
* JSF
* Oracle Application Framework
* PureMVC, a framework for Java
* Sling, used to create content based applications on top of JCR. Supported scripting languages are JSP, server-side JavaScript, Ruby, Velocity
* Spring MVC Framework
* Struts
* Struts2
* Stripes
* Tapestry
* Wavemaker, a WYSIWYG development platform for Ajax web applications.
* WebObjects
* WebWork
* Wicket
* Web Dynpro Java

### JavaScript 
MVC web application frameworks:
* SproutCore
* PureMVC Framework for JavaScript
* JavascriptMVC Javascript MVC framework based upon jQuery core.

### Informix 4GL 
* IBM Informix-4GL MVC models to use for Informix 4GL report and form creation
* EGL — IBM's EGL MVC Implementation

### Lasso 
http://code.google.com/p/engineroom/ engineRoom is an MVC-like framework

### Lua 
* Orbit

### .NET 
* ASP.NET MVC Framework
* Maverick.NET
* MonoRail An ActionPack inspired MVC framework from the Castle Project
* PureMVC Framework for C#
* Spring Framework.NET
* Bistro Framework

### Perl 
* Catalyst An MVC-based avant-garde Web framework;
* Maypole An MVC Web framework, superseded by Catalyst;

### PHP 
* CakePHP A webapplication framework modeled after the concepts of Ruby on Rails.
* CodeIgniter An MVC framework for PHP4 (up-compatible with PHP 5.3.0 as of version 1.7.2).
* Exponent CMS A Content Management System web application framework using its own MVC framework modeled after Rails.
* eZ Publish Based on eZ Components is an object-oriented web application framework written in PHP that separates its functionality into several abstraction layers, following a strict MVC approach.
* Jaws is a framework and content management system for building dynamic web sites.
* Joomla! v1.5.x is an open source content management system that employs the MVC model for its extensions, called components and modules.
* MODx A full-featured open source OOP MVC/ORB xPDO-based CMS. 
* Odin Assemble A Small footprint PHP based MVC framework.
* phpXCore A MVC design pattern based PHP content management framework compatible with PHP4 and PHP5.
* PureMVC A framework for PHP.
* Qcodo An open-source PHP 5 web application framework.
* SilverStripe Contains a fully fledged PHP 5.2 ORM/MVC framework focused on building websites.
* Switch board (framework) A PHP 5 MVC framework with routing.
* Symfony Framework A PHP 5 MVC framework modeled after the concepts of Ruby on Rails.
* Zend Framework A PHP 5-based MVC framework conceptually similar to Ruby on Rails.
* Yii Framework A new high-performance component-based PHP 5-based framework for developing large-scale Web applications.

### Python 
* Django A complete Python web application framework. Django prefers to call its MVC implementation *MTV*, for Model-Template-View.
* Enthought The Enthought Tool Suite brings the Model–view–controller mindset to scientific GUIs and visualization
* Pylons—Python Web Framework
* TurboGears for Python
* web2py A scalable full-stack enterprise level Python agile web development framework with support for highly flexible and rapid database-driven web application development.
* Zope Web application server
* Plone Content management system built on top Zope
* PureMVC Framework for Python

### Ruby 
* Camping
* Merb
* Nitro
* Ruby on Rails
* Monkeybars
* PureMVC Framework for Ruby.

### Smalltalk 
* AIDA/Web

### XML 
* XForms—XForms has an integrated Model–view–controller architecture with an integral dependency graph that frees the programmer from specifically having to perform either push or pull operations.

### Other 
* Purenode Purenode is a website-programming tool. Its controllers are designed on a node-based interface, which may query the database and render templates.

## Бусад харах 
* Trygve Reenskaug—first formulated the model–view–controller pattern
* Architectural patterns
* Model View Presenter
* Model 1
* Model 2
* Three-tier (computing)
* The Observer design pattern
* The Template Method design pattern
* The Presentation-abstraction-control (PAC) pattern
* The naked objects pattern, often positioned as the antithesis of MVC, though Reenskaug suggests otherwise
* Model–View–Adapter
* Model View ViewModel
* Application View Controller an alternative to Model View Controller

Ангилал:Программ хангамж зохиох хэв загвар
Ангилал:Программын архитектур