鷹翔宇空

          學(xué)習(xí)和生活

          BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
            110 Posts :: 141 Stories :: 315 Comments :: 1 Trackbacks

          引自:http://www.aygfsteel.com/TrampEagle/admin/EditArticles.aspx

          第 1 章 — 簡(jiǎn)介

          發(fā)布日期: 8/20/2004 | 更新日期: 8/20/2004
          a

          智能客戶(hù)端體系結(jié)構(gòu)與設(shè)計(jì)指南

          David Hill, Brenton Webster, Edward A. Jezierski, Srinath Vasireddy and Mohammad Al-Sabt, Microsoft Corporation; Blaine Wastell, Ascentium Corporation; Jonathan Rasmusson and Paul Gale, ThoughtWorks; and Paul Slater, Wadeware LLC

          相關(guān)鏈接

          Microsoft? patterns & practices 庫(kù) http://www.microsoft.com/resources/practices/default.mspx

          Application Architecture for .NET:Designing Applications and Services http://msdn.microsoft.com/library/en-us/dnbda/html/distapp.asp

          摘要:本章對(duì)智能客戶(hù)端應(yīng)用程序進(jìn)行了高級(jí)介紹,并描述了它們的一些基本性質(zhì)和優(yōu)點(diǎn)。然后,本章討論了一些高級(jí)體系結(jié)構(gòu)問(wèn)題,并且提供了相關(guān)指導(dǎo)以幫助您確定智能客戶(hù)端體系結(jié)構(gòu)是否適合于您的應(yīng)用程序。

          *
          本頁(yè)內(nèi)容
          什么是智能客戶(hù)端? 什么是智能客戶(hù)端?
          智能客戶(hù)端的類(lèi)型 智能客戶(hù)端的類(lèi)型
          對(duì)智能客戶(hù)端和瘦客戶(hù)端進(jìn)行取舍 對(duì)智能客戶(hù)端和瘦客戶(hù)端進(jìn)行取舍
          智能客戶(hù)端體系結(jié)構(gòu)難題 智能客戶(hù)端體系結(jié)構(gòu)難題
          本指南的范圍 本指南的范圍
          如何使用本指南 如何使用本指南
          本指南面向的讀者 本指南面向的讀者
          章節(jié)概要 章節(jié)概要
          小結(jié) 小結(jié)
          更多信息 更多信息

          歡迎閱讀《智能客戶(hù)端體系結(jié)構(gòu)與設(shè)計(jì)指南》。智能客戶(hù)端應(yīng)用程序是瘦客戶(hù)端應(yīng)用程序的強(qiáng)大替代產(chǎn)品。它們可以為用戶(hù)提供內(nèi)容豐富且響應(yīng)迅速的用戶(hù)界面,提供脫機(jī)工作的能力,并且提供利用本地硬件和軟件資源的方法。此外,可以將它們?cè)O(shè)計(jì)為在各種各樣的客戶(hù)端設(shè)備上運(yùn)行,包括桌面 PC、平板 PC 以及手持移動(dòng)設(shè)備(如 Pocket PC 和 Smartphone)。智能客戶(hù)端為用戶(hù)提供了在強(qiáng)大且直觀的客戶(hù)端環(huán)境中訪(fǎng)問(wèn)信息和遠(yuǎn)程服務(wù)的能力,并且是一種用來(lái)開(kāi)發(fā)靈活的、面向用戶(hù)的應(yīng)用程序以及提高用戶(hù)工作效率和滿(mǎn)意度的有效的解決方案。

          經(jīng)過(guò)設(shè)計(jì),智能客戶(hù)端應(yīng)用程序可以將胖客戶(hù)端應(yīng)用程序的傳統(tǒng)優(yōu)點(diǎn)與瘦客戶(hù)端應(yīng)用程序的可管理性?xún)?yōu)點(diǎn)結(jié)合起來(lái)。然而,要完全實(shí)現(xiàn)智能客戶(hù)端應(yīng)用程序的優(yōu)點(diǎn),需要考慮許多體系結(jié)構(gòu)和設(shè)計(jì)問(wèn)題。本指南描述了您在設(shè)計(jì)和實(shí)現(xiàn)智能客戶(hù)端應(yīng)用程序時(shí)將面臨的體系結(jié)構(gòu)和設(shè)計(jì)難題。它提供了有關(guān)如何克服這些難題的指導(dǎo),從而使您能夠在盡可能短的時(shí)間內(nèi)實(shí)現(xiàn)智能客戶(hù)端應(yīng)用程序的優(yōu)點(diǎn)。

          有關(guān)智能客戶(hù)端的其他技術(shù)資源,請(qǐng)參考“智能客戶(hù)端開(kāi)發(fā)人員中心”,網(wǎng)址為:http://msdn.microsoft.com/smartclient/。在位于 http://www.microsoft.com/net/smartclient/default.mspx 的 Microsoft .NET 站點(diǎn)上討論了智能客戶(hù)端的業(yè)務(wù)價(jià)值。

          什么是智能客戶(hù)端?

          要完全了解智能客戶(hù)端如何將胖客戶(hù)端與瘦客戶(hù)端的優(yōu)點(diǎn)結(jié)合起來(lái),有用的做法是分析胖/瘦客戶(hù)端應(yīng)用程序模型背后的歷史和基礎(chǔ)原理,并且回顧一些與它們相關(guān)聯(lián)的優(yōu)點(diǎn)和缺點(diǎn)。

          胖客戶(hù)端應(yīng)用程序

          在二十世紀(jì)九十年代中期,為 Microsoft? Windows? 操作系統(tǒng)開(kāi)發(fā)的胖客戶(hù)端應(yīng)用程序的數(shù)量急劇增長(zhǎng)。設(shè)計(jì)這些客戶(hù)端的目的是利用本地硬件資源以及客戶(hù)端操作系統(tǒng)平臺(tái)的功能。

          盡管許多上述應(yīng)用程序的功能令人印象深刻,但它們都具有局限性。許多上述應(yīng)用程序是獨(dú)立的并且在客戶(hù)計(jì)算機(jī)上工作,對(duì)它們的工作環(huán)境所知甚少或一無(wú)所知。該環(huán)境包括其他計(jì)算機(jī)和網(wǎng)絡(luò)上的任何服務(wù),以及用戶(hù)計(jì)算機(jī)上的任何其他應(yīng)用程序。非常常見(jiàn)的情況是,應(yīng)用程序之間的集成局限于使用 Windows 提供的剪切或復(fù)制并粘貼功能在應(yīng)用程序之間傳輸少量的數(shù)據(jù)。

          有一些有助于提高胖客戶(hù)端應(yīng)用程序連接性的技術(shù)。例如,兩層應(yīng)用程序使多個(gè)用戶(hù)可以訪(fǎng)問(wèn)駐留在網(wǎng)絡(luò)上的公用數(shù)據(jù),而 DCOM 使應(yīng)用程序可以具有更高的分布性。(就 DCOM 而言,不再將邏輯和狀態(tài)與客戶(hù)計(jì)算機(jī)相聯(lián)系,而是將其封裝在對(duì)象內(nèi),然后在多臺(tái)計(jì)算機(jī)中分布這些對(duì)象。)但是,連接的應(yīng)用程序的開(kāi)發(fā)要復(fù)雜得多。隨著這些分布式應(yīng)用程序的規(guī)模和復(fù)雜性逐漸增加,將越來(lái)越難以維持客戶(hù)端應(yīng)用程序及它們使用的服務(wù)之間的緊耦合。

          盡管胖客戶(hù)端通常提供了高質(zhì)量、響應(yīng)迅速的用戶(hù)體驗(yàn),并且具有良好的開(kāi)發(fā)人員和平臺(tái)支持,但它們非常難于部署和維護(hù)。隨著應(yīng)用程序和客戶(hù)端平臺(tái)的復(fù)雜性不斷增加,以可靠且安全的方式將應(yīng)用程序部署到客戶(hù)計(jì)算機(jī)的難度也將不斷增加。如果部署了不兼容的共享組件或軟件庫(kù),則一個(gè)應(yīng)用程序可以很容易地破壞另一個(gè)應(yīng)用程序,這種現(xiàn)象稱(chēng)為應(yīng)用程序脆弱性。新版本的應(yīng)用程序通常通過(guò)重新部署整個(gè)應(yīng)用程序來(lái)提供,這可能使應(yīng)用程序脆弱性問(wèn)題變得更加嚴(yán)重。

          瘦客戶(hù)端應(yīng)用程序

          Internet 提供了傳統(tǒng)胖客戶(hù)端模型的替代模型,它解決了許多與應(yīng)用程序部署和維護(hù)相關(guān)聯(lián)的問(wèn)題。基于瀏覽器的瘦客戶(hù)端應(yīng)用程序是在中央 Web 服務(wù)器上部署和更新的;因此,它們消除了將應(yīng)用程序的任何部分顯式部署到客戶(hù)計(jì)算機(jī)并加以管理的必要性。

          該模型使各個(gè)公司可以非常高效地將它們的應(yīng)用程序公開(kāi)給規(guī)模龐大、多種多樣的外部受眾。因?yàn)槭菘蛻?hù)端已被證明能夠高效地解決一些部署和可管理性問(wèn)題,所以它們現(xiàn)在用于向組織內(nèi)的用戶(hù)提供對(duì)許多業(yè)務(wù)線(xiàn) (LOB) 應(yīng)用程序的訪(fǎng)問(wèn),以及向客戶(hù)和合作伙伴提供對(duì)面向外界的應(yīng)用程序的訪(fǎng)問(wèn)。盡管事實(shí)上這兩種用戶(hù)的需要和期望通常是根本不同的,也是如此。

          瘦客戶(hù)端應(yīng)用程序具有一些缺點(diǎn)。瀏覽器必須總是具有網(wǎng)絡(luò)連接。這意味著移動(dòng)用戶(hù)在斷開(kāi)連接時(shí)將無(wú)法訪(fǎng)問(wèn)應(yīng)用程序,因此當(dāng)他們返回辦公室時(shí),必須重新輸入數(shù)據(jù)。而且,常用的應(yīng)用程序功能(如拖放、撤消-重復(fù)以及上下文相關(guān)幫助)可能不可用,這可能降低應(yīng)用程序的可用性。

          因?yàn)閼?yīng)用程序的大部分邏輯和狀態(tài)位于服務(wù)器上,所以瘦客戶(hù)端會(huì)頻繁地向服務(wù)器發(fā)回?cái)?shù)據(jù)和處理請(qǐng)求。瀏覽器必須等待響應(yīng)到達(dá),然后用戶(hù)才能繼續(xù)使用該應(yīng)用程序;因此,該應(yīng)用程序的響應(yīng)速度通常要比胖客戶(hù)端應(yīng)用程序慢得多。該問(wèn)題在低帶寬或高延遲的情況下被惡化了,并且產(chǎn)生的性能問(wèn)題可能導(dǎo)致應(yīng)用程序可用性和用戶(hù)效率大幅度下降。要求輸入大量數(shù)據(jù)以及/或者在多個(gè)窗口中頻繁導(dǎo)航的 LOB 應(yīng)用程序尤其會(huì)受到這一問(wèn)題的影響。

          智能客戶(hù)端應(yīng)用程序

          經(jīng)過(guò)設(shè)計(jì),智能客戶(hù)端應(yīng)用程序可以將胖客戶(hù)端應(yīng)用程序的優(yōu)點(diǎn)與瘦客戶(hù)端應(yīng)用程序的部署和可管理性?xún)?yōu)點(diǎn)結(jié)合起來(lái),盡管這兩種方法之間的平衡的準(zhǔn)確性質(zhì)取決于確切的情況。

          智能客戶(hù)端應(yīng)用程序通常具有形形色色的要求,因此在設(shè)計(jì)和實(shí)現(xiàn)方面會(huì)有極大的差異。但是,所有智能客戶(hù)端都具有下列部分或全部特征:

          ?

          利用本地資源

          ?

          利用網(wǎng)絡(luò)資源

          ?

          支持偶爾連接的用戶(hù)

          ?

          提供智能安裝和更新

          ?

          提供客戶(hù)端設(shè)備靈活性

          許多應(yīng)用程序不需要具有上述所有特征。當(dāng)您設(shè)計(jì)您的智能客戶(hù)端時(shí),將需要仔細(xì)考慮您的應(yīng)用程序方案,并且決定您的智能客戶(hù)端應(yīng)用程序要求具備上述哪些特征。要將上述所有特征合并到您的應(yīng)用程序中,將需要進(jìn)行非常認(rèn)真的計(jì)劃和設(shè)計(jì),并且在很多情況下您將需要大量的實(shí)現(xiàn)資源。

          .NET 框架可以幫助您實(shí)現(xiàn)智能客戶(hù)端應(yīng)用程序的許多特征。該框架提供了具備自我描述能力且牢固綁定的程序集,并且支持單獨(dú)和并列安裝應(yīng)用程序的多個(gè)版本,從而有助于減少與胖客戶(hù)端相關(guān)聯(lián)的應(yīng)用程序部署和脆弱性問(wèn)題。.NET 框架基類(lèi)庫(kù)為與 Web 服務(wù)進(jìn)行交互提供了廣泛的支持,并且提供了 Windows 窗體。通過(guò)使用公共語(yǔ)言運(yùn)行庫(kù) (CLR),您可以利用任何受到 .NET 支持的語(yǔ)言來(lái)開(kāi)發(fā)智能客戶(hù)端。

          使用本地資源

          設(shè)計(jì)良好的智能客戶(hù)端應(yīng)用程序最大限度地利用了代碼和數(shù)據(jù)部署在客戶(hù)端上并且在本地執(zhí)行和訪(fǎng)問(wèn)這一事實(shí)。它為應(yīng)用程序提供了內(nèi)容豐富且響應(yīng)迅速的用戶(hù)界面,以及強(qiáng)大的客戶(hù)端處理能力。例如,它可能使用戶(hù)能夠執(zhí)行復(fù)雜的數(shù)據(jù)操作、可視化、搜索或排序操作。

          智能客戶(hù)端可以利用客戶(hù)端硬件資源(如電話(huà)或條碼讀取器)以及其他軟件和應(yīng)用程序。這使它們非常適合于解決瘦客戶(hù)端應(yīng)用程序(如銷(xiāo)售點(diǎn)終端應(yīng)用程序)無(wú)法很好解決的問(wèn)題。智能客戶(hù)端還可以利用本地軟件(如 Microsoft Office 應(yīng)用程序)或客戶(hù)計(jì)算機(jī)上安裝的任何 LOB 應(yīng)用程序。通過(guò)創(chuàng)建能夠與多個(gè) LOB 應(yīng)用程序集成并對(duì)這些應(yīng)用程序進(jìn)行協(xié)調(diào)的解決方案,您的用戶(hù)可以更為有效地工作,進(jìn)行更好的決策,并減少數(shù)據(jù)輸入錯(cuò)誤。此類(lèi)解決方案還可以使您的應(yīng)用程序更加緊密地與用戶(hù)的工作環(huán)境集成(例如,通過(guò)采用自定義的或熟悉的用戶(hù)界面),從而降低培訓(xùn)成本。

          可以通過(guò)智能客戶(hù)端應(yīng)用程序集成或協(xié)調(diào)其他客戶(hù)端應(yīng)用程序,以便提供一致且高效的總體解決方案。這些應(yīng)用程序還應(yīng)該了解正在使用應(yīng)用程序的上下文,并且應(yīng)該適應(yīng)該上下文以盡可能地幫助用戶(hù);例如,通過(guò)根據(jù)用戶(hù)的使用模式或角色搶先緩存適當(dāng)且有用的數(shù)據(jù)。

          通過(guò)最大限度地使用本地資源以及將本地資源集成到您的智能客戶(hù)端應(yīng)用程序,可以使您的應(yīng)用程序更好、更有效地使用已經(jīng)提供給您的硬件。非常常見(jiàn)的情況是,處理能力、內(nèi)存和高級(jí)圖形功能沒(méi)有得到利用。使用客戶(hù)計(jì)算機(jī)上的資源還可以減少服務(wù)器端硬件要求。

          使用網(wǎng)絡(luò)資源

          智能客戶(hù)端可以通過(guò)網(wǎng)絡(luò)消耗和使用不同的服務(wù)和數(shù)據(jù)。它們是從許多不同的源檢索數(shù)據(jù)的有效方式,并且可以設(shè)計(jì)為對(duì)數(shù)據(jù)進(jìn)行分析或整合,從而使用戶(hù)能夠進(jìn)行更為有效和明智的決策。例如,智能客戶(hù)端可以使用映射服務(wù)來(lái)提供有關(guān)地點(diǎn)和駕駛方向的詳細(xì)信息。

          智能客戶(hù)端應(yīng)用程序應(yīng)該盡可能地連接,并且應(yīng)該利用可以通過(guò)網(wǎng)絡(luò)使用的資源和服務(wù)。它們不應(yīng)該是獨(dú)立的應(yīng)用程序,并且應(yīng)該總是構(gòu)成更大的分布式解決方案的一部分。智能客戶(hù)端應(yīng)用程序起碼應(yīng)該使用有助于維護(hù)該應(yīng)用程序以及提供部署和更新服務(wù)的集中式服務(wù)。

          智能客戶(hù)端應(yīng)用程序的連接性質(zhì)使其可以提供有價(jià)值的數(shù)據(jù)整合、分析和轉(zhuǎn)換服務(wù)。它們使用戶(hù)可以實(shí)時(shí)地或者在一段時(shí)間內(nèi)協(xié)作完成任務(wù)。在許多情況下,智能客戶(hù)端應(yīng)用程序可以向用戶(hù)提供類(lèi)似于門(mén)戶(hù)的功能,從而將完全不同的數(shù)據(jù)和服務(wù)加以協(xié)調(diào)并集成到總體解決方案中。

          有關(guān)如何設(shè)計(jì)智能客戶(hù)端以利用連接的服務(wù)的詳細(xì)信息,請(qǐng)參閱第 2 章:處理數(shù)據(jù)。

          支持偶爾連接的用戶(hù)

          可以將智能客戶(hù)端設(shè)計(jì)為向偶爾連接到網(wǎng)絡(luò)的用戶(hù)提供功能,從而使用戶(hù)可以在明確脫機(jī)、使用低帶寬或高延遲網(wǎng)絡(luò),或者連接時(shí)斷時(shí)續(xù)的情況下繼續(xù)高效地工作。對(duì)于移動(dòng)應(yīng)用程序,智能客戶(hù)端還可以?xún)?yōu)化網(wǎng)絡(luò)帶寬 — 例如,通過(guò)將請(qǐng)求批量發(fā)送到服務(wù)器,以便更好地使用代價(jià)昂貴的連接。

          即使當(dāng)客戶(hù)端大多數(shù)時(shí)間都連接到網(wǎng)絡(luò)時(shí),智能客戶(hù)端應(yīng)用程序也可通過(guò)以智能方式緩存數(shù)據(jù)和管理連接來(lái)改善性能和可用性。例如,在低帶寬或高延遲環(huán)境中,智能客戶(hù)端應(yīng)用程序可以用特殊的方式管理連接,即不損害應(yīng)用程序的可用性和響應(yīng)性,并且用戶(hù)可以繼續(xù)高效地工作。

          通過(guò)使用戶(hù)能夠在斷開(kāi)連接或只偶爾連接的情況下工作,提高了用戶(hù)的工作效率和滿(mǎn)意度。智能客戶(hù)端應(yīng)用程序應(yīng)該致力于在脫機(jī)時(shí)提供盡可能多的功能。

          有關(guān)如何設(shè)計(jì)智能客戶(hù)端應(yīng)用程序以支持偶爾連接的用戶(hù)的詳細(xì)信息,請(qǐng)參閱第 4 章:偶爾連接的智能客戶(hù)端

          提供智能安裝和更新

          傳統(tǒng)胖客戶(hù)端所具有的一些最大的問(wèn)題發(fā)生在部署或更新應(yīng)用程序的時(shí)候。許多胖客戶(hù)端應(yīng)用程序具有大量復(fù)雜的安裝要求,并且可能通過(guò)注冊(cè)組件以及/或者在公共位置安裝 DLL 來(lái)共享代碼,從而導(dǎo)致應(yīng)用程序脆弱性和更新困難。

          可以對(duì)智能客戶(hù)端應(yīng)用程序進(jìn)行設(shè)計(jì),以使其按照遠(yuǎn)比傳統(tǒng)胖客戶(hù)端應(yīng)用程序更智能和靈活的方式來(lái)管理它們的部署和更新。它們可以避免上述常見(jiàn)問(wèn)題,從而有助于減少應(yīng)用程序的管理成本。

          有許多部署智能客戶(hù)端的不同方式。這些方式包括:簡(jiǎn)單地將文件復(fù)制到本地計(jì)算機(jī);使用非接觸式部署自動(dòng)從中央服務(wù)器下載代碼;或者使用企業(yè)推技術(shù)如 Microsoft Systems Management Server (SMS) 來(lái)部署 Windows Installer 軟件包。您選擇的方法將依賴(lài)于您的特定情況。

          智能客戶(hù)端應(yīng)用程序可以在其運(yùn)行時(shí)或位于后臺(tái)時(shí)對(duì)自身進(jìn)行自動(dòng)更新。這一功能使其可以逐個(gè)角色地進(jìn)行更新;以分階段的方式更新,從而可以將應(yīng)用程序推介給先導(dǎo)小組或受限的用戶(hù)組;或者按照制定的時(shí)間表更新。

          .NET 框架使您可以對(duì)應(yīng)用程序組件進(jìn)行強(qiáng)命名,這意味著應(yīng)用程序可以指定用來(lái)生成和測(cè)試其確切版本的組件,并通過(guò)這些版本的組件運(yùn)行。.NET 框架使應(yīng)用程序可以相互隔離,以便在安裝一個(gè)應(yīng)用程序時(shí)不會(huì)破壞另一個(gè)應(yīng)用程序,并且同一應(yīng)用程序的多個(gè)版本可以并列部署。這些功能大大簡(jiǎn)化了應(yīng)用程序部署,并且消除了許多與胖客戶(hù)端應(yīng)用程序相關(guān)聯(lián)的應(yīng)用程序脆弱性問(wèn)題。

          有關(guān)智能安裝和更新的詳細(xì)信息,請(qǐng)參閱第 7 章:部署和更新智能客戶(hù)端。

          提供客戶(hù)端設(shè)備靈活性

          智能客戶(hù)端還可以提供靈活且可自定義的客戶(hù)端環(huán)境,從而使用戶(hù)可以將應(yīng)用程序配置為支持他或她喜歡的工作方式。智能客戶(hù)端應(yīng)用程序沒(méi)有被限制到桌面計(jì)算機(jī)或膝上型計(jì)算機(jī)。隨著小規(guī)模設(shè)備的連接性和能力的增加,愈發(fā)需要能夠提供對(duì)多個(gè)設(shè)備上重要數(shù)據(jù)和服務(wù)的訪(fǎng)問(wèn)的有用客戶(hù)端應(yīng)用程序。與 .NET 框架壓縮版一起,.NET 框架提供了一個(gè)可用來(lái)生成智能客戶(hù)端應(yīng)用程序的通用平臺(tái)。

          可以對(duì)智能客戶(hù)端進(jìn)行設(shè)計(jì)以使其適應(yīng)宿主環(huán)境,并且為它們運(yùn)行時(shí)所在的設(shè)備提供適當(dāng)?shù)墓δ?。例如,適合在 Pocket PC 上運(yùn)行的智能客戶(hù)端應(yīng)用程序應(yīng)該提供相應(yīng)的用戶(hù)界面,該用戶(hù)界面在較小的屏幕區(qū)域上被調(diào)整為使用筆針。

          在許多情況下,您需要設(shè)計(jì)多個(gè)版本的智能客戶(hù)端應(yīng)用程序,每個(gè)版本都面向特定的設(shè)備類(lèi)型,以便充分利用該設(shè)備所支持的特定功能。因?yàn)樾∫?guī)模設(shè)備通常在提供完整范圍的智能客戶(hù)端應(yīng)用程序功能方面受到限制,所以它們可能只提供對(duì)功能完善的智能客戶(hù)端應(yīng)用程序所提供的數(shù)據(jù)和服務(wù)子集的移動(dòng)訪(fǎng)問(wèn),或者它們可用于在用戶(hù)移動(dòng)時(shí)收集和整合數(shù)據(jù)。最后,可以由功能更加完善的智能客戶(hù)端應(yīng)用程序或服務(wù)器端應(yīng)用程序來(lái)分析或處理這些數(shù)據(jù)。

          能夠感知目標(biāo)設(shè)備的功能和使用環(huán)境(無(wú)論它是桌面、膝上型、平板還是移動(dòng)設(shè)備),以及能夠定制應(yīng)用程序以提供最適當(dāng)?shù)墓δ埽@些都是許多智能客戶(hù)端應(yīng)用程序的基本特點(diǎn)。

          本指南不包含特定于在移動(dòng)設(shè)備上運(yùn)行的智能客戶(hù)端應(yīng)用程序開(kāi)發(fā)的體系結(jié)構(gòu)和設(shè)計(jì)細(xì)節(jié),但是,無(wú)論應(yīng)用程序是在桌面計(jì)算機(jī)上運(yùn)行還是在其他設(shè)備上運(yùn)行,本指南包含的許多主題都同樣適用。

          返回頁(yè)首返回頁(yè)首

          智能客戶(hù)端的類(lèi)型

          智能客戶(hù)端在設(shè)計(jì)和實(shí)現(xiàn)方面差異極大,這既包括應(yīng)用程序要求,也包括可以使用它們的方案和環(huán)境的數(shù)量。因此,智能客戶(hù)端可以采取許多不同的形式和風(fēng)格。根據(jù)智能客戶(hù)端應(yīng)用程序所面向的平臺(tái),可以將這些形式劃分為三大類(lèi):

          ?

          Windows 智能客戶(hù)端應(yīng)用程序

          ?

          Office 智能客戶(hù)端應(yīng)用程序

          ?

          移動(dòng)智能客戶(hù)端應(yīng)用程序

          智能客戶(hù)端應(yīng)用程序面向上述一種或多種平臺(tái)是很常見(jiàn)的情況,具體取決于用戶(hù)的角色以及需要的功能。這種靈活性是智能客戶(hù)端應(yīng)用程序的主要長(zhǎng)處之一。

          本指南的其余部分將重點(diǎn)討論所有三種類(lèi)型的智能客戶(hù)端應(yīng)用程序所共有的問(wèn)題,而不是詳細(xì)解釋影響個(gè)別類(lèi)別的問(wèn)題。但是,依次對(duì)各個(gè)類(lèi)型進(jìn)行簡(jiǎn)要分析,以便您可以確定哪種風(fēng)格的應(yīng)用程序最適合您的情況,這將是很有用的。

          Windows 智能客戶(hù)端應(yīng)用程序

          當(dāng)您想到胖客戶(hù)端應(yīng)用程序時(shí),您通常可能會(huì)想到使用可用的系統(tǒng)資源并且提供內(nèi)容豐富的用戶(hù)界面的桌面應(yīng)用程序。面向 Windows 的智能客戶(hù)端應(yīng)用程序是在傳統(tǒng)胖客戶(hù)端應(yīng)用程序的基礎(chǔ)上發(fā)展而來(lái)的,并且提供特定的面向特殊目標(biāo)的功能。

          這些種類(lèi)的應(yīng)用程序通常使用 Windows 窗體來(lái)提供熟悉的 Windows 風(fēng)格的用戶(hù)界面,并由應(yīng)用程序本身提供大部分功能,而且不依賴(lài)于其他應(yīng)用程序來(lái)提供主用戶(hù)界面。這樣的智能客戶(hù)端既可能包括通過(guò) HTTP 部署的簡(jiǎn)單應(yīng)用程序,也可能包括非常復(fù)雜的應(yīng)用程序。

          Windows 智能客戶(hù)端應(yīng)用程序適合于需要將應(yīng)用程序作為熟悉的桌面類(lèi)型應(yīng)用程序進(jìn)行部署和訪(fǎng)問(wèn)的情況。這些類(lèi)型的應(yīng)用程序通常由其自身提供其大部分功能,但是在適當(dāng)?shù)臅r(shí)候可以與其他應(yīng)用程序集成或者協(xié)調(diào)其他應(yīng)用程序。它們提供針對(duì)特定任務(wù)進(jìn)行調(diào)整的應(yīng)用程序功能,以提供特定的或高性能的處理或圖形能力。

          Windows 智能客戶(hù)端應(yīng)用程序通常最適合于在桌面 PC、膝上型 PC 或平板 PC 上運(yùn)行的應(yīng)用程序。此外,它們通常不會(huì)提供與特定文檔或文檔類(lèi)型緊密關(guān)聯(lián)的功能。

          可以在各種各樣的場(chǎng)合下使用這些種類(lèi)的 Windows 智能客戶(hù)端應(yīng)用程序,例如作為 LOB、財(cái)務(wù)、科學(xué)或協(xié)作應(yīng)用程序使用。這些種類(lèi)的應(yīng)用程序的示例有 Microsoft Money 以及 Microsoft Outlook? 消息處理和協(xié)作客戶(hù)端。

          Office 智能客戶(hù)端應(yīng)用程序

          Microsoft Office System 2003 為您提供了用來(lái)生成智能客戶(hù)端應(yīng)用程序(尤其是在企業(yè)設(shè)置中)的有用平臺(tái)。通過(guò) Office 智能客戶(hù)端解決方案,您可以將通過(guò) Web 服務(wù)訪(fǎng)問(wèn)的數(shù)據(jù)源與 Word 2003、Excel 2003、InfoPath 2003 或其他 Office應(yīng)用程序的功能集成起來(lái),以開(kāi)發(fā)智能客戶(hù)端解決方案。

          這樣的 Office 智能客戶(hù)端應(yīng)用程序可以成為組織的信息管理周期的集成部分,而不只是文檔數(shù)據(jù)的靜態(tài)容器。當(dāng)用戶(hù)在文檔內(nèi)工作時(shí),它們可以提供上下文相關(guān)的數(shù)據(jù),以及可以將 Web 服務(wù)公開(kāi)的數(shù)據(jù)轉(zhuǎn)換為有用信息的工作流和任務(wù)指導(dǎo)、數(shù)據(jù)分析、協(xié)作、報(bào)告和呈現(xiàn)功能。

          Microsoft Office 支持 XML,并且可以將該數(shù)據(jù)與文檔的其他方面分開(kāi),以便它可以由其他應(yīng)用程序重新使用。因?yàn)?Microsoft Office 中的應(yīng)用程序數(shù)據(jù)可以由多個(gè)應(yīng)用程序中相同的客戶(hù)定義 XML 架構(gòu)進(jìn)行說(shuō)明,所以開(kāi)發(fā)人員可以將這些數(shù)據(jù)集成到智能客戶(hù)端應(yīng)用程序中。

          Microsoft Office 2003 具有許多用于生成智能客戶(hù)端解決方案的重要功能和選項(xiàng)。這些功能和選項(xiàng)包括:

          ?

          智能標(biāo)記。智能標(biāo)記為應(yīng)用程序提供一種方法,可以為用戶(hù)提供與文檔內(nèi)容有關(guān)的上下文相關(guān)數(shù)據(jù),用戶(hù)在文檔內(nèi)工作時(shí),可以通過(guò)該方法容易地查看和使用相關(guān)信息。例如,使用智能標(biāo)記,可以在文檔內(nèi)引用客戶(hù)時(shí)提供相應(yīng)客戶(hù)的帳戶(hù)狀態(tài),或者可以在鍵入訂單 ID 時(shí)提供訂單狀態(tài)信息。這種上下文相關(guān)的反饋使用戶(hù)可以在工作時(shí)進(jìn)行更為明智的決策。

          ?

          智能文檔。智能文檔為用戶(hù)提供了更為強(qiáng)大的與文檔和業(yè)務(wù) Web 服務(wù)進(jìn)行交互的方法。智能文檔是 Word 2003 和 Excel 2003(它們具有基礎(chǔ) XML 結(jié)構(gòu)和自定義的任務(wù)窗格)的一種新的解決方案模型。可以使用該任務(wù)窗格向用戶(hù)顯示上下文信息、任務(wù)、工具、后續(xù)步驟以及其他相關(guān)信息。用戶(hù)能夠通過(guò)與該任務(wù)窗格交互來(lái)啟動(dòng)其他操作和任務(wù),從而可以構(gòu)建綜合性業(yè)務(wù)解決方案。

          ?

          適用于 Microsoft Office System Microsoft Visual Studio_ 工具。該工具套件使開(kāi)發(fā)人員能夠通過(guò)使用 Microsoft Visual Studio .NET 2003 開(kāi)發(fā)系統(tǒng)來(lái)創(chuàng)建托管代碼 Office 智能客戶(hù)端應(yīng)用程序。開(kāi)發(fā)人員可以將文檔解決方案與基礎(chǔ)代碼分開(kāi)(與以前的包含帶有自定義邏輯的 Visual Basic for Applications 宏的智能客戶(hù)端模型相比,這是一種替代解決方案)。通過(guò)將托管代碼與 Microsoft Office 一起使用,開(kāi)發(fā)人員可以獲得更多為智能客戶(hù)端解決方案創(chuàng)建、部署和管理更新的有效選項(xiàng)。

          ?

          Microsoft Office InfoPath? 2003。InfoPath 2003 是能夠使用類(lèi)似于表單的界面從用戶(hù)那里收集結(jié)構(gòu)性數(shù)據(jù)的應(yīng)用程序。InfoPath 2003 提供了對(duì) XML Web 服務(wù)(一種基于表單的用戶(hù)界面)的支持,以及對(duì)標(biāo)準(zhǔn)技術(shù)(如 WSDL 和 UDDI)的支持。InfoPath 2003 支持有限的脫機(jī)使用,方法是允許用戶(hù)在脫機(jī)時(shí)與表單進(jìn)行交互,然后允許用戶(hù)在聯(lián)機(jī)時(shí)將該表單轉(zhuǎn)發(fā)給 Web 服務(wù)。

          本指南并不試圖涉及特定于 Office 智能客戶(hù)端的所有問(wèn)題,但所涉及的大多數(shù)主題都完全與上面討論的智能客戶(hù)端應(yīng)用程序有關(guān)。

          移動(dòng)智能客戶(hù)端應(yīng)用程序

          移動(dòng)智能客戶(hù)端是在智能設(shè)備上運(yùn)行的應(yīng)用程序,這些智能設(shè)備包括 Pocket PC、Smartphone 以及其他超小型臺(tái)式設(shè)備(如機(jī)頂盒)。這些應(yīng)用程序是使用 .NET 框架壓縮版(它是完整 .NET 框架的子集)開(kāi)發(fā)的。

          .NET 框架壓縮版具有完整 .NET 框架的許多功能,支持 XML,并且消耗 Web 服務(wù)。它被進(jìn)行了優(yōu)化以便在超小型臺(tái)式設(shè)備上使用,并且它包含用于開(kāi)發(fā)用戶(hù)界面的 Windows 窗體設(shè)計(jì)器。

          通過(guò)使用 Visual Studio .NET 智能設(shè)備項(xiàng)目,您可以開(kāi)發(fā)能夠在 .NET 框架壓縮版上運(yùn)行的智能客戶(hù)端。采用這一方法,您可以通過(guò)在超小型臺(tái)式設(shè)備的模擬器上使用 Visual Studio .NET 來(lái)開(kāi)發(fā)、測(cè)試和調(diào)試應(yīng)用程序。模擬器的使用大大加快了這些類(lèi)型應(yīng)用程序的開(kāi)發(fā)和測(cè)試速度。

          移動(dòng)智能客戶(hù)端應(yīng)用程序通常用于提供對(duì)重要數(shù)據(jù)和服務(wù)的移動(dòng)訪(fǎng)問(wèn),或者在用戶(hù)處于移動(dòng)狀態(tài)時(shí)收集和整合數(shù)據(jù)。這些類(lèi)型應(yīng)用程序的示例有保險(xiǎn)和金融數(shù)據(jù)收集應(yīng)用程序、庫(kù)存管理應(yīng)用程序和個(gè)人工作效率管理應(yīng)用程序。

          本指南并未特地集中討論移動(dòng)智能客戶(hù)端應(yīng)用程序,盡管所討論的許多體系結(jié)構(gòu)問(wèn)題和解決方案都與智能設(shè)備相關(guān)。

          返回頁(yè)首返回頁(yè)首

          對(duì)智能客戶(hù)端和瘦客戶(hù)端進(jìn)行取舍

          要針對(duì)您的情況選擇正確的應(yīng)用程序體系結(jié)構(gòu),必須考慮許多因素。要確定智能客戶(hù)端方法是否最適合您的應(yīng)用程序,請(qǐng)認(rèn)真考慮您當(dāng)前和將來(lái)業(yè)務(wù)應(yīng)用程序的需要。如果您的應(yīng)用程序基于不適合的體系結(jié)構(gòu),則它可能無(wú)法滿(mǎn)足用戶(hù)和整個(gè)企業(yè)的要求和期望。如果以后更改體系結(jié)構(gòu)以滿(mǎn)足新的要求或者利用新的機(jī)遇,則可能要付出極為高昂的代價(jià)。

          如果您需要向各種外部受眾提供面向外界的應(yīng)用程序,則瘦客戶(hù)端體系結(jié)構(gòu)通常最為適當(dāng);而對(duì)于需要與其他客戶(hù)端應(yīng)用程序或硬件集成或者對(duì)它們進(jìn)行協(xié)調(diào),或者需要脫機(jī)工作或通過(guò)響應(yīng)迅速的用戶(hù)界面提供特定高性能功能的內(nèi)部應(yīng)用程序而言,智能客戶(hù)端體系結(jié)構(gòu)通常最為適當(dāng)。

          實(shí)際上,這兩種方法在很大程度上互相重疊,而且每種方法都具有明顯的優(yōu)點(diǎn)和缺點(diǎn)。您只有在認(rèn)真考慮您的要求并且了解如何在您所處的場(chǎng)合下應(yīng)用每種方法之后,才能夠選擇正確的方法。您可以使用表 1.1 來(lái)幫助您對(duì)智能客戶(hù)端和瘦客戶(hù)端體系結(jié)構(gòu)進(jìn)行取舍。

          1.1 瘦客戶(hù)端和智能客戶(hù)端的特點(diǎn)

          特點(diǎn) 瘦客戶(hù)端 智能客戶(hù)端

          提供內(nèi)容豐富的用戶(hù)界面

          可以,但難以開(kāi)發(fā)、測(cè)試和調(diào)試。通常將應(yīng)用程序與單個(gè)瀏覽器聯(lián)系起來(lái)。

          是。更易于開(kāi)發(fā)、測(cè)試和調(diào)試。

          可以利用本地計(jì)算機(jī)上的硬件資源

          是,但只能通過(guò) COM 組件使用。

          可以與其他本地應(yīng)用程序交互

          可以多線(xiàn)程化

          可以脫機(jī)工作

          在低帶寬和高延遲環(huán)境中可以很好地執(zhí)行。

          易于部署

          不一定。困難程度取決于應(yīng)用程序要求。

          低維護(hù)和更改管理成本

          不一定。成本取決于應(yīng)用程序要求。

          可以部署到具有不同功能的多種客戶(hù)端上。

          是,盡管更復(fù)雜的瘦客戶(hù)端可能要求單個(gè)瀏覽器。

          是。可以在支持 .NET 框架(包括 .NET 框架壓縮版)的任何平臺(tái)上部署。

          返回頁(yè)首返回頁(yè)首

          智能客戶(hù)端體系結(jié)構(gòu)難題

          智能客戶(hù)端的體系結(jié)構(gòu)難題不同于瘦客戶(hù)端,并且您需要在您的應(yīng)用程序設(shè)計(jì)中予以考慮。智能客戶(hù)端應(yīng)用程序具有顯著的優(yōu)點(diǎn),但是您只有在適當(dāng)?shù)亟鉀Q這些難題之后才能實(shí)現(xiàn)這些優(yōu)點(diǎn)。

          通過(guò)智能客戶(hù)端可以將數(shù)據(jù)和邏輯分發(fā)到客戶(hù)計(jì)算機(jī),而瘦客戶(hù)端則傾向于將數(shù)據(jù)和邏輯集中存放在 Web 服務(wù)器和其他后端服務(wù)中。盡管可以通過(guò)智能客戶(hù)端方法使應(yīng)用程序變得更加高效,并且不需要與服務(wù)器進(jìn)行往返通訊以確定后續(xù)步驟,但您需要考慮到應(yīng)用程序及其數(shù)據(jù)現(xiàn)在比瘦客戶(hù)端應(yīng)用程序分布得更為廣泛,并且相應(yīng)地修改您的設(shè)計(jì)。

          如果您要在客戶(hù)端上實(shí)現(xiàn)業(yè)務(wù)規(guī)則,您將需要在必要時(shí)更新這些規(guī)則,而不是更新整個(gè)應(yīng)用程序。這可能意味著您需要使用不同的機(jī)制來(lái)分別更新該應(yīng)用程序以及更新該應(yīng)用程序內(nèi)部的業(yè)務(wù)規(guī)則。

          通過(guò)在客戶(hù)端上緩存數(shù)據(jù),您可以顯著改善應(yīng)用程序的性能和可用性,但您必須確保適當(dāng)?shù)厮⑿聰?shù)據(jù)并且不會(huì)使用陳舊的數(shù)據(jù)。因?yàn)樵S多用戶(hù)可以訪(fǎng)問(wèn)和使用相同的數(shù)據(jù),您還必須考慮數(shù)據(jù)并發(fā)的影響。您的應(yīng)用程序必須能夠處理出現(xiàn)的數(shù)據(jù)沖突或一致問(wèn)題,因?yàn)閼?yīng)用程序現(xiàn)在分布得更為廣泛,并且可以脫機(jī)操作。第 3 章:建立連接詳細(xì)討論了這些問(wèn)題。

          .NET 框架在智能客戶(hù)端應(yīng)用程序的宿主方式方面提供了極大的靈活性。應(yīng)用程序可以作為傳統(tǒng)桌面應(yīng)用程序運(yùn)行,還可以宿主在 Office 或 Microsoft Internet Explorer 內(nèi)。也可以進(jìn)行許多種組合。例如,Windows 窗體應(yīng)用程序可以宿主 Internet Explorer 或 Office 組件,并且任何宿主都可以包含任何其他宿主。

          您可以將不穩(wěn)定的應(yīng)用程序邏輯(例如,控制大訂單折扣的業(yè)務(wù)規(guī)則)結(jié)合到根據(jù)需要通過(guò) HTTP 下載的程序集中。這樣做消除了在開(kāi)發(fā)新應(yīng)用程序邏輯時(shí)部署新版本客戶(hù)端應(yīng)用程序的需要。您可以使用與附加(或不常使用)應(yīng)用程序功能相同的模型,以便使初始應(yīng)用程序規(guī)模保持最小,并且根據(jù)需要安裝附加功能。

          您可以選擇將您的智能客戶(hù)端作為復(fù)合應(yīng)用程序進(jìn)行部署,此時(shí)許多應(yīng)用程序組合起來(lái)構(gòu)成一個(gè)統(tǒng)一的解決方案。可以通過(guò)耦合桌面應(yīng)用程序,或者通過(guò)提供一般性的外殼應(yīng)用程序以容納多個(gè)共同構(gòu)成解決方案的輕型應(yīng)用程序,來(lái)構(gòu)成這樣的解決方案。

          當(dāng)用戶(hù)必須訪(fǎng)問(wèn)許多應(yīng)用程序以完成其工作時(shí),復(fù)合應(yīng)用程序尤其有用。例如,呼叫中心中的客戶(hù)服務(wù)代理通常必須使用許多 LOB 應(yīng)用程序,包括桌面應(yīng)用程序、基于瀏覽器的應(yīng)用程序以及基于終端的應(yīng)用程序。所有這些 LOB 應(yīng)用程序都可以宿主到在它們之間提供集成的普通 Windows 窗體應(yīng)用程序中,從而大大簡(jiǎn)化用戶(hù)的工作,最為重要的是減少花在特定呼叫上的時(shí)間。通過(guò)提供普通外殼來(lái)宿主這些 LOB 應(yīng)用程序,可以在不同的解決方案中開(kāi)發(fā)、測(cè)試和重用通用基礎(chǔ)結(jié)構(gòu)功能,如安全性、部署、窗口管理、應(yīng)用程序集成、審核等等,從而使 LOB 應(yīng)用程序的開(kāi)發(fā)人員能夠?qū)⒕杏跇I(yè)務(wù)功能。

          面向服務(wù)的體系結(jié)構(gòu)的出現(xiàn)意味著您可以設(shè)計(jì)智能客戶(hù)端來(lái)利用網(wǎng)絡(luò)服務(wù)。所有此類(lèi)服務(wù)都是以行業(yè)標(biāo)準(zhǔn)方式提供的,這就改善了互操作性、開(kāi)發(fā)人員工具支持以及在智能客戶(hù)端應(yīng)用程序中內(nèi)置新功能的容易程度。

          返回頁(yè)首返回頁(yè)首

          本指南的范圍

          本指南重點(diǎn)討論圍繞建立在 Microsoft .NET 技術(shù)基礎(chǔ)之上的智能客戶(hù)端應(yīng)用程序的體系結(jié)構(gòu)和設(shè)計(jì)問(wèn)題。它假設(shè)您要使用 Microsoft .NET 框架生成您的智能客戶(hù)端應(yīng)用程序,并且使用 Microsoft .NET Windows 窗體來(lái)生成任何用戶(hù)界面。

          本指南不會(huì)深入討論實(shí)現(xiàn)問(wèn)題。具體說(shuō)來(lái),本指南不會(huì)討論在 Microsoft Office 2003 或移動(dòng)設(shè)備上實(shí)現(xiàn)智能客戶(hù)端應(yīng)用程序的細(xì)節(jié),盡管本指南所討論的許多問(wèn)題都與智能客戶(hù)端應(yīng)用程序有關(guān) — 無(wú)論它們是獨(dú)立的 Windows 窗體應(yīng)用程序、Office 應(yīng)用程序還是移動(dòng)設(shè)備應(yīng)用程序。

          返回頁(yè)首返回頁(yè)首

          如何使用本指南

          本指南適合于以下面兩種方式之一使用。首先,本指南具有很好的結(jié)構(gòu)體系,對(duì)于您在生成智能客戶(hù)端應(yīng)用程序時(shí)可能面臨的體系結(jié)構(gòu)和設(shè)計(jì)問(wèn)題提供了相當(dāng)全面的概述。通過(guò)從頭到尾閱讀本指南,您將對(duì)可能面臨的問(wèn)題以及克服這些問(wèn)題的辦法有一個(gè)最完整的了解。

          或者,如果您喜歡深入了解圍繞特定主題的問(wèn)題,則可以單獨(dú)閱讀相關(guān)章節(jié),以學(xué)習(xí)對(duì)相關(guān)問(wèn)題的完備討論。

          返回頁(yè)首返回頁(yè)首

          本指南面向的讀者

          本指南適合于要開(kāi)發(fā)建立在 Microsoft .NET 技術(shù)基礎(chǔ)之上的智能客戶(hù)端應(yīng)用程序的軟件架構(gòu)師和開(kāi)發(fā)人員。

          前提條件

          要從本指南獲得最大的收獲,您應(yīng)該了解下列技術(shù)和概念:

          ?

          Microsoft .NET 框架

          ?

          Microsoft Visual Studio .NET 2003 開(kāi)發(fā)工具

          ?

          Microsoft? Visual C#? 開(kāi)發(fā)工具

          ?

          可擴(kuò)展標(biāo)記語(yǔ)言 (XML)

          ?

          消息隊(duì)列 (MSMQ)

          ?

          多線(xiàn)程處理

          ?

          關(guān)系數(shù)據(jù)庫(kù)操作

          ?

          分布式應(yīng)用程序設(shè)計(jì)和體系結(jié)構(gòu)

          注 有關(guān)分布式應(yīng)用程序設(shè)計(jì)和體系結(jié)構(gòu)的詳細(xì)信息,請(qǐng)參閱 http://msdn.microsoft.com/library/en-us/vsent7/html/vxoriDesignConsiderationsForDistributedApplications.asphttp://msdn.microsoft.com/library/en-us/vsent7/html/vxoriplanningdistributedapplications.asp。

          返回頁(yè)首返回頁(yè)首

          章節(jié)概要

          本指南包含下列幾章,每一章都討論與智能客戶(hù)端相關(guān)的特定問(wèn)題。您可以根據(jù)需要閱讀各章的全部或部分內(nèi)容。

          第 1 章:簡(jiǎn)介

          本章對(duì)智能客戶(hù)端應(yīng)用程序進(jìn)行了高級(jí)介紹,并描述了它們的一些基本性質(zhì)和優(yōu)點(diǎn)。然后,本章討論了一些高級(jí)體系結(jié)構(gòu)問(wèn)題,并且提供了相關(guān)指導(dǎo)以幫助您確定智能客戶(hù)端體系結(jié)構(gòu)是否適合于您的應(yīng)用程序。

          第 2 章:處理數(shù)據(jù)

          在智能客戶(hù)端中,可以在客戶(hù)端上使用應(yīng)用程序數(shù)據(jù)。需要對(duì)這些數(shù)據(jù)進(jìn)行適當(dāng)?shù)墓芾?,以確保其有效、一致和安全。如果這些數(shù)據(jù)是由服務(wù)器應(yīng)用程序提供的,則智能客戶(hù)端應(yīng)用程序可以緩存這些數(shù)據(jù)來(lái)改善性能或者支持脫機(jī)使用。如果智能客戶(hù)端應(yīng)用程序提供在本地修改數(shù)據(jù)的能力,則必須在以后將客戶(hù)端更改與服務(wù)器端應(yīng)用程序進(jìn)行同步。本章分析在客戶(hù)端處理數(shù)據(jù)時(shí)的各種注意事項(xiàng),包括數(shù)據(jù)緩存、數(shù)據(jù)并發(fā)以及數(shù)據(jù)集和 Windows 窗體數(shù)據(jù)綁定的使用。

          第 3 章:建立連接

          智能客戶(hù)端應(yīng)用程序通常構(gòu)成更大的分布式應(yīng)用程序的一部分,因此它們會(huì)頻繁連接到網(wǎng)絡(luò)并且與網(wǎng)絡(luò)資源(如 Web 服務(wù))以及客戶(hù)計(jì)算機(jī)本身上的組件或進(jìn)程交互。本章介紹了您的應(yīng)用程序可以用來(lái)連接和使用這些資源的許多方法,并且討論了每種方法的優(yōu)點(diǎn)和缺點(diǎn)。

          第 4 章:偶爾連接的智能客戶(hù)端

          本章討論的問(wèn)題涉及到您在設(shè)計(jì)和生成偶爾連接到網(wǎng)絡(luò)的智能客戶(hù)端應(yīng)用程序時(shí)可能面臨的問(wèn)題。本章討論了連接性的概念,介紹了兩種實(shí)現(xiàn)脫機(jī)功能的主要方法,并且討論了您在使應(yīng)用程序可供脫機(jī)使用時(shí)需要考慮的一些問(wèn)題。

          第 5 章:安全性注意事項(xiàng)

          本章討論了智能客戶(hù)端安全性的問(wèn)題。智能客戶(hù)端將邏輯和數(shù)據(jù)分布到客戶(hù)計(jì)算機(jī)上;因此,所涉及到的安全性問(wèn)題與瘦客戶(hù)端應(yīng)用程序不同,后者的數(shù)據(jù)和邏輯被更多地限制在服務(wù)器中。本章討論智能客戶(hù)端應(yīng)用程序中的數(shù)據(jù)安全性、身份驗(yàn)證、授權(quán)以及代碼訪(fǎng)問(wèn)安全性的作用。

          第 6 章:使用多個(gè)線(xiàn)程

          本章討論與在智能客戶(hù)端應(yīng)用程序中使用多個(gè)線(xiàn)程相關(guān)的問(wèn)題。要最大限度地提高智能客戶(hù)端應(yīng)用程序的響應(yīng)性,您需要認(rèn)真考慮如何以及何時(shí)使用多個(gè)線(xiàn)程。線(xiàn)程可以顯著改善應(yīng)用程序的可用性和性能,但當(dāng)您確定線(xiàn)程將如何與用戶(hù)界面交互時(shí),需要進(jìn)行非常認(rèn)真的考慮。

          第 7 章:部署和更新智能客戶(hù)端

          智能客戶(hù)端不會(huì)受到傳統(tǒng)上與胖客戶(hù)端應(yīng)用程序相關(guān)聯(lián)的部署和更新問(wèn)題的困擾。.NET 框架和 Windows 平臺(tái)所提供的功能可幫助您避免許多與傳統(tǒng)胖客戶(hù)端部署相關(guān)聯(lián)的問(wèn)題。本章介紹如何最好地使用這些功能,以及如何對(duì)可用的部署和更新機(jī)制進(jìn)行取舍。

          返回頁(yè)首返回頁(yè)首

          小結(jié)

          瘦客戶(hù)端和智能客戶(hù)端都可用來(lái)向您的組織提供 LOB 應(yīng)用程序。但是,每種類(lèi)型的客戶(hù)端都具有其優(yōu)點(diǎn)和缺點(diǎn)。在設(shè)計(jì)應(yīng)用程序時(shí),您需要認(rèn)真考慮您所處環(huán)境的具體細(xì)節(jié),然后才能確定哪種客戶(hù)端更為合適。本章已經(jīng)介紹了智能客戶(hù)端的發(fā)展歷史以及與它們相關(guān)聯(lián)的功能?,F(xiàn)在,您可以使用本指南的其余部分來(lái)幫助您確定如何在您自己的組織中設(shè)計(jì)和實(shí)現(xiàn)智能客戶(hù)端。

          返回頁(yè)首返回頁(yè)首

          更多信息

          下列資源提供了有關(guān) patterns & practices、智能客戶(hù)端以及您可以用于查找特定指導(dǎo)的其他應(yīng)用程序塊的更多信息。

          ?

          patterns & practices Web 站點(diǎn),位于: http://www.microsoft.com/resources/practices/default.mspx

          ?

          Patterns and Practices 庫(kù)

          ?

          MSDN? 上的“Overview of Smart Client Applications in the Microsoft Office System”,位于:http://msdn.microsoft.com/library/en-us/odc_ip2003_ta/html/odc_IPOffice2003SmartClient.asp

          ?

          MSDN 上的“Application Architecture for .NET:Designing Applications and Services”,位于:http://msdn.microsoft.com/library/en-us/dnbda/html/distapp.asp

          轉(zhuǎn)到原英文頁(yè)面

          posted on 2006-02-10 14:49 TrampEagle 閱讀(519) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): 技術(shù)文摘
          主站蜘蛛池模板: 怀集县| 崇左市| 莲花县| 红原县| 五华县| 当涂县| 积石山| 莲花县| 拉孜县| 庄浪县| 长寿区| 云阳县| 揭西县| 建宁县| 柳河县| 水城县| 雷州市| 新沂市| 军事| 六枝特区| 江孜县| 安图县| 乐业县| 博客| 诸暨市| 汕头市| 阿拉尔市| 孝义市| 昌乐县| 汝城县| 静海县| 肇州县| 潮安县| 遂宁市| 马尔康县| 治多县| 揭东县| 常宁市| 胶南市| 永嘉县| 高邮市|