SlideShare uma empresa Scribd logo
1 de 12
O X do Xamarin.Forms - Persistindo dados
It´s-a me Bertuzzi
• Thiago Bertuzzi é desenvolvedor .net há 11 anos
participando de projetos Desktop,Services, Web e agora
Mobile utilizando Xamarin.
• É Líder técnico na NESS
• Contribui para comunidade Xamarin escrevendo artigos,
compartilhando códigos e criando pacotes Nuget.
Web Api
• Consumo de WebAPI
• E se meu App ficar off-line?
• Que dados ainda posso
acessar?
• A experiência do usuário será
prejudicada?
• Devo guardar todos os dados
no meu App ?
Persistência de Dados
Banco de Dados para Dispositivos Móveis são todos ruins...
Se usados da maneira errada ... :D
Bancos “Móveis” não são SGBD
Persistência de Dados
• Utilizamos SQLIte se tivermos a
necessidade de ter um cenário de
dados em modo desconectado
Dados Locais
• Xam.Plugins.Settings
• James Montemagno
• Não utiliza bancos de dados
• Grava os dados por plataforma
• Cuidado com o que armazena
LiteDB
• LiteDB é uma solução de banco de dados NoSQL simples e rápida.
• Mauricio David (Brasillllllllllll !!!!!!!! )
• Desenvolvido em C#
• Compatível com .NET 3.5, 4.x, NETStandard 1.3 e 2.0
• Possui um arquivo Único (como SQLIte)
• É possível guardar dados, arquivos, imagens e etc. (MongoDB)
• É Open Source
Desempenho vs SQLite
Fonte : https://github.com/mbdavid/LiteDB-Perf
1 – Default 2 – Criptografado
Realm
• Realm não é um ORM, é um banco de dados orientado a objetos criado
especificamente para mobile
• Feito em C++
• Suporte nativo a Xamarin
• Além dos tipos primitivos (boolean, byte, short, int, long, float, double), Realm
também suporta String, Date e byte[]
• RealmObject, Transação e Mudança de View
Desempenho vs SQLite
Fonte: https://tech.iheart.com/performance-comparison-of-realm-and-sqlite-on-ios-6df1d51e6a07
Mais uma Coisa – Monkey Cache
• O objetivo do Monkey Cache é permitir que os desenvolvedores
armazenem facilmente os dados em cache por um período de tempo
limitado. Não é a missão do Monkey Cache lidar com solicitações de
rede para obter ou postar dados, apenas para armazenar dados em
cache facilmente.
• Settings + Bancos Móveis + Cache
Obrigado / Duvidas?
• “Toda vez que alguém fala “Chamarin”,Deus mata um panda”
• twitter.com/tbertuzzi
• github.com/tbertuzzi
• nuget.org/profiles/Bertuzzi
• medium.com/@bertuzzi
• bertuzzi.com.br

Mais conteúdo relacionado

Semelhante a Persistindo dados Xamarin.Forms

Desenvolvimento para web com Meteor
Desenvolvimento para web com MeteorDesenvolvimento para web com Meteor
Desenvolvimento para web com MeteorWeverton Gomes
 
Descomplicando o Android
Descomplicando o AndroidDescomplicando o Android
Descomplicando o AndroidHeider Lopes
 
IntroduçãO Ao Desenvolvimento Web 2
IntroduçãO Ao Desenvolvimento Web   2IntroduçãO Ao Desenvolvimento Web   2
IntroduçãO Ao Desenvolvimento Web 2Maurício Linhares
 
Windows Phone 7 & Windows Azure
Windows Phone 7 & Windows AzureWindows Phone 7 & Windows Azure
Windows Phone 7 & Windows AzureVinicius Quaiato
 
Desenvolvimento de aplicações móveis, IOS, Android, Windows Phone 7
Desenvolvimento de aplicações móveis, IOS, Android, Windows Phone 7Desenvolvimento de aplicações móveis, IOS, Android, Windows Phone 7
Desenvolvimento de aplicações móveis, IOS, Android, Windows Phone 7Dirceu Belém
 
Primeiros Passos Para o Desenvolvimento Web - FLISOLGO 2011
Primeiros Passos Para o Desenvolvimento Web - FLISOLGO 2011Primeiros Passos Para o Desenvolvimento Web - FLISOLGO 2011
Primeiros Passos Para o Desenvolvimento Web - FLISOLGO 2011Eduardo Souza
 
Deploy de aplicações Ruby com Mina - TDC Floripa 2014
Deploy de aplicações Ruby com Mina - TDC Floripa 2014Deploy de aplicações Ruby com Mina - TDC Floripa 2014
Deploy de aplicações Ruby com Mina - TDC Floripa 2014Ismael Stahelin
 
DeskMetrics - Arquitetura, Python e NoSQL
DeskMetrics - Arquitetura, Python e NoSQLDeskMetrics - Arquitetura, Python e NoSQL
DeskMetrics - Arquitetura, Python e NoSQLHerberth Amaral
 
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearchXen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearchBernardo Donadio
 
Armadilhas no Desenvolvimento de Software
Armadilhas no Desenvolvimento de SoftwareArmadilhas no Desenvolvimento de Software
Armadilhas no Desenvolvimento de Softwarejamersonlima
 
BigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIBigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIAlvaro Viebrantz
 
Java EE netbeans
Java EE netbeansJava EE netbeans
Java EE netbeansReuel Lopes
 
Iniciando com desenvolvimento híbrido de aplicações mobile com HTML5
Iniciando com desenvolvimento híbrido de aplicações mobile com HTML5Iniciando com desenvolvimento híbrido de aplicações mobile com HTML5
Iniciando com desenvolvimento híbrido de aplicações mobile com HTML5Loiane Groner
 
Sapo Sessions - Web Mobile
Sapo Sessions - Web MobileSapo Sessions - Web Mobile
Sapo Sessions - Web MobileBruno Carreira
 
Escalabilidade, as modas, (No)SQL
Escalabilidade, as modas, (No)SQLEscalabilidade, as modas, (No)SQL
Escalabilidade, as modas, (No)SQLFernando Ike
 

Semelhante a Persistindo dados Xamarin.Forms (20)

Desenvolvimento para web com Meteor
Desenvolvimento para web com MeteorDesenvolvimento para web com Meteor
Desenvolvimento para web com Meteor
 
Descomplicando o Android
Descomplicando o AndroidDescomplicando o Android
Descomplicando o Android
 
IntroduçãO Ao Desenvolvimento Web 2
IntroduçãO Ao Desenvolvimento Web   2IntroduçãO Ao Desenvolvimento Web   2
IntroduçãO Ao Desenvolvimento Web 2
 
Big Data
Big DataBig Data
Big Data
 
Windows Phone 7 & Windows Azure
Windows Phone 7 & Windows AzureWindows Phone 7 & Windows Azure
Windows Phone 7 & Windows Azure
 
Desenvolvimento de aplicações móveis, IOS, Android, Windows Phone 7
Desenvolvimento de aplicações móveis, IOS, Android, Windows Phone 7Desenvolvimento de aplicações móveis, IOS, Android, Windows Phone 7
Desenvolvimento de aplicações móveis, IOS, Android, Windows Phone 7
 
Primeiros Passos Para o Desenvolvimento Web - FLISOLGO 2011
Primeiros Passos Para o Desenvolvimento Web - FLISOLGO 2011Primeiros Passos Para o Desenvolvimento Web - FLISOLGO 2011
Primeiros Passos Para o Desenvolvimento Web - FLISOLGO 2011
 
Deploy de aplicações Ruby com Mina - TDC Floripa 2014
Deploy de aplicações Ruby com Mina - TDC Floripa 2014Deploy de aplicações Ruby com Mina - TDC Floripa 2014
Deploy de aplicações Ruby com Mina - TDC Floripa 2014
 
