Novo Canal

Olá amigos!
O blog Central da Engenharia está a muito tempo parado por questões de novas metas. Estou com um novo projeto josearaujo.com.br onde darei continuidade ao trabalho. Isso inclui até um canal no YouTube. Então sigam meu novo trabalho e vamos em frente!

“Tudo é uma questão de Engenharia!”
“Everything is a matter of Engineering!”

Publicado em Notícias, Off Blog | Deixe um comentário

Hack’nFortes Delphi – Maratona de programação

O Hack’nFortes está caminhando para a sua terceira edição, dessa vez será um evento focado em Delphi. O intuito de nosso evento é movimentar a comunidade local, mostrar que o Delphi está melhor do que nunca e, consequentemente, atrair a atenção de novos desenvolvedores para essa tecnologia fantástica. A inscrição será gratuita e não existe nenhuma intenção de monetização.

Características do evento:

  • Acontecerá dia 07/02/2015 de 08:30 às 18:00 – Em Fortaleza;
  • Equipes concorrerão para solucionar um problema que será apresentado no dia;
  • A alimentação será por nossa conta, para que os desenvolvedores foquem em codificar;
  • RedBull liberado!
  • Todos os participantes ganharão a camiseta oficial do evento;
  • Haverá o sorteio de e-books;
  • A equipe que construir a melhor solução será premiada com um valor em dinheiro;

Nos ajude na divulgação de nossos canais:

Website: hacknfortes.com
Blog: hacknfortes.com/blog/
Facebook: facebook.com/hacknfortes
Twitter: twitter.com/hacknfortes
Hashtag: #HacknFortesDelphi

hacknfortes

Não fique de fora!

“Tudo é uma questão de Engenharia!”
“Everything is a matter of Engineering!”

At+.

Publicado em Delphi, Eventos | Deixe um comentário

Os números de 2014

Os duendes de estatísticas do WordPress.com prepararam um relatório para o ano de 2014 deste blog.

Aqui está um resumo:

Um comboio do metrô de Nova Iorque transporta 1.200 pessoas. Este blog foi visitado cerca de 4.600 vezes em 2014. Se fosse um comboio, eram precisas 4 viagens para que toda gente o visitasse.

Clique aqui para ver o relatório completo

Publicado em Off Blog | Deixe um comentário

Embarcadero Conference 2014 – Overview

Salve galera! No último dia 16 de Outubro de 2014 aconteceu a 5° edição do Embarcadero Conference. O evento foi realizado no centro de convenções Espaço Apas em São Paulo. Como sempre a comunidade Delphi marcou presença em peso e contamos com mais de 600 participantes.

Esse ano tivemos duas presenças internacionais, Marcu Cantu: Gerente de Produto Delphi e autor de mais de uma dúzia de livros sobre o produto,  incluindo edições da coleção Delphi Handbook, a “Bíblia” de desenvolvimento em Delphi e Jim McKeeth: Desenvolvedor Delphi de longa data, com mais de 20 anos de experiência em desenvolvimento de software. Palestrante mundial em conferências sobre Delphi e desenvolvimento mobile, foi a primeira pessoa a receber a condecoração de “Especialista em Delphi” pelo site Stack Overflow. Outros grandes nomes  da comunidade, a exemplo de Guinther Pauli,  também marcaram presença.

Com palestras de alto nível e um público muito empolgado a conferência mais uma vez superou todas as expectativas e sem dúvidas está entre os maiores eventos de tecnologia do Brasil. Um fato que achei bastante interessante foi a presença de pessoas que trabalham em outras tecnologias estarem prestigiando o encontro.

“José Araújo eu não trabalho com Delphi, porém estou muito surpreso com a evolução da ferramenta. Estou convencido do seu poder e irei começar a experimentar!” – Relato de um participante que trabalha atualmente com Java.

Por fim, gostaria de agradecer a todos que marcaram presença na minha palestra Migrando ~4 milhões de linhas de código de Delphi 7 para XE 7 (Slides). Recebi muitos elogios e também fui bem procurado para troca de idéias. Ano que vem não irei medir esforços para está novamente na conferencia, é uma experiência única está entre os melhores!

Um abraço a todos e até 2015!

“Tudo é uma questão de Engenharia!”
“Everything is a matter of Engineering!”

At+.

[Vídeo YouTube]
Controlando drone por ondas cerebrais – Delphi

DSCN4826 DSCN4827 DSCN4828 DSCN4829 IMG_20141016_082127 IMG_20141016_082303 IMG_20141016_083547 IMG_20141016_084550 IMG_20141016_185948 IMG_20141016_191630 IMG-20141016-WA0006

Publicado em Android, Delphi, Engenharia de Software, Eventos | Marcado com , , , | Deixe um comentário

Embarcadero Conference 2014

Está chegando a 5ª edição da Embarcadero Conference!

