Você está na página 1de 5

09/09/2015

MVCWikipdia,aenciclopdialivre

MVC
Origem:Wikipdia,aenciclopdialivre.

Modelviewcontroller(MVC),emportugusmodeloviso
controlador,umpadrodearquiteturadesoftware(design
pattern)queseparaarepresentaodainformaodainterao
dousuriocomele.Omodelo(model)consistenosdadosda
aplicao,regrasdenegcios,lgicaefunes.Umaviso(view)
podeserqualquersadaderepresentaodosdados,comouma
tabelaouumdiagrama.possveltervriasvisesdomesmo
dado,comoumgrficodebarrasparagerenciamentoeuma
visotabularparacontadores.Ocontrolador(controller)faza
mediaodaentrada,convertendoaemcomandosparaomodelo
ouviso.AsideiascentraisportrsdoMVCsoareusabilidade
decdigoeseparaodeconceitos.

Umdiagramasimplesexemplificando
arelaoentreModel,Viewe
Controller.Aslinhasslidasindicam
associaodiretaeastracejadas
indicamassociaoindireta.

ndice
1Histria
2Interaodoscomponentes
3Usoemaplicaesweb
4Justificativa
5Plataformasdedesenvolvimento
5.1COLDFUSION
5.2ActionScript3
5.3ASP
5.4.NET
5.5Harmony
5.6Java
5.7Perl
5.8PHP
5.9Python
5.10Ruby
6Referncias
7Vertambm
8Leituraadicional

Histria
OpadroMVCfoidescritopelaprimeiravezem1979[1]porTrygveReenskaug,quetrabalhavano
Smalltalk,naXeroxPARC.AimplementaooriginaldescritaemprofundidadenoartigodeSteve
Burbeck,Ph.D.comottulo:"ApplicationsProgramminginSmalltalk80:HowtouseModelView
Controller".[2]

Interaodoscomponentes
https://pt.wikipedia.org/wiki/MVC

1/5

09/09/2015

MVCWikipdia,aenciclopdialivre

Almdedividiraaplicaoemtrstiposdecomponentes,odesenhoMVCdefineasinteraesentre
eles.
Umcontrolador(controller)podeenviarcomandosparasuavisoassociadaparaalterara
apresentaodavisodomodelo(porexemplo,percorrendoumdocumento).Eletambmpode
enviarcomandosparaomodeloparaatualizaroestadodomodelo(porexemplo,editandoum
documento).
Ummodelo(model)notificasuasvisesecontroladoresassociadosquandohumamudanaem
seuestado.Estanotificaopermitequeasvisesproduzamsadasatualizadasequeos
controladoresalteremoconjuntodecomandosdisponveis.UmaimplementaopassivadoMVC
montaestasnotificaes,devidoaaplicaononecessitardelasouaplataformadesoftwareno
suportlas.
Aviso(view)solicitadomodelo,atravsdocontrolador,ainformaoqueelanecessitapara
gerarumarepresentaodesada.

Usoemaplicaesweb
Apesardedesenvolvidaoriginalmenteparacomputaopessoal,oMVCfoiamplamenteadaptadocomo
umaarquiteturaparaasaplicaesWorldWideWebemtodasaslinguagensdeprogramaomaiores.
Muitosframeworksdeaplicaocomerciaisenocomerciaisforamcriadostendocomobaseesse
modelo.Estesframeworksvariamemsuasinterpretaes,principalmentenomodoqueas
responsabilidadesMVCsodivididasentreoclienteeservidor.
OsframeworkswebMVCmaisrecenteslevamumaabordagemdethinclientquecolocouquaseo
modelo,avisoealgicadocontroladorinteirosnoservidor.Nestaabordagem,oclienteenvia
requisiesdehiperlinkouentradadeformulrioaocontroladoreentorecebeumapginaweb
completaeatualizada(ououtrodocumento)daviso.Omodeloexisteinteiramentenoservidor.Como
astecnologiasdeclienteamadureceram,frameworkscomoJavaScriptMVCeBackboneforamcriadoso
quepermitequeoscomponentesMVCexecutemparcialmentenocliente(vertambmAJAX).
UmcasoprticoumaaplicaowebemqueavisoumdocumentoHTML(ouderivado)geradopela
aplicao.OcontroladorrecebeumaentradaGETouPOSTapsumestmulodoutilizadoredecidecomo
processla,invocandoobjetosdodomnioparatrataralgicadenegcio,eporfiminvocandouma
visoparaapresentarasada