DeskMetrics - Arquitetura, Python e NoSQL
DeskMetrics - Arquitetura, Python e NoSQLDeskMetrics - Arquitetura, Python e NoSQL
DeskMetrics - Arquitetura, Python e NoSQL
 
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearchXen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearch
 
Armadilhas no Desenvolvimento de Software
Armadilhas no Desenvolvimento de SoftwareArmadilhas no Desenvolvimento de Software
Armadilhas no Desenvolvimento de Software
 
BigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIBigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage API
 
Big Data
Big DataBig Data
Big Data
 
Java EE netbeans
Java EE netbeansJava EE netbeans
Java EE netbeans
 
Iniciando com desenvolvimento híbrido de aplicações mobile com HTML5
Iniciando com desenvolvimento híbrido de aplicações mobile com HTML5Iniciando com desenvolvimento híbrido de aplicações mobile com HTML5
Iniciando com desenvolvimento híbrido de aplicações mobile com HTML5
 
Sapo Sessions - Web Mobile
Sapo Sessions - Web MobileSapo Sessions - Web Mobile
Sapo Sessions - Web Mobile
 
ORM e EF
ORM e EFORM e EF
ORM e EF
 
Escalabilidade, as modas, (No)SQL
Escalabilidade, as modas, (No)SQLEscalabilidade, as modas, (No)SQL
Escalabilidade, as modas, (No)SQL
 
Computação em Nuvem: conceitos básicos
Computação em Nuvem: conceitos básicosComputação em Nuvem: conceitos básicos
Computação em Nuvem: conceitos básicos
 
Internet sem drama
Internet sem dramaInternet sem drama
Internet sem drama
 

Mais de Thiago Bertuzzi

Secure Coding with OWASP & SSDLC.pptx
Secure Coding with OWASP & SSDLC.pptxSecure Coding with OWASP & SSDLC.pptx
Secure Coding with OWASP & SSDLC.pptxThiago Bertuzzi
 
Cobertura de Código: Testes de Unidade
Cobertura de Código: Testes de UnidadeCobertura de Código: Testes de Unidade
Cobertura de Código: Testes de UnidadeThiago Bertuzzi
 
Domain Driven Design : Pensando Fora da Caixa
Domain Driven Design : Pensando Fora da CaixaDomain Driven Design : Pensando Fora da Caixa
Domain Driven Design : Pensando Fora da CaixaThiago Bertuzzi
 
MAUI + .NET 6: principais novidades
MAUI + .NET 6: principais novidadesMAUI + .NET 6: principais novidades
MAUI + .NET 6: principais novidadesThiago Bertuzzi
 
Criando Apps com .net: o Poder do Xamarin.Forms
Criando Apps com .net: o Poder do Xamarin.FormsCriando Apps com .net: o Poder do Xamarin.Forms
Criando Apps com .net: o Poder do Xamarin.FormsThiago Bertuzzi
 
Xamarin.Forms: estes pacotes vão salvar sua vida
Xamarin.Forms: estes pacotes vão salvar sua vidaXamarin.Forms: estes pacotes vão salvar sua vida
Xamarin.Forms: estes pacotes vão salvar sua vidaThiago Bertuzzi
 
Xamarin summit 2020 : Plugins e Controles para Xamarin.Forms 
Xamarin summit 2020 : Plugins e Controles para Xamarin.Forms Xamarin summit 2020 : Plugins e Controles para Xamarin.Forms 
Xamarin summit 2020 : Plugins e Controles para Xamarin.Forms Thiago Bertuzzi
 
Do Azure Devops ao Github Actions, Caso Real
Do Azure Devops ao Github Actions, Caso RealDo Azure Devops ao Github Actions, Caso Real
Do Azure Devops ao Github Actions, Caso RealThiago Bertuzzi
 
