51
 Demoiselle 2.0 cleverson.sacramento serge.rehem

Demoiselle Frawework 2.0

Embed Size (px)

DESCRIPTION

Palestra apresentada no II Fórum de Tecnologia em Software Livre do Serpro – Regional Belém, em 10/11/2010. http://www.softwarelivre.serpro.gov.br/belem

Citation preview

Page 1: Demoiselle Frawework 2.0

   

Demoiselle 2.0

cleverson.sacramentoserge.rehem

Page 2: Demoiselle Frawework 2.0

   

frameworkdemoisellewww.

gov.br

Page 3: Demoiselle Frawework 2.0

   

Demoiselle framework open source

p/ desenvolvimento Java/web

Page 4: Demoiselle Frawework 2.0

   

Framework IntegradorFramework Integrador

Page 5: Demoiselle Frawework 2.0

   

InfraInfraFrameworkFramework ProcessProcess

sample wizard

components

ComunidadeComunidade

Page 6: Demoiselle Frawework 2.0

   

1

1

3

1

2

equipeequipe

4

3

   framework              processocomunidade

Page 7: Demoiselle Frawework 2.0

   

Page 8: Demoiselle Frawework 2.0

   

+

Page 9: Demoiselle Frawework 2.0

   

comunidade

Page 10: Demoiselle Frawework 2.0

   

Page 11: Demoiselle Frawework 2.0

   

demoiselle community council

demoiselle technical council

o que fazer?quais as metas?

como fazer?qual arquitetura e padrões serão usados?

Page 12: Demoiselle Frawework 2.0

   

http://www.frameworkdemoiselle.gov.br

Page 13: Demoiselle Frawework 2.0

   

http://sf.net/projects/demoiselle

Page 14: Demoiselle Frawework 2.0

   

Page 15: Demoiselle Frawework 2.0

   

http://sf.net/apps/mediawiki/demoiselle

Page 16: Demoiselle Frawework 2.0

   

http://sf.net/apps/mantisbt/demoiselle

Page 17: Demoiselle Frawework 2.0

   

maiormenor

projeto­<maior>.<menor>.<micro>­qualificador

           demoiselle­2.0.0­ALPHA1

micromanutenção

evolução

inovação

Page 18: Demoiselle Frawework 2.0

   

mar20080.1

dez20081.0

abr20091.0.3

nov20091.1.0

ago20101.1.5

dezdez201020102.0.02.0.0

set20101.2.0

outout201020102.0.0­A12.0.0­A1

Page 19: Demoiselle Frawework 2.0

   

MP ­ Ministério do Planejamento                             ANP ­ Agência Nacional de Petróleo          DATASUS                                           Caixa Econômica FederalMinistério Público do Paraná                                                           STN                                                                CELEPAR             ATI­PE                                                                      ProdemgeUSP / UFPR / UFBA / UFRJ / ...                                                    Empresas privadas                  Desenvolvedores autônomos

ComunidadeComunidade

Page 20: Demoiselle Frawework 2.0

   

2009

Page 21: Demoiselle Frawework 2.0

   

padronização

orientação  

flexibilidade    flexibilidade    

comunicação  

Page 22: Demoiselle Frawework 2.0

   

framework

Page 23: Demoiselle Frawework 2.0

   

apresentação

negócio

persistência

Page 24: Demoiselle Frawework 2.0

   

Demoiselle Framework

Page 25: Demoiselle Frawework 2.0

   

JSF

JPA

Facelets

Maven

Eclipse

Tomcat

JBoss Tools

Page 26: Demoiselle Frawework 2.0

   

2010

Page 27: Demoiselle Frawework 2.0

   produtividade

Page 28: Demoiselle Frawework 2.0

   

Demoiselle Component

Page 29: Demoiselle Frawework 2.0

   

Demoiselle Monitoring@MBean(name = "br.gov.demoiselle:name=Monitoring")@OID(prefix = ".1.2.3.4.1")public class DemoiselleMonitoring