Justificativa
Comoaumentodacomplexidadedasaplicaesdesenvolvidas,semprevisandoaprogramao
orientadaaobjeto,tornaserelevanteaseparaoentreosdadoseaapresentaodasaplicaes.Desta
forma,alteraesfeitasnolayoutnoafetamamanipulaodedados,eestespoderoserreorganizados
semalterarolayout.
Essepadroresolveesteproblemaatravsdaseparaodastarefasdeacessoaosdadoselgicade
negcio,lgicadeapresentaoedeinteraocomoutilizador,introduzindoumcomponenteentreos
dois:ocontrolador.

Plataformasdedesenvolvimento
COLDFUSION
ColdBox
https://pt.wikipedia.org/wiki/MVC

2/5

09/09/2015

MVCWikipdia,aenciclopdialivre

FW/1
FarCry
FuseBox
CFWheels
MachII
ColdSpring
ModelGlue
LightWire

ActionScript3
CairngormdaAdobe
PureMVC
Swiz

ASP
ASPXtremeEvolution
Toika
AJAXED

.NET
ASP.NETMVCoficialdaMicrosoft
CoficialdaMicrosoft
VersesExistentes:MVC2,MVC3,MVC4,MVC5
ASP.NETMVCnaprtica(http://www.tiselvagem.com.br/desenvolvimento/videoaulaaspnet
mvcnapraticaparte1/)Comunidade

Harmony
HarmonyFrameworkOficialdaVilesoft

Java
ApacheStruts
BrutosFramework(https://en.wikipedia.org/wiki/Brutos_Framework)
ClickFramework
JSF
Mentawai
NeoFramework
PlayFramework(https://en.wikipedia.org/wiki/Play_Framework)
SpringMVC
Tapestry
VRaptor
WebWork

Perl
Catalyst
Mojolicious
Gantry
https://pt.wikipedia.org/wiki/MVC

3/5

09/09/2015

MVCWikipdia,aenciclopdialivre

PHP
Akelos
CakePHPparaasverses4e5
CodeIgniterparaasverses4e5
FuelPHPparaverses5.3+
iGrape
KohanaFrameworkparaaverso5
LightVCparaaverso5.
Laravelparaaverso5.3+
Megiddo(http://github.com/Suga/Megiddo)paraaverso5
OraculumPHPFrameworkparaaverso5
PageletBoxIDEparaCelularWAPcomframeworkMVCembutidoemPHP5
Phalcon(http://phalconphp.com/pt)ExtensoemCvisandoaltaperformanceebaixoconsumo
derecursosparaaverso5
PHPBurn
PHPonTraxparaaverso5
PRADOparaaverso5
Seagull
Spaghetti*
Symfonyparaaverso5
VrticeFramework
XPTFrameworkparaaverso5
YiiFrameworkparaaverso5
ZendFrameworkdaZEND,mantenedoraoficialdoPHP5nopadroMVC
ZendFrameworkdaZEND,mantenedoraoficialdoPHP6nopadroMVC

Python
Django
TurboGears
Web2py

Ruby
Rails
Merb

Referncias
1. TrygveM.H.Reenskaug/MVC(http://heim.ifi.uio.no/~trygver/themes/mvc/mvcindex.html)XEROX
PARC197879
2. HowtouseModelViewControllerALLAN(MVC)(http://stwww.cs.uiuc.edu/users/smarch/st
docs/mvc.html)

Vertambm
Arquiteturamulticamada
Modeloemtrscamadas
Clienteservidor
Cluster
Listadeprotocolosderedes
https://pt.wikipedia.org/wiki/MVC

4/5

09/09/2015

MVCWikipdia,aenciclopdialivre

ProtocoloRPC
Redesdecomputadores
Sistemadeprocessamentodistribudo
Sockets

Leituraadicional
MVCeCamadas(http://fragmental.com.br/wiki/index.php/MVC_e_Camadas.html)
Obtidade"https://pt.wikipedia.org/w/index.php?title=MVC&oldid=43132503"
Categoria: Padresdeprojetodesoftware
Estapginafoimodificadapelaltimavez(s)16h19minde16deagostode2015.
EstetextodisponibilizadonostermosdalicenaCreativeCommonsAtribuioCompartilha
Igual3.0NoAdaptada(CCBYSA3.0)podeestarsujeitoacondiesadicionais.Paramais
detalhes,consulteasCondiesdeUso.

https://pt.wikipedia.org/wiki/MVC

5/5

Você também pode gostar