RAD Studio Tokyo Release 1 Disponible

Embarcadero acaba de liberar el RAD Studio Tokyo Release 1 (formalmente 10.2.1)

Overview   Embarcadero Website(1).png

Usted puede leer más sobre el lanzamiento en este artículo de Marco Cantu, publicado en nuestro portal para desarrolladores:
https://community.embarcadero.com/article/16556-rad-studio-10-2-1-released-today

En esta página usted encuentra toda la documentación de este release, incluyendo enlaces para descargar, y la lista macro de cuestiones solucionadas y mejoras:
http://docwiki.embarcadero.com/RADStudio/Tokyo/es/10.2_Tokyo_-_Release_1

Para obtener una descripción más detallada de todos los temas cubiertos por este release, por favor visite esta página:
http://edn.embarcadero.com/article/44763

Tokyo Release 1 significa un esfuerzo significativo en la solución de problemas causados ​​por actualizaciones en los sistemas operativos compatibles, como los cambios en el  Windows 10 Creators Update, y también la eliminación de APIs en la última versión estable de Xcode.

Estamos muy contentos con este release, al permitir que nuestros clientes continúen entregando software de alto rendimiento en tiempo récord!

RAD Studio Tokyo Release 1 Disponível

A Embarcadero acaba de disponibilizar o RAD Studio Tokyo Release 1 (formalmente 10.2.1)

Overview   Embarcadero Website.png
Você pode ler mais sobre o lançamento neste artigo de Marco Cantu publicado em nosso portal para desenvolvedores:
https://community.embarcadero.com/article/16556-rad-studio-10-2-1-released-today

Nesta página você encontra toda a documentação desta release, incluindo links para download, e a lista macro de questões solucionadas e melhorias:
http://docwiki.embarcadero.com/RADStudio/Tokyo/pt/10.2_Tokyo_-_Release_1

Para obter uma descrição mais detalhada de todos os issues cobertos por esta release, por favor visite esta página:
http://edn.embarcadero.com/article/44763

O Tokyo Release 1 significa um esforço significativo na solução de problemas causados por atualizações nos sistemas operacionais suportados, como as mudanças no mecanismo de thread do Windows 10 Creators Update, e também a remoção de APIs na última versão estável do Xcode.

Estamos muito felizes com esta release, ao permitir que nossos clientes continuem entregando software de alta performance em tempo recorde!

Um Mecanismo de Cache de Dados para DataSnap

Hoje pela manhã, durante o Delphi Academy, discutimos sobre cache de dados para DataSnap. Basicamente o cenário onde você tem tabelas que sofrem nenhuma ou poucas alterações ao longo do período, as quais você não precisa refazer a consulta a todo tempo, para todos os usuários.

Estou disponibilizando o exemplo abaixo, mas em um resumo, temos o seguinte:

  • Em uma aplicação DataSnap REST, adicionar um DataModule e configurar seu LifeCycle para Server, no ServerContainer. Com isso, ele terá uma única instância durante o ciclo de vida da aplicação
  • Neste DataModule, coloque um MemTable (ou Clientdataset se preferir) para cada tabela que deseja manter em cache
  • Defina uma conexão ao banco, e métodos (ou componentes para a execução das queries) para executar as consultas e carregar as tabelas em memória
  • Adicione um TFDEventAlerter e faça as devidas configurações: http://docwiki.embarcadero.com/Libraries/Tokyo/en/FireDAC.Comp.Client.TFDEventAlerter
  • Crie triggers de INSERT/UPDATE/DELETE que fará o “POST_EVENT” com o nome do evento alertando que a tabela sofreu alguma alteração. Este mesmo mecanismo está disponível para a maioria dos banco de dados: http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Database_Alerts_(FireDAC)
  • No evento do OnAlert do  TFDEventAlerter, faça o refresh das tabelas e atualização dos datasets em memória

Com isso, você tem um mecanismo seguro e prático para manter as tabelas em memória sempre atualizadas.

Screen Shot 2017-05-30 at 17.34.14Screen Shot 2017-05-30 at 17.34.21

Os exemplos atualizados estão nestes links:

 

RAD Studio no TDC São Paulo!

Call4Papers

Este ano a Embarcadero terá uma trilha Delphi e C++ Builder no TDC São Paulo, e nós estamos muito entusiasmados em poder mostrar todo o poder do RAD para Windows, Android, iOS, macOS e Linux!

