Frage

Ich arbeite an einem Silverlight-Client und die damit verbundenen ASP.NET Web Service (nicht WCF), und ich brauche, um einige Funktionen zu implementieren Benutzereinstellungen enthalten, wie zum Beispiel eines „Lieblingsstück“ System und ob sie mögen, dass Zeilenumbruch oder nicht. Um eine angenehme (und nicht ärgerlich) Benutzererfahrung zu machen, möchte ich diese Einstellungen über mehrere Sitzungen hinweg bestehen bleiben. Eine kurze Untersuchung legt nahe, dass es im Wesentlichen zwei Möglichkeiten.

  1. Silverlight isolierte Speicher
  2. ASP.NET-zugängliche Datenbank

Ich weiß, dass die Option 2 ist wahrscheinlich die beste Option, da gewährleistet, dass selbst wenn ein Benutzer für Silverlight, ihre Präferenzen noch isolierte Speicher deaktiviert bestehen bleiben, aber ich möchte die Last der Aufrechterhaltung eine Datenbank zu diesem Zeitpunkt vermeiden, und ich wie die Idee, dass die Einstellungen für das Laden und Bearbeiten auch dann verfügbar sind, wenn eine Serververbindung nicht verfügbar ist. Ich bin aber offen Argumente begründet, warum es preferrable sein könnte, dies jetzt zu nehmen getroffen anstatt später.

Was ich suche ist es, Vorschläge auf dem besten Weg Einstellungen Persistenz zu implementieren, in beiden Szenarien. Zum Beispiel, wenn getrennte Lagerung verwendet wird, soll ich verwenden, um ein XML-Format oder ein anderes Datei-Layout für die Einstellungen persistierenden; wenn die Datenbank-Ansatz verwendet wird, muss ich eine Einstellungstabelle zu entwerfen haben oder gibt es einen eingebauten Mechanismus in ASP.NET dies zu unterstützen, und wie kann ich dienen die Einstellungen an den Client?

So:

Welche Lösung ist die bessere Lösung für Benutzerpräferenz Ausdauer? Wie könnte Einstellungen in dieser Lösung beibehalten werden, und wie könnte der Client Zugriff und aktualisieren Sie sie?

Vor Forschung

Beachten Sie, dass ich ein wenig vor der Forschung zu diesem Thema durchgeführt wurden, und fand die folgenden Links, die entweder Lösung zu befürworten scheinen je nachdem, welchen Artikel Sie lesen.

Update

Es stellt sich heraus, dass Microsoft-Einstellungen Persistenz in isolierten Speichern als Einbauteil von Silverlight zur Verfügung gestellt hat (ich irgendwie verpasst es erst nach einem alternativen Implementierung). Meine Antwort unten weitere Details zu diesem Thema hat.

Ich halte die Frage offen, auch wenn Microsoft bietet clientseitige Einstellungen Persistenz, bedeutet dies nicht zwangsläufig bedeuten, dies der beste Ansatz ist, Benutzereinstellungen für persistierende und ich möchte mehr Meinungen und Vorschläge auf dieser Leinwand.

War es hilfreich?

Lösung

Nach etwas mehr Untersuchung und Umsetzung meiner eigenen XML-Datei-basierten Einstellungen Persistenz IsolatedStorage , entdeckte ich die IsolatedStorageSettings Klasse und die IsolatedStorageSettings.ApplicationSettings Objekt, das ein Schlüssel / Wert-Sammlung für die Speicherung von benutzerspezifischen spezifisch ist, Anwendungseinstellungen.

Es scheint alles jetzt offensichtlich. Natürlich auf langer Sicht, ein Mechanismus zum Sichern und Wiederherstellen von Einstellungen einer Server-Datenbank unter Verwendung von Ausdauer eine gute Optimierungseinstellungen für diese Client-Seite wäre.

Andere Tipps

ich glaube, allgemein in dem Standard wäre auf dem Server zu speichern; nur dann, wenn es bestimmte zwingende Gründe auf dem Client zu speichern, um zu versuchen, sollten wir dies tun. Je mehr Sie verlassen sich auf in einem Medium zu speichern Sie nicht kontrollieren können, desto mehr Risiko nehmen Sie an.

Das heißt worden, und Einstellung selbst auf der „Datenbank“ Seite des Arguments, würde ich fragen, was der Nachteil einer Datenbank ist? Sie haben erwähnt, unter Verwendung von XML - Ihre Daten werden nur semi-strukturierten? Wenn ja, warum nicht speichern XML in einer SQL-Datenbank? Einrichten etwas diese einfache Regel nicht eine „Last“ von den meisten Standards in Betracht gezogen werden würde. Ein einfacher Web-Service als Mittler zwischen Silverlight-Client und den Einstellungen Datenbank handeln könnte.

Wenn es ein wichtiges Merkmal für Sie besteht darin, dass Benutzer Zugriff auf ihre Präferenzen im Offline-Modus, dann sieht es aus wie getrennte Lagerung der Weg für Sie zu gehen. Wenn es wichtiger ist, dass Benutzer in der Lage sein, die Einstellungen zu speichern, auch wenn sie aus isolierten Speichern eingeschaltet hat (das ist wirklich ein Problem? Ich würde versucht sein YAGNI auf diese zu nennen, aber ich bin nicht sehr mit der Silverlight-Plattform erfahren .. .), dann müssen Sie eine Datenbank hosten. Wenn beide wichtig sind, dann sind Sie wahrscheinlich Blick auf eine Art Hybrid-Lösung; mit isolierten Speicher, wenn vorhanden, dann auf eine Datenbank zurückzufallen.

Mit anderen Worten, ich glaube, die Anforderungen Ihrer Anwendung sind wichtiger als einig abstrakte beste Praxis.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top