• 沒有找到結果。

二 、 .NET 技術的潛力

.NET 擺 脫 以 往 硬 體 的 限 制 , 可 讓 外 務 使 用 者 的 資 料 存 在 於 網 路 , 而 非 手 提 電 腦 中 ( 這 是 本 研 究 訴 求 之 一 )。 透 過 各 種 平 臺 , 包 括 桌 上 型 電 腦 、 手 提 電 腦 、 手 機 或 掌 上 型 裝 置(PDA) 可 達 到 即 時 傳 遞 資 訊 的 目 的, 更 可 將 這 些 資 訊 整 合 於 應 用 程 式 中 。.NET 能 讓 使 用 者 輕 鬆 地 連 繫 並 完 成 資 料 傳 輸 , 免 去 耗 時 及 重 覆 鍵 入 資 料 的 挫 敗 感 。藉 由 多 種 安 全 性 資 料 整 合 植 入 單 一 操 作 介 面 , 或 程 式 化 的 自 動 決 策 引 擎 ,.NET 架 構 將 使 用 者 從 目 前 網 頁 應 用 的 資 料 限 制 及 技 術 樊 籠 中 跳 脫 出 來, 讓 使 用 者 可 以 隨 心 所 欲 地 透 過 任 何 裝 置 , 在 任 何 時 間 、 任 何 地 點 自 由 地 存 取 資 料 。

對 開 發 人 員 而 言 ,.NET 不 僅 改 變 未 來 應 用 程 式 的 開 發 方

另 一 項 則 是 網 頁 上 的 訊 息 導 向 概 念 , 亦 即 「 網 頁 服 務(Web Services)」,這 象 徵 軟 體 程 式 發 展 的 新 里 程 碑。網 頁 服 務 (Web Services),就 是 利 用 網 際 網 路 的 標 準 協 定,例 如:HTTP、XML,

將 軟 體 的 功 能 完 全 地 展 現 在 網 際 網 路 或 是 企 業 內 部 網 路 上 運 用 的 軟 體 服 務 , 它 可 以 想 像 是 一 種 在 網 頁 上 的 元 件 編 製 程 序 。 就 概 念 上 而 言 , 程 式 開 發 者 藉 由 呼 叫 應 用 程 式 介 面(APIs)將 應 用 程 式 整 合 於 網 頁 服 務(Web Services)中 , 就 像 呼 叫 本 機 服 務 的 意 思 一 樣。 這 之 間 的 差 別 在 於 網 頁 服 務 呼 叫 可 以 透 過 網 路 來 服 務 位 於 遠 端 的 系 統。例 如,Microsoft Passport可 使 程 式 設

計 者 規 劃 出 申 請 手 續 的 認 證 。 藉 由Passport service的 程 式 , 程 式 設 計 者 可 以 利 用Passport的 架 構 , 依 靠 Passport來 維 護 使 用 者 資 料 庫 , 確 保 其 正 常 運 作 及 資 料 備 份 等 等 。

.NET 即 是 架 構 在 這 樣 的 網 頁 服 務 (Web Services)的 原 則

下,微 軟 正 透 過 完 整.NET 架 構 平 台 (包 含 各 項 組 成 部 分 ),以 提 供 網 頁 服 務(Web Services)穩 固 的 基 礎 開 發 架 構 。 下 一 代 的 程 式 發 展 工 具 與 基 礎 架 構 , 其 中 包 含 Visual Studio .NET、 .NET Framework、 Windows.NET 及 .NET Enterprise Server 等 , 都 是 設 計 用 來 在 網 頁 服 務 模 組 上 開 發 應 用 程 式 。 此 外 ,.NET 區 (.NET Building Block Services)、新 的 .NET 裝 置 支

援(.NET device support)、 及 和 即 將 到 來 的 .NET 使 用 者 經 驗 (.NET user experience)三 項 設 計 則 將 提 供 完 整 的 開 發 工 具 及 經 驗 , 讓 接 續 的 應 用 程 式 開 發 可 以 真 正 地 利 用 網 頁 服 務 模 組 所 賦 予 的 技 術 。

.NET Framework 是 建 立、佈 署、執 行 .NET 程 式 的 核 心 環 境 , 地 位 相 當 重 要 。 它 包 含 三 個 部 分 :

1.Common Language Runtime

.NET 應 用 程 式 架 構 中 提 供 了 一 個 讓 程 式 設 計 人 員 在 處 理 程 式 時 更 方 便 的 服 務 , 稱 之 為 Common Language Runtime。

