terça-feira, 9 de junho de 2009

Turbinando o Delphi com CnWizzards


Dentre os diversos plugins existentes para acrescentar recursos na IDE do Delphi estou usando o pacote CnWizzards. Com ele é possível adicionar uma série de novas fuincionalidades no ambiente de desenvolvimento, tais como: assistente de MessageBox, estatísticas do código fonte, limpeza de arquivos dependentes que não são mais utilizados e etc. Aqui vão alguns recursos interessantes deste pacote de ferrametas:

Assistente de MessageBox

Este assistente facilita e muito a criação deste tipo de caixa de mensagem, além de fornecer um preview de como sua MessageBox vai funcionar. Nas opções do assistente podemos escolher o ícone da barra de título, quais os botões irão ser exibidos, definir o título e a mensagem que será exibida ao usuário, e os valores de retorno, entre outras várias opções.






















Tabela de caracteres ASCII

Quem precisa de utilizar este recurso no seu dia a dia, não precisa mais abrir um arquivo separado do Delphi. Basta acessar a opção no CnWizards que exibe os 256 caracteres da Tabela ASCII.






















Guide Lines

Quem nunca se perdeu entre o begin e o end de um método extenso? Com o recurso de Guide Lines a IDE do Delphi exibe um linha guia colorida que une o cada begin ao seu respectivo end, facilitando a visualização de onde inicia e termina uma determinada funcionalidade.














Procedure List

Através da tecla de atalho Ctrl+D abre-se uma lista das procedures existentes na Unit que está em edição, falicitando assim o acesso às mesmas. Também é possivel pesquisar procedures e functions em outras untis do sistema.
















Existem ainda várias outras funcionalides interessantes como por exemplo a possibilidade de fazer um replace de codigo em todos os files do sistema e muito mais. Para não ficar demasiado extenso, finalizo por aqui, sem esgotar o assunto.

para quem desejar, pode fazer o download deste plugin em http://www.cnpack.org

Um grande abraço e até o proximo post.



sexta-feira, 5 de junho de 2009

Sopa de letrinhas















SOA, RIA, SAAS, WEB 2.0, CLOUD ....


Até parece uma sopa de letrinhas tantas siglas juntas, mas estas são as 5 tendências do momento quando se fala de tecnologia da informação, portanto é melhor ir se acostumando.

Para ajudar aqui vai um pouco mais sobre o assunto:


1. SOA - Service-oriented architecture - pode ser traduzido como arquitetura orientada a serviços, e é um estilo de arquitetura de software cujo princípio fundamental preconiza que as funcionalidades implementadas pelas aplicações devem ser disponibilizadas na forma de serviços.

2. WEB 2.0 - termo criado em 2004 pela empresa estadunidense O'Reilly Media para designar uma segunda geração de comunidades e serviços, tendo como conceito a "Web como plataforma", envolvendo wikis, aplicações baseadas em folksonomia, redes sociais e Tecnologia da Informação. Embora o termo tenha uma conotação de uma nova versão para a Web, ele não se refere à atualização nas suas especificações técnicas, mas a uma mudança na forma como ela é encarada por usuários e desenvolvedores, ou seja, o ambiente de interação que hoje engloba inúmeras linguagens e motivações.

3. RIA - Aplicações de Internet Rica - da sigla em inglês RIA - Rich Internet Application são Aplicações Web que tem características e funcionalidades de softwares tradicionais do tipo aplicativo. RIA típicos transferem todo o processamento da interface para o navegador da internet, porém mantém a maior parte dos dados (como por exemplo, o estado do programa, dados do banco) no servidor de aplicação.

4. SAAS - Software como serviço - do inglês Software as a service, é um instrumento mercadológico para fornecer software, parecido com o Serviço web.É uma forma de software que é usada como serviço, ou seja, é executado diretamente na internet, não sendo necessário instalar seus códigos no computador do usuário, bastando acessá-lo por meio do navegador de internet disponível no sistema operacional. São os chamados SaaS (software-as-a-service). Como exemplo, tem-se o Google-Docs que oferece um pacote de programas similares aos dos Office.

5. CLOUD COMPUTING - A nuvem computacional ou cloud computing é um modelo de computação em que dados, arquivos e aplicações residem em servidores físicos ou virtuais, acessíveis por meio de uma rede em qualquer dispositivo compatível. Basicamente, consiste em compartilhar ferramentas computacionais pela interligação dos sistemas, semelhantes as nuvens no céu, ao invés de ter essas ferramentas localmente (mesmo nos servidores internos). O uso desse modelo (ambiente) é mais viável do que o uso de unidades físicas

É isso ai pessoal .... um abraço e até o próximo post.



quinta-feira, 4 de junho de 2009

Eco Developers 2009


Olha a gente ai ... conhecendo as novidades da Microsoft ...

SharePoint , Windows 7, Windows Azure, IIS 7.0 ... e um time de profissionais de excelencia.



terça-feira, 2 de junho de 2009

Testes Unitários com Delphi

