.NET Framework 3.0 簡介

资讯 2024-07-08 阅读:37 评论:0
發行項 04/05/2007   David Chappell...
美化布局示例

欧易(OKX)最新版本

【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   全球官网 大陆官网

币安(Binance)最新版本

币安交易所app【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址

火币HTX最新版本

火币老牌交易所【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址

 

David Chappell
Chappell & Associates

2006 年 7 月

July 2006

適用於:
   .NET Framework 3.0 (先前稱為 WinFX)
   Windows 程式開發

Appropriate for:
& nbsp; & nbsp; & nbsp; & nbsp;.NET Framework 3.0 (formerly known as WinFX)
& nbsp; & nbsp; & nbsp; Windows program development

總結:Microsoft .NET Framework 3.0 版提供各種不同的技術,每個技術都解決了現今應用程式開發的重大挑戰。 (29 個列印頁面)

Summary: Microsoft. NET Framework 3.0 offers a variety of technologies, each of which addresses the major challenges of current application development. (29 print pages)

目錄

描述 .NET Framework 3.0
套用 .NET Framework 3.0:案例
瞭解 .NET Framework 3.0:技術
取得 .NET Framework 3.0:散發選項
結論
進一步閱讀

Description. Net Framework 3.0
application. Net Framework 3.0: Case
understand. Net Framework 3.0: Technology br' read further

應用程式開發的目標一律相同:以最少的時間建立最佳的可能軟體。 但是會持續引發長條圖,因為開發人員建置的平臺變得更好且更好。 例如,在 Windows 中,原始 Win32 介面已由功能更.NET Framework來細分。 2002 年發行的 Framework 1.0 版,以及 2005 年發行的 2.0 版,可為設計和撰寫 Windows 軟體的人員提供明顯更佳且更具生產力的環境。

In Windows, for example, the original Win32 interface has been fined by a more functional, NET Framewerk version 1.0, which was released in 2002, and the 2005 version 2.0, which provides a markedly better and more productive environment for people who design and write Windows software.

.NET Framework 3.0 (先前稱為 WinFX) 是這個進展中的下一個步驟。 此新版 Framework 上建置的應用程式可以使用 Visual Studio 2005 來建立,讓大部分的 Windows 開發人員感到熟悉。 但.NET Framework 3.0 也是一種演進,將更多新增至 Framework 2.0 版已提供的內容。 排定在 2006 年末發行,.NET Framework 3.0 適用于 Windows Vista、Windows Server 2003 和 Windows XP。

.NET Framewerk 3.0 (formerly known as WinFX) is the next step in this development. This new version of Framewerk's built application can be built in 2005 using Visual Studio, which is familiar to most Windows developers. But.NET Framewerk 3.0 is also an evolution that will add more new content to what has already been provided in French 2.0. Scheduled to be released in late 2006,.NET Framewerk 3.0 is suitable for Windows Vista, Windows Server 2003 and Windows XP.

本檔提供.NET Framework 3.0 及其元件的全貌檢視。 目標是要清楚瞭解這個新版本是什麼、檢查其技術的使用方式,並提供這些技術的簡短說明。

This file provides a full-scale view of the.NET Framework 3.0 and its components. The objective is to understand clearly what this new version is, to check how its technology is used, and to provide a brief description of these techniques.

現今建立一般應用程式不是簡單的工作—需求相當重要。 傳統考慮,例如使用儲存的資料,並允許透過網頁瀏覽器存取仍然很重要,但它們已不再足夠。 新式應用程式也會呈現各種新的挑戰,包括下列各項:

Traditional considerations, such as using stored data and allowing access to web browsers, are still important, but they are no longer sufficient. New applications will also present new challenges, including the following:

  • 組織逐漸採用流程導向的檢視,以瞭解其用途。 由於大部分的應用程式都會自動化商務程式的一部分,因此在程式碼中明確執行此程式中的步驟會很有用。 若要這樣做,有效的方法是使用工作流程技術,這是需要 支援工作流程型應用程式的方法。
  • 應用程式通常會與組織內外的其他應用程式通訊。 新式應用程式通常也必須納入服務導向的架構 (SOA) ,並公開其某些功能作為其他軟體可存取的互通性服務。 達成這些目標需要 支援服務導向的應用程式
  • 使用應用程式的人員通常需要一種方式來傳達其身分的相關資訊。 許多用於定義及使用數位身分識別的不同技術,而且網路釣魚等問題很常見。 如此一來,新式應用程式和使用它的人員可以受益于數位身分識別 的一致使用者控制
  • 新式使用者介面的需求已大幅增加。 提供真正的商業價值通常需要使用各種檔、使用二維和三維圖形、顯示視訊等等。 這兩者也必須同時適用于原生 Windows 用戶端和網頁瀏覽器。 滿足這些需求需要 各種使用者介面的統一方法

由於現今的應用程式通常需要處理部分或全部的挑戰,這些應用程式所建置的平臺也應該以一致且可行的方式解決所有應用程式。 .NET Framework 3.0 的目標是針對 Windows 應用程式執行此動作。

Since applications today usually have to deal with some or all of the challenges, the platforms built by these applications should also address all applications in a consistent and feasible manner. The goal of.NET Framework 3.0 is to execute this action against Windows applications.

如圖 1 所示,.NET Framework版本 3.0 組建于舊版。 事實上,.NET Framework 2.0 版中沒有任何變更,因此為此基礎建立的現有應用程式會繼續如往常般運作。 不過,.NET Framework 3.0 會新增四個新的元件:Windows Workflow Foundation、Windows Communication Foundation、Windows CardSpace 和 Windows Presentation Foundation。 本節簡短探討 .NET Framework 2.0 和每個新元件提供的內容。

As figure 1 shows, the........................................................................................................... will add..............................................

圖 1

Diagram 1

.NET Framework 2.0:適用于 Windows 應用程式的 General-Purpose Foundation

雖然仍然可以撰寫直接使用 Win32 介面的軟體,但.NET Framework已成為新 Windows 應用程式的主要環境。 其中最重要的部分如下:

Although it is still possible to write software that uses the Win32 interface directly,.NET Framewerk has become the main environment for the new Windows applications, the most important of which are as follows:

  • ASP.NET,可支援建立可存取 Web 的應用程式。
  • ADO.NET,允許應用程式存取關聯式和其他資料類型。
  • Windows Forms,支援為 Windows 應用程式建立圖形化使用者介面 (GUI) 。
  • System.XML,可讓應用程式使用 XML 定義的資料,包括使用 XSLT 和 XPath。

Framework 2.0 版新增了數個有用的專案,包括大幅改善建立 ASP.NET Web 應用程式的技術、支援在 64 位版本的 Windows 上執行的 64 位應用程式,以及處理交易的新方法。 雖然 .NET Framework 2.0 的某些部分已由 3.0 版中新增的新元件取代,如稍後所述,2.0 版中的技術仍是這個新版本的基本部分。

Framework 2.0 has added several useful projects, including a significant improvement in the technology to build ASP.NET Web applications, support for 64-bit applications executed on 64-bit Windows, and new methods to handle transactions. Although some parts of.NET Framework 2.0 have been replaced by new components in version 3.0 and, as noted later, technology in version 2.0 remains an essential part of the new version.

Windows Workflow Foundation:支援 Workflow-Based 應用程式

工作流程是一個簡單的概念:這只是一系列以某種循序執行的步驟。 其中一個甚至可能認為每個應用程式都會實作工作流程,因為每個應用程式都會執行一些程式。 不過,使用 C# 或 Visual Basic 或其他程式設計語言建立應用程式的傳統方法是在程式碼中隱含地執行此程式中的步驟。 這當然可以運作,但它也會將程式本身深入內嵌到程式的邏輯中,讓該程式更難以實作和變更。

However, the traditional method of creating applications using C# or Visual Basic or other program design language is to run the program’s steps implicitly in the code. This, of course, can be done, but it will also deepen the program itself into the logic of the program, making it more difficult for the program to make and change.

使用工作流程技術來實作程式邏輯,是解決此問題的有效方式。 進程中的每個步驟會明確定義,然後由 工作流程引擎執行,而不是在一般程式碼中交錯邏輯。 結果是程式本身的全新實作。

The use of workflow technology for programming logic is an effective way to solve this problem. Each step in the process will be clearly identified, and will then be executed by the workflow engine , rather than staggering logic in the normal code.

工作流程引擎不是新概念;目前有數個可供 Windows 和其他系統使用。 Microsoft 甚至提供內嵌在部分產品的工作流程引擎。 不過,由於工作流程已成為建立應用程式的主要方法,因此為 Windows 提供單一工作流程技術很合理。 這是 Windows Workflow Foundation (WF) 的官方縮寫。 藉由提供 Windows 的通用工作流程技術,WF 會提供任何以工作流程為基礎的應用程式以相同的基礎來建置。 Microsoft 所提供的軟體會使用 WF,包括 Microsoft Office 2007 系統和Windows SharePoint Services,如同其他人建立的應用程式一樣。

However, since workflows have become the main method for creating applications, it makes sense to provide Windows with a single workflow technique. This is the official acronym of Windows World Foundation (WF).

不過,提供常見的工作流程技術會產生一些挑戰。 例如,單一方法如何符合不同工作流程應用程式呈現的各種需求集? WF 採用的答案是採用非常一般的工作流程檢視。 如圖 2 所示,WF 工作流程只是 WF 引擎所執行 的活動 群組。 每個活動實際上是類別,而且可以包含工作流程建立者認為必要的任何工作。 活動可能會跨不同的工作流程重複使用,讓您更輕鬆地為新問題建立自動化解決方案。

As figure 2 shows, the WF workflow is only a group of activities executed by the WF engine. Each activity is actually different, and can include any work that the workflow builder considers necessary.

圖 2

graph 2

提供常見工作流程技術的另一項挑戰,源自人為導向和系統導向工作流程之間的傳統劃分。 主要由人員使用的工作流程應用程式需要有彈性,讓流程的即時變更等專案能夠運作。 主要是由系統使用,也就是軟體所使用的系統,通常會比較靜態,但必須盡可能有效率。 WF 適用于這兩種用途,因此它包含人為導向功能,例如能夠對執行中的工作流程進行變更,以及支援更多系統導向的行為。

Another challenge to provide a common workflow technique stems from the traditional division between people-directed and systems-guided workflows. Work-flow applications, which are primarily used by staff, need to be flexible so that projects, such as instantaneous process changes, can operate.

藉由在 WF 中為 Windows 提供通用工作流程技術,.NET Framework 3.0 可讓開發人員一般建置軟體的實用範例。 隨著軟體的流程導向檢視持續普及,使用工作流程也可能會成長。

By providing Windows with a common workflow technology in the WF,.NET Framework 3.0 allows developers to use software in general. The use of workflows may grow as the software’s process orientation continues to spread.

Windows Communication Foundation:支援Service-Oriented應用程式