Plugins e Controles para Xamarin.Forms Canal.net DevWeek
Plugins e Controles para Xamarin.Forms Canal.net DevWeekPlugins e Controles para Xamarin.Forms Canal.net DevWeek
Plugins e Controles para Xamarin.Forms Canal.net DevWeekThiago Bertuzzi
 
4 Apps que todo Desenvolvedor Xamarin deveria fazer e Plugins e Controles par...
4 Apps que todo Desenvolvedor Xamarin deveria fazer e Plugins e Controles par...4 Apps que todo Desenvolvedor Xamarin deveria fazer e Plugins e Controles par...
4 Apps que todo Desenvolvedor Xamarin deveria fazer e Plugins e Controles par...Thiago Bertuzzi
 
4 Apps que todo Desenvolvedor Xamarin deveria fazer
4 Apps que todo Desenvolvedor Xamarin deveria fazer4 Apps que todo Desenvolvedor Xamarin deveria fazer
4 Apps que todo Desenvolvedor Xamarin deveria fazerThiago Bertuzzi
 
Novidades de Xamarin e Visual Studio for Mac no .Net Conf
 Novidades de Xamarin e Visual Studio for Mac no .Net Conf Novidades de Xamarin e Visual Studio for Mac no .Net Conf
Novidades de Xamarin e Visual Studio for Mac no .Net ConfThiago Bertuzzi
 
Azure Weekend : Desenvolvedor Mobile: Por que ainda não utiliza o Visual Stud...
Azure Weekend : Desenvolvedor Mobile: Por que ainda não utiliza o Visual Stud...Azure Weekend : Desenvolvedor Mobile: Por que ainda não utiliza o Visual Stud...
Azure Weekend : Desenvolvedor Mobile: Por que ainda não utiliza o Visual Stud...Thiago Bertuzzi
 
Boas Práticas com Xamarin Forms 
Boas Práticas com Xamarin Forms Boas Práticas com Xamarin Forms 
Boas Práticas com Xamarin Forms Thiago Bertuzzi
 
Xamarin.Forms : O Poder do XAML, criando interfaces incríveis
Xamarin.Forms : O Poder do XAML, criando interfaces incríveisXamarin.Forms : O Poder do XAML, criando interfaces incríveis
Xamarin.Forms : O Poder do XAML, criando interfaces incríveisThiago Bertuzzi
 
Novidades de Xamarin no Visual Studio 2019 e Microsoft Build 2019
Novidades de Xamarin no Visual Studio 2019 e Microsoft Build 2019Novidades de Xamarin no Visual Studio 2019 e Microsoft Build 2019
Novidades de Xamarin no Visual Studio 2019 e Microsoft Build 2019Thiago Bertuzzi
 
Novidades de Xamarin, AppCenter e VisualStudio for Mac no Microsoft Build 2019
Novidades de Xamarin, AppCenter e VisualStudio for Mac no Microsoft Build 2019Novidades de Xamarin, AppCenter e VisualStudio for Mac no Microsoft Build 2019
Novidades de Xamarin, AppCenter e VisualStudio for Mac no Microsoft Build 2019Thiago Bertuzzi
 
Novidades de Xamarin no VisualStudio 2019 e VisualStudio 8 For Mac
Novidades de Xamarin no VisualStudio 2019 e VisualStudio 8 For MacNovidades de Xamarin no VisualStudio 2019 e VisualStudio 8 For Mac
Novidades de Xamarin no VisualStudio 2019 e VisualStudio 8 For MacThiago Bertuzzi
 

Mais de Thiago Bertuzzi (20)

Secure Coding with OWASP & SSDLC.pptx
Secure Coding with OWASP & SSDLC.pptxSecure Coding with OWASP & SSDLC.pptx
Secure Coding with OWASP & SSDLC.pptx
 
Cobertura de Código: Testes de Unidade
Cobertura de Código: Testes de UnidadeCobertura de Código: Testes de Unidade
Cobertura de Código: Testes de Unidade
 
