前面瞭解過程式的背景需求和基本架構之後,接著就來看整個開發工作是靠哪些原始碼兜起來的。因為兩個 WinForm 的原始碼骨架都差不多,所以這邊就拿 SybaseUtility 專案當範例。

 

Service References

服務參考,下載功能會用到的 Web Service,也就是發佈到遠端網站的 WebUtility。

Business Objects

專案資料夾,存放業務邏輯會操作到的物件。

類別名稱 程式檔名 用途簡述
Json 內容 Jsons.cs 在資料進入或離開本工具之前,都需要先轉換成 Json 格式。
修理廠基本資訊 Garages.cs 從設定檔取得修理廠資訊,供後面呼叫使用。
資料上傳參數 Arguments.cs 呼叫第三方資料接收服務的所需參數。
上傳資料類型枚舉 TransmitterGenre.cs 要上傳到微信端的資料類型:例如客戶資料、銷售單等等。
上傳功能屬性 Transmitter.cs 資料上傳物件的屬性:當前資料類型、上傳提示、還原提示。
下載資料類型枚舉 ReceiverGenre.cs 要從微信端下載的資料類型:例如預約記錄、代辦申請。
下載功能屬性 Receiver.cs 資料下載物件的屬性:當前資料類型、下載提示、還原提示。

Constants

專案資料夾,存放與資料類型連動的相關常數。

類別名稱 程式檔名 用途簡述
預覽表頭提示文字 HeaderText.cs  DataGridView 上的標題文字。
預覽資料繫結欄位 ColumnText.cs DataGridView要和資料來源做繫結的欄位名稱。
資料過濾條件語句 CriteriaText.cs 篩選資料的 SQL 敘述。
資料過濾標題文字 FilterText.cs 做資料篩選時,輸入條件的提示文字。
候選資料主鍵索引 PrimaryKeyIndex.cs 資料表主鍵欄位在 DataGridView 中的位置。
資料預覽訊息提示 PreviewState.cs 狀態列顯示本機資料庫中,已上傳或未上傳資料的筆數。
傳送還原訊息提示 FinishState.cs 對話框提示有幾筆資料上傳完成或還原成功。

DataAccessObjects

專案資料夾,存放每個資料類型的資料庫操作類別和 SQL 敘述。

類別名稱 程式檔名 用途簡述
N/A SQLStatements 子資料夾,存放本工具所有會用到的 SQL 敘述。
客戶資料存取 CustomersDB.cs 取得客戶資料、變更上傳狀態、還原上傳狀態等等操作。
銷售單資料存取 SaleListsDB.cs 取得銷售記錄、變更上傳狀態、還原上傳狀態等等操作。
維修記錄存取 RepairingsDB.cs 取得維修記錄、變更上傳狀態、還原上傳狀態等等操作。
會員卡資料存取 VIPCards.DB.cs 取得會員卡資料、變更上傳狀態、還原上傳狀態等等操作。
積分兌換項目存取 CreditConvertItemsDB.cs 取得積分兌換項目、變更上傳狀態、還原上傳狀態等等操作。
預約維修記錄存取 ReservesDB.cs 下載資料到本機資料庫、刪除狀態還原成功後的本機資料。

Facades

專案資料夾,存放每個資料類型用戶端操作和資料庫操作的中間層類別。

類別名稱 程式檔名 用途簡述
資料操作驗證 Validating.cs 操作資料前,提示是否已確認好資料狀態和資料類型。
資料來源設定 DSNConfiguring.cs 讀取或寫入資料來源設定檔的中間層。
修理廠設定 GarageConfiguring.cs 讀取或寫入修理廠基本資料設定檔的中間層。
傳輸服務設定 WebServiceConfiguring.cs 讀取或寫入資料上下載網址設定檔的中間層。
客戶資料上傳 CustomersTransmitting.cs 處理客戶資料預覽、過濾、上傳、還原的中間層。
銷售記錄上傳 SaleListsTransmitting.cs 處理銷售記錄預覽、過濾、上傳、還原的中間層。
維修記錄上傳 RepairingTransmitting.cs 處理維修記錄預覽、過濾、上傳、還原的中間層。
會員卡資料上傳 VIPCardsTransmitting.cs 處理會員卡資料預覽、過濾、上傳、還原的中間層。
積分兌換項目上傳 CreditConvertItemsTransmitting.cs 處理積分兌換項目預覽、過濾、上傳、還原的中間層。
預約記錄下載 ReservesReceiving.cs 處理預約記錄預覽、過濾、下載、還原的中間層。

Helpers

專案資料夾,存放處理資料上傳的通用類別,處理讀寫設定檔內容的通用類別,以及處理資料庫存取的通用類別。

