首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

WF4.0 實戰(二十四):打造可定制化的個人化 WebService 聚合平台

     編輯:關於.NET

WF4 不僅能處理商務邏輯,更能整合多個外部 WebService 為統一介面。開源專案 Dropthings 即採此架構。本文實作一個動態、可定制、通用的 WebService 聚合站台,支援天氣查詢、火車時刻、QQ 在線偵測等服務。

系統功能展示

  • 啟動頁面提供三大服務入口
  • 依服務動態產生參數表單
  • 即時呼叫並顯示結果
啟動頁面服務選單 動態產生火車時刻查詢表單 查詢深圳到上海火車時刻結果 深圳天氣查詢結果 QQ 在線狀態查詢結果

WF4 整合 WebService 兩大優勢

  1. 自動轉活動:VS 參考 WebService 後建置,所有方法自動變成工具箱活動,拖曳即用。
  2. 視覺化流程設計:使用 Flowchart/Switch 等活動處理回傳值轉換(如 QQ 狀態碼 Y/N/E/A/V 轉中文)。
引用 4 個 WebService 後工具箱活動 WebService 方法對應活動清單 qqCheckOnline 活動屬性視窗 Switch 活動轉換 QQ 狀態碼

關鍵技術實作

動態表單產生

ASPX 端呼叫工作流取得服務參數中繼資料,動態建立 Table/Label/TextBox:

private void CreateControl()
{
    if (ViewState["CreateControl"] == null) return;
    var workflowParam = new Dictionary<string, object>();
    var commandParam = new Dictionary<string, string> {
        {"commandName", "getServiceBaseInfo"},
        {"serviceName", ddlServiceName.Text}
    };
    workflowParam.Add("commandParam", commandParam);
    var result = WorkflowInvoker.Invoke(new MainFlowChart(), workflowParam);

    var services = result["resultString"].ToString().Split(';');
    // 解析參數並動態建立表單控制項...
}

工作流主流程架構

Flowchart 包含五大分支:取得服務清單、取得參數中繼資料、呼叫 QQ 服務、呼叫天氣服務、呼叫火車服務。新增服務只需加分支,無需修改 ASPX。

主流程 Flowchart 架構圖

前端呼叫範例

// QQ 在線查詢
var commandParam = new Dictionary<string, string> {
    {"commandName", "qqCheckOnline"},
    {"QQCode", "394403011"}
};
var result = WorkflowInvoker.Invoke(new MainFlowChart(), 
    new Dictionary<string, object> {{"commandParam", commandParam}});

// 火車時刻查詢
commandParam = new Dictionary<string, string> {
    {"commandName", "trainSchedule"},
    {"StartStation", "深圳"},
    {"ArriveStation", "上海"},
    {"UserID", ""}
};
result = WorkflowInvoker.Invoke(new MainFlowChart(), 
    new Dictionary<string, object> {{"commandParam", commandParam}});

未來可將流程存放資料庫、發布為 WCF 服務,實現真正的動態 WebService 聚合平台。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved