| Assinar RSS

Tiburon - DBExpress no Delphi 2009

August 19th, 2008 | No Comments | Posted in Tiburon
O DBExpress e Drivers DBX dos bancos de dados também suportam Unicode a partir do Delphi 2009, mas esta não foi a única melhoria, conforme você pode ver a seguir.

Cliente do novo DataSnap

A mais notável mudança é a capacidade do DBExpress acessar servidores DataSnap diretamente, como se o Servidor fosse um banco de dados, sem a necessidade de drivers adicionais ou COM, tornando simples a criação de aplicações em três camadas.

Object Inspector - TSQLConnection



DBX Client Provider - DataSnap

Foi adicionado diretamente no TSQLConnection a funcionalidade de gerar a interface dos métodos publicados no Servidor DataSnap, basta clicar com o botão direito do mouse no componente e selecionar “Generate DataSnap client classes”, uma unit de interface para os acessos remotos será gerada. Mantendo a programação altamente tipada e delegando ao componente TSQLServerMethod o suporte a Design Time para o acesso os métodos.

DBX Client Provider - DataSnap

TSQLServerMethod

Novo componente criado para chamar métodos no servidor de forma similar a Stored Procedures. Para invocar um método remoto, basta especificar a classe, o método e os parâmetros no servidor, podendo enviar ou receber DataSets diretamente nos parâmetros. Tudo com suporte a Design Time, tendo a vantagem de selecionar os métodos remotos diretamente no Object Inspector.

Tiburon - TSQLServerMethod

 
var
  RemoteProcedure: TRemoteProcedureClient;
begin
  SQLConnection.Connected:= True;
  RemoteProcedure:= TRemoteProcedureClient.Create(
    SQLConnection.DBXConnection);
  try
    MessageDlg(RemoteProcedure.SayHello, mtInformation, [mbOK], 0);
  finally
    RemoteProcedure.Free;
  end;
end; 

Referências

Fonte para editar fontes

August 19th, 2008 | 2 Comments | Posted in Delphi, Dicas, Programação, Rad Studio

Microsoft criou e disponibilizou gratuitamente as fontes “Consolas Font Family”. São fontes monoespaçadas criadas principalmente para utilizar com ClearType (suavizar fontes) habilitado no tema do Windows.

É um conjunto de fontes para uso destinado a ambientes de programação e outras circunstâncias onde fonte monoespaçada é necessária. Todos os caracteres tem o mesmo tamanho, como nos editores antigos. A otimização para ClearType permite um desenho das fontes com proporções mais próximas a texto normal do que as fontes tradicionais como Courier, tornando a leitura em tela mais agradável.

Eu estou utilizando esta fonte há uma semana e já me acostumei, foi a melhor alternativa a tradicional Courier que encontrei até agora.

Editor - Consolas Font

 

A Microsoft disponibilizou um instalador, que vai instalar e definir Consolas como fonte padrão no Visual Studio 2005 e 2008.

Para utilizar esta fonte no Delphi 2007, é só selecionar a fonte Consola em “Tools - Options - Editor Options - Display - Editor Font”.

Options - Source - Display

 

Referência

Trabalhando com Subversion no Windows

August 12th, 2008 | No Comments | Posted in Dicas, Gerenciamento e Controles, Programação

Eu sempre trabalhei com o Subversion em servidores Linux, então sempre que alguém que quer conhecer o Subversion me pede ajuda sobre como configurá-lo no Windows, eu apenas indico referências para pesquisa, já que não tenho experiência no ambiente.

Minhas dicas para quem está querendo utilizar o Subversion:

Tiburon - Delphi 2009 - IDE

August 11th, 2008 | 16 Comments | Posted in Tiburon

Não precisa testar esta versão por muito tempo para notar que a CodeGear está dando mais atenção e carinho para o Delphi 2009.

Neste artigo vou falar sobre a instalação, Inicialização e algumas melhorias na IDE.

 

Instalação