Um dia de imersão total, com palestras simultâneas, cases, demonstrações ao vivo e muita interação com quem mais entende do assunto. Neste ano, você vai saber tudo sobre o novo Delphi XE7, uma das mais completas versões já lançadas pela Embarcadero.

Veja uma prévia da agenda:

APIs do Facebook com Android e Ios
– App Monetization
– BaaS Framework
– Bluetooth e AppTethering
– DataSnap + FireDAC + Apache
– DB PowerStudio XE6 Overview
– EMS: Enterprise Mobility Services
– ER/Studio XE6 Overview
– FireDAC: do básico ao avançado
– Gambibusters! Os Caça-Gambiarras
– Intents: Comunicando Apps Delphi com Apps Android
– Migrando ~4 milhões de linhas de código de Delphi 7 (Essa Palestra é minha)
– Migrando de BDE para FireDAC
– Novidades da VCL + LiveBindings Avançado
– Novidades do FMX + Muti Device Designer
– Novos Recursos da IDE
– Padrões de Projeto, Refatoração e Migração
– REST Framework
– TParallel: Framework Nativo para Computação Paralela
– Usando Notificações em Dispositivos Móveis
– Usando SDKs Externos do Android e iOS

Imperdível, garanta sua vaga!
www.embarcaderoconference.com.br

Nos encontramos no evento!

“Tudo é uma questão de Engenharia!”
“Everything is a matter of Engineering!”

At+.

Publicado em Eventos, Notícias | Marcado com , | Deixe um comentário

Android – Links de referências.

Android

Salve galera!
Estou passando rapidamente para compartilhar com todos uma série de links com materiais sobre Android.

Segue referências:
Android UX: referências de interface para aplicativos Android
http://androidux.com/

AndroidPatterns
http://www.androidpatterns.com/

Sobre Wireframes
http://wireframes.tumblr.com/
http://blog.fuzzymath.com/tag/design-series/

Fries: Prototype Android apps using HTML, CSS and JavaScript http://jaunesarmiento.me/fries/

How To Design For Android Devices
http://blog.mengto.com/how-to-design-for-android-devices/

Android Action Bar Style Generator
http://jgilfelt.github.io/android-actionbarstylegenerator/

Notification Icon Generator
http://android-ui-utils.googlecode.com/hg/asset-studio/dist/icons-notification.html

Generic Icon Generator
http://android-ui-utils.googlecode.com/hg/asset-studio/dist/icons-generic.html

Tab Icon Generator (pre-Android 3.0)
http://android-ui-utils.googlecode.com/hg/asset-studio/dist/icons-tab.html

Menu Icon Generator (pre-Android 3.0)
http://android-ui-utils.googlecode.com/hg/asset-studio/dist/icons-menu.html

Launcher Icon Generator
http://android-ui-utils.googlecode.com/hg/asset-studio/dist/icons-launcher.html

Device Frame Generator
http://android-ui-utils.googlecode.com/hg/asset-studio/dist/device-frames.html

Device Art Generator
http://developer.android.com/distribute/promote/device-art.html

Simple Nine-patch Generator
http://android-ui-utils.googlecode.com/hg/asset-studio/dist/nine-patches.html

Android Design Guide Utils
http://developer.android.com/design/downloads/index.html

Telly Android Holo Assets
http://dribbble.com/shots/871796-Telly-Android-Holo-Assets/
http://dribbble.com/shots/871796-Telly-Android-Holo-Assets/attachments/93516

Android Holo Colors Generator
http://android-holo-colors.com/

Android Asset Studio
http://android-ui-utils.googlecode.com/hg/asset-studio/dist/index.html
https://code.google.com/p/android-ui-utils/

Google Play Badges
http://developer.android.com/distribute/googleplay/promote/badges.html

Todos os direitos de pesquisa para: Jackson Ferreira de Andrade Mafra.
https://groups.google.com/forum/?fromgroups#!topic/androidbrasil-dev/UYabmrgBxWQ

“Tudo é uma questão de Engenharia!”
“Everything is a matter of Engineering!”

At+.

Publicado em Android | Marcado com | Deixe um comentário

AnyDAC. A nova aquisição da Embarcadero

AnyDAC é uma biblioteca de acesso a banco de dados da DA-SOFT que acaba de ser adquirida pela Embarcadero. AnyDAC é considerada a melhor biblioteca de acesso a dados para delphi. Segundo a própria Embarcadero à pelo menos 4 anos o DBExpress não vem evoluindo no quesito acesso a dados, e também comentou que a AnyDAC é bem mais robusta que a DBExpress.
Acho que a comunidade só tem a ganhar. Maior robustez no acesso a dados é sempre benvindo.

Para maiores informações:
http://www.embarcadero.com/br/press-releases/embarcadero-technologies-acquires-high-performance-enterprise-database-connectivity-technology-for-developers

