Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Lokale Datenhaltung in Xamarin-Apps

497 views

Published on

In den meisten Apps besteht die Notwendigkeit, Daten lokal zu speichern. Dies fängt bei kleinen Datenmengen, wie zum Beispiel Authentication Tokens, an und endet bei größeren Datenmengen, wie beispielsweise offline erfassten Daten, oder gecachten Antworten eines Web-API-Aufrufs. In diesem Vortrag lernen Sie welche Optionen Sie zur lokalen Datenhaltung haben. Sie werden dabei nicht nur erfahren, wo Sie Ihre Daten auf dem Gerät speichern können, sondern anhand praxisnaher Beispiele auch lernen, wann sich ein textbasiertes Format wie JSON oder XML anbietet und wann Sie besser zu einer lokalen Datenbank wie SQLite greifen. Abgerundet wird der Vortrag mit einer Diskussion über den aktuellen Stand der Implementierung des Entity Framework Core auf der Xamarin
Beispiele unter https://github.com/AndreKraemer/XamarinLocalDataAccessDemo

Published in: Software
  • Be the first to comment

  • Be the first to like this

Lokale Datenhaltung in Xamarin-Apps

  1. 1. Lokale Datenhaltung in Xamarin-Apps André Krämer Softwareentwickler, Trainer, Berater, Microsoft MVP http://andrekraemer.de | andre@andrekraemer.de | @codemurai
  2. 2. Wer von Ihnen entwickelt bereits mobile Apps mit Xamarin?
  3. 3. Wer von Ihnen hat in seiner Anwendung / App schon einmal die Anforderung gehabt Daten zu speichern?
  4. 4. Vermutlich jeder!
  5. 5. Datenhaltung in „klassischen“ Anwendungen • Datenbank • XML-Config Dateien • JSON-Config Dateien • Registry • Ini-Dateien
  6. 6. Wohin mit den Daten in mobile Apps?
  7. 7. Was für Daten haben wir überhaupt? • Stammdaten, die bereits mit der App ausgeliefert wurden • „Kleine Datenmengen“, z. B. Benutzereinstellungen • „Geheime Daten“, z. B. Passwörter oder Auth-Token • Temporäre Daten, z. B. gecachte Ergebnisse von Web Service aufrufen • Zur Laufzeit durch den Benutzer erfasste Daten
  8. 8. Ausgelieferte Daten
  9. 9. Mit der App ausgelieferte Daten • Pfade: • Android: Assets Ordner (BuildAction: AndroidAsset) • iOS: Beliebiger Unterordner innerhalb des Projekts (BuildAction: BundleResource) • Zugriff: • Android über Assets Manager • iOS: Über Standard .NET Methoden (z. B. System.IO. ...)
  10. 10. Ausgelieferte Stammdaten Demo
  11. 11. “Geheime Daten“ • Sensitive Daten sollten nicht als lesbarer Text abgespeichert werden • Zu solchen Daten zählen: • Login Daten (Username / Password) • OAuth Tokens • Lösungen: • Eigene Verschlüsselung • Eingebaute Mechanismen • iOS: Keychain • Android: Keystore • Xamarin.Auth bietet einen Wrapper für Keychain und Keystore
  12. 12. Xamarin.Auth unterstützt derzeit .NET Standard nicht 13
  13. 13. Geheime Daten unter iOS Demo
  14. 14. SQLite Demo
  15. 15. SQLite • Leichtgewichtige eingebettete In-Process-Database-Engine • Cross-Plattform verfügbar • Wird unter anderem intern von Android und iOS genutzt • Die verbreitetste Datenbank der Welt • Public Domain • nuget Paket: sqlite-net-pcl
  16. 16. Was ist das Entity Framework Core
  17. 17. Entity Framework Core im Überblick • Objektrelationaler Mapper (O/R M) • Ermöglicht einen objektorientierten Zugriff auf die Datenbank • Leichtgewichtige und erweiterbare Version des Entity Framework • Komplette Neuentwicklung
  18. 18. Reife der Codebasis • Entity Framework 6 wird seit 2008 kontinuierlich weiterentwickelt • Entity Framework Core wurde vollständig neu entwickelt (V1 in 2016)
  19. 19. Aktueller Stand des EF Core in Xamarin (Anfang Mai 2017!) • EF Core funktioniert aktuell nur unter Android und UWP • Siehe: https://github.com/aspnet/EntityFramework/issues/7158
  20. 20. Aktueller Stand des EF Core in Xamarin (Mitte Mai 2017!) • Xamarin 15.2 nutzt nun Mono 5 • EF Core funktioniert nun auch unter iOS und nicht nur unter Android und UWP
  21. 21. EF Core in Xamarin Anwendungen nutzen (Stand Anfang Mai 2017) • Geteiltes Projekt muss .NET Standard statt PCL sein • Visual Studio 2017 legt aktuell eine PCL an • à https://oren.codes/2017/04/23/using-xamarin-forms-with-net- standard-vs-2017-edition/ • https://github.com/onovotny/SampleXamFormsWithNetStandard • àAktuell keine Intellisense mehr in XAML Dateien! https://developercommunity.visualstudio.com/content/problem/40890 /no-or-intermittent-xaml-intellisense-in-net-standa.html
  22. 22. EFCore Demo
  23. 23. Xamarin Buch • Cross-Plattform-Apps mit Xamarin entwickeln: Mit C# für Android und iOS programmieren • Erscheint am: 6. November 2017 • http://amzn.to/2q29RcS 24
  24. 24. Homepage andre@andrekraemer.de | http://andrekraemer.de | http://andrekraemer.de/blog | http://github.com/AndreKraemer Vielen Dank! Blog Xing Facebook Twitter Google+
  25. 25. Meine Dienstleistungen • Schulungen • ASP.NET / JavaScript / Angular • Xamarin • Cordova • TX Text Control • Team Foundation Server • .NET Datenzugriff (Entity Framework, NHibernate, Micro O/R Mapper) • Consulting • Durchführung von Technologieworkshops • Code- / Architekturreviews • Analyse von managed Memory Leaks und Performanceproblemen • Prototypenentwicklung • Remote Entwickler-Support • Projektbegleitendes Coaching • Beratung bei der Migration von Legacy Technologien (Classic ASP, Visual Basic 6, Gupta Centura, ...) zu .NET • Softwareentwicklung • Mobile Apps (Android, iOS, Windows 10, Windows 8, Windows Phone) • Entwicklung von Web-Anwendungen mit ASP.NET und Angular • Entwicklung von Desktop Anwendungen • Migration von ASP Classic zu modernen Weblösungen andre@andrekraemer.de | http://andrekraemer.de | http://andrekraemer.de/blog | http://github.com/AndreKraemer

×