2013-10-30 115 views
0

我打算寫一個wpf應用程序,我想我需要一些建議。我有一個提供一些記錄的數據庫。這些記錄顯示在ListView中。用戶可以插入,刪除或修改記錄。這些操作中的每一個都會調用一個類的適當方法,以提供方法在我的數據庫上工作。如果數據庫上的操作已經結束,我會觸發一個事件。該事件被顯示用戶所做更改的用戶界面捕獲。如果數據庫上的操作失敗,則會顯示一條消息。關於應用程序概念的一些建議需要

數據庫通過在線程中運行的方法進行觀察。此方法每分鐘檢查一次數據庫中的數據是否已更改(例如,由也處理這些數據的其他用戶)。如果檢測到更改,則還會觸發包含更改的記錄的事件。

在UI級的我與存儲在一個DataTable本地數據的工作。

有沒有比我的方法更好的方法來構建應用程序?我覺得我的做法是沒有那麼好......

+0

這裏有一些工具http://msdn.microsoft.com/en-us/library/vstudio/t9x04ed2(v=vs.100).aspx – Paparazzi

+0

感謝您的答案。我使用不支持查詢通知afaik的MySql。目前,我正在使用輪詢機制來查詢給定時間距離內的新數據。我不知道在SQL服務器中有這樣的東西,所以它仍然非常有啓發性。 – ooorndtski

回答

0

坦白說,我看不出什麼毛病,因爲它是設計,我只想建議,在實體框架,也許將做一些數據庫訪問應該考慮。

除此之外,如果你正在結合編輯和該數據庫變化檢測器,首先設計數據庫檢查,然後解決任何可能改變編輯或停工數據庫檢查可能會報告。在現有系統中加入管道將是一場噩夢;如果你在前期構建它,它是非常易於管理的。

堅持使用MVVM系統,並確保你有一個VM該UI將訪問以及線程檢查器。放入布爾標誌將允許樣式和控件在Xaml中打開/關閉。

即使它不是一個Silverlight項目,設計所有數據訪問異步的方式與鎖定共享數據的能力。如果您使用多線程進行設計,它將長期得到回報。作爲基本參考,我在我的博客文章Xaml: ViewModel Main Page Instantiation and Loading Strategy for Easier Binding上展示了這種異步操作和MVVM的基本方式。

考慮使用C#接口的主要操作和數據要處理。這將使您能夠獨立測試它們,並在需要時提供依賴注入,以使您的類可以長期可測試和可重用。

最後使用最新版本的.Net。當你不需要使用舊版本時,不要束縛自己。

+0

非常感謝您的回答。我沒有太多的設計應用程序的經驗,需要確認。 – ooorndtski