無論是使用工作流程或搭配其他方法建置,大部分的應用程式都需要與其他應用程式通訊。 此通訊的完成方式在過去數年已大幅進展。 數十年來,所有主要廠商都同意支援應用程式通訊的相同通訊協定。 根據 SOAP,Web 服務的這個全域合約會讓建置在不同技術平臺上的應用程式之間互通,例如 J2EE 和.NET Framework,比過去所建置的應用程式更為簡單。 它也讓服務導向架構對於大部分的組織而言更為合理。

Over the last few years, all major manufacturers have agreed to the same communication protocols that support application communications. According to SOAP, Web-services, this global dating makes it easier to interconnect applications built on different technology platforms, such as J2E and.NET Framework, which are more simple than the ones built in the past.

當然,有許多通訊方法已經存在。 例如,在 .NET Framework 2.0 中,選擇包括下列專案:

Of course, many communication methods already exist. For example, in.NET Framework 2.0, the selection includes the following projects:

  • ASP.NET Web 服務,提供可互通的 SOAP 型通訊。
  • .NET 遠端處理,著重于 .NET 應用程式之間的通訊。
  • 企業服務,提供可調整的交易式應用程式支援。
  • System.Messaging,透過 Microsoft Message Queuing (MSMQ) 支援佇列傳訊。
  • Web 服務增強功能 (WSE) ,這是一個延伸模組,可 ASP.NET Web 服務,可支援較新的規格,例如 WS-Security。

所有這些技術都有價值,而且全都有扮演的角色。 但為什麼有數個不同的解決方案可解決基本上相同的問題? 為何不要改為根據互通服務建立應用程式通訊的單一基礎?

But why is there a number of different solutions that can solve essentially the same problem? Why not be turned into a single foundation for creating application communications based on interoperable services?

這是 Windows Communication Foundation (WCF) 所完成的工作。 WCF (原始程式碼命名為 「Indigo」) 提供常見的方法,而不是要求開發人員針對每種通訊使用不同的應用程式開發介面使用不同的技術。 在 .NET Framework 3.0 環境中,可能已使用其中一項技術的大部分應用程式都會改用 WCF 進行通訊。

This is the work done by Windows Corporation Foundation (WCF). WCF (original code named "Indigo") provides a common method, rather than requiring developers to use different applications for each communication. In the.NET Framewerk 3.0 environment, most applications that have already used one of these technologies are likely to use WCF for communication.

WCF 提供透過 SOAP 進行互通通訊的強支援,這是新式運算不可或缺的一部分。 這包括數個 WS-* 規格的支援,包括 WS-Security、WS-ReliableMessaging 和 WS-AtomicTransaction。 不過,WCF 不需要 SOAP,因此也可以使用其他方法,包括優化的二進位通訊協定、使用 MSMQ 的佇列傳訊,以及簡單的 REST 型通訊。 WCF 也會採用明確服務導向的通訊方法。 WCF 不會嘗試在物件之間提供透明通訊,而是交錯通訊方之間服務稍微不同的抽象概念。 其中一個結果是鬆散一些可能存在於分散式物件系統中的緊密結合,讓互動更容易出錯且更容易變更。

The WCF does not need SOAP, however, and can use other methods, including improved binary communication protocols, the use of MSMQ feeds, and simple REST-type communications. The WCF will also use clear service-guided communication methods.

無論是組織內部或跨組織之間的應用程式之間的通訊,都是新式軟體的基本部分。 .NET Framework 3.0 使用 WCF 的服務導向方法來解決這項挑戰。

Communication between applications within and across organizations is an essential part of the new software..NET Framewerk 3.0 uses the WCF service orientation to solve this challenge.

Windows CardSpace:數位身分識別的一致使用者控制

思考人們目前在網際網路上代表自己的方式。 在大部分情況下,人員的數位身分識別會以簡單的使用者名稱表示。 結合密碼,此身分識別可用來存取電子郵件帳戶、網際網路商家,甚至是線上銀行和其他金融機構。 不過,儘管其簡單 (和普遍) ,使用者名稱和密碼仍有數個缺點。 以下是最重要的兩個:

In most cases, digital identity recognition is expressed by simple user names. Combining passwords, this identity is used to access e-mail accounts, Internet businesses, and even online banking and other financial institutions.

  • 人員很難記住他們為不同網站選擇的所有使用者名稱和密碼。 許多人針對不同的月臺使用相同的值,降低記憶體問題,但增加安全性風險。
  • 網路釣魚者可能會竊取使用者名稱、密碼和其他個人資訊。 藉由傳送詐騙電子郵件,網路釣魚者會讓其犧牲者登入看起來像是犧牲者銀行的網站。 不過,網站實際上是由網路釣魚者控制,因此,一旦犧牲者輸入其使用者名稱和密碼,網路釣魚者就可以使用這項資訊來偽裝為真實網站上的使用者。

減少這些問題的嚴重性需要新的方法來管理數位身分識別。 Windows CardSpace 原本稱為 「InfoCard」 的程式碼,是該方法的重要部分。 為了協助人員追蹤其數位身分識別,CardSpace 會將每個身分識別表示為不同的 資訊卡片。 如果網站接受 CardSpace 登入,則嘗試登入該網站的使用者會看到 CardSpace 選取畫面,如圖 3 所示。 藉由選擇卡片,使用者也會選擇將用來存取此網站的數位身分識別。 使用者不需要記住大量的使用者名稱和密碼,而是只需要辨識他們要使用的卡片。 不同的卡片也可以包含不同的資訊,讓使用者能夠完全控制每個網站瞭解的資訊。

To assist people in tracking their digital identity, CardSpace will identify each identity as a different information card . If the web site accepts CardSpace entry, users who try to access it will see the CardSpace selection screen, as shown in graph 3. By choosing a card, users will also choose the digital identity that will be used to access the site.

圖 3

3

這些卡片所代表的身分識別是由一或多個 識別提供者所建立。 任何組織都可以提供身分識別提供者,而不是依賴簡單的使用者名稱和密碼,每個組織所提供的身分識別通常會使用更強大的密碼編譯機制來讓使用者證明其身分識別。 CardSpace 本身也包含在用戶端電腦上執行的自我發行識別提供者。 透過此提供者,使用者可以建立自己的身分識別,而不需要密碼進行驗證。 網站可以接受這些自我發行的 CardSpace 身分識別,而不是依賴以密碼為基礎的一般方法,以減少密碼所產生的問題。

Any organization can provide identity recognition providers, rather than relying on simple user names and passwords, and each organization usually uses a stronger password-based compilation system to enable users to prove their identity. CardSpace itself is also included in self-regulating providers running on client computers.

如果未使用密碼登入網站,網路釣魚者就無法竊取這些密碼。 不過,如果網路釣魚人員可以讓使用者登入假網站,他們可能能夠從使用者取得其他資訊,例如敏感性醫療資訊。 防止這種情況需要使用者能夠區分真實網站與網路釣魚者所建立的外觀相似假。 為了允許此情況,擁有網站的組織可以取得 高保證憑證。 不同于現今的簡單 SSL 憑證,取得這種新憑證牽涉到更嚴格的程式,包括更嚴格的證明,讓組織實際套用該憑證的身分是其宣告者。 高保證憑證也可以攜帶公司的標誌和其他資訊,以協助使用者正確判斷使用此憑證的網站是否合法。 當使用者存取新網站時,CardSpace 一律會使用標準畫面顯示該網站憑證中的資訊。 根據收到的憑證強度,此畫面會指出月臺身分識別的不同保證層級。 目標是強制使用者明確決定信任網站,然後協助他們選擇要信任的網站。

To allow this to happen, organizations with websites can obtain high-security certificates. , unlike the current simple SSL certificate, access to this new certificate involves a more rigorous program, including a more rigorous certificate that allows the organization to use the certificate’s identity as its announcer.

Windows CardSpace 實際上是較大 身分識別中繼系統的一部分。 此中繼系統完全以開放、公用通訊協定為基礎,定義在各種平臺上一致地使用不同的數位身分識別技術的方式, (包括 Windows) 以外的作業系統和各種應用程式, (包括 Internet Explorer 以外的網頁瀏覽器) 。 藉由提供一種常見方式來選取 Windows 的身分識別等等,CardSpace 會在中繼系統中填滿重要角色。 此外,透過解決身分識別的基本問題,CardSpace 也會在 .NET Framework 3.0 中扮演重要部分。

Windows CardSpace is actually part of of the larger identity recognition subsystem. This system is based entirely on open, public communication protocols, defining the way in which different digital identity techniques are used consistently on various platforms, including Windows, and various applications, including web browsers outside the Internet.

Windows Presentation Foundation:多元使用者介面的統一方法

使用者介面是幾乎所有應用程式的重要部分。 不過,這些介面的使用者預期會大幅提升。 當然,傳統功能表驅動 GUI 仍是必要的,但應用程式可能也需要顯示影片、執行動畫、使用二維和三維圖形,以及處理各種檔。 而且,無論是從獨立桌面用戶端或透過網頁瀏覽器存取應用程式,都必須能夠執行所有這些作業。

The user interface is an important part of almost all applications. However, users of these interfaces are expected to increase significantly.

傳統上,使用者介面的所有層面都以不同的方式在 Windows 上提供。 例如,開發人員可以使用Windows Forms.NET Framework來建置 Windows GUI。 建立網頁瀏覽器介面需要使用 HTML 和 JAVA Applet 或 JavaScript 程式碼。 顯示視訊可能依賴 Adobe 的 Flash Player 等Windows 媒體播放機或軟體,而檔案格式可能是由 Microsoft Word或 Adobe 的 PDF 或其他專案所定義。 開發人員的挑戰很明顯:使用各種技術為不同類型的用戶端建置一致的使用者介面並不簡單。

Traditionally, all layers of the user interface are available on Windows in different ways. For example, developers can use Windows Forms.NET Framewerk to build Windows GUI. The creation of web browser interfaces requires HTML and JAVA Applet or JavaScript codes. Showing that visual information may depend on Windows media players or software, such as the Flash Player of Adobe, whose file format may be defined by Microsoft Word or Adobe’s PDF or other project.

Windows Presentation Foundation (WPF) 的主要目標是要解決此挑戰,其原本稱為 「Avalon」 的程式碼。 藉由為所有這些使用者介面層面提供一致的技術基礎,WPF 可讓開發人員更容易使用。 藉由採用更現代化的方法,包括影片、動畫、二維和三維圖形和各種檔的支援,WPF 可以讓使用者以新方式處理資訊。 而且,藉由為桌面用戶端和瀏覽器用戶端提供通用基礎,WPF 可讓您更輕鬆地建置可同時定址兩者的應用程式。

The main objective of Windows Foundation (WPF) is to solve this challenge, which was originally known as the "Avalon" code. By providing a coherent technological base for all of these user interfaces, the WPF can make it easier for developers to use. By adopting more modern methods, including video, animation, two-dimensional and three-dimensional images and files, the WPF can allow users to process information in new ways.

圖 4 所示的範例介面,包含影像、即時圖形、三維檢視等等,說明 WPF 提供的一些內容。 使用者介面現在可透過更一致的方式建立,而不是需要具備各種技術技能的開發人員。

The example interface shown in figure 4 contains images, instant maps, three-dimensional views, and so on, explaining some of the content provided by the WPF. The user interface can now be created in a more consistent manner, rather than requiring a developer with a variety of technical skills.

