Lokale Datenbank mit Silverlight
Was wäre eine gute lokale Datenbank für eine Silverlight-Anwendung? Die Datenbank der Hauptzweck ist für lokale Daten-caching und synchronization services. Ich glaube nicht, dass SQL anywhere-oder SQLite arbeiten, da Sie die Verwendung nicht verwalteter code wird nicht ausgeführt, unter der silverlight-Sandkasten
Du musst angemeldet sein, um einen Kommentar abzugeben.
Warum nicht verwenden ein neues feature in SL 2, als "Isolated Storage"? Es ist voll unterstützt in der lokalen Datenbank (wie Google Gear) aber natürlich ist Es nicht in der Datenbank. Sie können mit XML Datei-format, um es zu halten.
Finden Sie zwei Verweise:
Motte sagte in seinem blog über es http://www.danielmoth.com/Blog/2008/04/isolatedstorage-in-siverlight-2-beta-1.html
Dino hat sehr gute Zusammenfassung bei http://www.ddj.com/windows/208300036?pgno=2
@Aaron Fischer,
Ich bin sehr interessiert in dieser Frage zu. Ich bin auf der Suche DB für XBAP (WPF in-browser -) apps. Hier ist meine Frage "Was eingebettete Datenbank mit einem Isolierten Speicher-Unterstützung können Sie empfehlen?"
SQLite & MSSQL CE (aka SQL anywhere) nicht funktionieren würde.
VistaDB umgesetzt wird .NET und kann unter Einschränkungen (es hat die Unterstützung für Isolated Storage), aber ich bin auf der Suche nach alternativen.
Eine weitere option ist die Sybase iAnywhere - aber ich bin mir nicht sicher, wie Sie es bereitstellen, auf end-user-Maschine.
Werde ich versuchen DB4objects für Silverlight. Wenn es funktionieren würde, werde ich den Beitrag aktualisieren.
Die Antwort ist siaqodb. Siaqodb ist echt Silverlight-client-side Objekt-Datenbank, die Sie speichern können, ein Objekt mit nur einer Zeile code abrufen und zurück-Objekte über LINQ.Für weitere Informationen werfen Sie einen Blick auf http://siaqodb.com
Basierend auf dieser Beispiel es möglich erscheint, die Verwendung von Google Gears und so Sqlite. Der major down-Seite ist die Menge von Arbeit, integration und installieren zu müssen, noch eine weitere Plattform auf dem client-computer.
Wenn Ihr caching braucht, sind Grund genug-und Sie haben nicht so viele Daten, dass Sie es tun, zu minimieren, RAM-Auslastung, vielleicht brauchen Sie nicht einmal einen ausgewachsenen Datenbank. Du könntest ein Objekt anlegen, Datenbank der möglichen Verwendung einer Struktur, wie ein Wörterbuch aus, und legen Sie es in den Objekten, die sonst Ihre Tabellenzeilen. Sie könnten dann serialisieren diese Daten in eine Datei in Ihrem lokalen Speicher und Deserialisieren Sie das nächste mal die app ausgeführt wird. Wenn Sie Ihre Daten-Strukturen, die gut gemacht sind, könnten Sie sogar mit Linq zur Abfrage von Objekt-Datenbank.
Wenn Ihr primäres Ziel ist die Minimierung der Anzahl der Zeiten, die Sie haben zu ziehen, die gleichen Daten von Ihrem server, dies könnte etwas zu prüfen.
Auf der anderen Seite, dies ist nicht der Weg zu gehen, wenn Sie zu viele Daten, oder wenn Sie häufige Schreibzugriffe auf die Datenbank (als wäre es dann serialisieren die gesamte Struktur auf die Festplatte jedes mal).
Wenn Sie haben zu viele Daten, wollen aber trotzdem versuchen, könnte man sehen, ob es einen logischen Weg, um Ihre partition Daten in mehrere Dateien, die wahrscheinlich nicht erforderlich sein, zur gleichen Zeit. Dann könnten Sie schieben Sie Ihre nicht benötigte Daten auf die Festplatte und laden Sie es wieder in der nächsten Zeit das Programm es benötigt. Natürlich, wenn Sie diesen Ansatz zu weit, werden Sie am Ende bis im wesentlichen das schreiben Ihrer eigenen Datenbank-system sowieso.
Ich würde gerne zwei Dinge sehen. 1.) Irgendeine Art von permanenten lokalen Datenbank unterstützen oder 2.) Irgendeine Art von Datenbank-server-Unterstützung, ohne den Aufwand von web-services.
Persönlich würde ich nehmen, Access und OleDb. 🙂
Eine Letzte Sache, die..., die den Datenbank-Typ-Funktionalität ist etwas, das Flash/Flex nicht bieten... das wäre eine großartige Möglichkeit für Microsoft, um differitiate Silverlight und wirklich geben Sie ein Bein.
Gibt es nun eine sqlite-port in c# genannt csharp-sqlite
Diese hat Versprechen, sobald Sie finden einen akzeptablen Namen.
Ja, ich denke, ein LINQ-provider ist die optimale Lösung. Da der Speicherplatz begrenzt ist, sind Sie nicht wirklich müssen Tabellen und Indizes, es wäre bequemer zu haben, eine einfache Möglichkeit zum speichern und Abfragen von Objekten auf dem client via LINQ, ohne sich mit low-level-Datei-streams.