2012-02-11 160 views
-2

我寫了一個啓動時自動運行的提醒程序。我想知道是否有其他方法來存儲事件,日期和時間數據,而不是SQL-Server。我不想在這項工作中使用SQL-Server,因爲我認爲SQL-Server對於這個簡單的任務非常重要。我認爲我可以使用一個文件來存儲數據。你怎麼看待這件事?如何保存/保存程序信息

回答

1

對於部分其中堅持

從這個document (Managing User Data Deployment Guide, download)

Windows使用的應用程序數據 不與用戶漫遊LocalLocalLow文件夾。通常這些數據是機器 特定或太大以至於漫遊。

Windows使用應用程序特定數據,例如 如自定義詞典,其是獨立於機器的,並應漫遊 與用戶簡檔的Roaming文件夾。

因此,我建議使用AppData\Roaming並堅持一個文件,因爲我認爲'提醒應用程序'是用戶特定的。例如,域用戶會認爲這很有價值(同步到服務器)。

LocalLocalLow(後者用於低完整性模式,對於權限降低的應用程序)更適合於某些可以即時計算的機器/安裝特定數據。

Registry對於某些低密鑰的密碼似乎很不錯,但似乎不是這種使用的最佳選擇。

還有另一個選項IsolatedStorage,應該在提到的選項不適用時使用,例如使用ClickOnce部署時。

對於部分如何如何將您的數據保存到文件...以及選擇您最喜愛的。你可以使用SQLite數據庫,如果你想要更多的控制力和權力,或者只是使用XML序列化到文件,如果你考慮使用SQLite過度殺傷,那麼它真的很輕。或者其他任何可行的選擇。

+0

感謝您的回答,我想知道我如何將信息保存到漫遊文件夾?我將數據插入文件,然後放入一個文件夾,我使用例如提醒文件夾? ? – Arash 2012-02-12 08:34:41

+0

我已經在我的帖子中指出過你。請參閱http://msdn.microsoft.com/en-us/library/system.environment.specialfolder.aspx – Matthias 2012-02-13 16:24:13

3

一些常見的方法來存儲信息:

  • 作爲文件。您有很多選項其中您可以存儲該文件。例如,用戶目錄和程序目錄。進一步解釋herehere。我更喜歡使用序列化程序(xml或json)。
  • 作爲註冊表條目。您將信息存儲爲鍵值對。
  • 在重量輕的數據庫
    • RavenDB:JSON格式它的文檔化,並且存儲數據
    • SQLite的:關係;我建議這個SQLite Admin用於管理目的

註冊表項是關於用戶操作更安全。另一方面,文件可以很容易地刪除。

您始終可以選擇加密您的信息。

作爲便箋,您還可以使用PostSharp來聲明要存儲在註冊表中的變量。該代碼變得像這樣:

[RegistryBacking] 
private bool _boolean; 

我可以提供的代碼後,如果你需要它......當我再次回來了。

+0

謝謝,請隨時提供代碼 – Arash 2012-02-12 00:15:02

1

XML。 .NET has classes,使處理XML文件變得簡單。如果你正在保存結構化數據,那麼XML可能是你最好的選擇。

1

我有非常相似的原因嘗試了一些易於部署數據庫,但使用我有的知識。

VistaDB 3.x and 4是我的第一選擇,因爲它們非常兼容SQL Server,並且允許我隨時隨地切換到SQL Server。這也支持EF!

接下來是db4o by Versant這非常非常方便。我主要用它進行快速原型設計,但我已經部署到幾個小型解決方案,並且適合您的應用。

我希望有幫助!