圖 4

diagram 4

一項長期面臨使用者介面建立者的挑戰,其源自建置有效介面所需的不同角色。 需要軟體發展人員才能建立介面背後的邏輯,但很少是定義介面外觀和風格的最佳人員。 設計工具是人類/機器互動專家,通常是此角色的較佳選擇。 不過,Windows Forms這類較舊的技術完全著重于開發人員。 開發人員和設計工具無法真正有效地共同作業。 為了解決此問題,WPF 依賴 eXtensible Application Markup Language (XAML) 。 以 XML 為基礎的語言 XAML 允許以宣告方式指定使用者介面,而不是在程式碼中指定。 這可讓工具更輕鬆地根據設計工具所建立的視覺化標記法來產生及使用介面規格。 事實上,Microsoft 提供新的產品 Expression Interactive Designer,以執行此動作。 設計工具可以使用此工具 (,以及協力廠商所提供的其他工具,) 建立介面的外觀,然後為其產生該介面的 XAML 定義。 開發人員會將此定義匯入 Visual Studio,然後建立介面所需的邏輯。

To solve this problem, WPF relies on eXtensible Application Markup Language (XAML). The XML-based synonym XAML allows the user profile to be announced, not in the code.

當開發人員建立獨立 WPF 應用程式時,直接在 Windows 上執行的 WPF 應用程式,他們就能存取 WPF 提供的所有專案。 不過,若要建立在網頁瀏覽器內執行的用戶端,開發人員可以建置 XAML 瀏覽器應用程式,通常稱為 XBAP。 以與獨立 WPF 應用程式相同的基礎為基礎,XBAP 可讓您在可下載的瀏覽器應用程式中呈現相同的使用者介面樣式。 這兩種應用程式都可能會使用相同的程式碼,這表示開發人員不再需要桌面和瀏覽器用戶端的不同技能集。 如同這種豐富的網際網路應用程式一般,從網際網路下載的 XBAP 會在安全沙箱中執行,這會限制應用程式可以執行的動作。 不過,獨立 WPF 應用程式可以使用大量使用者介面功能子集,也可以在 XBAP 中使用。

When developers build stand-alone WPF applications, they can access all WPF applications that they run directly on Windows. However, if they are built on a user-friendly client that operates on a web browser, the developers can build XAML browser applications , commonly known as XBAP. , based on the same foundation as an independent WPF application, XBAPs, which enable you to present the same user-like style in a downloadable browser application. Both applications may use the same code, which means that developers no longer need to use the desktop and browser for their client-end skills. As with this rich web-based web application, XBAP, which is available on the Internet, can operate in a secure sandbox, which can restrict the use of the program.

WPF 獨立應用程式和 XBAP 都可以利用 WPF 的新式圖形支援,包括使用硬體加速、向量圖形的支援等等。 藉由提供更強大的圖形支援,WPF 可讓一系列的資料視覺效果選項無法使用Windows Forms或其他舊技術。 WPF 也提供 XML 紙張規格 (XPS) 的基礎,其定義檢視、散發和列印固定格式檔的標準格式。

Both WPF stand-alone applications and XBAP can use new WPF graphic support, including hardware acceleration, vector graphic support, etc. By providing stronger graphic support, WPF allows a range of data visual effects options to fail to use Windows Forms or other old technologies. WPF also provides the basis for XML Paper Regulation (XPS), which defines standard formats for viewing, scattering and printing fixed format files.

使用者介面是新式應用程式的複雜且重要的一部分。 透過 WPF,.NET Framework 3.0 提供更完整且一致的解決方案,可解決這些介面存在的挑戰。 目標是讓建立使用者介面的人員更有效率地執行其工作。

The user interface is a complex and important part of the new application. By providing more complete and consistent solutions through WPF,.NET Framework 3.0, the goal is to make the user interface more efficient in carrying out its work.

瞭解一組技術如何一起運作的其中一種方式,就是查看其使用方式的範例。 例如,假設一個應用程式,可讓客戶和代理程式提交保險應用程式。 如果使用 .NET Framework 3.0 實作,此應用程式看起來可能會像圖 5 一樣。

One way to understand how a set of technologies works together is to look at examples of how they are used. For example, if an application is designed, it allows clients and agents to submit an insurance application. If it is done using.NET Framework 3.0, the application may look like Figure 5.

圖 5

chart 5

應用程式的商務邏輯會顯示在圖表左上方,會使用 WF 工作流程來實作。 處理保險應用程式是一個多步驟程式,包括根據此組織的下標規則評估應用程式、可能檢查申請者的信用額度,甚至可能獲得經理的核准。 工作流程會將每個步驟實作為活動,視需要依賴其他軟體。 例如,若要存取預存資料,此工作流程中的活動會使用 ADO.NET。

The application’s business logic will be shown on the top left of the chart and will be implemented using the WF workflow. The insurance application is a multi-step program that evaluates the application according to the organization’s sub-code, may check the applicant’s creditworthiness, or may even be approved by the manager. The workflow will use each step as an activity, depending on the need to rely on other software. For example, if you want to access pre-positioned data, the activity in the process will use ADO.NET.

此保險公司提供話務中心,可讓客戶透過電話申請保險。 人員人員所使用且圖表右上角所顯示之通話中心所使用的用戶端軟體會實作為獨立 WPF 應用程式。 此用戶端會使用 WCF 與應用程式的商務邏輯通訊,並使用針對 WCF-WCF 通訊優化的二進位通訊協定。 如圖所示,話務中心工作者依賴 Windows CardSpace 來選取登入此應用程式時將使用的身分識別。

The client software used by members and shown at the top right corner of the chart will be used as an independent WPF application. This client will use WCF to communicate with the application’s business logic and use the binary communication protocol that applies to the WCF-WCF privileged communications. As indicated in the graph, the talking centre workers rely on Windows CardSpace to select the identity that will be used to log in to the application.

客戶也可以透過 Web 申請保險,而保險專員也可以提交應用程式。 為了允許此作業,應用程式會使用 ASP.NET 與網頁瀏覽器通訊。 如圖表左下角所示,使用 Internet Explorer 透過一般 HTML 介面存取此應用程式的客戶仍然可以使用 CardSpace 來選取他們想要呈現的身分識別。 協力廠商也可以為其他用戶端作業系統和瀏覽器實作身分識別選取機制,讓身分識別中繼系統延伸至非 Windows 用戶端和網頁瀏覽器。

Clients can also apply for insurance via Web, and insurance professionals can submit applications. To allow this, applications use ASP.NET to communicate with web browsers. As shown at the bottom left corner of the chart, customers using the Internet Explorer to access the application via the normal HTML interface can still use CardSpace to select the identity recognition they want to present.

透過網際網路存取此應用程式的保險代理程式可能需要更正常運作的介面。 因此,他們可以依賴 XBAP,而不是簡單的 HTML 介面。 如下圖所示,這可讓這些客戶共用話務中心中使用的 WPF 傳統型應用程式所提供的使用者介面功能。 兩者都是以相同的基礎為基礎,因此應用程式的開發人員可以在兩種類型的用戶端中重複使用相同的程式碼。 如同其他類型的用戶端,代理程式可以使用 CardSpace 來選取想要呈現給應用程式的身分識別。

So they can rely on XBAP, rather than on a simple HTML interface. As the figure below shows, this allows these clients to share the user interfaces provided by the traditional WPF applications used in the call centre. Both are based on the same foundation, so the developers of the application can repeat the same code in two types of client interfaces.

最後,此應用程式可能需要存取其他應用程式並加以存取。 例如,如果核准客戶需要信用額度檢查,這很可能是透過呼叫外部服務來完成。 或者,應用程式可能直接接受來自其他軟體的要求,公開這些外部應用程式可以叫用的服務。 針對這類情況,如圖右下角所示,應用程式依賴 WCF 來使用標準 Web 服務進行通訊。 無論這些應用程式建置在何種技術上,WCF 對 SOAP 的支援都可讓您直接與其互動。

Finally, the application may need to access and access other applications. For example, if an approved client needs a credit check, this is likely to be done by calling for external services. Alternatively, the application may accept requests directly from other software, and the external applications may be publicly available. In such cases, the application relies on the WCF for communication using the standard Web service, as shown at the lower right corner of the graph.

此案例說明如何在一般應用程式中使用某些.NET Framework 3.0 最重要的元件。 省略了相當多的選項,因此請勿將此簡單範例視為此技術系列提供的完整圖例。 相反地,目標是清楚瞭解.NET Framework 3.0 的各個部分如何搭配使用來解決真正的商務問題。

This case illustrates how some of the most important components.NET Framework 3.0 are used in general applications. A considerable number of options have been omitted, so do not view this simple example as a complete example of the technology series.

若要真正瞭解 .NET Framework 3.0 提供的內容,最好更深入探討其組成技術。 本節提供.NET Framework 3.0 五個部分的簡短教學課程。 如需每個文章的更詳細簡介,請參閱本檔結尾的。

To really understand what.NET Framework 3.0 provides, it would be better to look into its composition in greater depth. This section offers a short course in five parts of.NET Framewerk 3.0. Read at the end of this file if more detail is needed for each article.

圖 6

6

.NET Framework 2.0 是現今 Windows 開發的基本部分,也是 .NET Framework 3.0 的基礎。 圖 6 說明架構的兩個部分:Common Language Runtime (CLR) 和 .NET Framework 類別庫。 .NET Framework 3.0 的某些元件,包括 WF、WCF 和 WPF,主要是實作為.NET Framework類別庫的延伸模組。 不過,如先前所述,雖然類別庫的許多部分仍然是開發人員世界的重要部分,但其他部分則由 .NET Framework 3.0 提供的新技術所細分。 例如,ASP.NET 仍然是建立瀏覽器可存取應用程式的基礎,ADO.NET 仍可用來處理儲存的資料。 .NET Framework 3.0 開發人員可能會使用 WPF 而非Windows Forms來建立原生 Windows GUI,不過,他們通常會偏好 WCF 而不是 ASP.NET Web 服務、.NET 遠端或企業服務。 儘管有這些變更,但請務必瞭解,即使在 NET Framework 3.0 世界中,舊版的 Framework 仍然是開發人員生活的核心部分。

...............................................................................................................................................................................................................................................................

由工作流程驅動的程式導向設計,可以是大量 Windows 軟體的正確方法。 WF 的目的是讓開發人員建立和執行這些以工作流程為基礎的應用程式。 圖 7 顯示 WF 提供的元件來執行這項操作。

The program-directed design, driven by the workflow, can be the correct method for a large number of Windows software. The WF is designed to allow developers to create and execute these workflow-based applications. Figure 7 shows the components provided by the WF to perform the operation.

圖 7

7

如先前所述,每個工作流程都是從一些活動建立的。 工作流程和活動只是類別,因此這兩者都可以直接在程式碼中建立。 WF 也提供 Workflow Designer,這是一種 Visual Studio 裝載的圖形工具,可用來建構工作流程。 不過,建立工作流程時,可以從 WF 或任何其他來源提供的 BASE 活動程式庫 (BAL) 繪製其活動。

