Model View Controller
![](http://upload.wikimedia.org/wikipedia/commons/thumb/b/b5/ModelViewControllerDiagram2.svg/350px-ModelViewControllerDiagram2.svg.png)
Модел–Харагдац–Удирдлага (MVC) нь ПХ-ийн архитектур бөгөөд[1], ө/х-л ПХ-ийн инженерчилэл-д ашиглагддаг архитектур загвар юм . Энэхүү загвар нь бизнес логикийг дэлгэцийн зохиомжоос тусгаарласнаар тест болон хөгжүүлэлтийн дараа арчилгаа тордолгоо хийхэд тус тусад нь хөгжүүлэх боломж олгоно.
Модел нь мэдээллийг удирдах эсвэл мэдээлэл өөрчлөгдөхөд observer-үүдийг анхааруулахад ашиглагдна. Модел нь домайн логик гэж нэрлэгдэх бөгөөд түүхий өгөгдөл дээр боловсруулалт хийсэн хэсэг юм. Жишээ нь өнөөдөр хэрэглэгчийн төрсөн өдөр мөн эсэхийг бодох, мөнгөн дүнгүүд, татварууд, кредит картаар авсан барааны хүргэлтийн зардал бодох гэх мэт. Хэрвээ модел нь төлвөө өөрчилвөл түүнтэй холбоотой харагдац-ууд бас өөрчлөгднө.
Харагдац гэдэг нь моделийг хувиргаж харагдах байдалд шилжүүлснийг хэлнэ, ихэвчлсэн дэлгэцийн харагдах байдал байна. Хэд хэдэн харагдах байдал нь ганцхан моделийг өөр өөр зорилгоор ашигласан байж болно.
Удирдлага нь оролтуудыг хүлээн аваад моделийг дуудаж хариу буцаах үйлдлийг бэлдэнэ. Удирдлага нь оролтуудыг зөвшөөрч тэрхүү оролтууд дээр үндэслэгдсэн үйлдлүүдийг моделийн тусламжтайгаар боловсруулах үүрэгтэй.
![Model View Controller Process](http://upload.wikimedia.org/wikipedia/commons/thumb/f/fd/MVC-Process.png/220px-MVC-Process.png)
MVC загвар Вэб апликэйшн хөгжүүлэлтэнд их ажиглагддаг бөгөөд HTML эсвэл аппликэйшн-ээр хөрвүүлэгдсэн XHTML нь Харагдац-ын үүрэг гүйцэтгэдэг. Удирдлага нь GET эсвэл POST-оор өгөгдлийг аваад юу хийхээ шийднэ( голдуу Модел дээр байгаа обьектуудыг ашиглан бизнесийн үйл ажиллагааг хийнэ)
MVC-г вэб төвтэй фрэймворкууд хэрэгжүүлсэн байдал
[засварлах | кодоор засварлах]ABAP Objects
[засварлах | кодоор засварлах]Actionscript
[засварлах | кодоор засварлах]- PureMVC Framework for Actionscript.
ASP
[засварлах | кодоор засварлах]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
[засварлах | кодоор засварлах]Erlang
[засварлах | кодоор засварлах]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
[засварлах | кодоор засварлах]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.[2]
- WebObjects
- WebWork
- Wicket
- Web Dynpro Java
JavaScript
[засварлах | кодоор засварлах]MVC web application frameworks:
- SproutCore
- PureMVC Framework for JavaScript
- JavascriptMVC Javascript MVC framework based upon jQuery core.[3]
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
[засварлах | кодоор засварлах].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.[4]
- 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
[засварлах | кодоор засварлах]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
- ↑ Reenskaug, Trygve. "MVC XEROX PARC 1978-79". Retrieved 2008-06-09.
- ↑ "Product Review: WaveMaker's point-and-click Java". Infoworld. April 24, 2008. Retrieved 2008-04-25.
- ↑ "JavascriptMVC Learning Center". Archived from the original on 2012-09-01. Retrieved 2010-06-03.
- ↑ http://docs.djangoproject.com/en/dev/faq/general/#django-appears-to-be-a-mvc-framework-but-you-call-the-controller-the-view-and-the-view-the-template-how-come-you-don-t-use-the-standard-names