程 式 編 譯 器 或 者 是 編 譯 的 工 具 可 以 把 原 始 程 式 編 譯 成 執 行 階 段 的 程 式 , 執 行 階 段 的 程 式 稱 之 為 managed code, 當 執 行 的 時 候 會 由 JIT ( Just-In-Time Compiler ) 編 譯 成 機 器 碼 。 Common Language Runtime 有 下 列 的 特 性 :

z 不 同 程 式 語 言 間 整 合 z 不 同 程 式 語 言 間 除 錯 z 安 全 性 的 增 強

z 支 援 版 本 別 及 安 裝 部 署 z 簡 化 元 件 整 合 的 方 式 z 除 錯 及 profiling 的 服 務

執 行 環 境 會 自 動 的 控 制 產 生 出 來 的 物 件 , 並 且 管 理 和 物 件 相 關 的 參 照 , 並 且 當 沒 有 任 何 的 物 件 的 時 候 , 會 自 動 釋 放 佔 據 的 資 源 。

2.Base Class Library

在.NET 平 台 中,「 網 頁 」是 一 個 物 件,網 頁 中 的「 控 制 項 」 也 是 物 件 , 甚 至 連 「 資 料 型 態 」 也 是 物 件 。 這 些 物 件 都 被 定 義 在 基 本 物 件 類 別(Basic Class Library, BCL) 之 中 。 使 用 者 可 以 在 程 式 之 中 直 接 引 用 這 一 些 事 先 定 義 好 的 物 件 類 別 , 也 可 以 繼 承 基 本 的 物 件 類 別 來 產 生 新 的 物 件 類 別 。 搭 配 Common Language Runtime,可 以 在 元 件 或 是 應 用 程 式 之 中,引 用 其 他 程 式 語 言 所 撰 寫 的 物 件 。

不 同 程 式 語 言 所 開 發 出 的 物 件 彼 此 之 間 可 以 互 相 溝 通 , 而 且 更 緊 密 的 整 合 了 彼 此 的 行 為(behaviors)。例 如,可 以 先 撰 寫 好 一 個 物 件 類 別 A, 再 使 用 另 一 種 程 式 語 言 開 發 一 個 新 的 物 件 類 別 B, 並 在 物 件 類 別 B 可 呼 叫 物 件 類 別 A 的 方 法 (method) 來 使 用。亦 可 將 物 件 A 的 實 例 傳 遞 到 物 件 B 的 方 法 中;因 為 當 程 式 編 譯 器 在 編 譯 執 行 階 段 的 程 式 時 , 是 根 據 執 行 環 境 所 定 義 的 型 態 做 編 譯 , 並 根 據 執 行 環 境 的 規 則 去 定 義 新 的 資 料 型 態 , 或 者 是 建 立 , 使 用 , 保 存 , 連 結 到 這 一 些 資 料 型 態 。

3.Data Access

在.NET 應 用 程 式 架 構 中 , 使 用 ADO.NET 來 處 理 資 料 存 取。,雖 然 ADO.NET 中 也 有 Connection、Command 等 ADO 時 代 的 物 件,但 是 跟 ADO 的 物 件 架 構 及 使 用 的 方 式 都 不 一 樣,

ADO.NET 對 本 研 究 很 重 要 , 容 下 節 詳 述 。

三 、 ASP.NET

ASP.NET 是 一 個 全 新 的 物 件 架 構 , 所 以 伺 服 器 端 在 處 理

網 頁 的 方 式 也 跟 以 往 不 一 樣。在 ASP 程 式 之 中,所 謂 的 表 單 , 一 定 是 在 Client 端 的 瀏 覽 器 之 中,因 為 表 單 的 建 立 需 要 使 用 到 HTML 網 頁 控 制 項 。 但 是 在 ASP.NET 之 中 , 表 單 是 可 以 由 伺 服 器 端 直 接 處 理 的 。ASP.NET 的 Web 表 單 可 以 使 用 下 面 四 種 控 制 項 :

1.HTML 伺 服 器 端 控 制 項

將HTML的 控 制 項 , 藉 由 : 設 定 runat屬 性 值 為 Server的 方 式 , 由Server 端 的 程 式 來 控 制 這 一 些 HTML 控 制 項 的 行 為 。

HTML伺 服 器 端 控 制 項 有 著 跟 HTML網 頁 控 制 項 相 近 的 物 件 模 型 , 所 以 可 以 透 過 屬 性 的 設 定 來 控 制 控 制 項 的 行 為 。