As noted earlier, each workflow is created from a number of activities. Workflows and events are different, so both can be created directly in the code. WF also provides World Designer, a graphical tool mounted by Visual Studio that can be used to construct the workflow. However, when creating the workflow, it can be drawn from the WF or the BASE Activity Library (BAL) that is available from any other source.

定義工作流程之後,最終由 WF 執行時間引擎執行。 此引擎依賴一組執行時間服務來保存工作流程的狀態、追蹤工作流程的執行等等。 這些全都包含在某些主機進程內,也就是執行時間服務、執行時間引擎和工作流程本身。 此程式可以是任何 Windows 進程,範圍從在桌面上執行的簡單主控台或 WPF 應用程式,到可調整的伺服器進程。

After defining the workflow, the WF eventually executes the time engine. The engine relies on a group of time services to save the workflow status, track workflows, and so on. These are all included in some host processes, i.e. running time services, running time engines and workflows themselves. This program can be any Windows process, from a simple handler or a WPF application running on a desktop to a adjustable server.

瞭解 WF 需要至少瞭解其所有元件。 下列各節會簡短探討每一節。

Understanding the WF needs to know at least all its components, and each of the following sections will be briefly explored.

工作流程

去除其基本概念,工作流程就不只是一組活動。 WF 提供兩種工作流程樣式的內建支援:

WF provides in-house support in two workflow styles:

  • 循序工作流程,以定義的循序執行活動。 如同傳統的流程圖,循序工作流程可以包含分支、迴圈和其他控制結構。 不過,根據預設,活動會依序執行,逐一執行。
  • 狀態機器工作流程,實作傳統的有限狀態機器。 就像任何狀態電腦一樣,活動在特定時間執行,取決於目前狀態的組合,以及已收到的任何事件。

循序選項適用于定義完善的工作流程,例如純軟體式程式中所使用的工作流程。 它們相對容易建立和瞭解,而且一開始對大部分開發人員來說更自然。 當執行路徑較不可預測的時,狀態機器工作流程是較佳的選擇。 其中一個很好的範例是牽涉到與人員互動的工作流程,其中任何人員都可以在任何時間點取消工作流程。 您可以使用循序工作流程來解決這種情況,但每個步驟可能是分支:如果工作流程未取消,請執行其他動作。 使用狀態機器將這種行為模型化相當簡單,因為取消工作流程的要求只是另一個可在任何時間點接收和處理的事件。

A good example of this is a process that involves interacting with people, any person can cancel the process at any point in time. You can use a sequenced workflow to solve the situation, but each step may be a branch: if the process is not cancelled, do other actions. Using a status machine to model the process is quite simple, because the requirement to remove the process is just another event that can be received and processed at any point in time.

支援狀態機器工作流程是 WF 嘗試為人類和系統工作流程提供支援的其中一個範例。 另一個範例是 WF 支援變更執行中的工作流程。 人員可能很不常見,而且參與工作流程的人員想要新增步驟、刪除步驟,或在程式進行期間進行一些其他變更。 為了以受控制的方式容納這種情況,WF 可讓建立工作流程的開發人員指定工作流程在執行時是否可以修改該工作流程,以及該工作流程的修改方式。

The support state machine workflow is one of the examples where the WF has tried to support human and system workflows. Another example is that the WF supports changes in workflows.

基底活動程式庫

開發人員可以免費建立自訂活動。 事實上,Microsoft 的目標是促進 WF 生態系統的成長,而 WF 生態系統已滿了可重複使用的活動。 不過,從一組常見的基本活動開始,每個人都能更輕鬆地使用生活。 提供這個通用集合是基本活動程式庫 (BAL) 的角色。

In fact, Microsoft’s goal is to promote the growth of the WF ecosystem, which is already full of replicable activities. But, starting with a common set of basic activities, everyone can use life more easily.

不需要工作流程即可使用 BAL 中的任何專案。 不過,許多開發人員都會發現 BAL 讓生活更簡單,特別是一開始。 BAL 中包含的活動包括下列各項:

There is no need for workflow to use any of the BAL projects. However, many developers will find BAL to make life easier, especially at the beginning. The BAL includes the following activities:

  • IfElse: 根據是否符合條件,執行包含在兩個或多個可能路徑中的活動。
  • While: 只要條件成立,就會重複執行一或多個活動。
  • 順序: 依定義的順序一次執行一組活動。
  • 平行: 平行執行兩個或多個活動群組。
  • 程式碼: 執行已定義的程式碼區塊。
  • 接聽: 等候特定事件,然後在收到該事件時執行一或多個活動。
  • InvokeWebService: 呼叫 Web 服務。
  • 狀態: 代表工作流程狀態機器中的狀態。
  • EventDriven: 定義轉換,其中包含在特定狀態收到特定事件時應該執行的一或多個活動。
  • 原則: 允許使用 WF 提供的規則引擎來定義和執行商務規則。

WF 會改為採用較通用的方式使用活動,而不是定義特定語言來指定工作流程。 BAL 提供一種「語言」,但使用 WF 的每個人都可以自由定義自己的語言。

The WF uses events in a more generic way, rather than defining a specific language, to specify the workflow. BAL provides a "language," but everyone who uses the WF can freely define their own language.

Windows Workflow Foundation 工具:工作流程Designer

使用工作流程建立應用程式的優點之一,就是能夠以圖形方式定義工作流程。 WF 的工作流程Designer允許此功能,如圖 8 所示。 根據預設,BAL 中的活動會出現在 [工具箱] 中,讓開發人員將其拖放到工具的設計介面上,以建立工作流程。

One of the advantages of using workflows to create applications is that they can be defined graphically. The WF workflow Designer allows this function, as shown in figure 8. According to defaults, activities in BAL will appear in the [toolbox], allowing developers to drag them to the design interface of the tool to create the workflow.

圖 8

graph 8

有些開發人員偏好撰寫程式碼,他們不喜歡圖形設計工具。 WF 允許這種方法太 (,有時需要此方法:活動通常會直接建置在程式碼) 中。 您也可以結合這兩種方法,使用工作流程Designer和直接編碼來建立工作流程。 目標是讓開發人員使用最有生產力的方法。 此外,為了允許更廣泛的工具支援,工作流程也可以以 XAML 表示,這是 WPF 所使用的相同語言。 事實上,使用工作流程建立的工作流程Designer預設為 XAML 定義。

Some developers prefer to write code, and they do not like graphic design tools. The WF allows this method too much (and sometimes this method is needed: the activity is usually built directly in the code). You can also combine these two methods, using workflow Designer and direct encoding to build workflows. The aim is to allow developers to use the most productive methods. In addition, to allow broader tool support, workflows can be expressed in the same language as WPF. In fact, the workflow created using workflow Designer is originally defined as XAML.

執行時間引擎和執行時間服務

如先前所述,WF 執行時間引擎具有在工作流程中執行活動的工作。 在這樣做時,它會依賴一組執行時間服務。 WF 包含這些服務的標準實作,但如有需要,開發人員可以取代它們。 這些服務支援一些不同的專案,但兩個會以最有趣的方式脫穎而出:

As noted earlier, the WF runs time engines with jobs in workflows. In doing so, it relies on a set of time services. The WF contains standards for these services, but the developers can replace them if needed.

  • 堅持: 正在等候某些事件的工作流程可以使用此服務,讓其記憶體內部狀態自動儲存至磁片。 事件發生時,服務會自動重載工作流程的狀態並重新啟動執行。 這對於牽涉到人員的工作流程特別有用,因為小時、天或更多時間可能會在等候回應時經過。
  • 跟蹤: 工作流程中的活動會清楚區分其實作的進程執行。 WF 的追蹤服務可讓開發人員將工作流程執行的相關資訊自動寫入資料庫。 例如,開發人員可能會想要追蹤工作流程的開始和結束時間、每個活動開始和結束時,以及其他資訊。

Windows Workflow Foundation 和其他 Microsoft 技術

引進新方法將不一定會影響已經存在的內容。 .NET Framework 3.0 中的新技術並無例外,而且每個技術對其他 Microsoft 技術都有影響。 使用 WF 時,Windows SharePoint Services、Microsoft Office 2007 系統及BizTalk Server,會最強烈地產生初始影響。

New technologies in.NET Framework 3.0 are no exception, and each has an impact on other Microsoft technologies. When the WF is used, Windows SharePoint Services, Microsoft Office 2007 systems, and BizTalk Server will have the strongest initial impact.

為了讓開發人員更輕鬆地建立檔共同作業的工作流程應用程式,以及其他類型的資訊共用,Windows SharePoint Services版本 3 裝載 WF 執行時間。 Office SharePoint Server 2007 是 Office 2007 系統的一部分,建置在 Windows SharePoint Services 中的 WF 支援上。 此外,新增此伺服器可讓您直接在 Office 2007 用戶端應用程式中顯示 InfoPath 表單,並使用一組預先定義的工作流程來進行一般案例,例如核准檔。

To make it easier for developers to build a workflow application for file co-works, and other types of information sharing, Windows SharePoint Services version 3 loads the WF run time. Office SharePoint Server 2007 is part of the Office 2007 system and is built on WF support in Windows SharePoint Services. In addition, adding this server allows you to display InfoPath forms directly in the Office 2007 client application and to use a predefined workflow for general cases, such as approval files.

熟悉BizTalk Server的人現在已注意到此產品的協調流程功能與 WF 所提供的相似性。 事實上,下列版本BizTalk Server 2006 會將產品的現有協調流程函式取代為 WF,提供工具來協助將現有的協調流程移轉至 WF 工作流程。 不過,請務必瞭解 WF 和 BizTalk Server 2006 解決相當不同的問題:

People familiar with BizTalk Server have now noticed the similarities between this product’s negotiated process function and that provided by the WF. In fact, the following version of BizTalk Server 2006 replaces the existing harmonized process function of the product with the WF, providing tools to assist in transferring the existing reconciliation process to the WF workflow. However, please understand that the WF and BizTalk Server 2006 solve very different problems:

  • WF 提供建立工作流程型 Windows 應用程式的一般架構。 它可以裝載在任何程式中、使用任何類型的活動,以及解決任何類型的商務問題,包括人類和系統工作流程。
  • BizTalk Server是一種授權產品,著重于企業應用程式整合、企業對企業整合,以及管理商務程式。 它提供大量介面卡來連線到不同的系統和軟體、實作標準加速器,例如 RosettaNet 和 SWIFT,以及商務活動監視的支援。 BizTalk Server也提供管理基礎結構和工具,以及增加延展性的支援。

因為它是 Windows 的標準工作流程技術,因此 WF 未來可能會出現在其他 Microsoft 產品和技術中。 無論 Microsoft 選擇做什麼,WF 都會在其客戶所建立的一些應用程式中找到首頁。

Because it is a standard workflow technology for Windows, the WF may appear in other Microsoft products and technologies in the future. Whatever Microsoft chooses to do, the WF will find a home page in some of the applications that its clients have created.

服務導向通訊的變更表示應用程式如何互動。 WCF 明確設計來支援服務導向的應用程式,會反映這項轉移。 本節說明 WCF 最重要的層面,包括服務和用戶端、通訊選項,以及安全性、可靠通訊和交易的支援。