http://blog.marcocantu.com/blog/embarcadero_buys_anydac.html

“Tudo é uma questão de Engenharia!”
“Everything is a matter of Engineering!”

At+.

Publicado em Notícias, Off Blog | 2 Comentários

Integração Contínua na Prática – Minicurso

Olá a todos! Início de ano, é hora de atualizar o blog. Irei através deste minicurso mostrar como montar um servidor de Integração Contínua (Continuous Integration) na prática. Veremos como instalar e configurar todas as ferramentas: Delphi XE2, DUnit, FinalBuild, SVN Server, Tortoise SVN e Cruise Control.NET. No decorrer do minicurso irei falar melhor sobre cada uma  delas e suas funções.

Introdução

Antes de tudo vamos saber o significado da palavra integrar segundo o dicionário Aurélio – Integrar: Tornar-se Inteiro. Completar-se. Então imagine você integrando seu trabalho (código fonte) continuamente a fim de verificar se ele continua “inteiro”, integro.  O conceito de integração contínua não é muito novo, já existe há algum tempo, porém, ganhou popularidade com o advento das metodologias ágeis (XP, Scrum, Kanban…), uma vez que CI é um dos seus pilares. Outros pontos que não podemos esquecer é o aumento da complexidade dos softwares atuais e o número de pessoas trabalhando ao mesmo tempo no mesmo projeto. Nesse cenário, CI desempenha um papel importante na redução de problemas quando os desenvolvedores integram seus códigos.

Vejamos a descrição sobre Integração Contínua segundo Martin Fowler (especialista no assunto): “Integração Contínua é uma prática de desenvolvimento de software onde os membros de uma equipe integram seu trabalho frequentemente, geralmente pelo menos uma vez por dia. Cada integração é verificada por um build automatizado (incluindo testes que são fundamentais) para detectar erros e devolver um feedback o mas breve possível. Essa abordagem reduz significativamente problemas com integração e permite que a equipe desenvolva software mais coeso de forma mais rápida.”

No build de integração pode haver varias tarefas como por exemplo: Compilação, Testes Unitários, Copia de bibliotecas externas, Criação de Banco de Dados, Empacotamento,  etc. Não existe um limite estabelecido para o número de tarefas realizadas no build.

Testes Unitários

O foco não é falar sobre testes unitários nem muito menos ensinar a fazê-los, existem milhares de artigos e tutorias que mostram a importância dos testes. Porém vale enfatizar que é de extrema importância que em nossos projetos existam testes que possam ser rodados no build de CI. Com eles o servidor de CI pode verificar se foi feito algo que não era previsto pelos testes.

Feedback

Após a execução do build automatizado a equipe de desenvolvimento recebe um feedback sobre o que aconteceu no servidor de CI, se tudo acorreu como previsto, ou se ocorreu algum problema (Geralmente conhecido pela expressão – “o servidor quebrou…”). O feedback na CI é uma das maiores vantagem se não a maior de todas. Tende a estabelecer uma boa cultura na equipe, uma vez que o estado do projeto é informado várias vezes ao dia, e assim, reduzindo o tempo de quando o erro foi introduzido até quando ele é detectado.

Visão Geral

Visão Geral

Figura 1 – Visão geral do processo de Integração Contínua

Mãos à Obra

Todas as ferramentas citadas anteriormente podem ser encontradas no seguinte link: http://centraldaengenharia.wordpress.com/2011/12/08/delphiconference-2011-downloads/

Salve o projeto de teste do minicurso extraindo o diretório VendasXE em: C:\Projetos\
Faça o download em:    http://fortesreport.com.br/wpcontent/uploads/2011/12/DC2011-IntegracaoContinua.zip

Projeto VendasXE

Após realizar o download e extrair os arquivos, você deverá ter o seguinte caminho C:\Projetos\VendasXE. Execute o arquivo: \DB\CreateDataBase.bat. Inicie o RAD Studio XE2 e abra o DelphiConference.groupproj. Acesse a aba Project Manager, clique duplo em VendasXETests.exe como mostra a figura 2. Compile, execute e rode os testes.

ProjectManager

Figura 2 – Project Manager VendasXE

Visual SVN Server

O SVN(SubVersion) é um software para versionamento de código muito conhecido. Essa ferramenta é comumente utilizada no desenvolvimento de software para controlar o histórico de desenvolvimento e as diferentes versões do código fonte, além da documentação. A figura 3 mostra a tela inicial de instalação.

VisualSVNServerInstall

Figura 3 – Instalação do Visual SVN Server

  1. Clique em next;
  2. Aceite os termos e next;
  3. Na tela de Select Components deixe marcada a opção VisualSVN Server and Management Console e next;
  4. Na tela de Custom Setup deixe as opções default e next;
  5. Clique em Install;

