MVC é o acrônimo para Model View Controller , padrão de projeto dearquitetura voltado à orientação de objetos, que tem como objetivo separar a lógica de negócios (Model) da interface de usuário (View) e do fluxo da aplicação (Controller), permitindo o desenvolvimento, teste e manutenção isolada de ambos. O MVC também permite a reutilização de uma mesma lógica de negócios através de várias interfaces sem que, para isso, seja necessário efetuar grandes alterações no código. Para que isso seja possível, o desenvolvimento de uma aplicação é feita em camadas, cada uma com funções distintas, porém fundamentais e que interagem entre si. A camada Model é responsável por grande parte do código escrito. É nesta camada que a lógica de negócios estará presente, com o objetivo de definir e gerenciar toda a informação, bem como a notificação sobre possíveis mudanças ocorridas nos dados, como por exemplo, o estado de uma caixa de texto ou a indicação de ativação de um checkbox. A camada View compreende a interface de usuário e é responsável pelo acesso aos dados contidos em Model e especifica como estes dados colhidos serão apresentados ao usuário, como, por exemplo, um texto dentro de uma textbox. Por fim, a camada Controller é responsável pelo fluxo da aplicação, ou seja, assume o mapeamento das ações efetuadas pelo usuário na camada View, por meio de eventos e, com isso, permite que a camada Model seja alterada. de modo que a manutenção seja funcional. uma vez que as funcionalidades da aplicação encontram-se encapsuladas. pois o modelo mantém a persistência do negócio. . representada em três camadas objetiva simplesmente separar a informação da apresentação.Esta arquitetura. Gerenciamento de múltiplas interfaces utilizando um mesmo modelo.Criar uma aplicação utilizando o modelo MVC implica vantagens e desvantagens entre as quais podemos citar: VANTAGENS: 1. Fácil gerenciamento e manutenção. 3. DESVANTAGENS: 1. Exige tempo para análise e modelagem do sistema. Não recomendado para aplicações de pequeno porte. 3. 2. 2. Demanda profissional com conhecimento especializado. Independência entre camadas. . o O Controller é surdo.o A View é muda. mas escuta o Controller e fala para a View sobre as mudanças nele próprio. fala para o Model quando mudar de estado e vê os gestos da View. o O Model é cego. . mas faz gestos (user gestures) para o Controller e escuta mudanças no Model. a internet disponibiliza uma infinidade de artigos e tutoriais de implementação para MVC correspondente a cada uma das plataformas de desenvolvimento.O padrão MVC pode ser implementado em diversas plataformas. É uma boa oportunidade de se ganhar destaque e ficar à frente dos demais profissionais. Atualmente o mercado de trabalho em TI sofre com a baixa quantidade de profissionais especializados neste padrão de projeto. . Se você se interessou pelo assunto e deseja se aprofundar. 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 páginas para download e/ou informações adicionais e tutoriais que valem uma “espiadinha”. bastando apenas que você tenha o framework adequado. mybatis.org/ Guice – http://picocontainer.interface que provê uma camada de abstração aplicação - armazenamento de dados.com/technetwork/java/javaee/ejb/index.COMPONENTES e FRAMEWORKS: Container IoC Spring – http://www.oracle.com/technetwork/articles/java/cdi-javaee- bien-225152.castor.html Persistência Hibernate – http://www.org/ .apache.springsource.springsource.org/ iBatis – http://www.codehaus.org/ PicoContainer – http://code.html CDI – http://www.org/ Spring Data – http://www.org/ Torque – http://db.springsource. Gerenciador de Transação Spring AOP transaction – http://www.org/ JDO .hibernate.oracle.org/torque/ Castor – http://www.google.com/p/google-guice/ EJB – www. google.framework brasileiro e open-source para desenvolvimento web.apache.org/ Spring MVC – http://www.org/ JSF (Java Server Faces) – www.com.oracle.br/ Jbanana (J2EE) .caelum.com/home VRaptor .mentaframework.org/ Wicket – http://wicket.apache.org/ . Framework Web Full Stack Grails – http://grails.com/web-toolkit/ Vaadin – https://vaadin.com/technetwork/java/javaee/ejb/index.org/ Struts – http://struts.springsource.http://vraptor.EJB (JTA) www.apache.com/technetwork/java/javaee/javaserverfaces- 139869.org/ Mentawai – http://www.org/ Ruby On Rails – http://rubyonrails.oracle.html Framework Web Click – http://click.html GWT – https://developers. html Componentes JSF RichFaces – http://www.apache.br Extensões JSF PrettyFaces .java.openxava.OpenXava – http://www.com/ Autenticação e Autorização .easyfaces.com.http://ocpsoft.org/ OpenFaces – http://openfaces.org/prettyfaces/ Omnifaces – https://showcase-omnifaces.org/richfaces PrimeFaces – http://primefaces.org/ EasyFaces – http://www.icesoft.com/technetwork/developer- tools/adf/overview/index.rhcloud.oracle.org/ ADF – www.jboss.org/ Provedores de JSF Mojorra – http://javaserverfaces.net/ MyFaces – http://myfaces.org/ IceFaces – http://www. org/ Spring Mobile – http://www.ufcg.Spring Security – http://www. html Quarts – http://quartz-scheduler.dsc.org/ JGuard – http://jguard.com/xwiki/bin/view/Main/WebHome Soluções Web Mobile JSF RichFaces Mobile – http://www.icesoft.xwiki.org/ JQuery Mobile – http://jquery.com/javaee/6/tutorial/doc/bnboy.org/richfaces JSF PrimeFaces Mobile – http://primefaces.com/ DOJO Mobile – http://dojotoolkit.org/ Agendamento de Tarefas Timer e TimerTask JSE - http://www.jboss.org/ JSF OpenFaces Mobile – http://openfaces.springsource.springsource.org/ EJB Timer Service – http://docs.html JEE Web Container Standalone .edu.br/~jacques/cursos/map/html/threads/timer.oracle.org/ JSF IceFaces Mobile – http://www. org/ Glassfish – http://glassfish.oracle.jboss.html?ssSourceSiteId=ocombr Geronimo – http://geronimo.java.codehaus.com/us/products/middleware/application- server/weblogic-suite/index.tr/ Resin – http://www.org/apache-tomee.apache.com.ibm.org/birt/phoenix/ .org/ Jetty – http://jetty.org/ Relatórios iReport – http://jasperforge.caucho.apache.Tomcat – http://tomcat.org/projects/ireport DynamicReport – http://dynamicreports.net/ Birt – http://www.html Simpas – http://siwpas.net/ Webshere – http://www- 142.eclipse.org/jetty/ JBoss – http://www.apache.mechsoft.jboss.sourceforge.com/software/products/br/pt/appserv-was WebLogic – http://www.org/ JEE EJB Container (Web Profile e JEE Full) Tomee – http://openejb.com/resin-application-server/ JBoss – http://www. jfree.jboss.apache.http://www.codehaus.apache.net/ Axis – http://axis.net/ Restlet – http://www.com/ PDFBox – http://pdfbox.com/ .com/ Web Services REST Jersey – http://jersey.http://www.restlet.org/ Gerador de Gráficos Charts JFreechart .iText – http://itextpdf.org/ JavaScript DOJO Toolkit – http://dojotoolkit.org/ JQuery – http://jquery.org/ RestEasy – http://www.org/axis/ XFire – http://xfire.org/jfreechart/ HighCharts .java.org/resteasy/ Web Services SOAP Metro – http://jax-ws.java.highcharts. org/dwr/index.db4o.org/ Project Voldemort – http://project-voldemort.org/ Prevayler – http://prevayler.com/ MemcachedDB – http://memcachedb.org/ JBoss Infinispan – http://www.org/ Ecache – http://ehcache.springsource.sencha.apache.org/ CouchDB – http://couchdb.org/ Cache Space4J – http://www.html NoSQL MongoDB – http://www.Ext-JS – http://docs.html Integração com Redes Sociais Spring Social – http://www.org/ Db4o – http://www.jboss.org/infinispan.space4j.mongodb.com/ .com/ext-js/4-0/ DWR – http://directwebremoting.org/ Neo4j – http://neo4j.org/ Memcache – http://memcached. apache.com/ BaseX – http://basex.org/jsfunit/ .com Testes DBUnit – http://www.h2database.org/ JUnit – http://www.junit.org/ EJBUnit – http://ejb3unit.oracle.dbunit.org/ Hypertable – http://hypertable.apache.html Apache Derby – http://db.org/derby/ H2Database – http://www.net/ JSFUnit – http://www.orientechnologies.MarkLkogic Server – http://www.org/ JavaDB – www.org/ Casandra – http://cassandra.jboss.com/simpledb/ HBase – http://hbase.com/technetwork/java/javadb/overview/index.apache.amazon.org/ OrientBD – http://www.org/ SimpleDB – http://aws.marklogic.com/ SGDB Java Embutidos HyperSQL – http://hsqldb.sourceforge. oracle.Loggin jse – http://docs.html Google-JSON – http://code.codehaus.json.org/ JSON JSON – http://www.boletobancario.org/bopepo/ Stella – github.com/javase/7/docs/api/java/util/logging/package- summary.jrimum.com/p/google-gson/ Boletos Bancário Boletos Bancário – http://www.apache.com/caelum/caelum-stella/wiki/Gerando-boleto .apache.html Log4J – http://logging.google.webload.org/json-tutorial.br Bopepo – www.org/java/ XStream – http://xstream.html Testes Cargas e Perfomance JMeter – http://jmeter.org/ WebLoad – http://www.org/index.com. websina.javadocx.total-for-java/default.com/ Aspose – http://www.html JLicense – Gerenciador de licenciamento de uso de software – http://www.com/categories/java- components/aspose.sourceforge.com/technetwork/java/javamail/index.net/ Docx4j – http://dev.plutext.Manipulaçao de Arquivos MS Office Apache POI – http://poi.apache.aspose.org/ JExcelApi .html .aspx Gerais Maven – Gerenciador de dependências – http://maven.org/trac/docx4j Java Docx – http://www.org/ E-mail – Gerenciador de emails - www.oracle.apache.http://jexcelapi.com/products/jlicense. com/2012/01/25-best-free-eclipse-plug-ins-for- java.com.javacodegeeks.org/favorites/top http://www.com/2012/05/top-10-most-popular-new- eclipse-plugins.org/recommenders/ .eclipse.eclipse.lunatic.fromdev.html PLUGINS ECLIPSE http://marketplace.eclipse. UML http://www.org/metrics/installs/last30days http://marketplace.br/2012/04/uml-case-tools-modelagem-uml- para.html http://www.html http://www.