This section describes the most important aspects of WCF, including services and clients, communication options, and support for secure, reliable communications and transactions.

服務和用戶端

圖 9

graph 9

如圖 9 所示,WCF 的基本概念很簡單:服務會公開可由用戶端存取的介面。 該介面可以使用 Web 服務描述語言 (WSDL) 來定義,然後轉換成程式碼,也可以直接以 C# 或 Visual Basic 等語言定義。 針對公開保險應用程式服務的簡單介面,後者的方法看起來可能會像這樣:

As figure 9 shows, the basic concept of WCF is simple: the service will be publicly accessible as a user interface. The interface can be defined using the Web Service Description Language (WSDL) and then converted to code, or defined directly in terms such as C# or Visual Basic. A simple interface to the public insurance application service may look like this:


這個 C# 介面的定義會以 屬性標示。 這個屬性工作表示 WCF 可以將這個介面中的方法公開為可遠端呼叫的作業。 哪些介面的方法會公開,取決於哪些方法會以 屬性標示。 在此簡單範例中,每個方法都會以這個屬性標示,因此所有方法都會公開給遠端呼叫端。 不過,這並非必要,但只套用 至部分介面的方法是合法的。 無論選擇哪一種,應用程式中的一些類別都必須實作這個介面,以提供介面所定義之方法的實際程式碼。 完成此動作之後,WCF 會自動讓此服務的用戶端能夠存取標示 的方法。

The definition of the C# interface will be marked by the attribute /strang>. The property work means that the WCF can make the method in the interface publicly available as a remote caller. The methods of which the interface is open are determined by the attributes in /strang>. In this simple example, each method will be marked by this attribute, so that all methods will be made public to the remote caller. However, this is not necessary, but only the method of using the medium /strang> to the part of the interface is legitimate.

圖 10 提供服務實際向用戶端公開方式的稍微詳細檢視。 用戶端會改為連線到特定 端點,而不是直接存取介面。 服務可以公開多個端點,可能允許不同的用戶端以不同的方式存取它。

Figure 10 provides a slightly more detailed view of the service as being publicly accessible to users. The client will be reconnected to a specific endpoint instead of directly accessing the interface. The service can open multiple endpoints and may allow different users to access it in different ways.

圖 10

10

如圖所示,每個端點都會指定三件事:

As shown in the graph, each peer will specify three things:

  • 描述可使用這個端點叫用之作業的 合約 。 合約只能使用定義這些作業的介面名稱來識別,以下是 IInsientApplication。
  • 定義如何叫用端點作業的 系結 。 每個系結都會定義數件事,包括應該使用哪些通訊協定來叫用作業、應該使用哪種安全性等等。 WCF 包含一組預先定義的系結,例如這裡顯示的 BasicHttpBinding,適用于最常見的案例,也可以定義自訂系結。 由於單一服務可以公開多個端點,因此可以同時允許透過不同通訊協定存取不同類型的用戶端,以及使用不同的安全性選項。
  • 位址,指出可找到此端點的位置。 如圖所示,位址會以 URL 表示。

WCF 的基本概念很簡單。 如同大部分的通訊技術,詳細資料可能會變得複雜,有許多選項,但建立一般 WCF 應用程式並不困難。

The basic concept of WCF is simple. As with most communication technologies, details may become complicated and there are many options, but it is not difficult to create a general WCF application.

通訊選項

不同類型的開發人員所建置的不同應用程式需要不同的通訊方式。 大部分開發人員最簡單的方法是遠端程序呼叫 (RPC) ,這可讓用戶端叫用遠端作業,就像本機作業一樣。 例如,假設稍早顯示的介面,用戶端可以使用一般同步方式叫用任何作業,並等候回應返回。 此選項適用于開發人員,在某些情況下是正確的選擇。

Most developers need different modes of communication for different types of developers’ applications. The easiest way to do this is to call a remote application (RPC), which allows users to do their homework remotely, as in the case of their own business.

不過,WCF 也提供數個其他選項。 其包括:

However, the WCF also offers several other options, including:

  • 沒有回應的呼叫。 以 屬性 標示 ,這種通訊對於傳送事件或其他單向互動很有用。
  • 非同步訊息式通訊,使用直接傳送和接收與 XML 訊息。
  • 明確操作 SOAP 訊息,包括直接在 SOAP 標頭中插入元素的能力。

WCF 也可讓開發人員控制服務運作方式的各種本機層面。 例如,使用 屬性可以設定服務是否為單一或多執行緒、是否為每個呼叫建立服務的新實例,以及其他選項。

The WCF also allows the developer to control the various local layers of how the service works. , for example, uses attributes to configure whether the service is single or multiple, whether the service is created for each call, and other options.

安全性、可靠性和交易

基本通訊—在系統之間移動資料的能力相當實用,但很少。 大部分的應用程式都需要更多。 例如,大部分的分散式應用程式都需要某種安全性。 提供安全性可能十分複雜,因為目前使用中技術的各種不同方法和多樣性。 為了讓開發人員建立安全的分散式應用程式,而不需要強制他們瞭解所有詳細資料,WCF 主要依賴安全性系結。 例如,先前顯示的 BasicHttpBinding 可以設定為使用 HTTPS,而不是純 HTTP,而其他系結則提供更多安全性選項。 例如,WsHttpBinding 支援 WS-Security,允許互通的 SOAP 型驗證、資料完整性和資料機密性。 開發人員也可以建立自訂系結,以提供其應用程式所需的確切安全性服務。

For example, the previously shown BasiêttpBinding could be configured to use HTTPS, not just HTTP, but other systems could provide more security options. For example, the WthHtpBinding support WS-Security allows for an interoperable SOAP test, data integrity, and data confidentiality.

確定通訊對許多應用程式而言也是不可或缺的。 傳統 Web 服務方法透過 HTTP 傳送 SOAP 已足夠,在某些情況下就已足夠,而且使用 BasicHttpBinding 時會完成此動作。 不過,在許多情況下,這種廣泛使用的選擇並不夠。 例如,經過一或多個 SOAP 媒介的訊息,無法依賴這個簡單的方法來取得端對端可靠性。 在這些情況下,WCF 會實作 WS-ReliableMessaging。 藉由選擇支援此選項的系結,例如 WsHttpBinding,開發人員可以自動取得可互通的可靠訊息傳輸。

In many cases, however, this broad choice is not enough. For example, after one or more SOAP media messages, it is not possible to rely on this simple method to achieve end-to-end reliability. In these cases, the WCF actually works as WS-ReliableMessage.

分散式交易在某些應用程式中也很重要。 WCF 建置在System.Transactions上,這是.NET Framework 2.0 的一部分,以允許建立交易式軟體。 方法可以使用 屬性來指出它需要交易,並定義該交易的行為。 為了允許跨廠商界限互通的分散式交易,WCF 依賴WS-AtomicTransaction規格。 使用此多廠商合約中定義的技術,WCF 應用程式可以參與跨越各種技術的交易,包括 J2EE 和其他技術。

The WCF is built on System.Transactions, which is part of the.NET Framewerk 2.0 to allow transactional software to be created. The method is to use attributes to indicate that it needs to be traded, and to define the conduct of the transaction.

Windows Communication Foundation 和其他 Microsoft 技術

如先前所述,WCF 取代了數個先前的 Microsoft 技術來建立分散式應用程式。 大部分使用 ASP.NET Web 服務、.NET 遠端處理、Enterprise Services、System.Messaging 或 WSE 建置的應用程式都會改為建置在 WCF 上。 WCF 應用程式可以與 ASP.NET Web 服務應用程式互通,這兩者都支援標準 SOAP,以及以 Enterprise Services、MSMQ 和 3.0 版 WSE 為基礎的應用程式。 WCF 也可以由 BizTalk Server 2006 使用,而未來版本的 BizTalk Server會更直接在 WCF 提供的內容上建置。

As previously noted, WCF replaced several former Microsoft technologies to create decentralized applications. Most of the applications built using ASP.NET Web services,.NET remote handling, Enterprise Services, System. Messaging or WSE will be built on WCF. WCF applications can interact with ASP.NET Web services applications, both of which support standard SOAP, and applications based on Enterprise Services, MSMQ and 3.0 versions of WSE. WCF applications can also be used by BizTalk Server 2006, while future versions of BizTalk Server will be built more directly on WCF content.

請務必瞭解,即使新的 .NET Framework 3.0 應用程式不會經常使用這些應用程式,WCF 取代的所有技術仍屬於此架構版本,而且它們一般都會受到支援。 使用舊版這些技術建置的應用程式也會繼續正常執行;安裝和使用 .NET Framework 3.0 不會中斷現有的程式碼。

Please understand that, even if the new.NET Framewerk 3.0 application does not often use these applications, all technologies replaced by the WCF still belong to this building version, and they are generally supported. Applications that use the old version of these technologies will continue to run normally; installation and use of.NET Framewerk 3.0 will not interrupt the existing code.

無論是透過網頁瀏覽器還是某種其他類型的用戶端,使用者通常會跨網路存取應用程式。 由於這些應用程式通常會要求使用者以某種方式自行識別,因此無法避免的共同註冊是人們定期強制取得並呈現身分識別資訊給遠端軟體。 透過瀏覽器存取網際網路應用程式提供了非常常見的範例,而且內部網路上的使用者也經常遇到問題。

Since these applications usually require users to identify themselves in a certain way, a co-registration that cannot be avoided is that people regularly force people to access and present identity information to remote software. Access to web-based applications through browsers provides very common examples, and users on the internal network often encounter problems.

如先前所述,人們最常依賴現今數位身分識別的使用者名稱和密碼,而且這需要的所有問題。 Windows CardSpace 是較大身分識別中繼系統的一部分,提供解決這些問題的替代方法。 若要深入瞭解 CardSpace 如何執行這項作業,首先要從身分識別中繼系統的基本概念開始。

Windows CardSpace is part of the larger ID subsystem, providing alternative solutions to these problems. To gain a deeper understanding of how CardSpace does this, it starts with the basic concept of identity recognition.

Windows CardSpace 和 Identity Metasystem

當使用者從網頁瀏覽器或應用程式特定的用戶端或其他專案存取應用程式時,通常會呈現某種數位身分識別。 數位身分識別有許多種,但幾乎所有數位身分識別都會以 安全性權杖在網路上呈現。 雖然簡單的安全性權杖可能只是使用者名稱,但更複雜的權杖可能包含 X.509 憑證或 XML 檔。 不過,安全性權杖是現今代表網路上數位身分識別的典型機制。

There are many types of digital identity, but almost all digital identity is presented on the Internet as safety scepter. While simple security scepters may be user names, more complex scepters may contain X.509 certificates or XML files. However, security scepters are now the typical mechanism to represent digital identity on the Internet.

雖然我們一天都會採用常見的安全性權杖格式,但事實上,各種方法仍會繼續使用。 就像我們現在在電子錢包中攜帶多個身分識別卡一樣,驅動程式授權、信用卡、航空公司頻繁的飛出者卡片等等,我們一律會有各種安全性權杖所代表的各種數位身分識別。 沒有單一身分識別系統可以提供通用答案,因此一律需要多個安全性權杖。