Domain Driven Design : Pensando Fora da Caixa
Domain Driven Design : Pensando Fora da CaixaDomain Driven Design : Pensando Fora da Caixa
Domain Driven Design : Pensando Fora da Caixa
 
Código Seguro
Código SeguroCódigo Seguro
Código Seguro
 
MAUI + .NET 6: principais novidades
MAUI + .NET 6: principais novidadesMAUI + .NET 6: principais novidades
MAUI + .NET 6: principais novidades
 
Criando Apps com .net: o Poder do Xamarin.Forms
Criando Apps com .net: o Poder do Xamarin.FormsCriando Apps com .net: o Poder do Xamarin.Forms
Criando Apps com .net: o Poder do Xamarin.Forms
 
Xamarin.Forms: estes pacotes vão salvar sua vida
Xamarin.Forms: estes pacotes vão salvar sua vidaXamarin.Forms: estes pacotes vão salvar sua vida
Xamarin.Forms: estes pacotes vão salvar sua vida
 
Xamarin summit 2020 : Plugins e Controles para Xamarin.Forms 
Xamarin summit 2020 : Plugins e Controles para Xamarin.Forms Xamarin summit 2020 : Plugins e Controles para Xamarin.Forms 
Xamarin summit 2020 : Plugins e Controles para Xamarin.Forms 
 
Do Azure Devops ao Github Actions, Caso Real
Do Azure Devops ao Github Actions, Caso RealDo Azure Devops ao Github Actions, Caso Real
Do Azure Devops ao Github Actions, Caso Real
 
Plugins e Controles para Xamarin.Forms Canal.net DevWeek
Plugins e Controles para Xamarin.Forms Canal.net DevWeekPlugins e Controles para Xamarin.Forms Canal.net DevWeek
Plugins e Controles para Xamarin.Forms Canal.net DevWeek
 
4 Apps que todo Desenvolvedor Xamarin deveria fazer e Plugins e Controles par...
4 Apps que todo Desenvolvedor Xamarin deveria fazer e Plugins e Controles par...4 Apps que todo Desenvolvedor Xamarin deveria fazer e Plugins e Controles par...
4 Apps que todo Desenvolvedor Xamarin deveria fazer e Plugins e Controles par...
 
4 Apps que todo Desenvolvedor Xamarin deveria fazer
4 Apps que todo Desenvolvedor Xamarin deveria fazer4 Apps que todo Desenvolvedor Xamarin deveria fazer
4 Apps que todo Desenvolvedor Xamarin deveria fazer
 
Novidades de Xamarin e Visual Studio for Mac no .Net Conf
 Novidades de Xamarin e Visual Studio for Mac no .Net Conf Novidades de Xamarin e Visual Studio for Mac no .Net Conf
Novidades de Xamarin e Visual Studio for Mac no .Net Conf
 
Azure Weekend : Desenvolvedor Mobile: Por que ainda não utiliza o Visual Stud...
Azure Weekend : Desenvolvedor Mobile: Por que ainda não utiliza o Visual Stud...Azure Weekend : Desenvolvedor Mobile: Por que ainda não utiliza o Visual Stud...
Azure Weekend : Desenvolvedor Mobile: Por que ainda não utiliza o Visual Stud...
 
Boas Práticas com Xamarin Forms 
Boas Práticas com Xamarin Forms Boas Práticas com Xamarin Forms 
Boas Práticas com Xamarin Forms 
 
Xamarin.Forms : O Poder do XAML, criando interfaces incríveis
Xamarin.Forms : O Poder do XAML, criando interfaces incríveisXamarin.Forms : O Poder do XAML, criando interfaces incríveis
Xamarin.Forms : O Poder do XAML, criando interfaces incríveis
 
