Vous êtes sur la page 1sur 6

Mdulo 1

O Demoiselle uma composio de projetos, e no apenas um framework Java como muita gente acha. f cil entender por!ue pensam assim" o #ramework surgiu primeiro e at hoje o carro$ chefe. %nto vamos dei&ar 'em claro, o projeto Demoiselle um agregado de su'projetos, !ue so" Framework. %ste o foco do curso. (amos conhecer e praticar as facilidades !ue este projeto oferece para o desenvolvimento de aplica)es Java 'aseado nas tecnologias da J%% *. Definio em duas palavras" simplicidade e fle&i'ilidade. Component. +onjunto de componentes reus veis !ue do mais poder ao #ramework. ,em todos componentes esto atrelados ao #ramework, mas os utili-ados neste curso esto. Infra. .e voc/ sente calafrios ao pensar na tra'alheira !ue d para preparar um am'iente de desenvolvimento, este projeto foi feito para voc/. .im, vamos utili- $lo neste curso. Sample. %st precisando de e&emplos para entender melhor o #ramework e os +omponentes0 Disponi'ili-amos algumas amostras para voc/. ,este curso no utili-aremos este projeto. Process. 1rata$se de um processo livre de desenvolvimento de software inspirado em metodologias geis. ,o utili-aremos este projeto neste curso. Community. 1odos os projetos Demoiselle so livres e cola'orativos. %ste projeto promove a gesto transparente e a participao ativa da comunidade. +itaremos algumas ferramentas no decorrer deste curso. Tools. .o ferramentas focadas em produtividade !ue podem ser usadas em conjuntos com o #ramework. %specificamente a ferramenta Demoiselle ,im'le ser citada neste curso.

Objetivo
O o'jetivo deste curso ' sico do Demoiselle mostrar, e&plicar e e&perimentar as principais funcionalidades do #ramework, tais como" 1estes 2og 3esource 4undle 1ratamento de e&ce)es +onfigurao 5ersist/ncia 1ransao +ontroladores 6niciali-adores +ontrole de acesso 7e' 8ensagem

Apoio
9o final deste curso voc/ ser capa- de compreender o funcionamento do Demoiselle e utili- $lo para construir suas aplica)es. 5ara facilitar a sua vida, adicione nos favoritos do seu browser" http"::demoiselle.sourceforge.net:docs. ,este link voc/ encontrar dois guias de refer/ncia muito importantes" do #ramework e dos +omponentes. 3ecorra a eles sempre !ue precisar de detalhamentos. 9proveite o em'alo e cadastre$se na lista de usu rios, ferramenta indispens vel para !uem !uer mandar 'em e se manter atuali-ado" https"::lists.sourceforge.net:lists:listinfo:demoiselle$users. 9lm de tirar d;vidas ' sicas e avanadas, voc/ poder cola'orar com outros usu rios.