Execute o Visual SVN Server. O primeiro passo será criar um usuário de acesso.

  1. Clique com o botão direito no item Users e selecione a opção Create User… como mostra a figura figura 4;
  2. Informe um usuário e senha;
  3. Clique em Ok.

CreateUser

Figura 4 – Criando usuário de acesso

Iremos agora adicionar um repositório que irá conter nosso projeto VendasXE.

  1. Clique com o botão direito no item Repositories e selecione a opção Create New Repository… como mostra a figura figura 5;
  2. Informe o nome VendasXE e marque a opção Create default structure (trunk, branches, tags);
  3. Clique em Ok;

CreateRepository

Figura 5 – Criando um Repositório

Tortoise SVN

Tortoise SVN é um cliente(“plugin”) do SVN, no qual sua funcionalidade é permitir que você interaja com o SVN de forma visual e muito intuitiva. Um item muito interessante no tortoise é após sua instalação ele se integrar com o windows shell. A figura 6 mostra a tela inicial de instalação.

TortoiseInstall

Figura 6 – Instalação do Tortoise SVN

  1. Clique em next;
  2. Aceite os termos e next;
  3. Na tela de Custom Setup deixa as opções default e next;
  4. Clique em Install;
  5. Será necessário reiniciar o computador após a instalação;

Iremos agora vincular o diretório do nosso projeto VendasXE ao repositório do SVN Server que criamos anteriormente.

  1. Abra o Visual SVN Server;
  2. Abra Repositories;
  3. Abra VendasXE;
  4. Clique com o botão direito em trunk e clique na opção Copy URL to Clipboard;
  5. Acesse o diretório C:\Projetos\ e clique com o botão direito no diretório VendasXE;
  6. Clique na opção SVN Checkout…;
  7. Cole a URL do projeto na caixa de texto URL of repository, como mostra a figura 7
  8. Clique em Ok.
  9. Ele deverá mostrar uma janela informando que o diretório VendasXE não está vazio, e perguntar se deseja continuar. Clique em yes.
  10. Clique em Accept permanently.
  11. Informe o usuário e senha que você criou no Visual SVN Server;
  12. Marque a opção Save authentication clique em Ok;
  13. Clique em Ok.

CheckOut

Figura 7 – Tortoise SVN Checkout…

Nosso diretório VendasXE deverá esta igual a figura 8.

PathVendasXECheckOut

Figura 8 – Diretório vinculado ao repositório. (Tortoise SVN)

Apesar do nosso diretório está vinculado ao repositório, nossos fontes ainda não foram enviados. Para isso iremos utilizar a  opção       Add… do Tortoise SVN. Irá aparecer uma janela listando todos os sub-diretórios e arquivos de código fonte que compõe o nosso projeto VendasXE. Essa fase será um pouco chata, mas irei dar algumas dicas para torná-la mais rápida. Vamos lá!

  1. Botão direito do mouse em VendasXE e clique na opção TortoiseSVN > Add…
  2. Ordene a listagem por extensão clicando no título da coluna Extension.
  3. Ordene de tal forma que os diretórios venham primeiro na listagem;
  4. Desmarque todos os itens clicando na opção Select / Deselect all;
  5. Marque somente os seguintes diretórios: Business, Common, Dao, DB, Patterns, Tests, UI, Win32. Dica: Você pode selecionar os itens segurando o shift e clicando sobre eles, após eles estarem selecionados aperte a tecla barra de espaço para que todos sejam marcados ao mesmo tempo.
  6. Clique Ok;
  7. Clique em Ok novamente;
  8. Repita os Passos 1, 2, 3 e 4;
  9. Marque somente os seguintes diretórios: __history, Common/__history, Pattern/__history, Tests/__history, UI/__history;
  10. Botão direito do mouse, selecione Add to ignore list > Ignore 5 items by name;
  11. Marque somente os seguintes diretórios: Test/Win32/Debug, Win32/Debug, Test/Win32;
  12. Clique em Ok;
  13. Clique em Ok novamente;
  14. Repita os passo 1, 2;
  15. Repita o passo 4;
  16. Marque todos os itens com extensão *.dcu. Botão direito do mouse sobre um dos itens marcados Add to ignore list > *.dcu.
  17. Repita o passo 16 para as seguintes extensões: *.dsk, *.exe, *.fdb, *.identcache, *.ini, *.local, *.tvsconfig, *.~dsk.
  18. Clique em Select / Deselect all e depois em Ok;
  19. Agora que finalizamos o processo de adição dos arquivos que serão controlados(versionados) pelo SVN Server iremos enviá-los para o repositório.
  20. Botão direto no diretório VendasXE e clique em SVN Commit…
  21. A próxima janela irá mostrar a listagem de todos os arquivos e diretórios que serão enviados para o repositório.
  22. Informe um texto para registrar(Auditar) o seu commit, como mostra a figura 9 e clique em Ok;
  23. Clique em Ok novamente;

