Você está na página 1de 16

MVC o acrnimo para Model View Controller , padro de projeto de

arquitetura voltado orientao de objetos, que tem como objetivo separar a


lgica de negcios (Model) da interface de usurio (View) e do fluxo da
aplicao (Controller), permitindo o desenvolvimento, teste e manuteno
isolada de ambos.
O MVC tambm permite a reutilizao de uma mesma lgica de negcios
atravs de vrias interfaces sem que, para isso, seja necessrio efetuar
grandes alteraes no cdigo.
Para que isso seja possvel, o desenvolvimento de uma aplicao feita em
camadas, cada uma com funes distintas, porm fundamentais e que
interagem entre si.

A camada Model responsvel por grande parte do cdigo escrito. nesta


camada que a lgica de negcios estar presente, com o objetivo de definir
e gerenciar toda a informao, bem como a notificao sobre possveis
mudanas ocorridas nos dados, como por exemplo, o estado de uma caixa de
texto ou a indicao de ativao de um checkbox.
A camada View compreende a interface de usurio e responsvel pelo
acesso aos dados contidos em Model e especifica como estes dados colhidos
sero apresentados ao usurio, como, por exemplo, um texto dentro de uma
textbox.
Por fim, a camada Controller responsvel pelo fluxo da aplicao, ou seja,
assume o mapeamento das aes efetuadas pelo usurio na camada View, por
meio de eventos e, com isso, permite que a camada Model seja alterada.
Esta arquitetura, representada em trs camadas objetiva simplesmente separar a
informao da apresentao, de modo que a manuteno seja funcional, pois o modelo
mantm a persistncia do negcio, uma vez que as funcionalidades da aplicao
encontram-se encapsuladas.
Criar uma aplicao utilizando o modelo MVC implica vantagens e desvantagens entre
as quais podemos citar:

VANTAGENS:
1. Fcil gerenciamento e manuteno;
2. Independncia entre camadas;
3. Gerenciamento de mltiplas interfaces utilizando um
mesmo modelo.
DESVANTAGENS:
1. No recomendado para aplicaes de pequeno porte;
2. Exige tempo para anlise e modelagem do sistema;
3. Demanda profissional com conhecimento especializado.
o A View muda, mas faz gestos (user gestures) para o
Controller e escuta mudanas no Model;
o O Model cego, mas escuta o Controller e fala para a View
sobre as mudanas nele prprio;
o O Controller surdo, fala para o Model quando mudar de
estado e v os gestos da View.
O padro MVC pode ser implementado em diversas
plataformas, bastando apenas que voc tenha o framework
adequado, conforme segue abaixo:
JAVA
o Apache Struts
o Mentawai
o Tapestry
o VRaptor
o WebWork
o Neo Framework
o Play! Framework
o Spring MVC
o JSF
o Click Framework
o Brutos
Alguns dos frameworks citados possuem links de acesso s
pginas para download e/ou informaes adicionais e tutoriais
que valem uma espiadinha.
Atualmente o mercado de trabalho em TI sofre com a baixa
quantidade de profissionais especializados neste padro de
projeto. Se voc se interessou pelo assunto e deseja se
aprofundar, a internet disponibiliza uma infinidade de artigos e
tutoriais de implementao para MVC correspondente a cada
uma das plataformas de desenvolvimento. uma boa
oportunidade de se ganhar destaque e ficar frente dos demais
profissionais.
COMPONENTES e FRAMEWORKS:
Container IoC

Spring http://www.springsource.org/

Guice http://picocontainer.codehaus.org/

PicoContainer http://code.google.com/p/google-guice/

EJB www.oracle.com/technetwork/java/javaee/ejb/index.html

CDI http://www.oracle.com/technetwork/articles/java/cdi-javaee-
bien-225152.html

Persistncia

Hibernate http://www.hibernate.org/

Spring Data http://www.springsource.org/

iBatis http://www.mybatis.org/

Torque http://db.apache.org/torque/

Castor http://www.castor.org/

JDO - interface que prov uma camada de abstrao aplicao -


armazenamento de dados.

Gerenciador de Transao

Spring AOP transaction http://www.springsource.org/


EJB (JTA) www.oracle.com/technetwork/java/javaee/ejb/index.html

Framework Web

Click http://click.apache.org/

Wicket http://wicket.apache.org/

Spring MVC http://www.springsource.org/

Struts http://struts.apache.org/

Mentawai http://www.mentaframework.org/

JSF (Java Server Faces)


www.oracle.com/technetwork/java/javaee/javaserverfaces-
139869.html

GWT https://developers.google.com/web-toolkit/

Vaadin https://vaadin.com/home

VRaptor - http://vraptor.caelum.com.br/

Jbanana (J2EE) - framework brasileiro e open-source para


desenvolvimento web.

Framework Web Full Stack

Grails http://grails.org/

Ruby On Rails http://rubyonrails.org/


OpenXava http://www.openxava.org/

Provedores de JSF

Mojorra http://javaserverfaces.java.net/

MyFaces http://myfaces.apache.org/

ADF www.oracle.com/technetwork/developer-
tools/adf/overview/index.html

Componentes JSF

RichFaces http://www.jboss.org/richfaces

PrimeFaces http://primefaces.org/

OpenFaces http://openfaces.org/

IceFaces http://www.icesoft.org/

EasyFaces http://www.easyfaces.com.br

Extenses JSF

PrettyFaces - http://ocpsoft.org/prettyfaces/

Omnifaces https://showcase-omnifaces.rhcloud.com/

