Demoiselle Frawework 2.0

Post on 27-May-2015

1.871 views 0 download

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

Transcript of Demoiselle Frawework 2.0

   

Demoiselle 2.0

cleverson.sacramentoserge.rehem

   

frameworkdemoisellewww.

gov.br

   

Demoiselle framework open source

p/ desenvolvimento Java/web

   

Framework IntegradorFramework Integrador

   

InfraInfraFrameworkFramework ProcessProcess

sample wizard

components

ComunidadeComunidade

   

1

1

3

1

2

equipeequipe

4

3

   framework              processocomunidade

   

   

+

   

comunidade

   

   

demoiselle community council

demoiselle technical council

o que fazer?quais as metas?

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

   

http://www.frameworkdemoiselle.gov.br

   

http://sf.net/projects/demoiselle

   

   

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

   

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

   

maiormenor

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

           demoiselle­2.0.0­ALPHA1

micromanutenção

evolução

inovação

   

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

   

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

   

2009

   

padronização

orientação  

flexibilidade    flexibilidade    

comunicação  

   

framework

   

apresentação

negócio

persistência

   

Demoiselle Framework

   

JSF

JPA

Facelets

Maven

Eclipse

Tomcat

JBoss Tools

   

2010

   produtividade

   

Demoiselle Component

   

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;}

}

   

crud

   

abstraçãotela  mb  bc  dao

programaçãopor exceção

implícitobcdao

ponto de extensãotela  mb  bc  dao

tagsmáscaras

anotações

   

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

   

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

Coding­Dojo Demoiselle

   

infrainfra

   apt­get install demoiselle­dev

   

2.0

   

jsf 2.0

ejb 3.1

jee 6

test+mock

jsr­299

jpa 2.0

   

   

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

   

   

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

   

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

/branches/demoiselle­2.0

   

@ViewControllerclass AlunoMB { ...}

@BusinessControllerclass AlunoBC { ...}

@PersistenceControllerclass AlunoDAO { ...}

   

@ViewControllerclass AlunoMB {

@Inject AlunoBC bc;

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

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

   

@SeuControllerclass AlunoXX { ...}

@Controller@interface SeuController { ...}

   

@ViewControllerclass AlunoMB {

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

frameworkdemoiselle.transaction.class=

br.gov.frameworkdemoiselle.transaction.JPATransaction

   

@BusinessControllerclass AlunoBC {

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

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

   

@PersistenceControllerclass AlunoDAO {

@Startup void carga(){...}

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

   

@SeuControllerclass AlunoXX {

@Inject Logger log;

@Inject ResourceBundle bundle;

@Inject Transaction transaction;

@Inject EntityManager em;

@Inject FacesContext context;}

   

templatestags

independência

segurança

documentaçãoutilitários

configuração

validação

   

Obrigado!Obrigado!

www.frameworkdemoiselle.gov.brdemoiselle­users@lists.sourceforge.nettwitter.com/fwkdemoiselle

Serge Rehemserge.rehem@serpro.gov.br

twitter.com/serge_rehem