O tempo de instalação está bem reduzido, em comparação com o Delphi 2007, a instalação da IDE com todos os componentes, e sem o Help demorou em torno de 15 minutos no Windows vista, a versão anterior demorava horas.

Outra novidade mais do que bem vinda, é que a não é mais necessário instalar o .Net SDK, que era necessário para o Help. Pelo visto a CodeGear licenciou o uso do mecanismo de Help do .Net, e agora incluiu direto no instalador.

 

Inicialização

Tiburon - Splash Screen

O Tempo de inicialização está sensacional, tenho instalado o Delphi 6, 7, BDS 2006, RS 2007 e agora o Tiburon. Comparei o tempo de inicialização com o Delphi 7 e com o 2007, que estão instalados na mesma máquina que o Tiburon, as outras 2 versões tem o DelphiSpeedUp instalado, e o Tiburon não, mesmo assim o tempo de inicialização foi em média 5 vezes mais rápida.

  


 

IDE

A IDE ganhou muita atenção nesta versão, está muito leve. Posso alterar entre Form Designer, Fontes, selecionar Object Inspector, Projects Options, e a resposta é imediata em todos os casos, muito diferente do 2007 e até mesmo melhor que o Delphi 7.

Aparentemente, a conversão para Unicode forçou a equipe da CodeGear a fazer uma boa otimização na IDE, a melhora na performance durante a utilização é visível. Eu também notei que está consumindo menos memória em relação ao RS 2007, após carregar ambas IDE’s, abrir o mesmo projeto nas 2, verifiquei no gerenciador de tarefas do Windows que o Tiburon consome menos memória para as mesmas tarefas.

Não apenas a IDE está mais rápida, o compilador também, mas este é assunto para um outro artigo, onde falarei das mudanças do compilador como as novas diretivas.

 

Project Manager

Tiburon - Project Manager

 

O Project Manager agora também mantém as configurações de build, e o menu de contexto já traz a opções de criar novas configurações, salvar o conteúdo de uma configuração e carregar configurações salvar.

 

Esta opção agiliza muito quando precisamos alterar o tipo de build, e até mesmo a personalização de uma existente. Inicialmente senti falta de uma opção para clonar uma build existente, mas então percebi que é desnecessário, basta salvar as configurações da build que deseja duplicar para alterar, criar uma nova, carregar a salva e aplicar.

 

 

 

Tool Pallete

Tiburon - Tool Pallete

A Tool Pallete, tem um campo para buscas e apesar de não ter gostado nas versões anteriores, esta versão me agradou. Eu sempre usei a Pallete do estilo Delphi 7, disponível no DDevExtensions, acho que agora vou conseguir usar somente esta.

 

Aproveito o tópico para deixar uma dica, após selecionar a Tool Pallete, com mouse com através do atalho CTRL + ALT + P, e efetuar a busca pela segunda vez, o texto pesquisado anteriormente ainda está lá, se você digitar novamente terá o conteúdo da busca anterior mais o texto que está digitando, para limpar o conteúdo tecle ESC para descartar a busca anterior ou clique no botão X que aparece quando tem algum conteúdo.

 

 

 

Project - Resources

Tiburon - Project - ResourcesMais uma novidade bem vinda, agora podemos adicionar recursos diretamente ao projeto, sem a necessidade de editar e criar arquivos .RC e .DCR.

Acessível através do Menu Project | Resouces, podemos adicionar ao projeto: fontes, cursores, imagens. Podemos personalizar os identificadores, e assim que adicionados, serão automaticamente compilados e adicionados a aplicação.

Formatos suportados diretamente pelo diálogo: .bmp, .cur, .fnt, .fon, .gif, .ico, .jfif, .jpe, .jpeg, .jpg, .png, .ttf.

 

Project - Options

Tiburon - Project - Options

Outros diálogos também receberam atenção, o Project | Options foi reformulado, e como a quantidade de mudanças é grande, vou este assunto para outro artigo.

 

