2011-01-10 12 views
6

Meine Anwendung ist etwas wie ein Contact Manager. Nehmen wir an, ein Benutzer kann Kontakte mit seinen Adressen eingeben. Ich habe den Code und die Technologie, um meine Kontakte in einer Datei zu speichern. Aber wo kann ich diese Datei speichern?Wo zu speichern Anwendungsdaten in .NET-Anwendung

In Anbetracht dessen ist eine .NET-Anwendung unter Windows ausgeführt. Sollte meine Datei in den AppData des Benutzerordners enden? Sollte ich den Isolated Storage (wie erwähnt here) verwenden? Etwas anderes? Was ist die empfohlene Praxis?

+0

Wenn Sie Ihren Benutzer oder andere Anwendungen wollen diese Kontakte Datei leicht zu finden, die Sie AppData verwenden möchte. Es scheint, als sei der isolierte Speicher eine "zu starke" Lösung für dieses spezielle Problem. –

+0

Ich würde die Informationen wahrscheinlich in einer Datenbank speichern. Ist das nicht im Bild? Welchen Nutzen haben Sie sonst von der Verwendung eines anderen? Soweit ich weiß, sind es im Grunde nur zwei verschiedene Ordner? – Patrick

+0

@Chris O: in .NET, wie kann ich auf den AppData-Ordner zugreifen? Ich meine, gibt es irgendeine .NET-Klasse, die mir den Ordner gibt (anstatt zu C: \ Users \ etc hart-codiert)? – Peter

Antwort

6

Ich landete die Lösung unter Verwendung von Patrick vorgeschlagen:

Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) 
1

Sie haben eine Reihe von Optionen; Wie Sie sagen, ist Isolated Storage einer von ihnen. Sie können auch die Framework-Funktion "Benutzereinstellungen" verwenden und die Daten als Datenblob oder als XML speichern.

Sie könnten auch SqlCompact für eine sehr leichte In-Prozess-Datenbank betrachten. Sie können dann alle Benutzerkontakte in einer einzigen Datenbank speichern, die z. im selben Verzeichnis wie die Anwendung; Sie könnten einfach so etwas wie EF4 für Ihre DAL verwenden.

, dass, obwohl ein bisschen mehr Aufwand sein könnte, wie es klingt wie Sie 99% des Weges dorthin mit Ihrer aktuellen Architektur.

+0

Hm, ich entferne mich von einer SQL-basierten Lösung, weil es zu viel Zeit und Aufwand erfordert (Strukturierung Ihres Domänenmodells für ein ORM, Arbeiten mit den Macken eines ORM). Ich verwende Karvonite, wodurch ich mich auf die Anwendung konzentrieren kann. – Peter

+0

Inzwischen habe ich wieder umgeschaltet :) Jetzt mit SterlingDB und Silverlight, so effektiv, mit Isolated Storage. Das Projekt ist am Anfang etwas unbeständig. – Peter

Verwandte Themen