2010-10-23 152 views
0

我正在研究一個學校部門的簡單標記管理系統(讓我們假設它是數學部門)。他們希望有一個簡單的系統讓用戶在每個學生進步時輸入分數,每學期輸入分數,獲得年度平均分,老師分類等。創建一個簡單的多用戶桌面應用程序

與負責部門負責人談話時,他說可能最多12至15人將通過有線和無線連接訪問數據庫。我最初覺得Access應該足夠了,但是經過一番研究之後,似乎它可能不是理想的選擇(15個用戶接近推動它,加上無線連接並不理想)。

因此,我決定採用基於Sqlite的解決方案。我選擇Sqlite的原因是爲了緩解問題,例如每次服務器重新啓動時重新啓動數據庫軟件以及不重新啓動數據庫軟件。讓Sqlite駐留在一箇中心位置,並讓軟件通過LAN連接與它通信。希望它應該可以正常工作。

我正在尋找一些有關我應該用什麼來創建實際前端的見解。我傾向於一個C#WPF應用程序。雖然我已經通過DreamSpark爲uni使用了專業版(或者是旗艦版),但這個項目並未被許可證所覆蓋,所以我將不得不使用Express版。

我想知道什麼功能缺失,可能會阻礙我。數據庫方面並不是真正的問題 - 雖然LINQ或EF是可取的,但我並沒有Sqlite與Linq合作,我也不確定EF是否在Express版本中。有了這個說法,但是如果我需要的話,我並不介意自己做所有的數據庫工作。我真正需要的是一種與數據庫連接的方式。使用VS 2010 Express執行此操作的最佳方法是什麼?有沒有免費的解決方案,我可以用它來使這更容易?

使用WPF,缺少的是什麼?所有(最?)的控件是否可用?

基本上我只是想弄清楚會對我施加什麼限制,什麼可能會給我帶來麻煩。

如果您有任何其他建議,我很樂意聽到他們。另外,我還記得聽說微軟有一些程序可以讓初學開發者便宜或免費使用這些工具幾年或幾年。任何想法它被稱爲 - 沒有運氣谷歌搜索它。

回答

2

我一直在使用MS-訪問自1995年以來已經有足夠的與MS-訪問不好的經驗,在通過局域網併發多用戶的讀/寫的情況下,特別是當網絡傳輸層不穩固時。可能導致錯誤時刻的超時連接和數據損壞。我也在Oracle和SQL-Server上編程,但有些客戶根本不想承擔真正的客戶端服務器(與共享文件不同)的額外成本,無論你告訴他們什麼恐怖故事。

您可以使用System.Data連接到SQLite。SQLite庫可用到http://sqlite.phxsoftware.com/,但由於SQLite在寫入操作期間使用獨佔文件鎖定,它也可能因傳輸層異常而受到破壞,當涉及無線連接時,這種異常並不少見。

我傾向於推薦:a)如果您選擇像Access或SQLite這樣的共享文件體系結構,或者b)一個真正的客戶端 - 服務器引擎,並且客戶端運行時向後端提供Web界面在桌面上。如果您選擇使用它們而不是開放源代碼,您的學術客戶可能有資格獲得主要商業公司的特許折扣。

Web界面還允許非Microsoft客戶端使用該應用程序。

+0

+1 web前端解決了這種情況下的大部分基本問題。這非常簡單(即不是實時股票交易),不足以保證高級本地客戶承擔通常引入的所有維護負擔和通信問題。如果這是您所熟悉的,則可以在Web服務器端訪問,從中刪除LAN和多客戶端連接問題。 – 2010-10-23 13:55:13

0

而且,我記得聽到微軟 有一些程序,開始了向 工具 開發廉價或免費接入幾年或什麼的。 任何想法它被稱爲 - 沒有 運氣谷歌搜索它。

WebSiteSpark程序

+0

BizSpark適用於新開發人員 - 並且與桌面更相關。 WebSiteSpark適用於Web開發人員,他們不必成爲初創公司。 – 2011-03-26 01:22:05

0

不要忘記,Sql Server最近出現在free版本中。

有一些限制,但不應該是您的方案中的問題。

什麼是重新啓動數據庫軟件的掛斷,如果您重新啓動服務器,文件共享將會脫機。另外,你不應該使用VS2010 Express遇到任何嚴重的限制,值得注意的是,缺少的組件是單元測試,插件支持,源代碼控制集成。

WPF應該爲您提供生成豐富界面所需的一切,但您最大的障礙將是學習曲線。如果你能克服這一點,那麼WPF將爲你服務。

+0

我剛剛在大學完成了一個WPF的學期,所以我很舒服。這不是真的問題。問題是我沒有任何控制權的服務器。我在那裏開發和部署應用程序。他們只需要一些簡單的東西,並且考慮到所有因素,PHP/Sqlite解決方案目前看起來相當不錯。我在部署後需要最少的維護。 – NRaf 2010-10-25 06:55:04

相關問題