none
Welche Datenbank kann man für Universal Windows App benutzen? RRS feed

  • Frage

  • Ich habe bisher nur SQLLite gefunden. Gibt es da noch was anderes (z.B. Localdb von Microsoft ) ?
    Mit SQLLite kenn ich mich noch gar nicht aus. Gibt es dafür auch ein SQL Management Studio oder ähnliches?
    Gruss
    Dienstag, 3. November 2015 20:10

Antworten

Alle Antworten

  • Hallo,

    soweit ich weiß gibt es nach wie vor nichts anderes nennenswertes an Datenbanken für UWP was auf SQL setzt. SQLite funktioniert an sich wie jedes andere Datenbank System auch. Du öffnest deine Verbindung, führst dein SQL aus (welches aber teilweise unterschiedlich ist) und schließt die Verbindung wieder. Der einzige Unterschied sind hier die Namen der Klassen.

    Soweit ich weiß gibt es für SQLite verschiedene Programme zum ansehen der Datenbankenstruktur usw. Aber auch Addins für Mozilla Firefox. Da findet sich etliches im Internet - empfehlen kann ich aber auch keines.

    In den Apps ist es aber oftmals nicht wirklich empfehlenswert eine richtige DB einzusetzen. Oftmals reichen einfache XML Dateien o.ä. Diese haben wiederum den Vorteil einfach über viele Geräte hinweg synchronisiert zu werden. Auch bietet .NET dir hier einen guten Ausgangspunkt an.


    Tom Lambert - .NET (C#) MVP
    Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Dienstag, 3. November 2015 21:02
    Moderator
  • Hallo Thomas,

    von der Verwendung von LocalDB in einem Produktiv System ist dringend abzuraten, da es hierbei zu diversen Einschränkungen kommt.

    Zum Beispiel sollte deine Anwendung von mehreren Benutzern auf dem gleichen System verwendet werden. Hast du dafür Sorge zu tragen, dass den Benutzern (die nicht die Datenbank erstellt haben) die Datenbank überhaupt zur Verfügung steht. (Stichwort Shared Instance)

    Zudem musst du dafür Sorgen, dass der Benutzer Dateizugriff auf die Datenbank hat, da diese Standardmäßig im Benutzer Verzeichnis des 'erstellenden Benutzers' liegen.

    Weitere Probleme kommen auf dich zu, wenn du mit SYSTEM Prozessen auf die LocalDB zugreifen willst und und und...

    Gruß Martin

    Donnerstag, 5. November 2015 09:15
  • Hallo Martin,

    da es hier um eine App geht fällt in so gut wie allen Fällen das von dir genannte heraus. Die SQLite DB wird beispielsweise in einem der ApplicationData-Ordner der App gespeichert. Shared Zugriff über mehrere Benutzer ist nicht vorgesehen und die Benutzung über mehrerer Apps und der gleichen DB sind auch nicht so oft anzutreffen. Wenn doch, dann hätte man bei Apps überall des selbe problem - es sei denn man zentralisiert den Server wirklich, wobei das dann auf einen übers Internet erreichbaren Server hinaus laufen würde, da lokal nichts mit einer App mit installiert werden kann.

    Bei einem lokalen Server der außerhalb der App läuft hätte man außerdem das Problem das die Daten nicht über mehrere Geräte automatisch synchronisiert werden.

    Wie bereits geschrieben, in den meisten Fällen reichen einfache XML-/JSON-Dateien. Eine Datenbank lohnt sich meiner Meinung nach nur wenn er auf einem Server läuft und dann braucht die App eben immer Internet.


    Tom Lambert - .NET (C#) MVP
    Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Donnerstag, 5. November 2015 17:13
    Moderator
  • Hi zusammen, ich glaube hier habt recht. Das war wohl eine Blöde Idee von mir. Habe nämlich bisher immer nur "normale" Programme mit einer Access Datenbank erstellt. Das kann ich wohl komplett bei meinen geplanten UWP
    Programm vergessen. Ich werde mal suchen ob ich einen guten leicht verständlichen XML Ersatz finde.
    Donnerstag, 5. November 2015 18:42
  • Hallo Thomas,

    ich empfehle dir hier entweder den Einsatz von LINQ to XML oder aber Serialisierung. LINQ ist wie SQL nur in C#-Methodensyntax. Die (De)Serialisierung könnte allerdings klare Vorteile haben, da hierbei ein Klassenkonstrukt in eine Datei gespeichert und später wieder ausgelesen wird. Du kannst dann also in deinem Code direkt über objekct.MyList[0]... usw. arbeiten.


    Tom Lambert - .NET (C#) MVP
    Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Donnerstag, 5. November 2015 19:53
    Moderator