Aprendendo com os Mestres

Pessoal essa semana encontrei um material muito bom, que é o materia do CodeRage II realizado em novembro de 2007, este que é um evento parecido com o que tivemos aqui (Delphi Day OnLine), tem um material de primeira linha só com feras como Marco Cantu, Nick Rodges e Cia, os vídeos, claro, estão todos em inglês mas vejo isso como uma oportunidade para praticarmos! rsrs

Ai segue o Link e espero que todos disfrutem dessa dica!

http://video.codegear.com/CodeRageIIArchives/

Abraço a todos!


Mini Cidade Delphi Brasil

Pessoal, essa semana eu criei a mini cidade Delphi Brasil, a ideia de criar essa mini-cidade é ver o quanto a comunidade delphi no Brasil é grande, quanto mais pessoas clicarem no link mais a cidade crescerá, e isso nos dará um “dimensão” do tamanho da comunidade. Lá existe uma espécie de mural! deixem um recado pra comunidade lá!, vamos mostrar como a comunidade é grande!
Veja como está a cidade hoje:

http://delphibrasil.myminicity.com/ – Entrar na Cidade
http://delphibrasil.myminicity.com/ind – Criar uma Indústria

Vamos fazer a cidade crescer.


DataSnap Dinâmico

Pessoal, gostaria de dar destaque para um artigo que saiu na edição 47 da Active Delphi, esse que é uma espécie de “repescagem” para queles que não tiveram a oportunidade de ir na Borcon 2007. É o artigo do nosso amigo Marcos Barreto (mrbar2000 da lista NDDV).
O cara conseguiu revolucionar o que já era uma revolução, que é o desenvolvimento n-tier, mas de forma dinâmica. Confesso que no inicio imaginei que seria mais dispendioso, e que perderia o desenvolvimento RAD, mas quando vi a implementação das classes, percebi que é muito simples tanto a implementação quanto a manutenção.

Veja quais são as vantagens dessa técnica:

  1. Não precisamos mais ficar nos aborrecendo com tanta Query e Provider espalhados pelo RDM.
  2. Não é necessário se preocupar mais com a trabalheira dana em criar RDM’s filhos e ter que configurar a TypeLibrary para que os SharedConnections enxerguem os RDM’s filhos. (essa é melhor de todas rsrs, pelomenos pra nós)
  3. Consumo de memória reduzido em 90% ou mais.
  4. Facilidade na migração dos componentes de acesso a dados (já que é tudo dinâmico).
  5. Facilidade em mudar a técnologia de acesso.
  6. RN’s (Regras de negócio) bem encapsuladas.
  7. Facilidade de modulariação do Servidor de Aplicação

Além do artigo, uma ótima dica também, é baixar o material da Borcon que pode ser encontrado no link http://cc.codegear.com/Item/25225

Parabéns Marcos!


Evitando Lookup’s

Olá pessoal, para aqueles que utilizam campos lookup’s para exibir num DBGrid a descrição de uma chave estrangeira, resolvi postar aqui um exemplo utilizando uma técnica que visa evitar esse tipo de campo, melhorando e muito na performance da sua aplicação. Vale a pena dar uma conferida.

Trata-se de uma tela de pedidos/vendas, onde o usuário insere os produtos utilizando o próprio DBGrid, recuperando a descrição do produto utilizando um JOIN entre as tabelas, a parti dai, basta adicionar os fields e alterar todas as ProviderFlags do TField do campo “externo” para false, para que ele não entre na montagem do updade.

Clique aqui para baixar o exemplo


Delphi Day onLine – Palestras disponíveis

No último dia 7 aconteceu o CodeGear Delphi Day em Português, um dia inteiro de palestras, onde foram abordados os seguintes temas:

  • As principais razões para migrar de Delphi 7 para RAD Studio 2007 (Andreano Lanusse)
  • Generics em RAD Studio 2007 (Manoel Edésio)
  • Utilizando dbExpress 4 Framework (Bruno Lichot)
  • Blackfish SQL sem limites para stored procedures e triggers em Delphi (Leonel Togniolli)
  • Desenvolvendo Aplicações WEB com ASP.NET, AJAX e RAD Studio 2007 (Andreano Lanusse )
  • Melhorando a qualidade de suas aplicações em Delphi (Ricardo Barbieri)
  • ECO IV e RAD Studio 2007 (Adilson Jr.)

Quem não teve oportunidade (assim como eu (-;) pode baixar as palestras no link http://dn.codegear.com/article/37460

Bom proveito a todos!


Exemplo para iniciantes

Pessoal, coloquei disponível para download um exemplo simples para inciante, onde abordei técnicas como Herança Visual, Actions, Pesquisa Incremental, etc.

Clique Aqui para fazer o Download

Não deixem de comentar o exemplo.

Abraço a todos.


Cobertura da Borland Conference Revolutions

Pessoal a cobertura completa do que aconteceu na Borcon 2007 pode ser vista no link http://info.borland.com.br/borcon07/cobertura_borcon.html, lá você pode baixar o material das palestras, visualizar a fotos além de depoimentos de quem participou. Boa leitura!


Função para retornar os dias úteis

Pessoal, a medida em que eu tiver tempo (-:, vou postar aqui funções que considero interessantes para o nosso dia-a-dia. A primeira que vou postar aqui é uma para contar os dias úteis em um intervalo de datas. Temos várias funções desse tipo na interne, mas eu achava os algoritimos muito complicados, então resolvi fazer a minha. Chegei a publicar ela no ActiveNews da ActiveDelphi, pra que não viu ai está.

function Dias_Uteis(DataI, DataF:TDateTime):Integer;
var
contador:Integer;
begin
if DataI > DataF then
begin
result := 0;
exit
end;
Contador := 0;
while (DataI <= DataF) do
begin
if ((DayOfWeek(DataI) <> 1) and (DayOfWeek(DataI) <> 7)) then
Inc(Contador);
DataI := DataI + 1

end;
result := Contador;
end;

São apenas dois argumentos, Data Inicial e Data Final, a idéia é fazer um looping enquanto a data inicial for menor que a data final, a partir dai vamos incrementando a data inicial e verificamos se é um sábado ou domingo com a função DayOfWeek, se não for, contamos 1 dia. Simples não?

Depois vamos melhorar essa função permitindo que ele suporte feriados. Até lá!


Developer Conference (BorCon 2007) – Apresentações disponíveis para download

Para aqueles que estavam ansiosos, já está disponível para download, todo o material da Borcon. Como eu não perco tempo, já estou desfrutando de toda essa massa de conhecimento!.
Aproveitem! http://dn.codegear.com/br/article/37375


StringOfChar, replicando caracteres.

Pessoal, essa é mais um funçãozinha muito interssante e muitos não conhecem. A sua utilidade é replicar um determinando caracter e sua sintaxe é muito simples, contendo apenas dois argumentos.

function StringOfChar(ch: AnsiChar; Count: Integer): AnsiString; overload;

  • ch – Caracter a ser replicado.
  • Count – Número de ocorrências

Exemplo:

procedure TForm1.Button1Click(Sender:TObject);
begin
ShowMessage(StringOfChar(‘*’,20)+#13+’Atenção ocorreu um erro’+#13+StringOfChar(‘*’,20));
end;

Abraços, e até a próxima!