應用程式設計選擇

本文討論網際網路程式設計時要考慮的一些設計問題。

本文涵蓋的主題包括:

如果您已準備好立即開始撰寫程式,請參閱 撰寫 MFC 應用程式

內部網路與網際網路的比較

許多應用程式會在網際網路上執行,而且任何具有瀏覽器和網際網路存取權的人都可以存取。 企業也會實作內部網路,這些內部網路是使用 TCP/IP 通訊協定和網頁瀏覽器的全公司網路。 內部網路為全公司資訊提供容易升級的中央來源。 它們可用於升級軟體、提供和定位問卷、客戶支援,以及資訊傳遞。 下表比較網際網路和內部網路的功能。

網際網路 內部網路
低頻寬 高頻寬
降低資料和系統的安全性 對資料和系統的受控存取
內容控制最少 高度控制內容

用戶端或伺服器應用程式

您的應用程式可能會在用戶端電腦或伺服器電腦上執行。 您的應用程式也可能儲存在伺服器上,然後透過網際網路下載,並在用戶端電腦上執行。 MFC WinInet 類別用於用戶端應用程式下載檔案。 MFC 和非同步 Moniker 類別可用來下載檔案和控制屬性。 ActiveX 控制項和 Active 檔的類別會用於用戶端應用程式,以及從伺服器下載以在用戶端上執行的應用程式。

網頁:HTML、使用中檔、ActiveX 控制項

Microsoft 提供數種方式來提供網頁上的內容。 網頁可以使用標準 HTML 或 HTML 延伸模組,例如物件標籤,來提供動態內容,例如 ActiveX 控制項。

網頁瀏覽器通常會顯示 HTML 頁面。 使用中檔也可以在啟用 COM 瀏覽器的簡單點選介面中顯示應用程式的資料。 您的使用中檔案伺服器可以使用自己的功能表和工具列,在整個工作區中顯示檔、完整框架。

您可以從伺服器非同步下載您撰寫的 ActiveX 控制項,並顯示在網頁上。 您可以使用 VBScript 之類的指令碼語言,先執行用戶端驗證,再將資訊傳送至伺服器。

瀏覽器或獨立應用程式

您可以撰寫內嵌在 HTML 頁面的 ActiveX 控制項,以及瀏覽器中檢視的作用中檔案伺服器。 您可以撰寫包含按鈕的 HTML 頁面,以提交要求,以在網頁伺服器上執行 ISAPI 應用程式。 您可以撰寫使用網際網路通訊協定來下載檔案並向使用者顯示資訊的獨立應用程式,而不需要使用瀏覽器應用程式。

網際網路上的 COM

ActiveX 控制項、Active 檔和非同步 Moniker 全都使用 COM(元件物件模型)技術。

ActiveX 控制項提供動態內容給網際網路網站上的檔和頁面。 透過 COM,您可以使用 Active Documents 建置 ActiveX 控制項和完整框架檔。

非同步 Moniker 提供功能,可讓控制項在網際網路環境中執行良好,包括下載資料的累加或漸進式方法。 控制項也必須與其他可能同時以非同步方式擷取其資料的其他控制項搭配使用。

用戶端資料下載服務

兩組可協助將資料傳輸到用戶端的 API 是 WinInet 和非同步 Moniker。 如果您的 HTML 頁面上有大型 .gif 和 .avi 檔案和 ActiveX 控制項,您可以透過非同步下載、使用非同步 Moniker 或以非同步方式使用 WinInet 來增加對使用者的回應性。

網際網路上的常見工作是傳輸資料。 如果您已經使用 Active 技術(例如,如果您有 ActiveX 控制項),您可以使用非同步 Moniker 在下載資料時逐漸轉譯資料。 您可以使用 WinInet 來使用常見的網際網路通訊協定來傳輸資料,例如 HTTP、FTP 和 gopher。 這兩種方法都提供通訊協定獨立,並提供使用 WinSock 和 TCP/IP 的抽象層。 您仍然可以直接使用 WinSock

下表摘要說明使用 MFC 跨網際網路傳輸資料的數種方式。

使用此通訊協定 在這些情況下 使用這些類別
使用非同步 Monikers 進行網際網路下載 使用 COM、ActiveX 控制項和任何網際網路通訊協定進行非同步傳輸。 CAsyncMonikerFile CDataPathProperty
WinInet 針對 HTTP、FTP 和 gopher 的網際網路通訊協定。 資料可以同步或非同步傳輸,並儲存在全系統快取中。 CInternetSession CFtpFileFind CGopherFileFind 等等。
WinSock 為了達到最大效率和控制。 需要瞭解通訊端和 TCP/IP 通訊協定。 CSocket CAsyncSocket

另請參閱

MFC 網際網路程式設計工作
MFC 網際網路程式設計基本概念
Win32 網際網路延伸模組 (WinInet)
網際網路上的非同步 Moniker