MVC é acrônim para Mdel View Cntrller, padrã de prjet de arquitetura vltad à rientaçã de bjets, que tem cm bjetiv separar a lógica de negócis (Mdel) da interface de usuári (View) e d flux da aplicaçã (Cntrller), permitind desenvlviment, teste e manutençã islada de ambs. O MVC também permite a reutilizaçã de uma mesma lógica de negócis através de várias interfaces sem que, para iss, seja necessári efetuar grandes alterações n códig. Para que iss seja pssível, desenvlviment de uma aplicaçã é feita em camadas, cada uma cm funções distintas, prém fundamentais e que interagem entre si. A camada Mdel é respnsável pr grande parte d códig escrit. É nesta camada que a lógica de negócis estará presente, cm bjetiv de definir e gerenciar tda a infrmaçã, bem cm a ntificaçã sbre pssíveis mudanças crridas ns dads, cm pr exempl, estad de uma caixa de text u a indicaçã de ativaçã de um checkbx. A camada View cmpreende a interface de usuári e é respnsável pel acess as dads cntids em Mdel e especifica cm estes dads clhids serã apresentads a usuári, cm, pr exempl, um text dentr de uma textbx. Pr fim, a camada Cntrller é respnsável pel flux da aplicaçã, u seja, assume mapeament das ações efetuadas pel usuári na camada View, pr mei de events e, cm iss, permite que a camada Mdel seja alterada.
Esta arquitetura, representada em três camadas bjetiva simplesmente separar a infrmaçã da apresentaçã, de md que a manutençã seja funcinal, pis mdel mantém a persistência d negóci, uma vez que as funcinalidades da aplicaçã encntram-se encapsuladas.
Criar uma aplicaçã utilizand mdel MVC implica vantagens e desvantagens entre as quais pdems citar: VANTAGENS: 1. Fácil gerenciament e manutençã; 2. Independência entre camadas; 3. Gerenciament de múltiplas interfaces utilizand um mesm mdel. DESVANTAGENS: 1. Nã recmendad para aplicações de pequen prte; 2. Exige temp para análise e mdelagem d sistema; 3. Demanda prfissinal cm cnheciment especializad.
A View é muda, mas faz gests (user gestures) para Cntrller e escuta mudanças n Mdel; O Mdel é ceg, mas escuta Cntrller e fala para a View sbre as mudanças nele própri; O Cntrller é surd, fala para Mdel quand mudar de estad e vê s gests da View.
O padrã MVC pde ser implementad em diversas platafrmas, bastand apenas que vcê tenha framewrk adequad, cnfrme segue abaix: JAVA Apache Struts Mentawai Tapestry VRaptr WebWrk Ne Framewrk Play! Framewrk Spring MVC JSF Click Framewrk Bruts Alguns ds framewrks citads pssuem links de acess às páginas para dwnlad e/u infrmações adicinais e tutriais que valem uma espiadinha. Atualmente mercad de trabalh em TI sfre cm a baixa quantidade de prfissinais especializads neste padrã de prjet. Se vcê se interessu pel assunt e deseja se aprfundar, a internet dispnibiliza uma infinidade de artigs e tutriais de implementaçã para MVC crrespndente a cada uma das platafrmas de desenvlviment. É uma ba prtunidade de se ganhar destaque e ficar à frente ds demais prfissinais.
COMPONENTES e FRAMEWORKS: Cntainer IC Spring http://www.springsurce.rg/ Guice http://piccntainer.cdehaus.rg/ PicCntainer http://cde.ggle.cm/p/ggle-guice/ EJB www.racle.cm/technetwrk/java/javaee/ejb/index.html CDI http://www.racle.cm/technetwrk/articles/java/cdi-javaeebien-225152.html Persistência Hibernate http://www.hibernate.rg/ Spring Data http://www.springsurce.rg/ ibatis http://www.mybatis.rg/ Trque http://db.apache.rg/trque/ Castr http://www.castr.rg/ JDO - interface que prvê uma camada de abstraçã aplicaçã - armazenament de dads. Gerenciadr de Transaçã Spring AOP transactin http://www.springsurce.rg/
EJB (JTA) www.racle.cm/technetwrk/java/javaee/ejb/index.html Framewrk Web Click http://click.apache.rg/ Wicket http://wicket.apache.rg/ Spring MVC http://www.springsurce.rg/ Struts http://struts.apache.rg/ Mentawai http://www.mentaframewrk.rg/ JSF (Java Server Faces) www.racle.cm/technetwrk/java/javaee/javaserverfaces- 139869.html GWT https://develpers.ggle.cm/web-tlkit/ Vaadin https://vaadin.cm/hme VRaptr - http://vraptr.caelum.cm.br/ Jbanana (J2EE) - framewrk brasileir e pen-surce para desenvlviment web. Framewrk Web Full Stack Grails http://grails.rg/ Ruby On Rails http://rubynrails.rg/
OpenXava http://www.penxava.rg/ Prvedres de JSF Mjrra http://javaserverfaces.java.net/ MyFaces http://myfaces.apache.rg/ ADF www.racle.cm/technetwrk/develpertls/adf/verview/index.html Cmpnentes JSF RichFaces http://www.jbss.rg/richfaces PrimeFaces http://primefaces.rg/ OpenFaces http://penfaces.rg/ IceFaces http://www.icesft.rg/ EasyFaces http://www.easyfaces.cm.br Extensões JSF PrettyFaces - http://cpsft.rg/prettyfaces/ Omnifaces https://shwcase-mnifaces.rhclud.cm/ Autenticaçã e Autrizaçã
Spring Security http://www.springsurce.rg/ JGuard http://jguard.xwiki.cm/xwiki/bin/view/main/webhme Sluções Web Mbile JSF RichFaces Mbile http://www.jbss.rg/richfaces JSF PrimeFaces Mbile http://primefaces.rg/ JSF OpenFaces Mbile http://penfaces.rg/ JSF IceFaces Mbile http://www.icesft.rg/ Spring Mbile http://www.springsurce.rg/ JQuery Mbile http://jquery.cm/ DOJO Mbile http://djtlkit.rg/ Agendament de Tarefas Timer e TimerTask JSE - http://www.dsc.ufcg.edu.br/~jacques/curss/map/html/threads/timer. html Quarts http://quartz-scheduler.rg/ EJB Timer Service http://dcs.racle.cm/javaee/6/tutrial/dc/bnby.html JEE Web Cntainer Standalne
Tmcat http://tmcat.apache.rg/ Jetty http://jetty.cdehaus.rg/jetty/ JBss http://www.jbss.rg/ JEE EJB Cntainer (Web Prfile e JEE Full) Tmee http://penejb.apache.rg/apache-tmee.html Simpas http://siwpas.mechsft.cm.tr/ Resin http://www.cauch.cm/resin-applicatin-server/ JBss http://www.jbss.rg/ Glassfish http://glassfish.java.net/ Webshere http://www- 142.ibm.cm/sftware/prducts/br/pt/appserv-was WebLgic http://www.racle.cm/us/prducts/middleware/applicatinserver/weblgic-suite/index.html?sssurcesiteid=cmbr Gernim http://gernim.apache.rg/ Relatóris ireprt http://jasperfrge.rg/prjects/ireprt DynamicReprt http://dynamicreprts.surcefrge.net/ Birt http://www.eclipse.rg/birt/phenix/
itext http://itextpdf.cm/ PDFBx http://pdfbx.apache.rg/ Geradr de Gráfics Charts JFreechart - http://www.jfree.rg/jfreechart/ HighCharts - http://www.highcharts.cm/ Web Services REST Jersey http://jersey.java.net/ Restlet http://www.restlet.rg/ RestEasy http://www.jbss.rg/resteasy/ Web Services SOAP Metr http://jax-ws.java.net/ Axis http://axis.apache.rg/axis/ XFire http://xfire.cdehaus.rg/ JavaScript DOJO Tlkit http://djtlkit.rg/ JQuery http://jquery.cm/
Ext-JS http://dcs.sencha.cm/ext-js/4-0/ DWR http://directwebremting.rg/dwr/index.html Integraçã cm Redes Sciais Spring Scial http://www.springsurce.rg/ Cache Space4J http://www.space4j.rg/ Memcache http://memcached.rg/ Ecache http://ehcache.rg/ Prevayler http://prevayler.rg/ JBss Infinispan http://www.jbss.rg/infinispan.html NSQL MngDB http://www.mngdb.rg/ Ne4j http://ne4j.rg/ Db4 http://www.db4.cm/ MemcachedDB http://memcachedb.rg/ CuchDB http://cuchdb.apache.rg/ Prject Vldemrt http://prject-vldemrt.cm/
MarkLkgic Server http://www.marklgic.cm/ BaseX http://basex.rg/ SimpleDB http://aws.amazn.cm/simpledb/ HBase http://hbase.apache.rg/ Casandra http://cassandra.apache.rg/ Hypertable http://hypertable.rg/ OrientBD http://www.rientechnlgies.cm/ SGDB Java Embutids HyperSQL http://hsqldb.rg/ JavaDB www.racle.cm/technetwrk/java/javadb/verview/index.html Apache Derby http://db.apache.rg/derby/ H2Database http://www.h2database.cm Testes DBUnit http://www.dbunit.rg/ JUnit http://www.junit.rg/ EJBUnit http://ejb3unit.surcefrge.net/ JSFUnit http://www.jbss.rg/jsfunit/
Lggin jse http://dcs.racle.cm/javase/7/dcs/api/java/util/lgging/packagesummary.html Lg4J http://lgging.apache.rg/index.html Testes Cargas e Perfmance JMeter http://jmeter.apache.rg/ WebLad http://www.weblad.rg/ JSON JSON http://www.jsn.rg/java/ XStream http://xstream.cdehaus.rg/jsn-tutrial.html Ggle-JSON http://cde.ggle.cm/p/ggle-gsn/ Blets Bancári Blets Bancári http://www.bletbancari.cm.br Bpep www.jrimum.rg/bpep/ Stella github.cm/caelum/caelum-stella/wiki/gerand-blet
Manipulaça de Arquivs MS Office Apache POI http://pi.apache.rg/ JExcelApi - http://jexcelapi.surcefrge.net/ Dcx4j http://dev.plutext.rg/trac/dcx4j Java Dcx http://www.javadcx.cm/ Aspse http://www.aspse.cm/categries/javacmpnents/aspse.ttal-fr-java/default.aspx Gerais Maven Gerenciadr de dependências http://maven.apache.rg/ E-mail Gerenciadr de emails - www.racle.cm/technetwrk/java/javamail/index.html JLicense Gerenciadr de licenciament de us de sftware http://www.websina.cm/prducts/jlicense.html
UML PLUGINS ECLIPSE http://marketplace.eclipse.rg/metrics/installs/last30days http://marketplace.eclipse.rg/favrites/tp http://www.lunatic.cm.br/2012/04/uml-case-tls-mdelagem-umlpara.html http://www.javacdegeeks.cm/2012/05/tp-10-mst-ppular-neweclipse-plugins.html http://www.frmdev.cm/2012/01/25-best-free-eclipse-plug-ins-frjava.html http://www.eclipse.rg/recmmenders/