2010-01-09 65 views
1

我正在尋找如何構建VB.net GUI應用程序的策略。我有一個基本上是數據庫接口的應用程序。它由帶有6個選項卡的TabControl組成,每個選項卡都有一些自定義控件,並對數據庫執行業務操作。.net GUI結構的想法

標籤功能:

  1. 解析一個XLS到SQL插入並承諾DB

  2. 生成數據庫查詢的XLS結果

  3. 生成從數據庫查詢結果的XLS

  4. 從數據庫快速訪問數據查找(寫登錄框)

  5. 通過GUI形式(插入/更新語句的執行)

  6. DB連接設置

通用碼功能

手冊數據庫修改:

  1. 連接/斷開DB

  2. 執行非查詢

  3. 執行查詢

  4. 迭代查詢結果

  5. 寫的XLS

  6. 常見的子查詢(DB提供商不允許觀點)

Cur現在我已經獲得了GUI線程中事件處理函數內置的大部分操作。我想轉向更加面向對象的結構,以實現代碼可重用性和更簡單的多線程。

我有一些設計的東西掙扎:

  1. 哪些對象/類是有道理的?

  2. 是否存在圍繞分離GUI和後端功能的行業標準最佳實踐或設計模式?我應該閱讀哪些特別好的文章?

  3. BackgroundWorker是執行後端函數的最佳方式嗎?

Thanks-

喬納森

回答

4
  1. ...大概是太大的問題很容易回答;抱歉。但是你可以通過傳統的「尋找名詞」技術進行合理的第一次傳球。

  2. 對於Windows Forms,請查看Model-View-Controller or Model-View-Presenter。 (如果您在將來的項目中使用WPF或Silverlight,您需要查看名爲Model-View-ViewModel的替代模式,但對於WinForms而言效果並不理想。)

  3. 是的,BackgroundWorker是這是WinForms後臺任務的一個很好的選擇,因爲它提供了一種便捷的方式來提供進度和完成通知。它確實有一些限制,但是通過Thread或ThreadPool的顯式線程在這裏可能是多餘的,並且會導致額外的GUI反饋代碼。因此,至少將BackgroundWorker作爲一個起點,並考慮只有在開始給你帶來痛苦的情況下進行顯式線程化。