implements DemoiselleMonitoringMBean {

@OID(value = ".1", mode = Mode.READ_WRITE)public String getFrameworkVersion() {

return FRAMEWORK_VERSION;}

@OID(value = ".2")public int getRequestCount() {

return requestCount;}

@OID(value = ".3")public long getUptime() {

long uptime = System.currentTimeMillis() - initialTime;

return uptime;}

}

Page 30: Demoiselle Frawework 2.0

   

crud

Page 31: Demoiselle Frawework 2.0

   

abstraçãotela  mb  bc  dao

programaçãopor exceção

implícitobcdao

ponto de extensãotela  mb  bc  dao

tagsmáscaras

anotações

Page 32: Demoiselle Frawework 2.0

   

view<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"

template="/META-INF/template/super/superCrud.xhtml"><ui:param name="mbean" value="#{paisMB}" />

</ui:composition>

MB@CrudPaged(title="Cadastro de País", view = "pais_crud")public class PaisMB extends SuperCrudMB<Pais> { }

BCpublic interface IPaisBC extends ICrudBC<Pais> { }public class PaisBC extends SuperCrudBC<Pais> implements IPaisBC { }

DAOpublic interface IPaisDAO extends ICrudDAO<Pais> { }public class PaisDAO extends SuperCrudDAO<Pais> implements IPaisDAO { }

120   2: → 99%

CRUD

Page 33: Demoiselle Frawework 2.0

   

http://www.youtube.com/watch?v=erhn0bxGYbM

Coding­Dojo Demoiselle

Page 34: Demoiselle Frawework 2.0

   

infrainfra

Page 35: Demoiselle Frawework 2.0

   apt­get install demoiselle­dev

Page 36: Demoiselle Frawework 2.0

   

2.0

Page 37: Demoiselle Frawework 2.0

   

jsf 2.0

ejb 3.1

jee 6

test+mock

jsr­299

jpa 2.0

Page 38: Demoiselle Frawework 2.0

   

Page 39: Demoiselle Frawework 2.0

   

http://sf.net/apps/apps/demoiselle

Page 40: Demoiselle Frawework 2.0

   

Page 41: Demoiselle Frawework 2.0

   

http://sf.net/apps/wordpress/demoiselle

Page 42: Demoiselle Frawework 2.0

   

http://demoiselle.svn.sf.net/svnroot/demoiselle/framework

/branches/demoiselle­2.0

Page 43: Demoiselle Frawework 2.0

   

@ViewControllerclass AlunoMB { ...}

@BusinessControllerclass AlunoBC { ...}

@PersistenceControllerclass AlunoDAO { ...}

Page 44: Demoiselle Frawework 2.0

   

@ViewControllerclass AlunoMB {

@Inject AlunoBC bc;

void inserir(){ bc.algumaCoisa(); }}

@BusinessControllerclass AlunoBC { void algumaCoisa(){...}}

Page 45: Demoiselle Frawework 2.0

   

@SeuControllerclass AlunoXX { ...}

@Controller@interface SeuController { ...}

Page 46: Demoiselle Frawework 2.0

   

@ViewControllerclass AlunoMB {

@Transactional void inserir(){...}}

frameworkdemoiselle.transaction.class=

br.gov.frameworkdemoiselle.transaction.JPATransaction

Page 47: Demoiselle Frawework 2.0

   

@BusinessControllerclass AlunoBC {

void inserir(...){...}

@HandleException void tratar(CrecaException e){...}}

Page 48: Demoiselle Frawework 2.0

   

@PersistenceControllerclass AlunoDAO {

@Startup void carga(){...}

@Shutdown void descarga(){...}}

Page 49: Demoiselle Frawework 2.0

   

@SeuControllerclass AlunoXX {

@Inject Logger log;

@Inject ResourceBundle bundle;

@Inject Transaction transaction;

@Inject EntityManager em;

@Inject FacesContext context;}

Page 50: Demoiselle Frawework 2.0

   

templatestags

independência

segurança

documentaçãoutilitários

configuração

validação

Page 51: Demoiselle Frawework 2.0

   

Obrigado!Obrigado!

www.frameworkdemoiselle.gov.brdemoiselle­[email protected]/fwkdemoiselle

Serge [email protected]

twitter.com/serge_rehem