As we now carry multiple ID cards in our electronic wallets, drivers’ licences, credit cards, airline-frequency flyers’ cards, and so on, will always have digital identities that are represented by the safety scepters. There is no single identity recognition system that can provide universal answers, and therefore multiple security scepters are all needed.

不過,使用者仍然需要一些方式,才能一致地使用其多樣化的數位身分識別。 雖然沒有任何單一身分識別系統就足夠,但還是可以建立身分識別系統的系統,也就是身分識別中繼系統,以一致的方式使用大量的數位身分識別。 與其他人合作,Microsoft 已引導定義此中繼系統的程式。 根據開放式 Web 服務技術,例如 WS-Security 和 WS-Trust,此中繼系統會定義如何取得及使用數位身分識別,而不論其相依的安全性權杖類型為何。

However, users still need ways to use their multiple digital identities consistently. While there is no single identity identification system, it is possible to create a system of identity recognition, i.e., identity recognition relays, that uses a large number of digital identities in a consistent manner.

發行、取得和使用數位身分識別的程式可以視為需要三個不同的角色。 這些角色如下:

Programs that publish, access and use digital identity recognition can be considered as requiring three different roles, as follows:

  • 使用者: 有時稱為 主體,使用者是具有數位身分識別的實體。
  • 識別提供者: 身分識別提供者會為使用者提供數位身分識別。 例如,針對您的雇主指派給您的數位身分識別,識別提供者通常是 Active Directory 之類的系統。 對於您搭配 Amazon 使用的數位身分識別,身分識別提供者實際上是您,因為您定義了自己的使用者名稱和密碼。 由不同身分識別提供者建立的數位身分識別可以攜帶不同的資訊,並提供不同層級的保證,讓使用者真的是他們所宣告的人員。
  • 信賴憑證者: 信賴憑證者是某種方式依賴數位身分識別的應用程式。 信賴憑證者經常使用身分識別 (,也就是此身分識別的安全性權杖中包含的資訊) 來驗證使用者,然後做出授權決策,例如允許此使用者存取某些資訊。 信賴憑證者也可能使用身分識別來取得信用卡號碼、確認相同使用者在不同的時間存取,或用於其他用途。 信賴憑證者的一般範例包括網際網路網站,例如銀行、線上商家和商品網站,以及透過 Web 服務接受要求的任何應用程式。

這三種實體會在身分識別中繼系統中互動。 圖 11 說明這些互動,以及 CardSpace 的適用位置。

These three types of entities interact with each other in the identification subsystem. Figure 11 illustrates these interactions and the appropriate location for CardSpace.

圖 11

11

當使用者透過 CardSpace 感知應用程式存取信賴憑證者時,就會開始此程式。 若要瞭解此信賴憑證者將要求的安全性權杖類型,應用程式必須取得信賴憑證者的原則 (步驟 1) 。 對於存取網站的瀏覽器,這可能是最常見的情況,網站的原則會以 HTML 表示,並傳回為網頁的一部分。 不過,對於透過 Web 服務存取的應用程式,應用程式會改用WS-MetadataExchange定義的業界標準通訊協定來要求信賴憑證者提供其原則。 在此情況下,原則會使用 WS-SecurityPolicy 來表示,這是另一個業界標準。 不過,取得原則資訊時,一律會指出此信賴憑證者將接受何種安全性權杖,以及這些權杖必須包含哪些資訊。

This is probably the most common case for accessing a web browser, which is expressed in HTML and returned as part of a web page. But, for accessing a web service, the application will have to use the WS-MetadataExchange definition of a safety scepter.

一旦 CardSpace 知道信賴憑證者需要何種安全性權杖,它就會顯示稍早顯示的身分識別畫面。 此使用者可用的每個數位身分識別都會以此畫面上的資訊卡表示。 由外部信賴憑證者發行的卡片稱為 受管理 卡片,而 CardSpace 自我發行提供者所發行的卡片稱為 自我發行 卡片。 這兩種卡片都可以在此畫面上顯示,而且使用者可能會選取其中一種類型。 為了簡化此決策,畫面會以灰色顯示不符合資格的卡片,指出哪些身分識別符合信賴憑證者的需求。 然後,使用者會選取其中一個身分識別作為他想要使用的數位身分識別, (步驟 2) 。

Once CardSpace knows what a trusted certifier needs a safety scepter, it displays an identity image that is displayed earlier. Each digital identity that can be used by a user is expressed in this image. The card issued by an external certifier is called managed cards, and the card issued by CardSpace's self-producer is called self-published cards. These two cards can be displayed here, and users may choose one of these types. To simplify the decision, the card is shown in grey, indicating which identities match the needs of the certifier. Then the user will choose one identity as the identity he wants to use, (step 2).