Infra
+hega de lero$lero e vamos para a pr tica, o primeiro passo a preparao do am'iente. .e voc/ utili-a uma distri'uio 2inu& 'aseada no De'ian, como o <'untu, no tem com o !ue se preocupar, o Demoiselle 6nfra vai ajudar muito nesta tarefa" =. 9cesse o menu 6nstalao no site do 6nfra" http"::demoiselle.sourceforge.net:infra >. ,este curso convencionamos utili-ar a distri'uio 2inu& via 951 ?9dvanced 5ackage 1ool@. .iga o passo$a$passo e instale o pacote demoiselle-2-infra-1. A. ,o terminal, rode o comando" demoiselle-workspace para poupar tempo com configurao do %clipse. +aso tenha outra instalao do %clipse e j tenha um workspace anterior, informe um novo para usar durante o curso, com o comando" demoiselle-workspace workspace_novo B. 9'ra o %clipse no menu do sistema" 9plicativos : Desenvolvimento : Demoiselle %clipse C. .e criou um novo workspace, informe este na a'ertura do %clipse. *. (eja !ue o %clipse j est todo configurado e voc/ poupou 'astante tempo. 5onto para o DemoiselleD 9 distri'uio para o sistema 7indows e ofertada em dois ar!uivos, um contendo o am'iente de desenvolvimento e outro contendo outras ferramentas adicionais conforme e&plicitado em pacotes. 5ara instalar o am'iente de desenvolvimento, o usu rio dever reali-ar o download do ar!uivo de instalao na p gina de downloads ? http"::sourceforge.net:projects:demoiselle:files:infra:@ e e&ecut $lo. %scolha o ar!uivo !ue representa o seu tipo de sistema operacional. 9 instalao autoe&plicativa e o am'iente de desenvolvimento dever ser instalado na pasta +"EDemoiselleE Confira o vdeo de demonstrao usando o Synaptic clicando no link abaixo: http"::www.frameworkdemoiselle.gov.'r:documentacaodoprojeto:manuais$e$tutoriais:tutorial$da$ versao$>$>$A$F:videos:modulo$=$video$=$sGnaptic Confira o vdeo de demonstrao usando linha de comando clicando no link abaixo: http"::www.frameworkdemoiselle.gov.'r:documentacaodoprojeto:manuais$e$tutoriais:tutorial$da$ versao$>$>$A$F:videos:modulo$=$video$=

Novo projeto
9gora !ue o am'iente est instalado, vamos criar o nosso primeiro projeto. nele !ue e&perimentaremos as funcionalidades do #ramework" =. ,o %clipse, acesse File / New / Project. >. 9gora v em Maven / Maven project e cli!ue em Next duas ve-es. A. %scolha o +atalog Demoiselle. B. ,a listagem, escolha o demoiselle-minimal e cli!ue em Next. C. Defina o Hroup 6d" br. ov.serpro, o 9rtifact 6d" inscricao conforme mostrados a'ai&o e cli!ue em Finish.

*. 9guarde o 8aven criar o seu projeto. (oc/ aca'ou de utili-ar o 8aven, uma ferramenta livre !ue au&ilia na criao de projetos. ,a realidade ele muito mais !ue isto, porm tudo !ue voc/ precisa sa'er no momento. ,o cat logo Demoiselle esto todos os moldes de projeto !ue fi-emos. O 8aven denomina$os de archetypes, portanto utili-aremos o termo arqutipos. O demoiselle-minimal o ar!utipo !ue tra- o ' sico para utili-ar o Demoiselle. Confira o vdeo de demonstra !o clicando no link a"ai#o$ http"::www.frameworkdemoiselle.gov.'r:documentacaodoprojeto:manuais$e$tutoriais:tutorial$da$ versao$>$>$A$F:videos:modulo$=$video$>

O que gerou?
,o 8aven tudo artefato, inclusive este seu novo projeto. 1odos os artefatos so identificados pelo Hroup 6d acrescidos do 9rtifact 6d, e foi isto !ue voc/ informou para gerao do seu projeto. .eguindo o padro do 8aven, seu projeto possui a seguinte estrutura" 5asta src!main!"ava" a!ui ficaro todas as classes do seu projeto. 5asta src!main!resources" arma-enar os ar!uivos de configurao de sua aplicao. 5asta src!test!"ava" colo!ue a!ui suas classes de teste. 5asta src!test!resources" os ar!uivos de configurao dos seus testes ficaro a!ui. 5asta tar et" esta uma pasta tempor ria utili-ada e&clusivamente pelo 8aven para arma-enar as classes compiladas e ar!uivos de configurao processados. (oc/ no precisa me&er nela. 9r!uivo pom.xml" configurao do 8aven para o seu projeto. Heralmente este ar!uivo contm muitas informa)es, porm, com a utili-ao da herana de configura)es, conseguimos torn $lo 'em simples para voc/. 1udo graas ao demoiselle-minimal-parent. 9'ra o pom xml e d/ uma olhada. .imples, no0D

Desafio
(amos incrementar o projeto gerado para criar uma aplicao de verdade. I cada mJdulo deste curso e&ploraremos algumas funcionalidades do #ramework. O desafio criar um sistema simples de inscrio com as seguintes regras" 5ossi'ilitar a matrKcula do aluno na turma. O aluno sJ pode matricular$se uma ve-. 9 turma tem um limite de alunos matriculados.

9t o final do curso, voc/ criar uma aplicao web utili-ando J.#, J59, J19, +D6 e diversas outras siglas. ,o momento apropriado voc/ sa'er o significado de cada uma delas. <m passo de cada ve-, assim !ue vamos evoluir.

Testes
(oc/ j ouviu falar em 1DD0 a sigla para !est Driven Development, algo como Desenvolvimento Orientado a ?ou LDirigido porM@ 1estes. 3esumidamente, a ideia criar os testes antes da soluo propriamente dita ?por isso, alguns usam o termo L1est #irstM@. %m !uase todos os mJdulos deste curso praticaremos o desenvolvimento orientado a testes. %nto vamos converter as regras da nossa aplicao$desafio em casos de teste" =. ,o %clipse, a'ra a pasta src/test/java e selecione o pacote br "ov serpro inscricao. >. 9cesse o menu v em File / New / #lass. A. Defina o nome da classe !urma!est e cli!ue em Finish.

B. +rie os mtodos public void matricular$luno#om%ucesso&', public void (alha$o!entarMatricular$lunoDuplicado&' e public void (alha$o!entarMatricular$lunoNa!urma#heia&'. C. 9note os mtodos com )!est. 9 sua classe vai ficar assim"

public class TurmaTest { @Test public void matricularAlunoComSucesso(){ } @Test public void falhaAoTentarMatricularAlunoDuplicado(){ } @Test public void falhaAoTentarMatricularAlunoNaTurmaCheia(){ } }

Confira o vdeo de demonstra !o clicando no link a"ai#o$ http"::www.frameworkdemoiselle.gov.'r:documentacaodoprojeto:manuais$e$tutoriais:tutorial$da$ versao$>$>$A$F:videos:modulo$=$video$A

Retrospectiva
O Demoiselle composto por diversos outros projetos. (imos !ue o #ramework prov/ v rias funcionalidades !ue sero e&ploradas neste curso. 9prendemos como chegar na documentao de refer/ncia e onde pedir ajuda. 5reparamos o am'iente de desenvolvimento e criamos o projeto !ue ser utili-ado nos demais mJdulos deste curso. Desco'rimos os artefatos gerados automaticamente pelo ar!utipo demoiselle-minimal e vimos !ue o pom xml do projeto ficou 'em simples graas Ns facilidades providas pelo Demoiselle +onhecemos o pro'lema desafio e preparamos o terreno para consolidar os re!uisitos em forma de testes automati-ados. ,o prJ&imo mJdulo, utili-aremos o componente demoiselle-junit e&perimentando as funcionalidades de lo" e internacionali-ao da aplicao.