2009-10-13 59 views
4

我之前遇到過這個問題,我從來沒有理解它的推理:在.Net開發的桌面應用程序中,存儲連接字符串作爲應用程序配置中的只讀值。.Net應用程序中連接字符串的原因是什麼只讀

我寫的每一個 Windows應用程序,數據庫需要由用戶設置:如果我將應用程序部署到不同的網站,它不可能他們將使用同一個數據庫。當然,這是桌面應用程序的常見情況?那麼爲什麼連接字符串在框架中是隻讀的?

這是數據庫框架設計師在服務器應用程序方面思考的問題,並忘記了桌面用例嗎?

回答

2

Nothing 要求將您的連接字符串放在app.config中。您可以使用設置文件(可更新的和用戶特定的),Windows註冊表或任何您想要的數據存儲區。在數據庫不可配置的情況下,app.config只是一個簡單的地方來定義連接。

什麼應該避免編碼連接字符串中的用戶密碼,除非您在配置文件中使用連接字符串加密。

2

對於桌面應用程序,app.config中的數據庫連接信息對我來說聽起來像個壞主意。通常情況下,我會有一個桌面應用程序調用一個web/wcf服務,然後調用數據庫(這種方式沒有連接字符串存儲在客戶端)

這可能是一個從很多人們在服務器端做它。至少在Web應用程序中,在web.config文件中設置連接字符串是一種不必重新編譯即可更改它的好方法。

如果您想允許用戶設置自己的連接屬性,則app.config中的字符串可能被認爲是DEFAULT設置。

+2

爲什麼你認爲每個桌面應用程序總是可以訪問一些Web服務或WCF服務?許多桌面應用程序都以獨立方式部署,並可能連接到用戶本地機器上的數據庫。您獲取連接字符串的策略通常取決於應用程序本身的性質。 – LBushkin 2009-10-13 20:04:50

+0

@LBushkin,你不能在本地運行WCF?我沒有假設任何東西,我發佈的大部分內容仍適用於本地數據庫。如果OP希望他的用戶選擇一個數據庫(即使他們只選擇本地數據庫),他仍然否定對只讀設置的需要,他會不會? – 2009-10-13 21:20:44

+2

我的觀點是,使用web/wcf服務作爲一種機制來嚮應用程序提供設置或配置似乎有點過度 - 特別是因爲還有其他技術可以運行。雖然你當然可以在本地運行web/wcf服務,但你需要能夠證明增加的複雜性和脆弱性 - 因爲現在你不僅需要管理應用程序的配置,還需要管理服務的配置。 – LBushkin 2009-10-13 21:57:57

相關問題