Por: Paulo Roberto Quicoli

Os testes unitários visam realizar testes automatizados para suas classes. Esses testes por serem automatizados dão segurança para que se façam alterações sem aquele medo de ter quebrado algo no sistema.

Quem aqui nunca fez uma alteração que arrumou uma coisa e sem querer estragou outra? Os testes unitários atuam justamente nesse ponto, se você faz algo que causa alguma conseqüência inesperada em alguma outra parte do sistema, que as vezes você nem se lembra, os testes vão pegar a falha.

Ferramentas de apoio

Quando participei em 2004 da conferência Extreme Programming Brasil eu era um dos poucos desenvolvedores Delphi lá. Porém os conceitos e provas de conceito apresentados podem ser aplicados a qualquer equipe de desenvolvimento independente de linguagem utilizada.

Sobre testes unitários foi provado que:

· Dão segurança, apoio, para que alterações seja realizadas de forma mais dinâmica

· Dão coragem ao desenvolvedor para encarar as alterações solicitadas

· Dão base para entrega de um sistema sem bugs



As ferramentas que dão suporte a esse tipo de teste inicialmente surgiram para o Java e posteriormente foram “traduzidas” para outras linguagens e ambientes populares como Delphi e .NET. Se em Java temos o JUnit, para Delphi win32 temos o DUnit e para .NET temos o NUnit.

DUnit

Vou focar o artigo de hoje no DUnit com Delphi 7, visto que a maioria do desenvolvimento em Delphi ainda é feito sobre win32 e com a versão 7 do Delphi. O framework pode ser baixado em http://dunit.sourceforge.net/

A instalação é simples. Descompacte a o conteúdo do arquivo para alguma pasta e adicione no library path do Delphi o caminho \DUnit\Source

Exemplo

Os mais puristas em desenvolvimento TDD (Test Driven Development), desenvolvimento diridigo por testes, e XP (Extreme Programming) pregam que primeiramente devemos construir os testes para determinada classe e rodá-lo. Dessa forma nos certificamos que os testes darão errado no inicio e só então se inicia o desenvolvimento da classe a ser testada. Bem, para quem vem de uma cultura onde “arrastar e soltar” é a “melhor coisa do mundo”, é pra dar um nó na cabeça não é? Como vou testar algo que não está pronto.

Bem, eu não sou purista e sou da opinião que devemos tirar o que há de melhor nisso e particularmente primeiro faço a classe e depois a testo.

Inicie um novo projeto no delphi e adicione uma unit. Nessa unit insira a classe da Listagem 1.



Listagem 1. Classe a ser testada

TNotas = class

private

FNota1: integer;
FNota2: integer;
FNota3: integer;
FNota4: integer;

procedure SetNota1(const Value: integer);
procedure SetNota2(const Value: integer);
procedure SetNota3(const Value: integer);
procedure SetNota4(const Value: integer);

public
property Nota1: integer read FNota1 write SetNota1;
property Nota2: integer read FNota2 write SetNota2;
property Nota3: integer read FNota3 write SetNota3;
property Nota4: integer read FNota4 write SetNota4;
function Media: Real;
end;



Implemente o método Media conforme a Listagem 2.



Listagem 2. Método Media

function TNotas.Media: Real;
begin
Result := (Nota1 + Nota2 + Nota3 + Nota4)/4;
end;


Testando a Classe

Feche a aplicação e inicie um novo projeto, removendo deste o Form1, se criado. Acesse Project -> View Source e ajuste o código do projeto de acordo com a Listagem 3.



Listagem 3. Preparando para utilizar DUnit

uses
Forms,
TestFrameWork,
GuiTestRunner;

{$R *.res}

begin
Application.Initialize;
GUITestRunner.RunRegisteredTests;
end.



Salve o projeto e adicione uma nova Unit, nela vamos escrever o teste necessário, conforme a Listagem 4.



Listagem 4. Testes

uses TestFramework, Model;

type
TNotasTestes = class(TTestCase)
private
FNotas: TNotas;

protected

procedure SetUp; override;
procedure TearDown; override;

published
procedure TestMedia;
end;



Observe que para testar uma classe, criamos outra de teste. Embora possa parecer trabalhoso e custoso, os benefícios oferecidos são compensadores. Toda classe de teste deve derivar de TTestCase, que apresenta dois métodos que podem ser sobrecarregados e são muito úteis.

O SetUp e o TearDown. O Setup será chamado antes de cada teste publicado ser executado. Assim, podemos preparar os testes com informações necessárias antes de sua execução. O TearDown, é chamado depois que o teste é realizado, podendo ser utilizado para liberar recursos alocados pelo teste.

Pensando em nosso teste vemos que precisaremos de uma instância de TNotas seja criada e aos o teste seja liberada. Utilizaremos então o SetUp e TearDown para isso.

Implemente o método TestMedia conforme a Listagem 5.



Listagem 5. Codificando o teste

procedure TNotasTestes.TestMedia;
begin
FNotas.Nota1 := 10;
FNotas.Nota2 := 10;
FNotas.Nota3 := 10;
FNotas.Nota4 := 10;