不過,卡片不包含實際的安全性權杖。 相反地,它會保留尋找特定識別提供者並要求此使用者的安全性權杖所需的資訊。 事實上,每個卡片最初是由某些識別提供者所建立。) CardSpace 會使用使用者選取的卡片內容,向發行該卡片的識別提供者要求安全性權杖, (步驟 3) 。 ( 此要求是使用 WS-Trust、另一個業界標準通訊協定,以及使用者使用 Kerberos、X.509 憑證和數位簽章或其他機制向識別提供者驗證自己。 權杖會以加密形式傳回,其中包含時間戳記,以防止此權杖遭竊,並在未來重複使用。

CardSpace uses the content of the card selected by the user to demand a safety scepter (step 3). (This requirement is to use WS-Trust, another industry standard communication protocol, and the use of Kerberos, X.509 certificates, and digital signatures or other machines to test itself against the identity provider. The scepter returns in encrypted form, with a time stamp to prevent the scepter from being stolen, and to re-use it in the future.

傳回要求的安全性權杖之後,它會傳送至信賴憑證者 (步驟 4) 。 信賴憑證者如何使用權杖中的資訊可能會有所不同。 例如,如果權杖包含 X.509 憑證,而且隨附數位簽章,信賴憑證者可能會使用權杖來驗證使用者。 不過,權杖不需要用於驗證或任何其他安全性相關用途。 (事實上,「安全性權杖」一詞是錯誤的。) 權杖可能會包含資訊,例如使用者年齡證明、網際網路購物網站的折扣資格或其他任何專案。 驗證是安全性權杖的一個重要用途,但它不是唯一的選項。

For example, if the scepter contains an X.509 certificate, and with a digital signature, the certifier may use a scepter to verify the user. However, the scepter does not need to be tested or used for any other safety-related purpose. (The term "security scepter" is incorrect.) The scepter may contain information, such as a user’s age certificate, discounts on Internet shopping sites, or any other special case.

請務必注意,CardSpace 和身分識別中繼系統全都不知道安全性權杖所使用的格式或技術。 中繼系統的目標是要根據任何類型的安全性權杖來使用任何數位身分識別,而不是嘗試為數字身分識別建立新的單一來源或標準格式。 透過提供 Metasystem 重要部分的 Windows 實作,CardSpace 在讓數位身分識別成為實境的一般方法時扮演著重要的角色。

The goal of the relay system is to use any digital identity based on any type of security scepter, rather than to try to create a new single source or standard format for digital identity. Through Windows, which provides important parts of Metasystem, CardSpace plays an important role in making digital identity a reality.

對抗網路釣魚

身分識別提供者通常與使用者不同,例如當雇主指派身分識別時。 但有許多情況是身分識別提供者實際上是使用者本身。 例如,如果沒有使用 CardSpace,存取許多網站需要提供使用者名稱和密碼,這兩者都是由使用者所定義。 一旦使用者建立此身分識別,他們之後就可以提供使用者名稱和密碼,然後檢查其銀行餘額、購買書籍,或執行此網站允許的任何其他動作。

For example, if CardSpace is not used, access to many websites requires user names and passwords, both of which are defined by users. Once users have created this identity, they can then provide user names and passwords, and then check their bank balances, buy books, or run any other action permitted by the site.

不過,由於它們相依于密碼,因此這類自我發行身分識別是攻擊者的目標,如先前所述。 為了協助減少這些攻擊,CardSpace 提供建立自我發行身分識別的替代方式。 此自我發行的身分識別提供者會在使用者的 Windows 系統上本機執行。 自我發行身分識別提供者所建立的安全性權杖會使用安全性判斷提示標記語言 (SAML) 定義標準來定義,而不是依賴使用者名稱和密碼。 這些權杖依賴公開金鑰技術,而不是密碼來證明使用者的身分識別,如果信賴憑證者接受它們,他們可以扮演與傳統使用者名稱和密碼相同的角色。 優點是,網路釣魚者不再有密碼可竊取。 減少使用密碼,以及先前所述的高保證憑證所提供的網站身分識別證明,可能會讓網路釣魚成為較不嚴重的問題。

To help reduce these attacks, CardSpace provides an alternative way to create self-directed identity recognition. This self-licensed identity provider will operate on the user’s Windows system.

Windows CardSpace 和其他 Microsoft 技術

CardSpace 與其他數種 Microsoft 技術相關,包括下列各項:

CardSpace is related to a number of other Microsoft technologies, including the following:

  • Wcf: 因為其依賴 web 服務標準,例如 WS-Security 和 WS-Trust,所以 CardSpace 會使用 WCF 進行通訊。 事實上,WCF 應用程式的建立者可能會藉由指定特定系結,讓該應用程式使用 CardSpace。
  • Active Directory: 雖然目前不可能,但 Active Directory 最終將能夠作為中繼系統中的識別提供者。
  • Windows Live ID (先前稱為 Passport) : 如同 Active Directory,Microsoft 宣佈其 Live ID 驗證系統也會修改為作為識別提供者。 請注意,CardSpace 不是 Live ID 的取代專案,因為兩者解決了相當不同的問題。 相反地,Live ID 會成為身分識別中繼系統的一部分,就像任何其他識別提供者一樣。

Microsoft 也提供其他與身分識別相關的技術,以解決與 CardSpace 不同的問題。 例如,Active Directory 同盟服務 (ADFS) 著重于跨組織的同盟身分識別。 這是一個重要的挑戰,而且許多需要與其他組織合作的公司面臨。 不過,此問題與 CardSpace 和身分識別中繼系統所解決的更廣泛問題相當不同。

Microsoft also provides other skills related to identity recognition to solve different problems with CardSpace. For example, the Active Directory Alliance Service (ADFS) focuses on cross-organization identity.

工作流程型邏輯、服務導向的通訊和身分識別,在現代應用程式中都很重要。 但使用者通常最關心他們看到的內容:使用者介面。 WPF 的目標是要解決為新式應用程式建立使用者介面的挑戰。 如下所述,WPF 提供一系列功能來執行這項操作。

Workstream logic, service-directed communication, and identity recognition are important in modern applications. But users usually care most about what they see: the user interface.

Windows Presentation Foundation的功能

開發人員完全可以透過 C#、Visual Basic 或一些其他 CLR 型語言來建立 WPF 應用程式的介面。 不過,如先前所述,WPF 也允許使用 XML 型 XAML 來指定介面。 XAML 中的元素和屬性會直接對應至 WPF 提供的類別和屬性。 例如,以下是 XAML 中定義的簡單按鈕:

Developers can create WPF applications interfaces through C#, Visual Basic or some other CLR-type language. However, as previously mentioned, WPF also allows the use of XML-type XAML to specify interfaces. Elements and attributes in XAML will directly address the type and attributes provided by WPF. For example, the following are simple buttons defined in XAML:


此範例會建立包含文字 「No」 的紅色按鈕。也可以使用下列程式碼產生完全相同的結果:

This example creates a red button containing text 'No '. You can also use the following code to produce exactly the same result:


不過,實際上每個 WPF 應用程式都會遵循相同的基本模型。 應用程式繼承自 WPF 的標準 Application 物件,其提供基本方法、事件和屬性。 WPF 應用程式可以有傳統的對話方塊驅動介面或導覽介面,讓它運作方式非常類似瀏覽器應用程式。 以後者樣式建置的應用程式通常會實作為一組頁面,每個應用程式都包含在 XAML 中定義的使用者介面,以及程式碼中定義的一些邏輯。 為了將這些頁面連結在一起,XAML 提供 Hyperlink 元素,非常類似 HTML。 應用程式一次顯示一頁,可讓使用者在頁面之間來回移動、維護歷程記錄清單等等。 雖然流覽應用程式可以在網頁瀏覽器內以 XBAP 的形式執行,但這並非必要;開發人員也可以自由地在獨立 WPF 應用程式中使用此介面樣式。 目標是建立結合瀏覽器介面和原生 Windows 介面最佳層面的軟體。

However, in practice, every WPF application follows the same basic model. The application inherits the standard application from the WPF, which provides basic methods, events, and attributes. The WPF application provides a traditional dialog drive or guide interface, so that it can operate in a very similar way as a browser application. The application will normally be a page, and each application will be included in the user interface defined in the XAML, as well as some logic defined in the code. To connect these pages, the XAML element, which is very similar to HTML, is not necessary. The application displays a page at once, allowing users to move back between pages, a list of mileage logs, and so forth.

無論其介面使用何種樣式,WPF 應用程式都可以依賴 面板進行基本 配置。 每個面板通常都包含控制項,而 WPF 所提供的 控制項包括 ButtonTextBoxComboBoxMenu等等。 這些控制項的定位方式取決於選擇何種面板類型。 例如,Grid 允許將控制項放置在指定的方格上,而 Canvas 可讓開發人員在其界限內的任何位置放置控制項。 如同在 GUI 中一樣,使用者所產生的事件會由應用程式中的各種控制項和其他類別攔截並處理。 您也可以將樣式和範本套用至控制項群組,讓應用程式更容易擁有統一的外觀。

Each panel usually contains controls, and the controls provided by the WPF include Button, Textbox, Combobox, , Menu, and so on. The positioning of these controls depends on the type of panels chosen.

WPF 支援超過這些基本使用者介面函式,包括下列各項:

WPF supports more than these basic user interface functions, including the following:

  • 檔: WPF 應用程式可以使用 XAML 的 FixedDocument 標籤來顯示 XPS 檔。 應用程式也可以使用FlowDocument標籤來顯示流程檔。 流程檔的行為可能會像傳統的螢幕上檔一樣,讓使用者捲動其內容。 不過,藉由在此標籤上設定各種屬性,開發人員就可以讓檔更適應其周圍。 檔可以一次顯示頁面,例如,從需要來回捲動時釋放其讀取器。 WPF 也可以根據檔顯示所在的視窗大小,自動判斷檔應該分成多少欄。 目標是允許盡可能讀取畫面上的檔。
  • 圖形: WPF 包含建立二維和三維向量圖形的支援。 針對 2D 工作,WPF 提供標準抽象概念,例如圖形、筆刷和手寫筆,同時允許 3D 圖形定義可指派光源和相機位置資訊的模型。 不同于依賴 GDI+ 進行圖形的舊版技術Windows Forms,WPF 圖形不會使用開發人員必須瞭解的一組個別概念來分割。 相反地,用於圖形的 XAML 元素可以自然地結合用於使用者介面中任何其他專案的元素。 按鈕可以有圖形內容、文字和圖形可以結合等等。
  • 圖像: 使用 XAML 的 影像 標籤,WPF 應用程式可以顯示各種格式的影像,包括 JPEG、GIF 等等。 WPF 依賴 Windows 映像處理元件 (WIC) ,為編解碼器、顯示及儲存影像的軟體提供標準架構。 如同在 WPF 中一樣, Image 元素可以與其他專案結合,允許像是顯示影像的按鈕,而不是簡單的文字標籤。
  • 媒體: WPF 應用程式可以使用 MediaElement 標籤,以各種格式顯示視訊和音訊,包括 WMV、AVI 和 MPEG。 同樣地,此元素可以與其他 XAML 元素結合,允許 3D Cube 等專案在其端顯示視訊。
  • 動畫: WPF 提供內建支援,以動畫顯示使用者介面的大部分部分。 例如,圓形可以成長和縮小,或者按鈕可以順暢地變更大小。 應用程式也可以定義包含時程表的分鏡腳本,允許進行協調的動畫序列。
  • 資料系結: 由於許多 WPF 應用程式都會顯示資料,因此對於將資料對應至使用者介面元素的自動支援很有用。 WPF 提供這類資料系結,以取得物件和其他來源中包含的資訊。 WPF 資料系結也允許在顯示資料之前進行排序和篩選。

套用Windows Presentation Foundation

WPF 提供大量的使用者介面功能,可讓開發人員和設計工具建立非常吸引人的使用者介面。 不過,無論用戶端應用程式的外觀為何,有些組織可能會因為部署問題而拒絕使用它。 如果推出新版本的用戶端需要實際觸碰此應用程式安裝所在的每部桌上型電腦,升級的成本可能會相當重要。 目前避免此問題的其中一個常見方式是建立瀏覽器型用戶端,而不是原生 Windows 用戶端。 不過,原生 Windows 用戶端通常比瀏覽器有更好的回應性使用者介面。 若要解決部署這些用戶端的挑戰,可以使用 ClickOnce 來放置獨立 WPF 應用程式。 第一次出現在 .NET Framework 2.0 的技術 ClickOnce 可讓 Internet Explorer 使用者透過 Web 選取應用程式,然後自動安裝在本機電腦上。 安裝之後,當有新版本可供使用時,也可以自動更新應用程式。 目標是結合 Web 用戶端的簡單且便宜部署,以及獨立 WPF 應用程式的強大功能和功能。

One of the most common ways to avoid this problem is to create a browser-type client instead of an original Windows user. However, the original Windows user usually has a better echoer user interface than the browser. To solve the challenges of deploying these users, ClickOnce can be used to install a standalone WPF application.

特別是使用 ClickOnce 部署時,獨立 WPF 應用程式在許多情況下都是很好的用戶端選擇。 但在某些情況下,這類應用程式並不適用,即使其使用者可以從 WPF 允許的介面種類獲益也一定。 例如,或想要提供 3D 圖形、影片和其他 WPF 支援之新式功能的網際網路商家,來思考稍早所述的遠端保險代理程式。 預期此應用程式的使用者安裝原生 WPF 應用程式來存取網站通常並不合理。 更好的解決方案是為使用者提供網頁瀏覽器內的 WPF 樣式介面。

In particular, an independent WPF application is a good client choice in many cases when using ClickOnce deployment. In some cases, however, it is not appropriate, even if its users can benefit from the type of interface allowed by the WPF. For example, an Internet vendor who wants to provide 3D graphics, films, and other WPF-supported features to think about the earlier-mentioned remote insurance agent.

XAML 瀏覽器應用程式 —XBAP 的設計目的是要執行此動作。 Internet Explorer 使用者可以直接將 XBAP 下載到瀏覽器中,而不是部署獨立 WPF 應用程式。 在 Internet Explorer 內執行,此應用程式接著可以使用 WPF 使用者介面來呈現使用者。 但從網際網路網站下載和執行程式碼可能很危險。 為了保護使用者免于惡意開發人員,從網際網路下載的所有 XBAP 都會在部分信任的沙箱中執行。 根據.NET Framework所提供的代碼存取安全性,此沙箱會限制 XBAP 可以執行的動作。 例如,從網際網路下載的 XBAP 無法建立獨立視窗或啟動新的視窗、顯示 XBAP 本身啟動的 [儲存] 對話方塊,或存取檔案系統,但位於隔離儲存區域中除外。 不過,儘管沙箱所施加的限制,XBAP 仍然可以使用大量的 WPF 功能,包括 2D 和 3D 圖形、動畫、螢幕上的檔、影像、視訊等等。

Internet Explorer users can download XBAP directly into the browser instead of deploying an independent WPF application. On the Internet Explorer, this application can be executed using the WPF user interface. But downloading and executing the code from an Internet web site may be dangerous. All XBAP downloads from an Internet network will be carried out in a partially trusted sandbox to protect users from undesirable developers, and all XBAP downloads from the Internet will be carried out in a partially trusted sandbox. According to the code availability provided by.NET Frameork, this sandbox will limit the actions that XBAP can execute. For example, XBAP downloads from an online web site may not create an exclusive window or launch a new window, display the XBAP itself, display the [savage] on which it is launched.

如先前所述,WPF 可讓應用程式使用 XAML 的 FlowDocument 元素來顯示自適性檔。 不過,其外觀會根據顯示方式而變更的檔不一定是最佳解決方案。 固定格式的檔一律會在畫面和印表機上看起來相同,有時是較佳的選擇。 WPF 的 XPS 檔可解決此問題。 使用 XAML 子集定義,可以在任何提供 XPS 讀取器的系統上讀取 XPS 檔。 它們也會為 Windows 提供新的列印格式,讓複雜的圖形以更逼真度列印。 為了讓使用不同類型的檔更加一致,XPS 檔和 Office 2007 檔都使用 Microsoft 的開放式封裝慣例,這些慣例會定義儲存檔內容的常見方式、數位簽署檔等等。

As previously noted, the WPF allows applications to use XAML's FlowDocument elements to display their own suitability files. However, its appearance will not necessarily be the best solution. The files will always look the same on the screen and on the printer. The XPS files of the WAF can solve this problem. Using XAML subsets, XPS files can be read on any system that provides an XPS reader.

適用于Windows Presentation Foundation的工具

您可以使用基本文字編輯器直接在程式碼和/或 XAML 中建立任何 WPF 使用者介面。 不過,大部分的人都偏好使用更好的工具,因此 Microsoft 提供 Visual Studio 2005 的延伸模組,讓開發人員建立 WPF 應用程式。 下一版的 Visual Studio 程式碼命名為 「Orcas」 的 Visual Designer仍可提供更多功能,以供Windows Presentation Foundation使用。 使用此工具,開發人員將能夠以圖形方式建立他們想要查看的使用者介面,然後讓工具產生此介面的程式碼。

You can create any WPF user interface directly in the code and/or XAML using the basic text editor. However, most people prefer to use better tools, so Microsoft provides an extended version of Visual Studio 2005 to enable developers to create WPF applications. The next version of the Visual Studio code, named "Orcas ", still provides additional functionality for Windows Planning Foundation. Using this tool, developers will be able to create the user interface they want to view in a graphical manner and then allow the tool to generate the code for this interface.

但開發人員通常不是定義使用者介面的最佳人員。 設計工具通常更適合這種工作,因為它們專門與人員溝通。 不過,大部分的設計工具不會撰寫程式碼,因此 Visual Designer是裝載于 Visual Studio 內的 Windows Presentation Foundation,不是此群組的有效工具。 為了讓設計工具在 WPF 世界中有效運作,Microsoft 已建立 Expression Interactive Designer。 設計工具可以使用此工具來定義介面的外觀和風格、指定動畫等等,然後讓工具產生所建立專案的 XAML 版本。 開發人員可以將此 XAML 匯入 Visual Studio,並為處理事件之類的專案新增程式碼。 因為 Visual Studio 和 Expression Interactive Designer都使用相同的建置系統,所以開發人員和設計工具可以反復處理專案,每一個都使用他們熟悉的工具。 目標是協助來自設計與軟體工程之不同專業領域的人員有效地共同作業。

But design tools are often not the best tool to define user interfaces. Design tools are often more suitable for this type of work, because they are dedicated to communicating with people.

Windows Presentation Foundation和其他 Microsoft 技術

就像其他.NET Framework 3.0 元件一樣,WPF 對現有的 Microsoft 技術有影響。 其中最重要的項目如下:

Like other.NET Framework 3.0 components, the WPF has an impact on available Microsoft technology, the most important of which are as follows:

  • Windows Forms:.NET Framework建立應用程式 GUI 的原始方法,Windows Forms目前用於許多應用程式中。 辨識這一點,WPF 可讓Windows Forms控制項裝載于 WPF 應用程式和 WPF 控制項裝載于Windows Forms應用程式中。 例如,Windows Forms應用程式可能會裝載提供三維資料視覺效果的 WPF 控制項。 雖然有一些限制,但建立使用這兩種技術的應用程式確實可行。 請注意,現有的Windows Forms應用程式仍會在 3.0 .NET Framework世界中維持不變。
  • Win32 和 Microsoft Foundation 類別 (MFC) :如同Windows Forms,您可以在使用這些現有技術所建置的現有應用程式中裝載 WPF 控制項,反之亦然。 不過,互通性比Windows Forms更複雜,因為與Windows Forms不同,Win32 型和 MFC 型應用程式不會建置在 CLR 上。 因此,與 WPF 的互通性也需要 CLR 型程式碼與原生 Win32 程式碼之間的對應。
  • Direct3D: Direct3D 是 DirectX 系列 API 的一部分,可讓應用程式建立及顯示 3D 圖形。 隨著 .NET Framework 3.0 的出現,主要 Windows 應用程式可以使用 WPF 中的 3D 功能,而不是 Direct3D 所提供的更特製化方法。 不過,某些需要較高效能的應用程式,例如 3D 遊戲,將會繼續使用 Direct3D。 事實上,WPF 依賴 Direct3D 進行所有轉譯。
  • Windows Communication Foundation: 如先前案例所示,WPF 應用程式可以使用 WCF。 不過,XBAP 通常無法使用 WCF,因為 WCF 需要完全信任。 從網際網路下載的每個 XBAP 都會在部分信任沙箱中執行,這會禁止它存取 WCF。 不過,XBAP 可以使用 ASP.NET Web 服務,讓他們進行與 WCF 和其他 Web 服務實作互通的 SOAP 呼叫。
  • 「WPF/E」:WPF 的一個層面也值得在這裡提及,即使它不屬於 .NET Framework 3.0 的一部分。 程式碼命名為 「WPF/E」,其目標是在不支援 WPF 本身的系統上支援 WPF 樣式介面。 如同其名稱中的「E」,這項技術旨在隨處提供,包括 Macintoshes、小型裝置和其他系統。 排程在 WPF 本身之後寄送,WPF/E 會提供完整 WPF 功能的子集,包括 2D 圖形、動畫和視訊。

若要讓應用程式使用 .NET Framework 3.0,此版本的 Framework 必須安裝在執行此應用程式的電腦上。 針對 Windows Vista,這很簡單:預設會安裝 .NET Framework 3.0。 這表示已安裝 Windows Vista 的新電腦或升級至 Vista 的現有機器將會自動執行 .NET Framework 3.0 應用程式。 不過,.NET Framework 3.0 也可以在 Windows XP 和 Windows Server 2003 上執行。 為了讓這些系統的現有使用者能夠使用新的 .NET Framework 3.0 元件,Microsoft 將會提供此軟體作為免費下載。

For applications to use.NET Framework 3.0, this version of Framewerk must be installed on the computer that runs the application. This is simple for Windows Vista: the default will install.NET Framework 3.0. This means that the existing computer or upgrade to Vista that has been installed in Windows Vista will automatically run.NET Framework 3.0 applications. However, NET Framework 3.0 can also be implemented on Windows XP and Windows Server 2003. To enable current users of these systems to use the new.NETFramework 3.0 widgets, Microsoft will provide this software as a free-of-charge application.

.NET Framework 3.0 是 Windows 程式設計模型的演進。 建置並擴充 .NET Framework 2.0,其目標是支援建立新式應用程式。 為了這樣做,架構 3.0 版提供各種不同的技術,每個技術都解決了現今應用程式開發的重大挑戰。 藉由在共同基礎上建置這種多樣性,Microsoft 正努力讓整體大於部分的總和,讓開發人員以一致的方式建立使用 .NET Framework 3.0 各種部分的應用程式。

In order to do this, the architecture version 3.0 provides a variety of technologies, each of which solves the major challenge of the current application development. By building this multi-template on a common foundation, Microsoft is trying to make the whole body larger than the sum of the parts, and to enable developers to create applications using the components of.NET Framework 3.0 in a coherent manner.

組織選擇採用這個新版本的任何層面,技術一定會對 Windows 軟體的世界產生重大影響。 對於在這個世界中工作的人,開發人員、架構設計人員或決策者,現在開始瞭解如何從 .NET Framework 3.0 獲益。

The organization chooses to use this new version at any level, technology will have a major impact on the world of Windows software. For people working in the world, developers, architects, or decision makers, now understand how to benefit from.NET Framewerk 3.0.

瞭解 .NET,第二版。 David Chappell、Addison-Wesley、2006

understand.NET, 2nd edition . David Chappell, Addison-Wesley, 2006.

Windows Workflow Foundation 簡介

Windows Communication Foundation 簡介

Windows CardSpace 簡介

Windows Presentation Foundation簡介:進行中 ()

Windows Foundation Introduction: In progress (in progress)

 

關於作者

about the author

David Chappell 是位於加州加州的 Chappell & Associates (www.davidchappell.com) 主體。 透過他的說話、撰寫和諮詢,他可協助世界各地的技術專業人員瞭解、使用及制定企業軟體的更佳決策。

David Chappell is the body of Chappell & Associates (www.davidchappell.com). Through his speech, writing, and consulting, he can help technologists around the world understand, use, and develop better decisions for corporate software.

美化布局示例

欧易(OKX)最新版本

【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   全球官网 大陆官网

币安(Binance)最新版本

币安交易所app【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址

火币HTX最新版本

火币老牌交易所【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址
文字格式和图片示例

注册有任何问题请添加 微信:MVIP619 拉你进入群

弹窗与图片大小一致 文章转载注明

分享:

扫一扫在手机阅读、分享本文

发表评论
平台列表
美化布局示例

欧易(OKX)

  全球官网 大陆官网

币安(Binance)

  官网

火币(HTX)

  官网

Gate.io

  官网

Bitget

  官网

deepcoin

  官网
热门文章
  • 0.00006694个比特币等于多少人民币/美金

    0.00006694个比特币等于多少人民币/美金
    0.00006694比特币等于多少人民币?根据比特币对人民币的最新汇率,0.00006694比特币等于4.53424784美元/32.5436 16人民币。比特币(BTC)美元(USDT)人民币(CNY)0.000066944.53424784【比特币密码】32.82795436 16比特币对人民币的最新汇率为:490408.64 CNY(1比特币=490408.64人民币)(1美元=7.24人民币)(0.00006694USDT=0.0004846456 CNY)汇率更新时...
  • 0.00003374个比特币等于多少人民币/美金

    0.00003374个比特币等于多少人民币/美金
    0.00003374比特币等于多少人民币?根据比特币对人民币的最新汇率,0.00003374比特币等于2.2826 1222美元/16.5261124728人民币。比特币(BTC)美元(USDT)人民币(CNY)0.00003374克洛克-0/22216.5261124728比特币对人民币的最新汇率为:489807.72 CNY(1比特币=489807.72人民币)(1美元=7.24人民币)(0.00003374USDT=0.0002442776 CNY)。汇率更新于2024...
  • 1983年,山西老人致信央行:人民币上的“中国人民银行”是我写的

    1983年,山西老人致信央行:人民币上的“中国人民银行”是我写的
    阅读本文前,请点击红色“关注”按钮,方便大家讨论和分享,给您带来不一样的参与感。谢谢大家的支持!1983年,山西日报发表了一篇异常简短的文章,主要内容是:“人民币的字体作者是纪。“不久后,上海《新民晚报》也发表了一篇报道,主要内容与《山西日报》基本相同。二人转文章的排版只占一小部分,但不妨碍大家关注此事。一位家住山西的老人看完文章后显得有些不解:“不是啊,人民币上的字明明是我写的。我怎么能把它戴在别人头上呢?”本着尊重历史的原则,老人的女儿给报社写了两封“澄清信”,分别寄给了...
  • 1929经济大萧条或许即将重演?

    1929经济大萧条或许即将重演?
    人类似乎陷入了一个历史悖论,即我们总是重复同样的错误,无法真正从过去的错误中吸取教训。近年来,我们对世界各地接连不断的挑战和危机深感不安。20 19年突如其来的疫情,乌克兰的战火硝烟,欧洲的天然气供应危机以及全球少数国家的饥荒,所有这些问题都像洪水一样,一个接一个地涌来。如果你今天感到心情沉重,不要失去希望,因为明天可能会带来更严峻的挑战。首先,让我们深入讨论名为1929大萧条的时期。这场大萧条实际上是指从1929到1933的一场影响深远的经济危机。这场危机首先起源于美国,然...
  • 2000年美国GDP占世界的304%,中国GDP仅占35%,现在呢?

    2000年美国GDP占世界的304%,中国GDP仅占35%,现在呢?
    GDP作为全球公认的实力基准,就像是一个大国实力的代言人,它是布雷顿森林体系下全球团结的声音。它不仅仅是数字的累积,更是大国综合实力的人格化,默默诉说着每个国家的辉煌与荣耀。虽然GDP不是衡量一个国家综合实力的唯一标准,但无疑是最关键的指标之一。作为一面镜子,它反映了国家的经济实力和发展水平,是国家综合实力的重要体现,不容忽视。2000年,中国GDP迈过/克洛克-0/万亿美元的重要门槛,达到/克洛克-0/。2/克洛克-0/万亿美元(折合人民币7。7万亿元)。然而,在全球经济的...
标签列表