TortoiseCommit

Figura 9 – Commit Tortoise SVN

Agora se acessarmos o Visual SVN Server, podemos verificar que já existem arquivos em Repositories > VendasXE > trunk.

Final Builder

Final Builder é uma excelente ferramenta para construção de builds automatizados. Ela possui uma IDE unificada e bem intuitiva, no qual você pode criar seus processos de build de forma simples. Se integra com varias outras ferramentas incluindo o compilador do delphi(dcc) e também com o SVN(SubVersion). Não irei passar pelo processo de instalação do Final Builder por ele esta incluso no pacote de instalação do RAD Studio XE2.

Criando o Nosso Processo de Build

Iremos agora criar os passos para o nosso build. Esses passos serão executados sempre que algum desenvolvedor modificar os fontes que estão no repositório. Iremos criar um processo simples com os seguintes passos:

  1. Realizar um Update nos fontes do Servidor de CI;
  2. Compilar o projeto VendasXE com as modificações realizadas;
  3. Criar um banco de dados novo, uma vez que pode haver mudanças nos scripts;
  4. Rodar os testes automatizados para saber se algum problema foi encontrado;

Mãos à Obra

  1. Execute o Final Builder;
  2. File > New Project;
  3. Salve o projeto em C:\Projetos\Build\ com o nome VendasXE.fbz7;

O Final Builder é baseado em Actions(Ações) que são disparadas em sequência ou em paralelo, dependendo do caso. Existem várias actions pré-definidas que podemos utilizar de forma bem intuitiva. Para iniciarmos a criação acesse a Aba Actions como mostra a figura 10.

FinalBuilderActions

Figura 10 – Actions Final Builder

Action SubVersion Update

Antes de iniciar a criação da action de update devemos configurar no Final Builder onde se encontra o executável do SVN Server. O diretório padrão é: C:\Arquivos de programas\VisualSVN Server\bin. Caso você tenha modificado o diretório no momento da instalação informe o novo local.

  1. Menu Tools > Options;
  2. Digite na caixa de texto Search: Subversion;
  3. Clique no Item SubVersion que foi encontrado;
  4. Na caixa de texto Subversion binaries location informe o diretório citado anteriormente como mostra a figura 11.
  5. Clique em Ok.

FinalBuilderSVNServer

Figura 11 – Configurando o diretório do SVN Server

De volta a tela principal do nosso projeto com a aba actions selecionada realize os seguintes passos:

  1. Digite na caixa de texto Search: Subversion Update;
  2. Na janela Subversion Update na caixa de texto Work Folder digite C:\Projetos\VendasXE.
  3. Na sessão Security informe o usuário e senha cadastrados no Visual SVN Server.
  4. Click em Ok.
  5. Agora na tela principal você poderá ver a action que adicionamos.
  6. Execute o projeto através da tecla F5 ou clicando no botão Run como mostra a figura 12.
  7. Ao final da execução de cada action deverá aparecer na coluna Status um retângulo verde com a palavra Completed no seu interior.

FinalBuilderRun

Figura 12 – Executando o projeto (Actions)

Action Compiler

  1. Digite na caixa de texto Search: Compiler;
  2. Clique em Build Delphi que se encontra nos resultados da busca;
  3. Na caixa de texto Project File aponte para o VendasXETests.dpr que se encontra dentro do diretório: C:\Projetos\VendasXE\Test.
  4. Na Combo Compiler Version selecione Delphi XE2.
  5. Logo você perceberá que o botão ao lado da caixa de texto Project File agora está habilitado, clique nele e no diálogo que aparecer clique em Yes para que todas as opções do projeto VendasXETests.dpr sejam importadas automaticamente.
  6. Na sessão Option source vá até a combo Project Config e selecione Debug.
  7. Clique em Ok.

Mais uma action foi criada em nosso projeto. Execute novamente e veja o resultado.

Action Create Database

Essa action  em particular é bem interessante e aconselho todos a fazer essa “simples” tarefa mas que ajuda bastante no nosso dia a dia. Quem nunca passou por aquele problema de sempre está precisando de um banco “zero” para realizar testes e nunca ter um disponível rapidamente? Então, eu já. Em nosso projeto no diretório C:\Projetos\VendasXE\DB temos os seguintes arquivos: CreateDataBase.bat, CreateDB.sql. O CreateDataBase.bat executa o cliente do firebird em modo console, removendo o banco atual se existir e criando um novo baseado no script do banco de dados, o CreateDB.sql. Agora sabendo de tal recurso iremos configurar a action Create Database.

  1. Digite na caixa de texto Search: Execute Program;
  2. Na caixa de texto Program File informe o nosso CreateDataBase.bat – C:\Projetos\VendasXE\DB\CreateDataBase.bat
  3. Clique em Ok.
  4. Experimente antes de executar as actions novamente ir até o diretório C:\Projetos\VendasXE\DB\ e excluir o arquivo DC.FDB(caso ele exista). Agora quando executar as actions você poderá verificar que o banco foi criado novamente.