Objeto de outros artigos serão:

  • Suporte a internacionalização, que também teve melhorias, este realmente precisava, pois era alvo de muita reclamação.
  • E o Wizard de importação de Type Library, ActiveX e .Net Assembly, este eu já fiz alguns testes e realmente foi melhorado, eu importei os componentes de Speech-To-Text do Windows Vista, e criei uma aplicação simples para leitura de textos.

Lançado o Free Pascal 2.2.2

August 11th, 2008 | No Comments | Posted in Free Pascal, Lançamentos, Programação

Nova versão do compilador Free Pascal está disponível nas seguintes plataformas:

    • Dos
    • FreeBSD
    • Linux
    • Mac OS X
    • OS/2
    • Windows
    • Windows CE

    Suportando CPU 32 e 64 bit onde aplicável.

    Esta é a atual versão estável. Lançada para correção de bugs e apenas com algumas características já implementadas na versão de desenvolvimento. Também é uma versão de limpeza no código, para eliminar trechos suspeitos de infringir copyrights.

    A documentação foi completamente revisada e agora descreve o compilador atual e o comportamento da RTL.

     

    Referências

    CodeGear - Newsgroup e Fórum

    August 10th, 2008 | No Comments | Posted in Delphi, Dicas, Rad Studio, Web

    O servidor NNTP da CodeGear está fora do ar por alguns dias, houveram algumas tentativas frustradas de restaurar o servidor, mas o servidor continuou caindo.

    Mas John Kaster e sua equipe já estavam trabalhando em uma solução. Agora temos um novo servidor NNTP e Fórum.

    Esta nova solução usa o banco de dados da CodeGear, o BlackfishSQL.

    Passo a dica para os frequentadores do Newsgroup, que recebi do colega “Q Correll”, após algumas tentativas de postar sem sucesso, usar o login de acesso a Developer Network, o login do site da CodeGear, do site Members.

     

    Referências

    Tiburon - Jazz Plugin

    August 7th, 2008 | 4 Comments | Posted in Tiburon

    Ontem obtive autorização do Nick Hodges para falar publicamente do Delphi 2009, então alguns artigos de agora em diante mostrarão as  experiências que estou tendo e as novidades desta nova versão.

    Para começar, a IDE está muito mais leve e estável que o Delphi 2007, o tempo inicial de carga também foi reduzido, nem parece uma aplicação que utiliza bibliotecas .NET.

    Meu primeiro teste foi converter a biblioteca de plugins “Jazz Plugin”, a grande surpresa é que apesar do Unicode não houve conversão, basicamente precisei criar um novo grupo de projetos, fazer uma cópia dos projetos do 2007, renomear os pacotes e recompilar.

    Tiburon - Jazz Plugin

    Recebi alguns Hints e Warnings durante a compilação, notificando sobre possíveis perdas em conversões de AnsiString para Unicode String, tudo muito simples de resolver.

     

    image

    Após compilar e instalar, já foi possível executar o Wizard para criar um novo projeto de plugins, tudo funcionou 100%, com uma performance e estabilidade superiores ao Delphi 2007.

    Próximo passo será converter o Jazz SDK, utilizando os novos recursos adicionados a linguagem como Generics, e a nova implementação do DataSnap e DBX para aplicações em 3 camadas.

    OpenSuse, Subversion, Trac, RemObjects, Free Pascal e FDD

    July 18th, 2008 | No Comments | Posted in Geral

    Desde a semana passada, além das tarefas diárias tive de instalar um servidor novo, atualizei o hardware e o SO para OpenSuse 11.

    Neste servidor já coloquei no ar o Subversion e o Trac, ferramentas indispensáveis para desenvolvimento de sistemas.

    Nesta tarde portei um servidor de aplicações simples feito com Delphi + RemObjects para Linux usando o Free Pascal, a nota aqui é que além de configurar o ambiente, só precisei adicionar uma unit para Threads no projeto, para compilar e executar no Linux. O próximo passo é escrever um "Jazz DB Mechanism" para fazer a persistência dos objetos usando as bibliotecas de acesso a banco de dados do Free Pascal.

    E sábado é dia de FDD, estarei em Piracicaba, se alguém quiser conversar só mandar um e-mail e me encontrar lá.

    FastScript 1.94

    July 9th, 2008 | No Comments | Posted in Delphi, Programação, Rad Studio

    Fast Report anunciou uma atualização do FastScript.

    Novidades

    • RTTI - novas funções e propriedades
      • TCustomIniFile.WriteTStrings
      • TCustomIniFile.ReadTStrings
      • TIBTransaction.Commit
      • TIBTransaction.RollBack
      • TIBTransaction.StartTransaction
      • TIBQuery.FetchAll
      • TIBQuery.RecordCount
      • TChartSeries.Active
      • TChartSeries.Count
      • TChartSeries.Delete
      • E funções agora retornam Null como valor padrão
    • propriedade TfsScript.IncludePath: lista de caminho dos módulos
    • propriedade EvaluateRiseError property: retorna True se houver erro de Evaluate
    • Evento OnGetVarValue
    • AddPropertyEx com TfsGetValueNewEvent/TfsSetValueNewEvent


    Erros corrigidos

    • Bug no operador "in"
    • Bug com "late binding" - link em tempo de execução
    • Bug com "type casting"
    • Bug de "Evaluate" na gramática Basic
    • Bug de chamadas AddRTTI desnecessárias em "evaluate function"

     

    FastScript é um mecanismo de scripting multi-plataforma, multi-linguagem. É útil para programadores que desejam adicionar o recurso de scripting aos seus projetos.

    FastScript suporta:

    • Delphi 4-7, 2005, 2006, 2007
    • C++Builder 4-6, 2005, 2006, BDS
    • Kylix 1-3
    • Lazarus Free Pascal

    Referências

    Delphi 4 PHP - Smarty Templates

    July 8th, 2008 | No Comments | Posted in Delphi 4 PHP, Programação, Web

    O D4PHP tem suporte nativo a Smarty Templates, que é um recurso muito interessante, que aumenta a produtividade ao mesmo tempo que ajuda a separar a lógica do design.

    O problema que eu encontrei, é que a forma em que foi implementado, depende que o PHP esteja com variáveis globais habilitadas, como eu mantenho este recurso desabilitado, quando tentava usar Smarty Templates com D4PHP, sempre dava erro, e a mensagem de erro não ajudava muito.

    Este erro só acontece se no PHP as variáveis globais estiverem desabilitadas.

    Com uma dica do Jonathan Benedicto, fiz uma pequena alteração no arquivo "vcl/smartytemplate.inc.php", para que o diretório temporário fosse carregado do ambiente e não da variável global "TMP".

    A alteração fica na function initialize(), eu comentei o código anterior e adicionei o novo, linha ~51:

    function initialize()  {


        require_once("smarty/libs/Smarty.class.php");


     

        $this->_smarty = new Smarty;


        $this->_smarty->left_delimiter='{%';


        $this->_smarty->right_delimiter='%}';


        $this->_smarty->template_dir = '';


        if ( preg_match( "/^WIN/i", PHP_OS ) ){


    /* // inicio do código comentado


            if ( isset( $_ENV['TMP'] ) ){


                $this->_smarty->compile_dir = $_ENV['TMP'];


            }


            elseif( isset( $_ENV['TEMP'] ) ){


                $this->_smarty->compile_dir = $_ENV['TEMP'];                     

    }


            else {


                $this->_smarty->compile_dir = '/tmp';


            }


        }


        else{


            $this->_smarty->compile_dir = '/tmp';


        }


    */ // fim do código comentado


            if (getenv('TMP')){


                $this->_smarty->compile_dir = getenv( 'TMP' );


            }


            elseif(getenv('TEMP')){


                $this->_smarty->compile_dir = getenv( 'TEMP' );


            }


            else {


                $this->_smarty->compile_dir = '/tmp';


            }


        }                                  


        $this->_smarty->cache_dir=$this->_smarty->compile_dir;


    }

     


    Referências