HTML 伺 服 器 控 制 項 (HTML Server Controls)就 是 一 般 的 HTML 網 頁 控 制 項 (HTML Elements), 再 加 入 讓 伺 服 器 端 程 式 可 以 掌 控 , 可 以 透 過 程 式 處 理 它 們 的 屬 性 設 定 。 傳 統 上 , 伺 服 器 對 於 網 頁 中 的 HTML 的 控 制 項 都 是 看 不 見 的,所 以 伺 服 器 在 處 理 的 時 候,會 略 過 這 一 些 控 制 項 並 且 將 這 一 些 HTML 的 文 字 直 接 丟 到 Client 端 的 瀏 覽 器 處 理。然 而,如 果 要 將 這 一 些 HTML 控 制 項(HTML Elements) 變 成 HTML 伺 服 器 控 制 項 (HTML Server Controls)的 話,必 須 要 將 它 們 變 成 伺 服 器 端 可 以 處 理 的 物 件 。

HTML 伺 服 器 端 控 制 項 (HTML Server Controls)的 物 件 架

構 , 跟 傳 統 的 HTML 網 頁 控 制 項 (HTML Elements)很 相 近 。 HTML 網 頁 控 制 項 中 的 屬 性 在 HTML 伺 服 器 端 控 項 中 仍 可 以 使 用 。

透 過 在 HTML 控 制 項 加 入 "Runat=Server" 屬 性 的 設 定 , 網 頁 中 所 有 HTML 控 制 項 都 可 轉 換 成 HTML 伺 服 器 端 控 制 項,

伺 服 器 端 在 處 理 網 頁 時 , 就 會 產 生 該 控 制 項 的 實 例

(Instance)。 若 該 控 制 項 要 在 程 式 中 處 理 的 話 , 只 要 在 控 制 項 中 設 定 ID 屬 性 的 值 就 可 以 了 。

Web Form Framework 中 已 經 提 供 大 多 數 在 網 頁 常 用 的 HTML 控 制 項 所 對 應 出 來 的 HTML 伺 服 器 端 控 制 項 , 像 是

<form>、 <Input>、 <Select>、 <Table>、 <Image>等 。 這 些 事

先 定 義 好 的 HTML 伺 服 器 控 制 項 擁 有 跟 HTML 控 制 項 一 樣 的 基 本 屬 性,但 是,每 一 個 HTML 伺 服 器 端 控 制 項 也 都 有 自 己 新 的 屬 性 及 事 件 ; 伺 服 器 端 會 透 過 這 一 些 屬 性 的 設 定 值 , 來 決 定 所 產 生 的 Client 端 的 程 式 碼 。

2.ASP.NET 伺 服 器 控 制 項

ASP.NET 伺 服 器 端 控 制 項 比 HTML 伺 服 器 控 制 項 多 了 許 多 內 建 的 特 性 , 其 中 不 只 包 括 了 在 表 單 中 會 使 用 的 按 鈕 , 或 是 文 字 輸 入 方 塊 等 , 還 包 括 了 新 的 控 制 項 , 像 是 日 曆 控 制 項 ( 本 研 究 大 量 使 用 它 )。ASP.NET 控 制 項 有 自 己 的 物 件 模 型 , 跟 HTML 伺 服 器 控 制 項 並 不 一 樣 , 但 很 類 似 , 都 是 由 伺 服 器 端 產

生 Client 端 所 需 要 的 HTML 程 式 碼 。 不 一 樣 的 是 , 在 HTML 控 制 項 之 中,每 一 個 伺 服 器 端 的 HTML 伺 服 器 控 制 項 會 對 應 到 一 個 HTML 網 頁 控 制 項,所 以 在 伺 服 器 端 使 用 <Button>,到 了

瀏 覽 器 之 中 仍 會 是<Button>。 但 若 使 用 的 是 ASP.NET 伺 服 器 控 制 項 的 話,這 種 一 對 一 的 關 係 就 不 一 定 存 在。因 為 ASP.NET 伺 服 器 控 制 項 的 物 件 架 構,比 一 般 的 HTML 伺 服 器 控 制 項 多 了 更 多 功 能。它 除 了 一 般 HTML 控 制 項 所 有 的 功 能 之 外,伺 服 器 端 在 處 理 這 一 類 控 制 項 的 時 候 , 會 自 動 偵 測 使 用 者 端 的 瀏 覽 器 版 本 , 並 根 據 偵 測 的 結 果 產 生 HTML 網 頁 控 制 項。同 時,部 分 的 ASP.NET 伺 服 器 控 制 項 可 以 自 訂 展 現 的 樣 式 , 只 需 要 設 定 就 可 以 了 。

3.驗 證 用 控 制 項