Action DUnit (Tests)

Antes de criarmos essa action devemos nos atentar a um detalhe. Por default quando criamos um projeto de testes no DUnit(que já vem incorporado no XE2) ele é executado em modo “Gráfico”(GUI Running). Caso criássemos nossa action com essa opção habilitada, os testes serão executados em modo gráfico e o Final Builder irá esperar alguém fechar essa janela para que ele possa processar o build. Caso você não queira contratar um estagiário para ficar do lado do servidor fechando essa tela =), devemos configurá-la para abrir em modo Console.

  1. Em nossa lista de actions, duplo clique sobre o item Build Delphi;
  2. Na janela Build Delphi acesse a aba Directories;
  3. Na sessão Conditionals, mude o conteúdo da caixa de texto Conditional defines: de: _CONSOLE_TESTRUNNER;RELEASE para CONSOLE_TESTRUNNER;RELEASE. Somente remover o Underline inicial.
  4. Clique em Ok.
  5. Execute novamente as actions.
  6. Acesse o diretório C:\Projetos\VendasXE\Test\Win32\Debug e execute o VendasXETests.exe. Note que os testes serão executados em modo console e ao final será gerado um arquivo chamado dunit-report.xml. Esse arquivo contém o resultado dos testes(Success ou Fail) e será utilizado na configuração da nossa Action DUnit.

Pronto! Agora o ambiente está devidamente configurado para criarmos a Action DUnit (Tests).

  1. Digite na caixa de texto Search: DUnit;
  2. Na janela DUnit na caixa de texto Test Executable informe o caminho completo onde está o executável que rodará nossos testes. C:\Projetos\VendasXE\Test\Win32\Debug\VendasXETests.exe.
  3. Na caixa de texto Report file informe o .xml gerado após a execução dos testes. C:\Projetos\VendasXE\Test\Win32\Debug\dunit-report.xml.
  4. Clique em Ok.
  5. Rode as actions.

Verifique o log gerado pelo Final Builder na aba Build Log no canto inferior da tela. Estamos quase terminando a etapa de automação do nosso build. Falta somente configurarmos o Final Builder para executar em modo console da mesma forma dos nossos testes. Para isso, basta adicionar o diretório de instalação do Final Builder nas variáveis de ambiente do Sistema Operacional e executar os seguinte passos:

  1. Acesse o diretório C:\Projetos\Build(Diretório no qual salvamos o projeto do Final Builder);
  2. Crie um arquivo com o seguinte nome: Build.bat;
  3. Edite o arquivo com o conteúdo: FBCMD /P”VendasXE.fbz7″;
  4. Salve, feche e execute;

Finalmente o processo de automação do build está concluído.

Cruise Control.Net

Cruise Control.Net é uma ferramenta para automação do processo de Integração Contínua. Iremos utilizá-la para monitorar o nosso repositório de código fonte e assim que detectar alguma mudança disparar(trigger) todo o nosso processo de build. Essa ferramenta também será responsável pelo importante mecanismo de feedback caso haja algum problema na integração contínua. Podemos ver também todo um histórico do que vem acontecendo em nosso projeto.

Instalando…

  1. A figura 13 mostra a tela inicial de instalação do Cruise Control.Net;

Clique em next até chegar em Install(sem mistério)   =) ;

CruiseControlInstall

Figura 13 – Instalação do Cruise Control.Net

As configurações do Cruise Control.Net são baseadas em um arquivo .xml(nããããããããoooooooo), mas não entraremos em pânico, pois existe uma ferramenta visual que configura esse arquivo xml de forma simples. Execute o instalador CCNetConfig.x.xx.xx.msi.

  1. A figura 14 mostra a tela inicial de instalação do CCNet Config;
  2. Aceite os termos e next;
  3. Clique em next até chegar em Install;

CruiseControlConfig

Figura 14 – Instalação do CCNet Config

Criando um Projeto no Cruise Control.Net

  1. Execute o CCNet Config;
  2. File > Open;
  3. Acesse o diretório de instalação do Cruise Control.Net(C:\Arquivos de programas\CruiseControl.NET\server) e selecione o arquivo ccnet.config.
  4. Na combo Version selecione a opção 1.4.
  5. Clique em Open.
  6. Note que apareceu 2 itens no lado esquerdo da tela: Cruise Control, Integration Queues;
  7. Botão direito no item Cruise Control > Add Project…
  8. Informe o nome VendasXE  clique em Ok.
  9. A figura 15 mostra o resultado após a adição do nosso projeto;
  10. Selecione o item VendasXE, deverá aparecer várias configurações no lado direito;
  11. Na combo SourceControl selecione o item SubversionSourceControl;
  12. Expanda o item SourceControl;
  13. No item Executable, informe o svn.exe que se encontra no diretório de instalação do Visual SVN Server, assim como fizemos no Final Builder.
  14. Preencha os items Password e Username com o cadastrado no Visual SVN Server;
  15. Configurações do item SourceControl finalizadas;
  16. Nos itens principais informe em WebUrl o endereço do repositório do projeto VendasXE, assim como fizemos ao realizar o checkout no tortoise svn;
  17. No item WorkingDirectory informe o diretório: C:\Projetos\VendasXE;
  18. figura 16 mostra como ficará nossas configurações;