CheckEquals(10,FNotas.Media);
end;



O framework DUnit oferece vários métodos que utilizamos para realizar testes, em nosso exemplo utilizamos o CheckEquals. CheckEquals vai verificar a igualdade dos valores passados, havendo diferença o teste é identificado como falho.

Antes de executarmos, é preciso registrar o teste no framework, isso é feito na seção initialization, veja a Listagem 6



Listagem 6. Registrando o teste

initialization
TestFramework.RegisterTest('Tests Suite', TNotasTestes.Suite);



Execute a aplicação, e dê um ENTER, o teste será executado




Cometendo um erro

Digamos que precisamos alterar nossa classe de Notas, aumentar mais uma nota, de 4 para 5. E na correria apenas acrescentamos mais uma propriedade Nota5, esquecendo de ajustar a rotina do calculo. Então ajustamos o teste para a nova situação, conforme a Listagem 7.



Listagem 7. Novo teste

procedure TNotasTestes.TestMedia;
begin
FNotas.Nota1 := 10;
FNotas.Nota2 := 10;
FNotas.Nota3 := 10;
FNotas.Nota4 := 10;
FNotas.Nota5 := 5;

CheckEquals(9,FNotas.Media);
end;



Execute o teste, o mesmo irá falhar. Ao detectarmos a falha, podemos então arrumar o cálculo e executar novamente o teste, então ele passará.

Conclusão

Imagine em um sistema complexo como que os testes podem facilitar nossa vida, pegando as falhas que podemos causar. Não é fácil deixar o “jeitão” de fazer as coisas como fazemos e partir para um novo modelo de desenvolvimento, mas com dedicação e boa vontade conseguimos resultados que nunca esperamos. Até mais !

Fonte:
http://www.devmedia.com.br/articles/viewcomp.asp?comp=2739

segunda-feira, 1 de junho de 2009

Mercado de tecnologia tem muito trabalho e pouca mão-de-obra

Mercado de tecnologia tem muito trabalho e pouca mão-de-obra

São Paulo - Segundo pesquisa da Robert Half, 40% dos executivos têm as mesmas dificuldades de contratar novos profissionais que já tinham há um ano.

Por Redação CIO Brasil
01 de junho de 2009 - 09h34


Um levantamento realizado pela consultoria de recrutamento Robert Half, que ouviu 102 CIOs e gerentes de TI brasileiros, aponta que a necessidade de suportar o crescimento das organizações e a demanda por atualizações - ou desenvolvimento interno - de sistemas representam os principais responsáveis pelo excesso de trabalho das equipes de tecnologia da informação.


Pelo documento, quando se trata da contratação de novos colaboradores, atualmente, 31% dos gestores buscam profissionais especializados na segmentação .Net, 29% procuram candidatos com habilidades em gerenciamento de banco de dados de fornecedores como Oracle e 28% priorizam a seleção de especialistas nas plataformas de desenvolvimento JAVA.

No que diz respeito à falta de mão-de-obra especializada em TI no mercado brasileiro, a crise financeira parece não ter mudado o desafiador cenário enfrentado pelos líderes que precisam aumentar suas equipes. De acordo com a pesquisa, 40% dos respondentes classificam que a dificuldade encontrada na contratação de profissionais capacitados é exatamente igual à observada um ano atrás.

Já para 24% dos executivos consultados, o momento atual está ligeiramente mais favorável às contratações do que o panorama encarado há 12 meses. A justificativa para esses executivos é que as demissões realizadas por algumas companhias de atuação nacional “liberaram” bons candidatos no mercado.


Fonte:
http://computerworld.uol.com.br/carreira/2009/06/01/mercado-de-tecnologia-tem-excesso-de-trabalho-e-mao-de-obra-escassa/

Evento Microsoft

Evento Microsoft para Desenvolvedores de Software

31/5/2009

No seu quinto ano de existência, o grupo de usuários DevGoias .NET se concentra na realização do evento além da tecnologia, que por sua vez tem como fator a preocupação com o meio ecológico e com as ações sociais às comunidades carentes.

O ECO Developers é um evento para desenvolvedores de software e empresas que trabalham com a tecnologia Microsoft. O evento traz novidades que foram lançadas recentemente no MIX09 em Las Vegas, tais como Silverlight 3, ASP.NET MVC, IE8 e produtos da Família Expression. Também consta na agenda o Windows Azure, ADO.NET Data Services, Entity Framework e o tão esperado Windows 7.

Para promover uma discussão no decorrer do evento, o ECO Developers vem com uma pergunta: Como a tecnologia pode contribuir para a uma vida sustentável e beneficiar o terceiro setor?

Você também pode ajudar e colaborar com a ação do DevGoiás. Faça a sua inscrição e leve 1kg de alimento não perecível ou roupas/agasalho, na saída você receberá uma muda de árvore para plantar onde quiser.



Fonte: DevGoiás.Net - http://ecodevelopers.devgoias.net