Você que é fera em Delphi ou C++ Builder, e gostaria de palestrar no evento, este é o link para submissões (somente até o dia 30/05):

http://thedevconf.com.br/tdc/2017/saopaulo/call4papers

Desde já convidamos toda a comunidade a se inscrever e participar conosco no evento. A Embarcadero terá também um box onde estaremos apresentando cases de sucesso em aplicações mobile e multicamadas ao vivo!

Vem!

 

Delphi Tour Report: Second Week

Image of the map

Delphi Tour Stops

During the second week of Delphi Tour I passed by Porto Alegre, Florianópolis, Chapecó and São Paulo.

Great public in all stops, and some important achievements. In the south of the country we have an active and vibrant community, and talking with the developers, we found some wonderful cases that we are going to publish as success cases in the upcoming months.

But the most surprising thing in my opinion are the universities we are adding to the academic program. In each city we heard about projects and researches done with RAD in schools and universities, and this model is something that we really want to replicate in the entire Latin America. This will not only educate new Delphi and C++ Builder developers, but also drive the innovation using our tools!

Special mention here to Unoesc, an university in Chapecó, and Guinter Pauli, Embarcadero MVP and teacher there. This is a place where the integration between the school and the companies established in the region really works.

As usual, let’s finish this report with some pictures from the stops, but also with a big “thank you” to everyone that in some manner made this happen!

Feliz Aniversário Delphi! #ILoveDelphi

ilovedelphi

Chegamos a mais um aniversário do Delphi, e podemos atestar que o aniversariante encontra-se em ótima forma ao completar seus 22 anos, um jovem na verdade!

Neste tempo todo, poucas tecnologias tiveram tamanha capacidade de se manter tão atualizadas, inovadoras e seguir ditando tendências. A começar pelo conceito do RAD, criado pela então Borland, e presente nas principais ferramentas da atualidade, até os dias atuais, com um dos melhores suportes para desenvolvimento cross-platform disponível no mercado!

Para marcar o dia, algumas fotos de pequenos tesouros e lembranças que mantenho da minha participação nesta história, afinal lá se vão 15 anos nesta industria vital!

ps: aos mais mais novos, é recomendado assistir este vídeo para entender a frase acima 😉

Foram centenas de treinamentos ministrados, consultorias e sistemas desenvolvidos. Apresentações em todas as capitais do país, e muitas cidades do interior também, e a incrível experiência de trabalhar ao menos por uma semana em cada país da América Latina e América Central, visitando clientes e fazendo eventos. É impressionante o que um compilador é capaz de fazer!

Mas além de um compilador, temos as pessoas. Sim, em tempos de pragmatismos e racionalização de tudo, talvez seja este o fator que nos permitiu chegar tão longe, todas verdadeiramente apaixonadas pelo que fazem.

Seria uma tremenda injustiça citar qualquer nome, cada qual contribuiu com o seu melhor, empurrando a ferramenta para frente, empurrando minha vida para frente… cada qual sabe o quanto sou grato por tudo!

Obrigado Delphi!

Windows 10 Store, Android, iOS, OS X, Linux: recursos para migrar sua aplicação Delphi/C++ Builder e suportar TODAS as plataformas (parte 4)

Estamos na quarta parte desta coletânea de artigos e tutoriais para migração de aplicações Delphi (e também C++ Builder).

Iniciamos por uma visão geral de projetos de migração (parte 1), passamos por impactos do Unicode (ou não) em projetos Delphi e C++ (parte 2), e também por compilação nativa 64 bit, disponível desde o XE2 (parte 3).

Hoje vamos abordar migração de frameworks de acesso a dados, ou seja, BDE, ADO, DBX, IBX, e tantos outros disponíveis.

Iniciando pelo saudoso BDE, este framework de acesso a dados possui algumas características que o diferenciam de todos os demais. O BDE pode ser considerado – guardadas as devidas proporções – um middleware. Isto porque, para funcionar, o BDE necessita de uma instalação completa no sistema operacional onde seu projeto será executado, o que não ocorre com nenhum outro framework Delphi ou C++. Ele possui dlls as quais são responsáveis pelo acesso aos mais diversos banco de dados, em um processo que ocorre de maneira externa ao espaço de memória e ao processo alocado pela aplicação. Complicou? Então vamos detalhar isso um pouco mais…