CruiseControlConfigVendasXE

Figura 15 – Projeto VendasXE (CCNet Config)

CruiseControlConfigSVN

Criando Triggers(Gatilhos)

Após configurarmos nosso projeto informando em qual repositório está os arquivos de código fonte, devemos criar um recurso que fique monitorando o repositório, afim de verificar se houve mudanças. Esse recurso se chama Triggers. Seu funcionamento é idêntico as triggers de banco de dados, irá disparar sempre que algo acontecer, no nosso caso sempre que houver mudanças em nosso repositório.

  1. Botão direito no sub-item Triggers > Add Trigger > IntervalTrigger;
  2. Selecione o sub-item adicionado em Triggers(IntervalTrigger);
  3. A direta no item BuildCondition informe: IfModificationExists;
  4. No item Seconds informe em segundos o intervalo que seja verificado junto ao repositório se existem modificações;
  5. Veja como deve ficar na figura 17;

CruiseControlConfigTrigger

Figura 17 – Criando Triggers (CCNet Config)

Criando Tasks(Tarefas)

Pronto! Trigger configurada para monitorar o repositório, verificando se existem modificações. E agora, se houver modificações? Iremos configurar uma tarefa que será disparada pela trigger caso haja modificações em nosso repositório. Essa tarefa será executar o nosso Build.bat que contém todas as tarefas automatizadas pelo Final Builder.

  1. Botão direito no sub-item Tasks > Add Task > ExecutableTask;
  2. Selecione o sub-item adicionado em Tasks(ExecutableTask);
  3. A direita no item (Executable) informe o caminho completo do nosso Build.bat;
  4. No item BaseDirectory informe o diretório onde está o arquivo Build.bat;
  5. Veja como deve ficar na figura 18;

CruiseControlConfigTask

Figura 18 – Criando Tasks (CCNet Config)

Salve tudo e feche o CCNet Config. Antes de mandarmos iniciar o nosso servidor de integração continua, acesse o diretório C:\Projeto botão direito no diretório VendasXE > Tortoise SVN > Revert…. Selecione todos os itens e clique em Ok. Isso deixará o diretório idêntico ao repositório. Execute o CruiseControl.Net. O resultado deverá ser algo parecido com a figura 19. Essa tela deverá ser atualizada de acordo com o intervalo da trigger definida no CCNet Config.

CruiseControlRunning

O próximo passo é registrar a DashBoard(Cliente visual do Cruise Control) no IIS(Internet Information Services). O site se encontra no diretório de instalação do CruiseControl.Net: C:\Arquivos de programas\CruiseControl.NET\webdashboard. Irei pular esse passo pelo artigo não abranger IIS. Existem vários artigos e a configuração é bem simples. Após a configuração acesse o endereço da página dashboard e veja o resultado, figura 20. Navegue pelos itens da dashboard e veja as informações que ela lhe fornece sobre todos os builds que foram realizados no projeto VendasXE.

DashBoard

Figura 20 – DashBoard CruiseControl.Net

Todas as configurações relacionadas ao servidor de integração contínua foram finalizadas(Ufffa). Iremos agora realizar o último passo que será instalar um cliente do CruiseControl.Net nas máquinas dos desenvolvedores(clientes). Esse cliente fica na área de notificação do windows informando(feedback) aos desenvolvedores sobre o que está acontecendo no servidor de CI. Com isso, caso alguém commit algo que “quebre” o build, todos os desenvolvedores serão notificados, da mesma forma se tudo ocorreu bem.

CCTray (CruiseControl.Net)

Execute o instalador CruiseControl.NET-CCTrayx.xx.xx.exe.

  1. A figura 21 mostra a janela inicial de instalação do CCTray;
  2. Clique em next até chegar em Install(sem mistério)   =) ;
  3. Execute o CCTray;
  4. A figura 22 mostra a janela principal do CCTray;

CCTrayInstall

Figura 21 – Instalação do CCTray

CCTray

Figura 22 – Janela Principal CCTray