Novidades de Xamarin no Visual Studio 2019 e Microsoft Build 2019
Novidades de Xamarin no Visual Studio 2019 e Microsoft Build 2019Novidades de Xamarin no Visual Studio 2019 e Microsoft Build 2019
Novidades de Xamarin no Visual Studio 2019 e Microsoft Build 2019
 
Novidades de Xamarin, AppCenter e VisualStudio for Mac no Microsoft Build 2019
Novidades de Xamarin, AppCenter e VisualStudio for Mac no Microsoft Build 2019Novidades de Xamarin, AppCenter e VisualStudio for Mac no Microsoft Build 2019
Novidades de Xamarin, AppCenter e VisualStudio for Mac no Microsoft Build 2019
 
Novidades de Xamarin no VisualStudio 2019 e VisualStudio 8 For Mac
Novidades de Xamarin no VisualStudio 2019 e VisualStudio 8 For MacNovidades de Xamarin no VisualStudio 2019 e VisualStudio 8 For Mac
Novidades de Xamarin no VisualStudio 2019 e VisualStudio 8 For Mac
 
Boas praticas com Prism
Boas praticas com PrismBoas praticas com Prism
Boas praticas com Prism
 

Persistindo dados Xamarin.Forms

  • 1. O X do Xamarin.Forms - Persistindo dados
  • 2. It´s-a me Bertuzzi • Thiago Bertuzzi é desenvolvedor .net há 11 anos participando de projetos Desktop,Services, Web e agora Mobile utilizando Xamarin. • É Líder técnico na NESS • Contribui para comunidade Xamarin escrevendo artigos, compartilhando códigos e criando pacotes Nuget.
  • 3. Web Api • Consumo de WebAPI • E se meu App ficar off-line? • Que dados ainda posso acessar? • A experiência do usuário será prejudicada? • Devo guardar todos os dados no meu App ?
  • 4. Persistência de Dados Banco de Dados para Dispositivos Móveis são todos ruins... Se usados da maneira errada ... :D Bancos “Móveis” não são SGBD
  • 5. Persistência de Dados • Utilizamos SQLIte se tivermos a necessidade de ter um cenário de dados em modo desconectado
  • 6. Dados Locais • Xam.Plugins.Settings • James Montemagno • Não utiliza bancos de dados • Grava os dados por plataforma • Cuidado com o que armazena
  • 7. LiteDB • LiteDB é uma solução de banco de dados NoSQL simples e rápida. • Mauricio David (Brasillllllllllll !!!!!!!! ) • Desenvolvido em C# • Compatível com .NET 3.5, 4.x, NETStandard 1.3 e 2.0 • Possui um arquivo Único (como SQLIte) • É possível guardar dados, arquivos, imagens e etc. (MongoDB) • É Open Source
  • 8. Desempenho vs SQLite Fonte : https://github.com/mbdavid/LiteDB-Perf 1 – Default 2 – Criptografado
  • 9. Realm • Realm não é um ORM, é um banco de dados orientado a objetos criado especificamente para mobile • Feito em C++ • Suporte nativo a Xamarin • Além dos tipos primitivos (boolean, byte, short, int, long, float, double), Realm também suporta String, Date e byte[] • RealmObject, Transação e Mudança de View
  • 10. Desempenho vs SQLite Fonte: https://tech.iheart.com/performance-comparison-of-realm-and-sqlite-on-ios-6df1d51e6a07
  • 11. Mais uma Coisa – Monkey Cache • O objetivo do Monkey Cache é permitir que os desenvolvedores armazenem facilmente os dados em cache por um período de tempo limitado. Não é a missão do Monkey Cache lidar com solicitações de rede para obter ou postar dados, apenas para armazenar dados em cache facilmente. • Settings + Bancos Móveis + Cache
  • 12. Obrigado / Duvidas? • “Toda vez que alguém fala “Chamarin”,Deus mata um panda” • twitter.com/tbertuzzi • github.com/tbertuzzi • nuget.org/profiles/Bertuzzi • medium.com/@bertuzzi • bertuzzi.com.br