
手冊指南
Patterns & Practices
Microsoft Corporation
2002 年 12 月
本手冊的內容適用於:
.NET Framework Version 1.0
Visual Studio .NET Version 2002
SQL Server 2000
Windows 2000
摘要:本手冊針對在 Windows 2000 及 .NET Framework 1.0 版上所建置的 .NET Framework 應用程式和服務,提供了架構及設計方面的設計指導。它的重點是將應用程式功能分割成不同的元件,然後逐步解說各元件的主要設計特性,並說明安全性、管理及通訊如何應用在每個層級,以及提供部署元件的相關資訊 (全書共 120 頁)。
本手冊指南內容
本手冊的讀者
本手冊的內容
您必須知道的事項
合著者
意見和支援
本手冊的讀者
本手冊是為主要設計師、開發人員或需要執行下列工作的人士所提供的:
- 決定如何將應用程式分割成元件
- 選擇在商業應用程式或服務的交易活動中要使用的技術
- 設計要套用的管理和安全性原則
- 決定如何部署應用程式
本手冊適用於依照分層結構設計的交易式或 OLTP 應用程式,而且利用下列技術,可以將這些應用程式分散於許多實體層中:ASP.NET、Web 服務、企業服務 (COM+)、遠端處理、ADO.NET 和 SQL Server。本手冊中所提到的某些設計原則,也適用於其他類似的案例。
設計分散式應用程式並不是一件簡單的工作。在架構、設計及實作階段,都必須作許多決策。這些決策會影響應用程式的安全性、擴展性、可用性及管理性等「能力」,也會影響目標基礎結構的架構、設計及實作。本手冊能夠幫助您了解在設計分散式應用程式層級時所需面臨的選擇,並且會以一組元件層級來呈現這些選擇,讓您用來設計應用程式的模型。圖 1 顯示的是本文件導引結構所使用的邏輯元件層級。這些層級大部份會在第二章中作說明。

圖 1.0 以 .NET 所建置的分散式應用程式和服務中的元件層級
本手冊的內容
第 1 章:簡介
第一章會介紹分散式應用程式設計的整體目標、說明服務和服務整合與傳統應用程式開發的關係,並提供一個簡單的零售案例,作為本手冊中範例的討論主題。
第 2 章:設計應用程式或服務的元件
本章會從使用者介面開始,逐步解說分散式應用程式,並介紹在成功的應用程式中常用的不同類型元件或層級。它會描述主要的技術或必要的設計決策,以及設計這些元件的基本原則。
第 3 章:安全性、操作管理與通訊原則
在本章中,您將會了解不同層面 (例如授權及例外狀況管理) 對於設計應用程式層級的影響,以及在這些方面所作的設計決策如何廣泛影響整個應用程式。本章也會討論如何選擇通訊機制。
第 4 章:實際的部署及操作需求
本章會說明要如何在包含許多實體層的基礎結構中部署上述邏輯元件層級,並列出在同時符合邏輯元件層級、實體層及操作需求的情況下,經常使用的成功部署模式。
第 5 章:附錄
附錄包括名詞解釋、可以讓您實作及增強第二章中所討論到的應用程式元件層級的 Microsoft 產品及技術對照圖,以及業界應用在這些層級中的相關模式及名稱清單。
您必須知道的事項
如果要充分有效地使用本手冊,必須具備使用 .NET 開發技巧及技術的經驗。您必須熟悉一般的分散式應用程式架構問題,如果您已經有 .NET Web 應用程式解決方案的實作經驗,也應該知道自己應用程式的架構及部署模式。
合著者
解決方案設計師及程式管理員:Edward A. Jezierski
非常感謝下列合著者、贊助者及審閱者:
Keith Short、Mike Pizzo、Johannes Klein、Rodney Limprecht、Chris Anderson、Anders Hejlsberg、David Treadwell、Jonathan Hawkins、Erik Olson、Brad Rhodes、Rob Howard、Ron Jacobs、John Shewchuck、Luca Bolognese、David Schleifer、Riyaz Pishori、Pablo Castro、Brian Pepin、Mark Boulter、Shawn Burke、Michael Platt、Maarten Mullender、Mike Burner、Dino Chiesa、John Montgomery、Richard Burte、Steve Kirk、Richard Irving、Srinath Vasireddy、Steve Newbury、Sharon Bjeltich、Tom Devey、Kurt Schenk、Bryan Lamos、Paddy Srinivasan、Yves Dolce、Rob Macdonald、Mark Phillips、Blair Shaw、Jeremy Rule、Paul Gomes、Dale Michalk、Martin Petersen-Frey、Angela Crocker、Kenny Jones、Ilia Fortunov、Shantanu Sarkar、Rossen Blagoev、the Think Tank、Bijan Javidi、Bob Jarvis、Aaron Margosis、Maurice Magnier、Doug Orange、Eugenio Pace、Carlos Billy Reynoso、Anthony Menio、Karl Schulmeisters、Ingo Ramner、Bernard Chen (Sapient)、Dimitris Georgakopoulos (Sapient)、Michael Monteiro (Sapient)、Roger Sessions (ObjectWatch)、Andrew Roubin、Diego Gonzalez (Lagash)、Adrie Geelhoed (CMG)、Gerke Geurts (CMG)、Sasha Siddhartha 及 Franco Ceruti (VBNext)。
Prescriptive Architecture Guidance 及內容編寫團隊:
技術文件撰寫人員:Graeme Malcolm (Content Master Ltd) 及 Lin Joyner (Content Master Ltd)
Filiberto Selvas Pati隳、Michael Kropp、Per Vonge Nielsen、Shaun Hayes、J.D. Meier、Rick Maguire、Philip Teale、Ken Perilman、David Trowbridge、Mohammad Al-Sabt、Lars Laakes、Sharon Smith、Chris Sfanos、Claudia Iebbiano (Wadeware) 及 Satyam Computer Services Ltd 的架構審閱團隊。
下一章內容?
如果想要開始了解應用程式設計與服務設計的差別,請直接閱讀第一章<簡介>。
意見和支援
您是否對本手冊有任何問題?任何意見?任何建議?如果您想提供關於本手冊的批評與建議,請將電子郵件寄至:devfdbck@microsoft.com。
請利用以下的新聞群組,在線上開放論壇與志同道合的人士、伙伴以及 Microsoft 支援中心專業人員進行公開討論。其他人可以從您的問題和意見中受惠,我們的開發團隊也會定期監督新聞群組:
新聞群組:Web-Based Reader
http://msdn.microsoft.com/newsgroups/loadframes.asp?icp=
msdn&slcid=us&newsgroup=microsoft.public.dotnet.distributed_apps
新聞群組:NNTP Reader
news://msnews.microsoft.com/microsoft.public.dotnet.distributed_apps
程式碼範例和指引係依現況提供。這份資料已經過測試,應該是相當健全的程序和建議資訊,Microsoft 不依慣例提供產品支援。