Por tratar-se de um processo externo a sua aplicação, algo como uma camada adicional carregada no momento em que uma conexão com o banco de dados é estabelecida pela primeira vez por esta aplicação, o BDE permitia algumas “peripécias” não suportadas por outro frameworks, como por exemplo:

  • O BDE permitia facilmente suportar múltiplos banco de dados, de maneira quase transparente, isso graças a esta camada intermediária, que fazia a “conversação” com cada um dos banco de dados suportados, e entregava uma resposta homogênea para sua aplicação. Na prática, sua aplicação não sabia efetivamente a qual banco de dados estava  conectado, digamos assim.
  • O BDE, por tratar-se de um processo externo a sua aplicação, permitia as aplicações compartilharem uma mesma conexão com o banco de dados entre distintos executáveis. Basicamente, tudo o que você tinha que fazer era utilizar um “handle” compartilhado e voilà, podemos ter uma aplicação modularizada em distintos executáveis em uma mesma máquina compartilhando da mesma conexão ao banco de dados.

Outros frameworks, como DBX, também apresentação dlls externas, porém as mesmas não representam um processo externo a sua aplicação, ao contrário, são carregadas no espaço de memória do executável principal, não permitindo o compartilhamento da conexão.

Os demais, como o FireDAC, são código 100% Pascal ou C++, e são compilados efetivamente com sua aplicação, não possuindo drivers externos de qualquer espécie, sendo uma enorme vantagem no deployment e também em aplicações multiplataforma.

De todos eles, o FireDAC aparece com o melhor framework disponível atualmente para acesso a dados, sendo disparado a melhor opção para migração de BDE, já que ele “imita” o comportamento do mesmo, exceção feita ao compartilhamento de uma conexão entre executáveis distintos, o que pode ser solucionado de outras maneiras (utilização de BPLs, multicamadas, pool de conexões, etc.).

FireDAC possui características que nenhum outro framework oferece, seja no mundo Delphi e C++ Builder, seja em qualquer ambiente de desenvolvimento, como .NET ou Java. Um deles é o suporte a consultas SQL em bases de dados heterogêneas, em resumo, fazer uma Join entre Oracle e SQL Server e um arquivo XML, para citar um exemplo apenas.

Migrando seu Projeto

Existem muitas formas de se migrar um projeto, algumas mais eficientes que ouras, mas você não vai encontrar uma receita mágica. Existem sim alguns recursos realmente úteis e de alta produtividade, os quais vou resumir abaixo.

Iniciando por conhecer melhor o FireDAC, recomendo estes webinars, gravado para a série Delphi Academy:

  1. Acesso a Dados com FireDAC
  2. FireDAC Cached Updates
  3. FireDAC DataSets em Memória
  4. FireDAC Local SQL Cache
... algumas horas depois...

Agora que você já conhece o beabá do FireDAC, a migração efetiva pode ser facilitada em muito com a utilização de um utilitário chamado reFind.exe. Trata-se de um executável de linha de comando, o qual – com a ajuda de expressões regulares – vai fazer um parser em seu projeto, de acordo com configurações que você vai determinar em um arquivo de script, e substituir o antigo framework pelo FireDAC.

Felizmente, já faz parte do pacote de exemplos que a ferramenta traz, scripts para migração de BDE e DBX, ambos para FireDAC. Mas observe que, baseado nos scripts existentes, e na documentação, você será capaz de criar seu próprio script, e migrar qualquer outro framework ou componente, não há nada no reFind criado especialmente para o FireDAC, neste caso o FireDAC é um caso de uso do reFind.

Detalhes sobre o reFind você pode encontrar nestes links da documentação:

http://docwiki.embarcadero.com/RADStudio/Berlin/en/Migrating_dbExpress_Applications_to_FireDAC
http://docwiki.embarcadero.com/RADStudio/Berlin/en/ReFind.exe,_the_Search_and_Replace_Utility_Using_Perl_RegEx_Expressions

Mas também tenho um tutorial completo de migração em um dos episódios do Academy, onde algumas técnicas e recursos adicionais são discutidos:

Bem, por hoje é o que temos ;-). Espero que estes recursos sejam úteis de alguma forma, e no próximo – e último artigo da série – vamos explorar a migração de componentes de terceiros.

Até lá!