類別名稱 程式檔名 用途簡述
設定檔內容讀寫 ConfigHelper.cs 讀寫設定檔內容,取得作業系統的ODBC資料來源清單。
資料上傳處理 WebServiceHelper.cs 跟據網址和上傳所需參數,呼叫第三方 Web Service 送出資料。
資料庫存取操作 DbHelper.cs 資料庫連接,取得 DataTable 或 DataSet 等等。

Interfaces

專案資料夾,存放主要物件的介面定義,用途在規範物件的共有行為。

類別名稱 程式檔名 用途簡述
基礎設定行為 IConfiguring.cs 所有設定都會有的行為,讀取和寫入設定檔內容。
上傳作業行為 ITransmitting.cs 所有資料類型上傳時都會有的行為,具體詳見備註一
下載作業行為 IReceiving.cs 所有資料類型下載時都會有的行為,具體詳見備註二

備註一:取得表頭文字,取得繫結欄位,變更過濾提示,取得預覽資料,取得過濾條件,取得主鍵索引,轉換資料格式,產生上傳參數,資料上傳作業,變更上傳狀態,還原上傳狀態。

備註二:接收微信端傳回的中介資料,將中介資料轉為 DataTable,取得表頭文字,取得繫結欄位,取得過濾條件,取得主鍵索引,候選下載資料繫結,候選資料寫入本機資料庫,微信端資料狀態變更,微信端資料狀態還原,還原狀態刪除本地資料。

 

Operations

專案資料夾,存放使用者與控制項互動的中間層類別,和使用者與上傳作業物件、下載作業物件互動的中間層類別,以及上傳作業與第三方 Web Service 互動的中間層類別。

類別名稱 程式檔名 用途簡述
按鈕狀態開關操作 ButtonOperation.cs 設定按鈕的可按與不可按。
控制項取值賦值操作 ControlValueOperation.cs 文字方塊、複選框,下拉選單的取值和賦值。
預覽控制項通用操作 GridViewOperation.cs DataGridView 在上傳下載模組都會有的操作,見備註一
資料下載操作 ReceiverOperation.cs 使用者與資料下載物件互動的相關操作,見備註二
資料上傳操作 TransmitterOperation.cs 使用者與資料上傳物件互動的相關操作,見備註三
第三方處理程序操作 WebServiceOperation.cs 上傳作業與第三方處理程序互動的相關操作,見備註四

備註一:清空預覽區,首欄建立複選框,資料繫結,計算並顯示預覽筆數,計算並提示處理筆數,取得符合篩選條件的資料,取得已勾選項目主鍵,取得所有項目主鍵。

備註二:建立資料類型下拉選單,設定點擊已下載時的按鈕狀態,設定點擊未下載時的按鈕狀態,跟據選擇的資料狀態和資料類型預覽資料,預覽資料條件篩選處理,下載所有資料,下載已勾選資料,還原所有資料,還原已勾選資料。

備註三:建立資料類型清單,設定點擊已上傳時的按鈕狀態,設定點擊未上傳時的按鈕狀態,根據選擇的資料類型改變文字提示,跟據選擇的資料狀態和資料類型預覽資料,預覽資料條件篩選處理,上傳所有資料,上傳已勾選資料,還原所有資料,還原已勾選資料。

備註四:產生所選資料類型的參數與參數內含值,呼叫所屬資料類型的 Web Service 上傳方法。

 

Tools

專案資料夾,存放的是資料格式轉換和資料映射處理的中間層類別。

類別名稱 程式檔名 用途簡述
資料格式轉換器 DataConverter.cs 收錄了幾種常用的資料格式轉換方法,詳見備註一
資料映射轉換器 DataMapper.cs 將 DataReader 轉成泛型集合的前置作業,資料欄位映射。

備註一:DataReader 轉泛型集合,DataTable 轉泛型集合,泛型集合轉 DataTable,DataGridView 轉 DataTable,DataTable 轉 Json,Json 轉 DataTable,Json 轉物件,物件轉 Json。

 

WinForms

專案資料夾,存放的是所有功能模組都會用到的視窗操作介面。

所屬模組

程式檔名

用途描述

 基礎設定 fDSNConfig.cs 資料來源設定。
 基礎設定 fGarageConfig.cs  修理廠設定。 
 基礎設定 fWebServiceConfig.cs 第三方上傳設定。
 N/A fMDI.cs 資料傳輸工具的入口,程式的主視窗。
 資料處理 fTransmitter.cs  資料上傳介面,程式的子視窗。
 資料處理 fReceiver.cs 資料下載介面,程式的子視窗。

App.Config

整個 WinForms 專案的應用程式設定檔,設定檔內容主要有兩大區塊,第一個是基礎設定裡的每個設定項目和設定值,第二個是資料上傳 Web Service 的相關設定,例如最大傳輸容量、資料編碼方式等等。

 

posted on 2015-11-04 14:10  吉格艾諾  阅读(146)  评论(0编辑  收藏  举报