Um conhecimento só é válido quando compartilhado.

terça-feira, 3 de março de 2015

CodeRage Brasil III - Playlist

No dia 26/02/2015 aconteceu a CodeRange Brasil III online, período de 11:00am as 20:45pm, como muitos podem não ter assistido todas as palestras segue o link da play list disponibilizada para Embarcadero para que possa ser assistido as palestras individuais.

CodeRange Brasil III - Playlist

sexta-feira, 5 de setembro de 2014

Lançamento Oficial do RAD Studio XE7 (Delphi e C++ Builder)

A Embarcadero está lançando a release de número 7 da série XE do Delphi e C++ Builder, com foco em multi-dispositivos, aplicações conectadas e computação paralela.
Esta versão aperfeiçoa nosso suporte para aplicações móveis, e amplia o suporte para aplicações conectadas com Bluetooth e Bluetooth LE completamente integrados a RTL. Isso vai nos permitir a construção de apps que se conectam ao mundo, a chamada "Internet das Coisas".
Neste artigo você encontrará as principais novidades da versão XE7 para todas as áreas do produto, desde aplicações desktop até sensores bluetooth de monitoramento cardíaco

FireUI

Trata-se de um enorme avanço na maneira de construir interfaces para multi-dispositivos. Em outras palavras, estamos tornando ainda mais simples para você criar uma aplicação que vai se comportar adequadamente em qualquer dispositivo (ou tamanho de tela). O "Multi-Device Designer", aliado a novos componentes com o "MultiView" e aos "Behavior Services" (serviços que captam o comportamento do device em tempo de execução) permitem a criação de uma única app com interfaces apropriadas a cada dispositivo. Sim, isto significa um único formulário sendo compilado para desktop, smartphones, tablets, óculos, relógios e toda sorte de dispositivo onde voce encontrar um Android ou iOS rodando…


































Veja neste vídeo introdutório como tornamos isso possível: https://www.youtube.com/watch?v=QOfmoAtqh9E

Aplicações Conectadas

O novo suporte a bluetooth, totalmente integrado a RTL, permite conexão com qualquer device (gadget) que suporte esta tecnologia. Estamos falando de interagir com relógios inteligentes, medidores de batimento cardíaco, e uma infinidade de dispositivos que já estão no mercado. Suportamos bluetooth tradicional e também bluetooth LE (low energy), para aplicações de aproximação por exemplo.
Além disso, através do AppTethering, você pode conectar suas aplicações existentes em VCL ou FMX com aplicações móveis, via WiFi (introduzido no XE6) ou o novo suporte a Bluetooth.


















Nesta página você encontra uma série de exemplos e vídeos de integrações com os mais diversos dispositivos, utilizando Delphi e C++ Builder: http://www.embarcadero.com/br/products/rad-studio/gadgets-wearables
Aqui um vídeo demonstrando a integração com um sensor para prática de esportes: https://www.youtube.com/watch?v=oeyGzuC_QqU#t=53















Parallel Programming Library
Disponível para VCL e FireMonkey, permite o uso efetivo de equipamentos multi-core, incluindo aqui dispositivos móveis! Estamos falando de "parallel for loops, futures, task, thread pooling, automatic task scheduling" e outros recursos que permitem, por exemplo, executar uma consulta complexa em segundo plano sem que sua interface fique bloqueada, de uma maneira muito simples.
Neste vídeo você pode observar uma implementação do algoritmo do "Jogo da Vida" (http://pt.wikipedia.org/wiki/Jogo_da_vida) proposto pelo matemático John Horton Conway em 1970. Daí o nome de "Conway’s Game of Life":https://www.youtube.com/watch?v=Ni3JDxNFiiw. Observe no detalhe as CPUs "trabalhando" em paralelo… todo o poder de um servidor multi-core em suas mãos!















Enterprise Mobility Services (EMS)
Refere-se a uma infraestrutura pronta para aplicações distribuídas, altamente escalável, com módulos customizados carregáveis, controle de usuários e estatísticas de acesso, e armazenamento de dados.
Ficou muito difícil de compreender? Mas na verdade não é… vamos abordar por outro ângulo:
Recordem que no XE6 introduzimos um novo framework para suportar BaaS (Backend as a Service). O framework BaaS permite, entre outras coisas, que você armazene dados nas núvens em um dos provedores suportados (Kinvey, Parse, App42), em formato de objetos JSON, sem que você tenha que construir uma aplicação servidora para isso. São infra-estruturas prontas que oferecem gestão de usuários, estatísticas de uso e armazenagem de dados, entre outras como push notification para qualquer plataforma. Neste post você aprende como criar sua primeira app conectada a um serviço como estes: http://blogs.embarcadero.com/sarinadupont/2014/04/15/introducing-rad-studio-xe6-and-baas/.
Muito bem, nosso EMS, presente no Delphi e C++ Builder XE7, permite que você crie e hospede seu próprio serviço BaaS. Seria algo como possuir seu "Kinvey" ou "Parse" particular, incluindo serviços como gestão de usuários, estatísticas de uso das APIs e armazenamento de dados, tudo em um único pacote.





















Um servidor EMS pode ser distribuído como um módulo do IIS ou do Apache, neste momento apenas para plataforma Windows.
O RAD Studio traz uma licença de desenvolvimento do EMS para até 5 usuários, a partir da edição Professional. Este produto terá uma licença de distribuição sempre baseada em quantidade de usuários finais. Ou seja, este produto deverá ser licenciado a parte do RAD Studio, Delphi e C++ Builder para distribuição final. E isto se justifica porque, além da tratar-se de uma infraestrutura pronta para distribuição imediata, ele ainda traz de forma integrada licenças do Interbase Server (para servidores e desktops) e Interbase ToGo (para mobile), ambos com criptografia e capacidade ilimitadas.
Em resumo: uma solução completa que inclui suporte a APIs customizadas, acesso a dados, gestão de usuários, estatísticas e armazenamento, tudo integrado e pronto para deployment. E o melhor, tudo baseado em tecnologia standard, acessível por qualquer outra plataforma ou linguagem de desenvolvimento.
ps: em outras tecnologias você pode também encontrar esta infraestrutura referenciada como MEAP (Mobile Enterprise Application Platform).
Maiores detalhes sobre formas de licenciamento e custos em breve.

IDE, VCL, FireMonkey, FireDAC e muito mais!

Vou tentar resumir aqui os principais pontos em termos de novidades e melhorias para a IDE, VCL, FMX, FireDAC e Utilitários. Todos os demais detalhes você pode conferir diretamente nesta página do Wiki do produto: http://goo.gl/7fnf9K.
IDE = Guided Tours (permite aprender sobre o RAD Studio de maneira interativa), gerenciamento do "Entitlement List" via Project Options, controle de versão GIT integrado, além de SubVersion, adição de bibliotecas Java externas via Project Manager…
FMX = Mapeamento nativo de controles iOS (TEdit e TCalendar), suporte para Multi-Monitor, Full-Screen para Android KitKat, Pull-to-Refresh para TListView no iOS e Android, FMX Save State…
VCL = Novo JumpList para o ToolBar no Win7 e Win8, TParallel (System.Threading), AppTethering e Bluetooth - incluindo BlueTooth LE para Windows 8, OmniXML para melhor performance no processamento de arquivos XML…
FireDAC = Suporte para streaming no MSSQL, suporte para ETL através do novo TFDBatchMove (TFDBatchMove, TFDBatchMoveTextReader, TFDBatchMoveTextWriter, TFDBatchMoveDataSetReader, TFDBatchMoveDataSetWriter, TFDBatchMoveSQLReader, and TFDBatchMoveSQLWriter), novo driver específico para IBLite/IBToGo, novos recursos de serialização, leitura e gravação de Metadata (CreateTable, GenerateCreateTable, GenerateDropTable, etc.)…
Novo PAServer para MAC = com suporte a multiplas instâncias e interface visual de configuração em OSX…
Novo Java2OP.exe = Java para Object Pascal! Permite a geração das classes correspondentes em Object Pascal para chamadas a bibliotecas Java, podendo importar um JAR, uma classe ou um subset de uma classe da API do Android…











Resumo
Como vocês podem ver trata-se de uma das mais completas versões já lançadas pela Embarcadero. E observem que ainda não abordamos todos os assuntos, como suporte a "Bluetooth Proximity" nativo, assunto de nosso próximo post/vídeo.
Tentado em provar o novo RAD Studio, Delphi ou C++ Builder XE7??? O trial já está disponível para download: https://downloads.embarcadero.com/free/rad_studio

RAD Studio XE7 permite criar aplicações para diferentes dispositivos com um só código


A Embarcadero lançou, nesta última terça-feira, a nova versão de seu RAD Studio, a XE7. Dedicada a desenvolvedores de aplicações Delphi/Object Pascal e C++, a edição da IDE traz como diferencial a capacidade de criar programas para múltiplas plataformas baseados em um só código, como explicou a INFO Fernando Rizzato, Lead Software Consultant da empresa na América Latina.
Para isso, a solução usa diferentes compiladores nativos, voltados para arquiteturas (ARM, x86 e x64) e plataformas (Android, iOS, Windows e Mac) distintas. Conforme contou Rizzato, o resultado são aplicativos com interfaces adaptadas para os respectivos aparelhos, baseados em um mesmo código-fonte e compatíveis com cada um dos sistemas – mais ou menos como faz a Microsoft com o Visual Studio e a Apple com o XCode, mas limitados aos próprios SOs.
A ideia da empresa com isso é, basicamente, acabar com a necessidade de duas equipes de desenvolvimento especializadas em ferramentas distintas – como o XCode, da Apple, e o Java, para o Android. Além disso, a solução quer fazer desenvolvedores “fugirem” do HTML5 e do JavaScript para a criação de aplicações multiplataforma, consideradas por Rizzato menos eficientes, seguras e integradas ao hardware do que as de código nativo – ponto que, segundo ele,  fez o Facebook desistir de aplicativos do tipo, por exemplo.
Junto com  José Eugênio Braga, presidente da Embarcadero no Brasil, o executivo da empresa conversou rapidamente com INFO para falar de algumas das novidades do novo RAD Studio XE7 e explicar um pouco do funcionamento da solução. Confira a entrevista a seguir – e se tiver interesse, baixe a versão demo, que traz o Delphi XE7 por aqui.
Primeiro, quais as principais diferenças da versão XE7 para as anteriores do RAD Studio?
Fernando Rizzato: O grande diferencial é que agora, em um só produto, você pode criar uma aplicação para vários sistemas com um só código. Nós compilamos de forma nativa para cada uma das plataformas, gerando uma compilação nativa para processador ARM, tanto no Android quanto no IOS, ou para Intel de 32 ou 64-bits, em Mac ou Windows.
O produto também suporta Bluetooth de uma maneira extremamente simples, aproveitando essa visão de conectividade relacionada à internet das coisas. Arrastando e soltando componentes, é possível fazer uma aplicação falar com qualquer dispositivo Bluetooth – um medidor de batimentos cardíacos, smartwatches e até um Google Glass. Sensores de presença também entram nessa linha, mesmo aqueles de tecnologia mais específica da Apple, os iBeacons. Se você está em uma exposição e usando um app do museu no smartphone, basta se aproximar de um determinado objeto para receber informações de um aparelho próximo ao quadro ou escultura, por exemplo. Ou caso esteja em um shopping, andando, você pode receber um alerta de promoção da loja que está na sua frente. Suportamos esse tipo de função no produto, e com o desenvolvimento ainda 100% visual.
Como vocês conseguem tornar essa compilação para múltiplas plataformas possível? E há planos de incluir o Windows Phone e outros sistemas nessa lista?
Fernando Rizzato: Temos um compilador para cada uma das plataformas suportadas. Um funciona para Intel, x86, enquanto outro é dedicado aos dispositivos com chip ARM. E ainda abriremos novos horizontes, porque outros concorrentes estão por vir. Não acreditamos que o mercado vá ficar polarizado, já que ele é muito grande para apenas dois ou três jogadores [como é o caso do mercado de smartphones]. Outros nomes devem surgir – temos a iniciativa do pessoal do Ubuntu, que tem ganhado apoio, só para citar um exemplo. Quanto ao WP, ainda não suportamos, mas é algo que ainda está no cronograma do produto.
Essa estratégia envolvendo múltiplas plataformas foi consolidada no RAD Studio XE6, mas quando exatamente a Embarcadero começou a olhar para os dispositivos móveis?
Fernando Rizzato: Falando um pouco do histórico, a versão XE4 – hoje lançamos duas edições por ano – foi nossa primeira a suportar smartphones e tablets rodando iOS. O XE5 agregou a compilação para Android, enquanto o XE6 e agora o XE7 trouxeram outros frameworks, como esses para conectividade Bluetooth, Wi-Fi e Tethering. Hoje, consigo fazer tethering entre aplicações mesmo de desktop para mobile e vice-versa. Ou seja, assim como posso parear dois dispositivos e trocar música, posso parear uma aplicação desktop em Delphi – mesmo as desenvolvidas em VCL, o framework Windows – e enviar ações e dados para um aplicativo mobile, em um smartphone conectado ao computador por Bluetooth ou Wi-Fi.
São frameworks que estão sendo agregados para aumentar essa integração entre os dois lados. As pessoas ainda falam muito de migração para mobile, mas não vemos como uma migração. Estamos estendendo aplicações para o mobile. Há certas características e programas que vão continuar nos desktops – eles precisam de um processamento, de um banco de dados, de um “input” rápido de comandos por teclado. Mas ao mesmo estendemos o suporte dessas aplicações para os dispositivos móveis, e tentamos integrar esses dois “mundos” com nosso produto.
E qual a participação do RAD Studio hoje no mercado?
José Eugênio: Na verdade, não temos nenhuma pesquisa feita sobre isso. Mas o mercado de C++ é grande, atualmente, e algo que temos visto acontecer com o Delphi é um aumento muito grande na procura vinda de universidades. A partir do momento que conseguimos torná-lo uma linguagem cujo código-fonte serve em diferentes aplicações, o mercado acadêmico o procurou para ensinar a alunos com desenvolver para múltiplas plataformas.
Fernando Rizzato: Exatamente. A partir das versões XE, quando começamos a suportar as plataformas móveis, evoluímos ano a ano, com nossa base de usuários e número de licenças obtidas aumentando mundialmente. E com base em pesquisas, a comunidade de desenvolvedores C e C++ é a maior [ou ao menos uma das maiores].

domingo, 28 de julho de 2013

DBXpress x FireDAC x TDataSetProvider + TClientDataSet

Olá a todos leitores, vou bloggar hoje sobre a nova engine de acesso a banco de dados da Embarcadero e no mesmo assunto sobre a DBXpress engine que era a promessa da Embarcadero e que acabou indo de ralo abaixo depois da nova aquisição.

Quem é programador em delphi mais antigo (nem precisa ser igual a mim desde a versão do delphi 2), sabe que essa é a terceira engine de acesso a dados mudada no delphi, para quem não sabe as primeiras versões vinham com o famoso BDE que ficou muito tempo sendo a engine de acesso a dados do Delphi. A algum tempo atras não muito tivemos a noticia que o BDE continuaria vindo junto ao Delphi, mas seria descontinuado, bom isso foi um impacto, pois a maioria estavam totalmente amarrados a ela, e teria que mudar toda sua estrutura e forma de acesso dados com a nova tecnologia oferecida junto ao Delphi, o DBXpress.

O DBXpress mudava toda a filosofia de acesso aos dados do banco que a maioria dos desenvolvedores conheciam, pois usavam Table e não Query, sem contar a linha de aprendizado, a mudança era tanto que até hoje tem sistemas usando o BDE mesmo sem sofrer melhorias.

Recentemente recebemos uma noticia parecida sobre o DBXpress, a Embarcadero adquiriu a engine UniDAC e mudou seu nome para FireDAC, engine essa que será agora a principal ferramenta de acesso a dados vinda com o Delphi, e como disse a noticia é parecida por vim com o anuncio que o DBXpress continuará a vir, mas não sofrerá melhorias, a diferença é que a linha de aprendizado na mudança do DBXpress para FireDAC será bem pequena para quem usa o essencial.

Fica em nossa mente, uma interrogação. Será até quando usaremos o FireDAC e teremos que mudar para outra engine?

Baseado nessa interrogação, fica aqui minha dica. Eu quando sai do BDE olhei o IBX, mas vi que ficaria amarrado ao Firebird, mas não sabia até quando pois essa engine é de acesso ao Interbase, muita gente usa para o Firebird, mas não sabe até quando manterá compatibilidade de acesso e conseguirá continuando a usa-la assim.

Nessa linha de pensamento, mudei para o DBXpress, mas usando o TSQLDataSet + TDataSetProvider + TClientDataSet, aos olhos dos mais analistas de código para ter totalmente o beneficio da mais nova engine o FireDAC, não se deveria usar o TClientDataSet, pois o TADQuery, tem o mesmo recurso para acesso a dados (menos para DataSnap) e com ele se tem maior agilidade em acesso a dados.

Mas a questão que vi é que além desse beneficio preciso pensar  também na vida útil do FireDAC com a Embarcadero, pois se usando a tecnologia (Engine) + TDataSetProvider + TClientDataSet, fica bem facil de mudar de estrutura de acesso a dados, pois o TClienteDataSet, esse não irá continuar sem melhorias, pois ele faz parte da tecnologia DataSnap, e essa a Embarcadero não trocou, nem deixará de atualiza-la, dessa forma espero que o TClientDataSet passe por um refectory e seja tão rápido quanto se diz ser o TQDQuery, quem sabe? Sem contar que se num futuro o FireDAC deixar de ser o engine principal, e a Embarcadero comprar outra engine, fica facil de mudar novamente, como esta sendo dessa vez.

É isso ai, espero que a dica tenha sido valiosa para você amigo leitor, grande abraço e fique com Deus.

quarta-feira, 24 de julho de 2013

FireDAC com Firebird e CacheUpdate

Olá a todos leitores, sempre que me sobra um tempo, ando fazendo uns testes na nova suite de acesso a dados da Embarcadero o FireDAC, mas com mais de 15 anos de experiencia em programação sei que nem sempre tudo é só maravilhas.
Meus sistemas são multi-banco, hoje tenho clientes com SQL Server e alguns com Firebird, dessa forma tenho que conhecer o FireDAC testando vários bancos para saber realmente se ele irá me atender num futuro, onde o DBX deixará de avoluir, meus primeiros testes são sempre com tabelas metre-detalhe, para ter uma real noção de como a suite irá se comportar.
Os meus testes começaram com SQL Server, e logo ativei o recurso de CacheUpdate do TADQuery, pois é como trabalho hoje com DBX, nos testes simples executados tudo ok, mas quando mudei o banco de dados para Firebird, ao aplicar o ApplyUpdate(0), não persistia os dados no banco como no SQL Server.

Tudo leva a um BUG do FireDAC como os bancos Interbase e Firebird, o jeito é esperar que em futuras versões venha uma correção para essa situação, mas temporariamente ela pode ser resolvida disparando o comando "StartTransaction" pelo componente TADConnection assim:

Ao iniciar sua aplicação, e estabelecer a conexão como seu banco de dados, logo após dispare o método:

ADConnection.StartTransaction;

Pronto,  bastando este comando ao disparar o ApplyUpdates(0); será persistido as informações no seu banco de dados Firebird.

Obs: Não olhei internamente o motivo.

25/07/2013
Após alguns testes descobri uma forma mais segura e profissional de conseguir persistir os dados no banco Firebird com CacheUpdate.

   ADConnection.ApplyUpdates([ADMestre, ADDetalhe]);


Indico esta forma a ser utilizada, não a que postei anterior, pois ela deixa uma transação em aberto, essa nova forma não.

Abraço a todos.

Total de visualizações

Postagem em destaque

ORMBr - Mapeamento objeto-relacional

Mapeamento objeto-relacional ( ou ORM, do inglês: Object-relational mapping ) é uma técnica de desenvolvimento utilizada para reduzir...

Todo os direitos reservados.. Tecnologia do Blogger.

Seguidores