前面瞭解過程式的背景需求和基本架構之後,接著就來看整個開發工作是靠哪些原始碼兜起來的。因為兩個 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 的相關設定,例如最大傳輸容量、資料編碼方式等等。

转载于:https://www.cnblogs.com/hsw1976/p/4933838.html

實戰案例 - 微信平台與自有產品資料對接 (2)相关推荐

  1. 實戰案例:微信平台與自有產品資料對接 (1)

    之前接觸物件導向,絕大部份時間都是在理論層面打轉,最近適逢公司推出自有產品的微信解決方案,並且需要一個微信端與產品端的資料對接工具,因此就想趁這個機會,用物件導向的開發方式來玩玩看,另一方面也順便瞭解 ...

  2. 實戰案例:微信支付篇 (1) 前言

    這個主題牽涉的範圍其實挺廣的,無論技術層面或非技術面都包括在內.技術面當然就是指開發者對慣用開發工具.官方接口,以及對官方技術文件.範例程式的理解掌握程度:非技術面則是初期需要準備一些書面資料,可能需 ...

  3. 實戰案例 - 資料對接工具程式碼重構 (2)

    由於剛開始用物件導向的思維來寫程式,很多地方尚未適應,而且時程也有點趕,所以做出來的東西,很有機會慘不忍睹.上一篇所提到的全部操作效果,初期的實作程式碼如本文底部所示,整個程式碼就是資料上傳 form ...

  4. 實戰案例:微信公眾號篇 (1) 前言

    由於微信公眾號的相關遊戲規則,可能每個時期都不太一樣,因此具體細節可自行上微信公眾平台網站查閱,本文只針對部份重點做說明. 一.公眾號類型 1.訂閱號:偏重在傳達訊息給用戶,認證前後每天只可群發一條訊 ...

  5. [心得] 如何利用liquibase進行資料庫版本控制 - 實際練習

    透過上一篇的基本觀念介紹,希望大家應該有一點點感覺了! 這篇我們就來做個簡單的版本演練,加深印象吧! 我使用的環境如下 System : Windows 7 Database : SQL Server ...

  6. 柯博文老師的繁體新書- Arduino 互動設計專題與實戰,深入Arduino 的全方位指南...

    Arduino 互動設計專題與實戰,深入Arduino 的全方位指南 作者: 柯博文 出版社:碁峰資訊 出版日期:2014-08-12 語言:繁體中文 ISBN:9789863471004 內容介紹 ...

  7. 微信营销系统(第三方微信平台)之微分销模块拓展

    一.微分销是什么? 无论是线下还是线上,获客和流量都是高转化的前提.因此,为了解决这个问题,我们推出了扁平式发展分销商,让更多的卖家成为卖家,大幅度降低销售成本. 微分销系统,让所有参与分享和推广的人 ...

  8. 视频教程-Layabox3D游戏开发入门-微信3D小游戏案例 -微信开发

    Layabox3D游戏开发入门-微信3D小游戏案例 有多年Unity程序开发经验,有策划和美术设计的经验.愿意在csdn这个平台和大家一起分享! 金龙 ¥29.00 立即订阅 扫码下载「CSDN程序员 ...

  9. 雅虎說【用戶將無法從中國大陸使用 Yahoo 的產品與服務】电话号码选项中将(+86)删除

    很多朋友時候為了工作.生活.學習以及社交方面的需求,想要註冊一個屬於自己的郵箱,我們知道郵箱有兩種形式. 擁有自己的功能變數名稱藉助第三方平臺可搭建一個屬於自己的郵箱(自定義別名) ; 專業提供郵箱公 ...

最新文章

  1. 每日一皮:男同胞们小心,连视频直播都被东南亚邪术控制了...
  2. MongoDB Sharding分片配置
  3. 一段JAVA签名算法的PHP改写
  4. Hadoop on Mac with IntelliJ IDEA - 5 解决java heap space问题
  5. 《流畅的Python》读书笔记——接口:从协议到抽象基类
  6. A Deep Learning Tutorial: From Perceptrons to Deep Networks
  7. vba ado返回集合_带你进入VBA中Address地址世界
  8. c语言贪吃蛇自动移动,C语言贪吃蛇移动
  9. 怎样修改计算机系统8,win8改win7,教您win8怎么改为win7系统
  10. 一步步学习SPD2010--第八章节--理解工作流(8)--使用Visio映射工作流
  11. 深入浅出H桥驱动电路
  12. ubuntu20.4 微信,qq ,等安装安装教程
  13. 磁场发生装置电磁铁简介及工作原理
  14. 英语口语收集(二十六)
  15. 何新生的英语史(八)—看好莱坞学英语,就是这么简单 1
  16. DML和DDL的区别
  17. 工具学习——有哪些好用的学术翻译工具
  18. MySql 中 varchar 和varchar 的区别
  19. Grammer - 被动语态
  20. smtp outlook邮件发送非授权码模式

热门文章

  1. 水下机器人(rov)小知识(1)
  2. BIOS 和 EC的关系
  3. c#中如何获取电脑硬件信息?山寨一个鲁大师
  4. 2021年中国研究生数学建模竞赛C题——帕金森病的脑深部电刺激治疗建模研究
  5. Android 8.0新特性
  6. 中间继电器实现直流电机正反转
  7. 局域网服务器和联通协议,联通局域网怎么设置
  8. 全球及中国电动牙刷行业消费需求态势与投资机遇研究报告2022版
  9. 引爆互联网文娱产业,华为云打响5G开局之战
  10. win10 win7局域网、AD域内共享文件夹方法