Autenticao e Autorizao
Spring Security http://www.springsource.org/

JGuard http://jguard.xwiki.com/xwiki/bin/view/Main/WebHome

Solues Web Mobile

JSF RichFaces Mobile http://www.jboss.org/richfaces

JSF PrimeFaces Mobile http://primefaces.org/

JSF OpenFaces Mobile http://openfaces.org/

JSF IceFaces Mobile http://www.icesoft.org/

Spring Mobile http://www.springsource.org/

JQuery Mobile http://jquery.com/

DOJO Mobile http://dojotoolkit.org/

Agendamento de Tarefas

Timer e TimerTask JSE -


http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/threads/timer.
html

Quarts http://quartz-scheduler.org/

EJB Timer Service


http://docs.oracle.com/javaee/6/tutorial/doc/bnboy.html

JEE Web Container Standalone


Tomcat http://tomcat.apache.org/

Jetty http://jetty.codehaus.org/jetty/

JBoss http://www.jboss.org/

JEE EJB Container (Web Profile e JEE Full)

Tomee http://openejb.apache.org/apache-tomee.html

Simpas http://siwpas.mechsoft.com.tr/

Resin http://www.caucho.com/resin-application-server/

JBoss http://www.jboss.org/

Glassfish http://glassfish.java.net/

Webshere http://www-
142.ibm.com/software/products/br/pt/appserv-was

WebLogic
http://www.oracle.com/us/products/middleware/application-
server/weblogic-suite/index.html?ssSourceSiteId=ocombr

Geronimo http://geronimo.apache.org/

Relatrios

iReport http://jasperforge.org/projects/ireport

DynamicReport http://dynamicreports.sourceforge.net/

Birt http://www.eclipse.org/birt/phoenix/
iText http://itextpdf.com/

PDFBox http://pdfbox.apache.org/

Gerador de Grficos Charts

JFreechart - http://www.jfree.org/jfreechart/

HighCharts - http://www.highcharts.com/

Web Services REST

Jersey http://jersey.java.net/

Restlet http://www.restlet.org/

RestEasy http://www.jboss.org/resteasy/

Web Services SOAP

Metro http://jax-ws.java.net/

Axis http://axis.apache.org/axis/

XFire http://xfire.codehaus.org/

JavaScript

DOJO Toolkit http://dojotoolkit.org/

JQuery http://jquery.com/
Ext-JS http://docs.sencha.com/ext-js/4-0/

DWR http://directwebremoting.org/dwr/index.html

Integrao com Redes Sociais

Spring Social http://www.springsource.org/

Cache

Space4J http://www.space4j.org/

Memcache http://memcached.org/

Ecache http://ehcache.org/

Prevayler http://prevayler.org/

JBoss Infinispan http://www.jboss.org/infinispan.html

NoSQL

MongoDB http://www.mongodb.org/

Neo4j http://neo4j.org/

Db4o http://www.db4o.com/

MemcachedDB http://memcachedb.org/

CouchDB http://couchdb.apache.org/

Project Voldemort http://project-voldemort.com/


MarkLkogic Server http://www.marklogic.com/

BaseX http://basex.org/

SimpleDB http://aws.amazon.com/simpledb/

HBase http://hbase.apache.org/

Casandra http://cassandra.apache.org/

Hypertable http://hypertable.org/

OrientBD http://www.orientechnologies.com/

SGDB Java Embutidos

HyperSQL http://hsqldb.org/

JavaDB
www.oracle.com/technetwork/java/javadb/overview/index.html

Apache Derby http://db.apache.org/derby/

H2Database http://www.h2database.com

Testes

DBUnit http://www.dbunit.org/

JUnit http://www.junit.org/

EJBUnit http://ejb3unit.sourceforge.net/

JSFUnit http://www.jboss.org/jsfunit/
Loggin

jse
http://docs.oracle.com/javase/7/docs/api/java/util/logging/package-
summary.html

Log4J http://logging.apache.org/index.html

Testes Cargas e Perfomance

JMeter http://jmeter.apache.org/

WebLoad http://www.webload.org/

JSON

JSON http://www.json.org/java/

XStream http://xstream.codehaus.org/json-tutorial.html

Google-JSON http://code.google.com/p/google-gson/

Boletos Bancrio

Boletos Bancrio http://www.boletobancario.com.br

Bopepo www.jrimum.org/bopepo/

Stella github.com/caelum/caelum-stella/wiki/Gerando-boleto
Manipulaao de Arquivos MS Office

Apache POI http://poi.apache.org/

JExcelApi - http://jexcelapi.sourceforge.net/

Docx4j http://dev.plutext.org/trac/docx4j

Java Docx http://www.javadocx.com/

Aspose http://www.aspose.com/categories/java-
components/aspose.total-for-java/default.aspx

Gerais

Maven Gerenciador de dependncias http://maven.apache.org/

E-mail Gerenciador de emails -


www.oracle.com/technetwork/java/javamail/index.html

JLicense Gerenciador de licenciamento de uso de software


http://www.websina.com/products/jlicense.html
UML
http://www.lunatic.com.br/2012/04/uml-case-tools-modelagem-uml-
para.html

PLUGINS ECLIPSE
http://marketplace.eclipse.org/metrics/installs/last30days

http://marketplace.eclipse.org/favorites/top

http://www.javacodegeeks.com/2012/05/top-10-most-popular-new-
eclipse-plugins.html

http://www.fromdev.com/2012/01/25-best-free-eclipse-plug-ins-for-
java.html

http://www.eclipse.org/recommenders/

Você também pode gostar