Agora basta configurar o CCTray para acessar o serviço do CruiseControl.Net.

  1. Acesse File > Settings;
  2. Aba Build Projects;
  3. Clique no botão Add…
  4. Na janela Project clique no botão Add Server.
  5. Na janela Build Server marque a opção Connect directly using .Net remoting;
  6. Informe na caixa de texto o IP do servidor que está executando o CuiseControl.Net;
  7. Clique em Ok;
  8. De volta a janela Project deverá aparecer o projeto VendasXE na listagem Avaliable Projects;
  9. Selecione o Projeto VendasXE e clique em Ok;
  10. Na janela Tray Settings clique em Ok novamente;
  11. A imagem 23 mostra a janela principal do CCTray após a configuração;

CCTrayBuildSuccess

Figura 23 – CCTray Integrado ao VendasXE

Pronto galera, nosso ambiente esta completamente configurado. Realize o Checkout do Projeto VendasXE na máquina cliente onde foi instalado o CCTray. Realize mudanças no código fonte e commit, veja como o CCTray se comporta. Você pode até injetar um erro no código fonte para ver o resultado.

Conclusão

Galera é isso! Nesse artigo podemos ver na prática como montar um servidor de integração contínua. Busquem ler sobre o assunto e entender cada vez mais o seu processo. Sou capaz de afirmar a vocês que os frutos colhidos com esta técnica é bastante favorável para o crescimento da equipe e do projeto. Estarei a disposição para tirar todas as dúvidas em qualquer etapa do artigo, afinal, o mesmo é um pouco cansativo. Um abraço a todos e não deixem de entrar em contato.

“Tudo é uma questão de Engenharia!”
“Everything is a matter of Engineering!”

At+.

Publicado em Engenharia de Software, Minicurso, Testes | Marcado com , , , , , , , , , , , , , , | 2 Comentários

Embarcadero Delphi Conference 2012 – Overview

Salve galera! Ando meio afastado do blog mais prometo que irei retomar as atividades em breve. Como todos sabem, no último dia 23/10 ocorreu mais uma edição do  Embarcadero Delphi Conference. Foi um grande sucesso de público! Organização muito boa e uma excelente estrutura para todos que compareceram.

Esse ano o evento foi realizado no Centro de Convenções Rebouças – SP e contou com mais de 800 participantes de todo o Brasil. O evento superou todas as expectativas de público e conteúdo. Um ponto de destaque foi a flexibilidade que a Embarcadero ofereceu nos temas apresentados. Teve de tudo: Desenvolvimento Cross-Plataform, Desenvolvimento para iOS, Desenvolvimento Web, Aplicações Multi-Camada, Banco de Dados, Agile, Boas práticas no desenvolvimento de software, Engenharia de Software e até um pouco de eletrônica! Isso mesmo que você leu, teve uma palestra integrando um software feito em Delphi com o Arduíno.

Foi muito bacana perceber que havia muita gente no evento que não trabalhava efetivamente com Delphi(RAD Studio). Isso mostra que o Delphi(RAD Studio) está ganhando força novamente e tem muita gente interessada em conhecê-lo. Com certeza, um reflexo do grande investimento que a Embarcadero vem realizando, sem contar o programa universitário que está levando a ferramenta até as faculdades.

A cada ano o Delphi(RAD Studio) vem se superando e com certeza é uma excelente ferramenta para o desenvolvimento de software. Veio para ficar! Em breve irei publicar  o conteúdo da palestra que realizei no evento.

Um abraço a todos que participaram do evento e rumo a 2013.

Por hora é isso galera.

“Tudo é uma questão de Engenharia!”
“Everything is a matter of Engineering!”

At+.

Publicado em Eventos, Notícias | Marcado com , , , , , , | Deixe um comentário

Delphi Conference 2012

Olá a todos! O maior evento sobre a tecnologia RAD Studio (Delphi) da América-Latina está com força total em 2012. Esse ano o Delphi Conference está ainda maior contando com 5 palestras simultâneas. Oferecendo assim um grande encontro para toda a comunidade.

Você poderá continuar acompanhando a evolução da ferramenta que a Embarcadero vem desenvolvendo ao longo desses 4 anos.

Os temas que serão abordados:

  • Novo Firemonkey;
  • Novos recursos da linguagem como: Atributos, Generics, RTTI dentre outros;
  • Aplicações multi-camadas;
  • Desenvolvimento cross-plataform;
  • Desenvolvimento web;
  • Desenvolvimento para rede sociais;
  • Metodologias ágeis;
  • Banco de dados;

Além da oportunidade de interagir pessoalmente com mais de 600 desenvolvedores Delphi de todo o Brasil. Sem sombra de dúvidas o RAD Studio veio para ficar. Irei ser um dos palestrantes do evento com o tema: Melhorando a qualidade do código com Métricas e Auditorias.

Nos encontramos no evento!

“Tudo é uma questão de Engenharia!”
“Everything is a matter of Engineering!”

At+.

Publicado em Eventos, Notícias | Marcado com , , , , , | Deixe um comentário