這 一 種 控 制 項 本 身 已 包 含 了 驗 證 用 的 邏 輯 在 其 中, 可 以 直 接 用 在 驗 證 使 用 者 輸 入 資 料 上 。 使 用 者 可 以 把 驗 證 用 控 制 項 加 入 輸 入 控 制 項 上 , 驗 證 用 控 制 項 可 以 驗 證 必 須 要 輸 入 值 的 欄 位 , 驗 證 使 用 者 輸 入 的 值 是 否 在 定 義 的 範 圍 , 資 料 型 態 是 否 正 確 等 。

4.使 用 者 自 訂 控 制 項

使 用 者 自 訂 控 制 項 像 是 Web Form。 根 據 程 式 需 要 , 可 以 將 一 些 常 用 的 選 單 , 按 鈕 等 做 成 使 用 成 控 制 項 , 然 後 將 這 一 些

使 用 者 控 制 項 加 入 到 任 何 一 個 需 要 的 網 頁 之 中 。

四 、 ADO.NET

ADO.NET 是 ADO 資 料 存 取 模 型 所 發 展 而 出 的 產 品,直 接 滿 足 使 用 者 開 發 可 調 適 性 應 用 程 式 的 需 求 。 它 是 特 別 針 對 Web 的 延 展 性 (Scalability)、無 國 界 特 性 和 XML 而 設 計 的( 如 圖 2-2)。

ADO.NET 使 用 許 多 ADO 物 件 , 例 如 Connection 和 Command 物 件 , 再 加 入 新 的 物 件 。 重 要 的 新 ADO.NET 物 件 包 含 DataSet、 DataReader 和 DataAdapter。

這 個 進 化 的 ADO.NET 和 前 一 版 資 料 架 構 最 大 差 異 在 於 有 DataSet 物 件 的 存 在,它 不 同 於 任 何 資 料 存 放 區。基 於 上 述 因 素 ,DataSet 可 以 當 作 獨 立 的 實 體 (Entity)。 使 用 者 可 以 將 DataSet 看 做 中 斷 連 接 資 料 錄 集 (Disconnected Recordset),

它 並 不 知 道 其 所 包 含 的 資 料 之 來 源 或 目 的 端 。 在 DataSet 內 部 , 很 像 是 在 資 料 庫 中 , 有 資 料 表 、 資 料 行 、 關 聯 性 (Relationship)、 條 件 約 束 (Constraint)、 檢 視 表 (View)等 等 。

M M i i c c r r o o s s o o f f t t D D a a t t a a A A c c c c e e s s s s

方 法 的 中 心 是 DataAdapter, 提 供 DataSet 和 其 來 源 資 料 存 放 區 之 間 擷 取 並 儲 存 資 料 的 橋 樑 , 它 依 靠 對 資 料 存 放 區 所 產 生 的 適 當 SQL 命 令 的 要 求 而 完 成 這 項 目 的 。

以XML 為 主 的 DataSet 物 件 提 供 了 一 致 的 程 式 撰 寫 模 型 (Programming Model), 它 和 所 有 的 資 料 存 放 模 型 (網 狀 式 、 關

聯 式 和 階 層 式)相 容 。 DataSet不 會 知 道 它 的 資 料 來 源 為 何 , 它 會 用 集 合 物 件 和 資 料 型 別 來 存 放 它 的 資 料 , 並 使 用DataSet及 其 附 屬 物 件 所 提 供 的 一 組 標 準API來 操 作 處 理 裡 面 的 資 料 。

雖 然 DataSet 不 瞭 解 其 資 料 的 來 源 , 但 是 Managed 提 供 者(Provider)有 詳 細 和 特 定 的 資 訊 。 Managed 提 供 者 的 角 色 是 連 接、填 入 和 保 存 DataSet 至 /自 資 料 存 放 區。OLE DB 和 SQL Server .NET 資 料 提 供 者 (System.Data.OleDb 與 System.Data.SqlClient)是 .Net Framework 的 一 部 份 , 提 供 四

種 基 本 的 物 件 : Command 、 Connection 、 DataReader 和 DataAdapter。

以 下 介 紹 經 由 演 進 而 來 的 物 件 , 以 及 一 些 全 新 的 物 件 。 這 些 物 件 包 含 :

z Connection - 針 對 資 料 庫 的 連 接 和 管 理 交 易 。 z Command - 針 對 資 料 庫 發 出 SQL 命 令 。

z DataReader - 針 對 從 SQL Server 資 料 來 源 讀 取 順 向 資 料 流 的 資 料 錄 。

z DataSet - 針 對 一 般 資 料 、 XML 資 料 和 關 聯 式 資 料

z DataSet - 針 對 一 般 資 料 、 XML 資 料 和 關 聯 式 資 料

相關文件