早期 Flash/Flex 專案常透過 SOAP WebService 與後端交互。本文示範建立簡單 **ASMX WebService** 計算斐波那契數列第 N 項,並驗證 WSDL 與 Flash 整合流程。**注意:ASMX 為舊技術,新專案請用 Web API / gRPC / GraphQL。**
<%@ WebService Language="C#" Class="Fibonacci" %>
using System.Web.Services;
public class Fibonacci : WebService
{
[WebMethod]
public int GetSeqNumber(int fibIndex)
{
if (fibIndex < 2) return fibIndex;
int a = 0, b = 1;
for (int i = 1; i < fibIndex; i++)
{
int temp = a + b;
a = b;
b = temp;
}
return b;
}
}
Fibonacci.asmx 放入 IIS 應用程式根目錄。https://localhost/Fibonacci.asmx → 看見方法清單頁面。https://localhost/Fibonacci.asmx?WSDL 取得 WSDL 供 Flash/客戶端匯入。import mx.rpc.soap.WebService;
var ws:WebService = new WebService();
ws.wsdl = "https://localhost/Fibonacci.asmx?WSDL";
ws.loadWSDL();
ws.GetSeqNumber.addEventListener(ResultEvent.RESULT, onResult);
ws.GetSeqNumber(10); // 呼叫
function onResult(e:ResultEvent):void {
trace("Fibonacci(10) = " + e.result); // 55
}
| 技術 | 優點 | 缺點 |
|---|---|---|
| ASMX (SOAP) | 工具成熟、WSDL 強型別、企業級標準 | XML 開銷大、配置複雜、非 RESTful、Flash 已淘汰 |
| ASP.NET Web API (REST/JSON) | 輕量、HTTP 語義、易快取、跨平台 | 無標準合約 (需 Swagger/OpenAPI) |
| gRPC (Protobuf) | 高效能、強型別、雙向流、多語言 | 瀏覽器需 gRPC-Web、除錯較難 |
| GraphQL | 按需查詢、單一端點、強型別 | 快取複雜、N+1 問題、學習曲線 |
理解 ASMX 歷史脈絡有助於維護舊系統,但新架構請擁抱現代 API 風格。