O Delphi 10 Seattle passa a oferecer um novo framework para se trabalhar com JSON.
Esta apresentação apresenta o JSON de forma geral e os exemplos podem ser baixados do GitHub.
Seguindo o raciocínio de que "o processamento mais rápido é aquele que não é feito" faz-se conveniente uma estratégia de cacheamento de resultados de processamento. Mostrarei uma abordagem possível neste sentido, utilizando o REDIS, em uma arquitetura baseada em micro serviços.
Seguindo o raciocínio de que "o processamento mais rápido é aquele que não é feito" faz-se conveniente uma estratégia de cacheamento de resultados de processamento. Mostrarei uma abordagem possível neste sentido, utilizando o REDIS, em uma arquitetura baseada em micro serviços.
Migrando 4 milhões de linhas de Delphi 7 para XE7José Araújo
Apresentação realizada no Embarcadero Conference 2014. Mostra o caso de sucesso da Fortes Informática na atualização da sua plataforma de desenvolvimento.
Migrando aplicações para FireDac - Embarcadero Conference 2014Diego Rosa
Vamos orienta-lo através de uma série de etapas como realizar a migração de aplicações que utilizam BDE para passar a utilizar o FireDac (o novo conjunto de componentes de acesso a banco de dados). E como grande parte desse processo pode ser automatizado.
Doctrine 2 camada de persistência para phpFabio B. Silva
Palestra apresentada na sfcon 2012, conferência brasileira sobre Symfony.
Doctrine é o ORM que está se tornando um padrão para aplicações php de meio e grande porte. Conheça as vantagens e desvantagens em usá-lo, componentes e melhores práticas para o desenvolvimento de uma aplicação ágil, usufruindo de todo o poder do doctrine de forma escalável e mantendo um código de qualidade.
Doctrine é uma ferramenta de ORM (mapeamento objeto-relacional) para
PHP que sobrepõe a poderosa DBAL (camada de abstração de Banco de
Dados) PDO do PHP.
Um de seus principais recursos é a possibilidade adicional de escrever
consultas à base de dados através de um dialeto-SQL OO (orientado à
objeto) chamado DQL inspirado no HQL do Hibernate. Isto provê aos
desenvolvedores uma alternativa poderosa ao SQL que mantém o máximo de
flexibilidade sem qualquer necessidade de duplicação de código.
O tema da palestra é apresentar a ferramenta como uma solução ágil
para problemas recorrentes.
Datasnap avançado - Respostas para um sistema robusto - Embarcadero Conferenc...Kelver Merlotti
Palestra apresentada no Embarcadero Conference 2015: "Você já deve ter ouvido falar bastante do Datasnap e da sua praticidade para desenvolver, certo? Mas você já o explorou de verdade? Pois esta apresentação vai lhe dar o caminho das pedras para desvendar recursos como Autenticação, Autorização, Criptografia, Compactação, Callback, Cache, Paginação e muito mais!"
Exemplos em: https://github.com/kmerlotti/DatasnapAvancado
Datasnap com FireDAC - Embarcadero Conference 2015Kelver Merlotti
Veja o que há de novo no Datasnap do Delphi 10 Seattle e quais são as possíveis formas de se criar uma aplicação Datasnap com FireDAC.
Exemplos disponíveis em: https://github.com/kmerlotti/DatasnapComFireDAC
Migrando 4 milhões de linhas de Delphi 7 para XE7José Araújo
Apresentação realizada no Embarcadero Conference 2014. Mostra o caso de sucesso da Fortes Informática na atualização da sua plataforma de desenvolvimento.
Migrando aplicações para FireDac - Embarcadero Conference 2014Diego Rosa
Vamos orienta-lo através de uma série de etapas como realizar a migração de aplicações que utilizam BDE para passar a utilizar o FireDac (o novo conjunto de componentes de acesso a banco de dados). E como grande parte desse processo pode ser automatizado.
Doctrine 2 camada de persistência para phpFabio B. Silva
Palestra apresentada na sfcon 2012, conferência brasileira sobre Symfony.
Doctrine é o ORM que está se tornando um padrão para aplicações php de meio e grande porte. Conheça as vantagens e desvantagens em usá-lo, componentes e melhores práticas para o desenvolvimento de uma aplicação ágil, usufruindo de todo o poder do doctrine de forma escalável e mantendo um código de qualidade.
Doctrine é uma ferramenta de ORM (mapeamento objeto-relacional) para
PHP que sobrepõe a poderosa DBAL (camada de abstração de Banco de
Dados) PDO do PHP.
Um de seus principais recursos é a possibilidade adicional de escrever
consultas à base de dados através de um dialeto-SQL OO (orientado à
objeto) chamado DQL inspirado no HQL do Hibernate. Isto provê aos
desenvolvedores uma alternativa poderosa ao SQL que mantém o máximo de
flexibilidade sem qualquer necessidade de duplicação de código.
O tema da palestra é apresentar a ferramenta como uma solução ágil
para problemas recorrentes.
Datasnap avançado - Respostas para um sistema robusto - Embarcadero Conferenc...Kelver Merlotti
Palestra apresentada no Embarcadero Conference 2015: "Você já deve ter ouvido falar bastante do Datasnap e da sua praticidade para desenvolver, certo? Mas você já o explorou de verdade? Pois esta apresentação vai lhe dar o caminho das pedras para desvendar recursos como Autenticação, Autorização, Criptografia, Compactação, Callback, Cache, Paginação e muito mais!"
Exemplos em: https://github.com/kmerlotti/DatasnapAvancado
Datasnap com FireDAC - Embarcadero Conference 2015Kelver Merlotti
Veja o que há de novo no Datasnap do Delphi 10 Seattle e quais são as possíveis formas de se criar uma aplicação Datasnap com FireDAC.
Exemplos disponíveis em: https://github.com/kmerlotti/DatasnapComFireDAC
A nova arquitetura do DataSnap permite disponibilizar regras de negócios através de Server Methods, esta arquitetura facilita a integração com frameworks de testes, com isso podemos automatizar os testes a cada nova versão dos servidores DataSnap, durante esta apresentação vamos aprender como implementar testes em projetos DataSnap.
Consumindo dados e serviços remotos com Apps Mobile Delphi Android, um universo paralelo ao ERP, WMS e outros grandes softwares empresariais.
Apresentação Ministrada na Embarcadero Conference 2016 por Landerson Gomes dos Santos, MVP Embarcadero no Brasil.
Introdução a linguagem JavaScript desvendando a história e as principais características da linguagem.
Assista a série Desvendando a linguagem JavaScript no meu canal no YouTube: https://www.youtube.com/user/rodrigobranas/videos
Fazendo barba, cabelo e bigode com REDISArrayOf.io
REDIS é um poderoso "storage in-memory" que pode ser utilizado em diversas situações. O benefício mais evidente é o de liberar o banco de dados principal.
Nesta apresentação vemos três casos de uso:
- Cacheamento Lado Servidor
- Mensageria entre processos
- Dashboard em tempo real
O vídeo da apresentação está em: https://youtu.be/iyAoKLw1HbY
Quer aprender tudo sobre REDIS? Acesse nosso site: https://arrayof.io
Fazendo barba, cabelo e bigode com REDISMario Guedes
REDIS é um poderoso "storage in-memory" que pode ser utilizado em diversas situações. O benefício mais evidente é o de liberar o banco de dados principal.
Nesta apresentação vemos três casos de uso:
- Cacheamento Lado Servidor
- Mensageria entre processos
- Dashboard em tempo real
O vídeo da apresentação está em: https://youtu.be/iyAoKLw1HbY
Quer aprender tudo sobre REDIS? Acesse nosso site: https://arrayof.io
Nesta palestra, veremos como o NewsMonitor, uma ferramenta de monitoração de notícias e clipping digital, começou a usar Scala em 2012. Desde então, temos usado a linguagem como diferencial técnico. A linguagem permitiu que uma pequena equipe criasse uma grande base de código em pouco tempo, mantendo o custo de infraestrutura baixo. Foram desenvolvidos desde sistemas de recomendação até um avançado coletor de notícias em tempo real.
Serão discutidos os pontos positivos da escolha da linguagem Scala, especialmente as funcionalidades que fizeram diferença no desenvolvimento: case classes, imutabilidade, implícitos e biblioteca de coleções. Além disso, serão mostrados os desafios enfrentados pelo grupo: falta de padrões de estilo, complexidade de código, "fanatismo funcional" e perda de performance.
Por fim, veremos a arquitetura que foi implementada no back-end do NewsMonitor, em especial como é organizado o coletor distribuído de notícias.
Apresentação utilizada no Codificando Week 2016 de como podemos utilizar o Redis em aplicações WebApi do AspNet 5 e ganharmos performance numa aplicação Web.
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreamsJacqueline Abreu
Sistemas legados são o terror da maioria dos devs: código dos outros escrito muitas vezes sem seguir boas práticas e em uma linguagem quase completamente desconhecida. A proposta da palestra é discutir sobre:
o que é legado?
o que é linguagem não mainstream no contexto do dia a dia dos projetos?
indicar alguns caminhos a seguir quando se tem um legado a ser enfrentado, utilizando perl como exemplo de linguagem não mainstream.
O mercado de internet evolui em uma velocidade muito rápida, se não formos capazes de acompanhar as evoluções e apresentar inovações, ficamos para trás. Ruby e Rails vem trazer ao mundo do desenvolvimento web a produtividade e alegria necessária!
Semelhante a Nova Infraestrutura JSON: System.JSON na prática (20)
Integrando-se à Blockchain da EthereumMario Guedes
Blockchain já passou pelo filtro do tempo. Nesta apresentação mostramos alguns conceitos relacionados à blockchain da Ethereum e as oportunidades que se descortinam.
Quando começamos a lidar com REST tudo parece meio mágico e ao mesmo tempo pesado.
Neste vídeo apresentamos alguns conceitos iniciais dos padrões REST sob a perspectiva do protocolo HTTP.
Geolocalização com Redis e Google MapsMario Guedes
Repetimos a palestra sobre Geolocalização no evento Passaporte Delphi 2019 do nosso amigo Thulio Bittencourt.
Aqui mostramos uma solução de geolocalização com Redis no backend e Google Maps no front end sendo os artefatos, aplicativo e servidor rest, desenvolvidos em Delphi.
Geolocalização com Redis e Google MapsMario Guedes
Palestra ministrada no Delphi Squad POA onde falamos de geolocalização utilizando Google Maps no Android e Redis no backend.
As aplicações atuais requer, cada vez mais, esta característica e surgem várias dúvidas de como resolver a questão.
Paralelismo na prática: Threads de uma vez por todas e sem medo!Mario Guedes
Por vezes considerado um recurso obscuro pelos desenvolvedores Delphi, esta apresentação visa mostrar situações cotidianas que podem ser otimizadas pela aplicação de threads no Delphi, as armadilhas e erros comuns na adoção do paralelismo, e as soluções para contornar estas situações .Podemos tornar nossos aplicativos mais fluídos bem como tornar o processamento de tarefas mais rápidos. Nesta palestra veremos algumas boas práticas acerca do assunto partindo da classe TThread chegando à recente PPL (Parallel Programming Library). É um recurso importante no desenvolvimento Win32, Mobile e backend nos ajudando a tornar as aplicações assíncronas e, portanto, escaláveis.
Apresentação na CodeRage Brasil 2019 sobre as possibilidades do Redis com o Delphi.
Vídeo para apresentação: https://youtu.be/WI7SAY_ds1s
Exemplos no GitHub: https://github.com/jmarioguedes/CodeRage2019_Redis.git
Material de apoio à palestra on-line sobre a utilização do Redis e NGINX com Delphi.
*Vídeo:* https://youtu.be/ckXnPngRu7A
*GitHub:* https://github.com/jmarioguedes/INTENSIVE_DELPHI_2018
TDCSP - 2018 - Possibilidades com o REDIS no DelphiMario Guedes
O REDIS é uma poderosa ferramenta que expande as possibilidades no lado servidor. Nesta palestra será mostrado as oportunidades que que o REDIS oferece:
~> Cacheamento lado servidor
~> Controle de sessão DataSnap
~> Mensageiria entre processos
~> Enfileiramento de processamento
~> Execução de código Lua
Data Science é uma realidade e não pode ser ignorada. A utilização de BOTs é umas das tendências que está se consolidando. Mostraremos como tirar proveito desta tecnologia permitindo que os usuários interajam com a aplicação da forma mais natural possível para o ser humano: conversando.
Uma perspectiva histórica e o cenário atual das ferramentas de desenvolviment...Mario Guedes
Nessa palestra, José Mario Silva Guedes mostra a migração da abordagem Cliente Servidor para Multi Camadas passando pelo SOA (Soap) até chegar no ROA (Rest), por intermédio de uma linha do tempo do uso das linguagens VB, Delphi, Java chegando no Python, bem como, da evolução do banco de dados relacional para abordagem noSQL e suas variantes. Por fim, será abordado o cenário atual, mostrando a adoção de Machine Learning e tecnologias cognitivas, como por exemplo a adoção de Bots para o atendimento
Uma arquitetura que queira ser escalável e resiliente tem que lançar mão de conceitos e artefatos alinhados com estes objetivos.
A apresentação mostra uma proposta de arquitetura que atendam a estes dois objetivos.
Arquitetura escalável e resiliente com NGINX, DataSnap, REDIS e MongoDBMario Guedes
Nos dias de hoje há várias oportunidades de expormos ao menos parte da nossa aplicação para o mundo, seja por conta de um aplicativo móvel, seja por conta de integração com terceiros. Outras vezes se mostra oportuno tentarmos oferecer uma solução cloud ou invés de uma solução "on-premise". Então, sair do modelo cliente servidor para um modelo SOA nos trás desafios relacionados a escalabilidade e resiliência. Nesta palestra mostrarei uma arquitetura escalável e resiliente baseado em REST e micro serviços utilizando a abordagem noSQL.
2. Mário?
• Arquiteto de Soluções RESTful na G4 Solutions
• Desenvolvedor Delphi, Python, JS e noSQL
• +15 anos na lida
• Filho de Valdete e Joselito
• Irmão do Manoel, da Jenny e do Jonhy
• Pai do Júlio e da Fernanda
• Noivo da Tamires
• mario.guedes@arrayof.com.br
5. Material complementar
Este material tem tudo a ver com REST e é uma extensão das minhas últimas
contribuições:
• Conhecendo o Novo REST Framework
Embarcadero Conference 2014
http://pt.slideshare.net/jmarioguedes/conhecendo-o-novo-rest-framework
• Tudo sobre o REST Client Library
CodeRage Brasil III
https://www.youtube.com/watch?v=ajl2GEJonQA
7. O que é o JSON?
• Representação de objetos JavaScript
• Formato em texto simples e auto descritivo
• Nasceu no âmbito do JS por ser A linguagem de front end web
• Porém é suportado por qualquer outra linguagem moderna
• Permite encadeamento de dados
• Criado por Douglas Crockford
• http://json.org/json-pt.html
8. Para que serve o JSON?
• Representar dados para troca entre sistemas heterogêneos
Menos verboso que o XML
Mais semântico que texto simples
Mais portável que um formato binário
Largamente usado em API REST
Existem storages noSQL orientado à documento
• Por exigir menos caracteres em sua representação:
Ajuda na vazão dos dados pelo lado servidor
É processado mais rapidamente pelos softwares
• Conveniente para softwares e humanos
9. Tipos suportados pelo JSON
• String: Texto simples
• Números: Inteiros e reais
• Objeto: Tipo complexo
• Array: Lista não ordenada e não tipada
• true: Verdadeiro
• false: Falso
• null: Ausência de valor
10. Representando uma String
• Encerrado por aspas
• Caracteres de controle devem ser escapados
• Para quebra de linha não use #13, use n
“ ”Delphi 10nSeattle
11. Representando um número
• Cadeia de números
• Parte fracionária deve ser representada
por ponto
• Número negativo deve ser representado
por traço no início da cadeia
• Não devem ser encerrado por aspas
12. Verdadeiro, Falso e Nulo
• São representados pelos literais Java Script correspondentes
• Não devem ser encerrados por aspas
true false null
13. Representando um array
• O array, ou lista, é
caracterizado por colchetes.
• Os elementos de um array
pode ser de qualquer tipo.
• Os elementos são
separados por vírgula.
14. Objeto JSON
• Um Objeto JSON é um conjunto de pares de chave e valor encerrados por
chaves.
• A chave é representado por uma string, ficando à esquerda.
• A chave é separada do valor por dois pontos.
• O valor pode ser de qualquer outro tipo suportado pelo JSON.
• Cada par é separado por vírgula do outro par.
• Em prol da portabilidade evite caracteres especiais no nome da chave.
16. O FireDAC passa a suportar o mongoDB
• Agora temos a paleta “FireDAC noSQL”, ou seja, ela tende a oferecer mais
oportunidades no futuro
• O mongoDB é o banco noSQL orientado à documento mais conceituado no
momento
• Apesar de visualizarmos JSON o mongoDB armazena no formato BSON
• Tudo isso nos trás oportunidades incríveis!
• Não ria do nome, mongo de humongous: gigantesco
• https://www.mongodb.org/
17. BSON?
• BSON é como se fosse o JSON no formato binário
Isso implica em menos bytes para representar as informações
E maior velocidade de análise (parsing)
Porém afeta a legibilidade e interoperabilidade
• O Delphi, por conta do suporte ao mongoDB, oferece classes para trabalhar
com BSON
• É uma ótima opção para intercâmbio de dados entre programas Delphi
(cliente e servidor)
18. Assista à palestra do Alan Glei
• O paradigma noSQL esta ai e não deve ser ignorado.
• Temos 4 orientações:
À chave e valor: REDIS
À colunas: Cassandra
À grafo: Neo4J
À documento: mongoDB
• Permita-se conhecer o noSQL!
Será que você precisa realmente de um banco SQL?
Será que parte do seu sistema não teria mais fluidez com noSQL?
20. uses System.JSON.*
Namespace especializado para o tratamento de JSON, que foi ampliado, dando suporte
ao “JSON extendido” (mongoDB) bem como implementa features do JSON.NET
• System.JSON: Contêm várias classes, em especial as que representam o tipos JSON
Substitui a unit Data.JSON
• System.JSON.Readers: Leitores de estruturas JSON
• System.JSON.Writers: Escritores de estruturas JSON
• System.JSON.Builders: Construtores JSON
• System.JSON.BSON: Dá suporte ao formato BSON
• System.JSON.Utils: Possui a classe TJsonTextUtils que auxilia na formatação
• System.JSON.Types: Tipos auxiliares diversos
• System.JSONConsts: Resources Strings diversas
• Também temos a REST.JSON com algumas facilidades bacanas.
23. Baixe os exemplos depois se quiser,
• https://github.com/jmarioguedes/EC2015_JSON.git
24. Referências interessantes
• Introdução ao JSON - Um guia para JSON que vai direto ao ponto
Lindsay Bassett
Editora Novatec - http://www.novatec.com.br/livros/introjson/
• JSON. De gambiarra a padrão
Caio Gondim
http://loopinfinito.com.br/2013/06/18/json-de-gambiarra-a-padrao/
• Sobre o JSON: http://json.org/json-pt.html
• Sobre o BSON: http://bsonspec.org
• MongoDB - Guia Rápido:
https://mongodbwise.wordpress.com/2014/05/22/mongodb-guia-rapido/