經(jīng)過(guò)設計,智能客戶(hù)端應用程序可以將胖客戶(hù)端應用程序的傳統優(yōu)點(diǎn)與瘦客戶(hù)端應用程序的可管理性?xún)?yōu)點(diǎn)結合起來(lái)。然而,要完全實(shí)現智能客戶(hù)端應用程序的優(yōu)點(diǎn),需要考慮許多體系結構和設計問(wèn)題。本指南描述了您在設計和實(shí)現智能客戶(hù)端應用程序時(shí)將面臨的體系結構和設計難題。它提供了有關(guān)如何克服這些難題的指導,從而使您能夠在盡可能短的時(shí)間內實(shí)現智能客戶(hù)端應用程序的優(yōu)點(diǎn)。
胖客戶(hù)端應用程序
在二十世紀九十年代中期,為 Microsoft® Windows® 操作系統開(kāi)發(fā)的胖客戶(hù)端應用程序的數量急劇增長(cháng)。設計這些客戶(hù)端的目的是利用本地硬件資源以及客戶(hù)端操作系統平臺的功能。
盡管許多上述應用程序的功能令人印象深刻,但它們都具有局限性。許多上述應用程序是獨立的并且在客戶(hù)計算機上工作,對它們的工作環(huán)境所知甚少或一無(wú)所知。該環(huán)境包括其他計算機和網(wǎng)絡(luò )上的任何服務(wù),以及用戶(hù)計算機上的任何其他應用程序。非常常見(jiàn)的情況是,應用程序之間的集成局限于使用 Windows 提供的剪切或復制并粘貼功能在應用程序之間傳輸少量的數據。
有一些有助于提高胖客戶(hù)端應用程序連接性的技術(shù)。例如,兩層應用程序使多個(gè)用戶(hù)可以訪(fǎng)問(wèn)駐留在網(wǎng)絡(luò )上的公用數據,而 DCOM 使應用程序可以具有更高的分布性。(就 DCOM 而言,不再將邏輯和狀態(tài)與客戶(hù)計算機相聯(lián)系,而是將其封裝在對象內,然后在多臺計算機中分布這些對象。)但是,連接的應用程序的開(kāi)發(fā)要復雜得多。隨著(zhù)這些分布式應用程序的規模和復雜性逐漸增加,將越來(lái)越難以維持客戶(hù)端應用程序及它們使用的服務(wù)之間的緊耦合。
盡管胖客戶(hù)端通常提供了高質(zhì)量、響應迅速的用戶(hù)體驗,并且具有良好的開(kāi)發(fā)人員和平臺支持,但它們非常難于部署和維護。隨著(zhù)應用程序和客戶(hù)端平臺的復雜性不斷增加,以可靠且安全的方式將應用程序部署到客戶(hù)計算機的難度也將不斷增加。如果部署了不兼容的共享組件或軟件庫,則一個(gè)應用程序可以很容易地破壞另一個(gè)應用程序,這種現象稱(chēng)為應用程序脆弱性。新版本的應用程序通常通過(guò)重新部署整個(gè)應用程序來(lái)提供,這可能使應用程序脆弱性問(wèn)題變得更加嚴重。
瘦客戶(hù)端應用程序
Internet 提供了傳統胖客戶(hù)端模型的替代模型,它解決了許多與應用程序部署和維護相關(guān)聯(lián)的問(wèn)題?;跒g覽器的瘦客戶(hù)端應用程序是在中央 Web 服務(wù)器上部署和更新的;因此,它們消除了將應用程序的任何部分顯式部署到客戶(hù)計算機并加以管理的必要性。
該模型使各個(gè)公司可以非常高效地將它們的應用程序公開(kāi)給規模龐大、多種多樣的外部受眾。因為瘦客戶(hù)端已被證明能夠高效地解決一些部署和可管理性問(wèn)題,所以它們現在用于向組織內的用戶(hù)提供對許多業(yè)務(wù)線(xiàn) (LOB) 應用程序的訪(fǎng)問(wèn),以及向客戶(hù)和合作伙伴提供對面向外界的應用程序的訪(fǎng)問(wèn)。盡管事實(shí)上這兩種用戶(hù)的需要和期望通常是根本不同的,也是如此。
瘦客戶(hù)端應用程序具有一些缺點(diǎn)。瀏覽器必須總是具有網(wǎng)絡(luò )連接。這意味著(zhù)移動(dòng)用戶(hù)在斷開(kāi)連接時(shí)將無(wú)法訪(fǎng)問(wèn)應用程序,因此當他們返回辦公室時(shí),必須重新輸入數據。而且,常用的應用程序功能(如拖放、撤消-重復以及上下文相關(guān)幫助)可能不可用,這可能降低應用程序的可用性。
因為應用程序的大部分邏輯和狀態(tài)位于服務(wù)器上,所以瘦客戶(hù)端會(huì )頻繁地向服務(wù)器發(fā)回數據和處理請求。瀏覽器必須等待響應到達,然后用戶(hù)才能繼續使用該應用程序;因此,該應用程序的響應速度通常要比胖客戶(hù)端應用程序慢得多。該問(wèn)題在低帶寬或高延遲的情況下被惡化了,并且產(chǎn)生的性能問(wèn)題可能導致應用程序可用性和用戶(hù)效率大幅度下降。要求輸入大量數據以及/或者在多個(gè)窗口中頻繁導航的 LOB 應用程序尤其會(huì )受到這一問(wèn)題的影響。
智能客戶(hù)端應用程序
經(jīng)過(guò)設計,智能客戶(hù)端應用程序可以將胖客戶(hù)端應用程序的優(yōu)點(diǎn)與瘦客戶(hù)端應用程序的部署和可管理性?xún)?yōu)點(diǎn)結合起來(lái),盡管這兩種方法之間的平衡的準確性質(zhì)取決于確切的情況。
智能客戶(hù)端應用程序通常具有形形色色的要求,因此在設計和實(shí)現方面會(huì )有極大的差異。但是,所有智能客戶(hù)端都具有下列部分或全部特征:
• | 利用本地資源 |
• | 利用網(wǎng)絡(luò )資源 |
• | 支持偶爾連接的用戶(hù) |
• | 提供智能安裝和更新 |
• | 提供客戶(hù)端設備靈活性 |
許多應用程序不需要具有上述所有特征。當您設計您的智能客戶(hù)端時(shí),將需要仔細考慮您的應用程序方案,并且決定您的智能客戶(hù)端應用程序要求具備上述哪些特征。要將上述所有特征合并到您的應用程序中,將需要進(jìn)行非常認真的計劃和設計,并且在很多情況下您將需要大量的實(shí)現資源。
注 .NET 框架可以幫助您實(shí)現智能客戶(hù)端應用程序的許多特征。該框架提供了具備自我描述能力且牢固綁定的程序集,并且支持單獨和并列安裝應用程序的多個(gè)版本,從而有助于減少與胖客戶(hù)端相關(guān)聯(lián)的應用程序部署和脆弱性問(wèn)題。.NET 框架基類(lèi)庫為與 Web 服務(wù)進(jìn)行交互提供了廣泛的支持,并且提供了 Windows 窗體。通過(guò)使用公共語(yǔ)言運行庫 (CLR),您可以利用任何受到 .NET 支持的語(yǔ)言來(lái)開(kāi)發(fā)智能客戶(hù)端。
使用本地資源
設計良好的智能客戶(hù)端應用程序最大限度地利用了代碼和數據部署在客戶(hù)端上并且在本地執行和訪(fǎng)問(wèn)這一事實(shí)。它為應用程序提供了內容豐富且響應迅速的用戶(hù)界面,以及強大的客戶(hù)端處理能力。例如,它可能使用戶(hù)能夠執行復雜的數據操作、可視化、搜索或排序操作。
智能客戶(hù)端可以利用客戶(hù)端硬件資源(如電話(huà)或條碼讀取器)以及其他軟件和應用程序。這使它們非常適合于解決瘦客戶(hù)端應用程序(如銷(xiāo)售點(diǎn)終端應用程序)無(wú)法很好解決的問(wèn)題。智能客戶(hù)端還可以利用本地軟件(如 Microsoft Office 應用程序)或客戶(hù)計算機上安裝的任何 LOB 應用程序。通過(guò)創(chuàng )建能夠與多個(gè) LOB 應用程序集成并對這些應用程序進(jìn)行協(xié)調的解決方案,您的用戶(hù)可以更為有效地工作,進(jìn)行更好的決策,并減少數據輸入錯誤。此類(lèi)解決方案還可以使您的應用程序更加緊密地與用戶(hù)的工作環(huán)境集成(例如,通過(guò)采用自定義的或熟悉的用戶(hù)界面),從而降低培訓成本。
可以通過(guò)智能客戶(hù)端應用程序集成或協(xié)調其他客戶(hù)端應用程序,以便提供一致且高效的總體解決方案。這些應用程序還應該了解正在使用應用程序的上下文,并且應該適應該上下文以盡可能地幫助用戶(hù);例如,通過(guò)根據用戶(hù)的使用模式或角色搶先緩存適當且有用的數據。
通過(guò)最大限度地使用本地資源以及將本地資源集成到您的智能客戶(hù)端應用程序,可以使您的應用程序更好、更有效地使用已經(jīng)提供給您的硬件。非常常見(jiàn)的情況是,處理能力、內存和高級圖形功能沒(méi)有得到利用。使用客戶(hù)計算機上的資源還可以減少服務(wù)器端硬件要求。
使用網(wǎng)絡(luò )資源
智能客戶(hù)端可以通過(guò)網(wǎng)絡(luò )消耗和使用不同的服務(wù)和數據。它們是從許多不同的源檢索數據的有效方式,并且可以設計為對數據進(jìn)行分析或整合,從而使用戶(hù)能夠進(jìn)行更為有效和明智的決策。例如,智能客戶(hù)端可以使用映射服務(wù)來(lái)提供有關(guān)地點(diǎn)和駕駛方向的詳細信息。
智能客戶(hù)端應用程序應該盡可能地連接,并且應該利用可以通過(guò)網(wǎng)絡(luò )使用的資源和服務(wù)。它們不應該是獨立的應用程序,并且應該總是構成更大的分布式解決方案的一部分。智能客戶(hù)端應用程序起碼應該使用有助于維護該應用程序以及提供部署和更新服務(wù)的集中式服務(wù)。
智能客戶(hù)端應用程序的連接性質(zhì)使其可以提供有價(jià)值的數據整合、分析和轉換服務(wù)。它們使用戶(hù)可以實(shí)時(shí)地或者在一段時(shí)間內協(xié)作完成任務(wù)。在許多情況下,智能客戶(hù)端應用程序可以向用戶(hù)提供類(lèi)似于門(mén)戶(hù)的功能,從而將完全不同的數據和服務(wù)加以協(xié)調并集成到總體解決方案中。
支持偶爾連接的用戶(hù)
可以將智能客戶(hù)端設計為向偶爾連接到網(wǎng)絡(luò )的用戶(hù)提供功能,從而使用戶(hù)可以在明確脫機、使用低帶寬或高延遲網(wǎng)絡(luò ),或者連接時(shí)斷時(shí)續的情況下繼續高效地工作。對于移動(dòng)應用程序,智能客戶(hù)端還可以?xún)?yōu)化網(wǎng)絡(luò )帶寬 — 例如,通過(guò)將請求批量發(fā)送到服務(wù)器,以便更好地使用代價(jià)昂貴的連接。
即使當客戶(hù)端大多數時(shí)間都連接到網(wǎng)絡(luò )時(shí),智能客戶(hù)端應用程序也可通過(guò)以智能方式緩存數據和管理連接來(lái)改善性能和可用性。例如,在低帶寬或高延遲環(huán)境中,智能客戶(hù)端應用程序可以用特殊的方式管理連接,即不損害應用程序的可用性和響應性,并且用戶(hù)可以繼續高效地工作。
通過(guò)使用戶(hù)能夠在斷開(kāi)連接或只偶爾連接的情況下工作,提高了用戶(hù)的工作效率和滿(mǎn)意度。智能客戶(hù)端應用程序應該致力于在脫機時(shí)提供盡可能多的功能。
提供智能安裝和更新
傳統胖客戶(hù)端所具有的一些最大的問(wèn)題發(fā)生在部署或更新應用程序的時(shí)候。許多胖客戶(hù)端應用程序具有大量復雜的安裝要求,并且可能通過(guò)注冊組件以及/或者在公共位置安裝 DLL 來(lái)共享代碼,從而導致應用程序脆弱性和更新困難。
可以對智能客戶(hù)端應用程序進(jìn)行設計,以使其按照遠比傳統胖客戶(hù)端應用程序更智能和靈活的方式來(lái)管理它們的部署和更新。它們可以避免上述常見(jiàn)問(wèn)題,從而有助于減少應用程序的管理成本。
有許多部署智能客戶(hù)端的不同方式。這些方式包括:簡(jiǎn)單地將文件復制到本地計算機;使用非接觸式部署自動(dòng)從中央服務(wù)器下載代碼;或者使用企業(yè)推技術(shù)如 Microsoft Systems Management Server (SMS) 來(lái)部署 Windows Installer 軟件包。您選擇的方法將依賴(lài)于您的特定情況。
智能客戶(hù)端應用程序可以在其運行時(shí)或位于后臺時(shí)對自身進(jìn)行自動(dòng)更新。這一功能使其可以逐個(gè)角色地進(jìn)行更新;以分階段的方式更新,從而可以將應用程序推介給先導小組或受限的用戶(hù)組;或者按照制定的時(shí)間表更新。
.NET 框架使您可以對應用程序組件進(jìn)行強命名,這意味著(zhù)應用程序可以指定用來(lái)生成和測試其確切版本的組件,并通過(guò)這些版本的組件運行。.NET 框架使應用程序可以相互隔離,以便在安裝一個(gè)應用程序時(shí)不會(huì )破壞另一個(gè)應用程序,并且同一應用程序的多個(gè)版本可以并列部署。這些功能大大簡(jiǎn)化了應用程序部署,并且消除了許多與胖客戶(hù)端應用程序相關(guān)聯(lián)的應用程序脆弱性問(wèn)題。
提供客戶(hù)端設備靈活性
智能客戶(hù)端還可以提供靈活且可自定義的客戶(hù)端環(huán)境,從而使用戶(hù)可以將應用程序配置為支持他或她喜歡的工作方式。智能客戶(hù)端應用程序沒(méi)有被限制到桌面計算機或膝上型計算機。隨著(zhù)小規模設備的連接性和能力的增加,愈發(fā)需要能夠提供對多個(gè)設備上重要數據和服務(wù)的訪(fǎng)問(wèn)的有用客戶(hù)端應用程序。與 .NET 框架壓縮版一起,.NET 框架提供了一個(gè)可用來(lái)生成智能客戶(hù)端應用程序的通用平臺。
可以對智能客戶(hù)端進(jìn)行設計以使其適應宿主環(huán)境,并且為它們運行時(shí)所在的設備提供適當的功能。例如,適合在 Pocket PC 上運行的智能客戶(hù)端應用程序應該提供相應的用戶(hù)界面,該用戶(hù)界面在較小的屏幕區域上被調整為使用筆針。
在許多情況下,您需要設計多個(gè)版本的智能客戶(hù)端應用程序,每個(gè)版本都面向特定的設備類(lèi)型,以便充分利用該設備所支持的特定功能。因為小規模設備通常在提供完整范圍的智能客戶(hù)端應用程序功能方面受到限制,所以它們可能只提供對功能完善的智能客戶(hù)端應用程序所提供的數據和服務(wù)子集的移動(dòng)訪(fǎng)問(wèn),或者它們可用于在用戶(hù)移動(dòng)時(shí)收集和整合數據。最后,可以由功能更加完善的智能客戶(hù)端應用程序或服務(wù)器端應用程序來(lái)分析或處理這些數據。
能夠感知目標設備的功能和使用環(huán)境(無(wú)論它是桌面、膝上型、平板還是移動(dòng)設備),以及能夠定制應用程序以提供最適當的功能,這些都是許多智能客戶(hù)端應用程序的基本特點(diǎn)。
智能客戶(hù)端在設計和實(shí)現方面差異極大,這既包括應用程序要求,也包括可以使用它們的方案和環(huán)境的數量。因此,智能客戶(hù)端可以采取許多不同的形式和風(fēng)格。根據智能客戶(hù)端應用程序所面向的平臺,可以將這些形式劃分為三大類(lèi):
• | Windows 智能客戶(hù)端應用程序 |
• | Office 智能客戶(hù)端應用程序 |
• | 移動(dòng)智能客戶(hù)端應用程序 |
智能客戶(hù)端應用程序面向上述一種或多種平臺是很常見(jiàn)的情況,具體取決于用戶(hù)的角色以及需要的功能。這種靈活性是智能客戶(hù)端應用程序的主要長(cháng)處之一。
本指南的其余部分將重點(diǎn)討論所有三種類(lèi)型的智能客戶(hù)端應用程序所共有的問(wèn)題,而不是詳細解釋影響個(gè)別類(lèi)別的問(wèn)題。但是,依次對各個(gè)類(lèi)型進(jìn)行簡(jiǎn)要分析,以便您可以確定哪種風(fēng)格的應用程序最適合您的情況,這將是很有用的。
Office 智能客戶(hù)端應用程序
Microsoft Office System 2003 為您提供了用來(lái)生成智能客戶(hù)端應用程序(尤其是在企業(yè)設置中)的有用平臺。通過(guò) Office 智能客戶(hù)端解決方案,您可以將通過(guò) Web 服務(wù)訪(fǎng)問(wèn)的數據源與 Word 2003、Excel 2003、InfoPath 2003 或其他 Office應用程序的功能集成起來(lái),以開(kāi)發(fā)智能客戶(hù)端解決方案。
這樣的 Office 智能客戶(hù)端應用程序可以成為組織的信息管理周期的集成部分,而不只是文檔數據的靜態(tài)容器。當用戶(hù)在文檔內工作時(shí),它們可以提供上下文相關(guān)的數據,以及可以將 Web 服務(wù)公開(kāi)的數據轉換為有用信息的工作流和任務(wù)指導、數據分析、協(xié)作、報告和呈現功能。
Microsoft Office 支持 XML,并且可以將該數據與文檔的其他方面分開(kāi),以便它可以由其他應用程序重新使用。因為 Microsoft Office 中的應用程序數據可以由多個(gè)應用程序中相同的客戶(hù)定義 XML 架構進(jìn)行說(shuō)明,所以開(kāi)發(fā)人員可以將這些數據集成到智能客戶(hù)端應用程序中。
Microsoft Office 2003 具有許多用于生成智能客戶(hù)端解決方案的重要功能和選項。這些功能和選項包括:
• | 智能標記。智能標記為應用程序提供一種方法,可以為用戶(hù)提供與文檔內容有關(guān)的上下文相關(guān)數據,用戶(hù)在文檔內工作時(shí),可以通過(guò)該方法容易地查看和使用相關(guān)信息。例如,使用智能標記,可以在文檔內引用客戶(hù)時(shí)提供相應客戶(hù)的帳戶(hù)狀態(tài),或者可以在鍵入訂單 ID 時(shí)提供訂單狀態(tài)信息。這種上下文相關(guān)的反饋使用戶(hù)可以在工作時(shí)進(jìn)行更為明智的決策。 |
• | 智能文檔。智能文檔為用戶(hù)提供了更為強大的與文檔和業(yè)務(wù) Web 服務(wù)進(jìn)行交互的方法。智能文檔是 Word 2003 和 Excel 2003(它們具有基礎 XML 結構和自定義的任務(wù)窗格)的一種新的解決方案模型??梢允褂迷撊蝿?wù)窗格向用戶(hù)顯示上下文信息、任務(wù)、工具、后續步驟以及其他相關(guān)信息。用戶(hù)能夠通過(guò)與該任務(wù)窗格交互來(lái)啟動(dòng)其他操作和任務(wù),從而可以構建綜合性業(yè)務(wù)解決方案。 |
• | 適用于 Microsoft Office System 的 Microsoft Visual Studio_ 工具。該工具套件使開(kāi)發(fā)人員能夠通過(guò)使用 Microsoft Visual Studio .NET 2003 開(kāi)發(fā)系統來(lái)創(chuàng )建托管代碼 Office 智能客戶(hù)端應用程序。開(kāi)發(fā)人員可以將文檔解決方案與基礎代碼分開(kāi)(與以前的包含帶有自定義邏輯的 Visual Basic for Applications 宏的智能客戶(hù)端模型相比,這是一種替代解決方案)。通過(guò)將托管代碼與 Microsoft Office 一起使用,開(kāi)發(fā)人員可以獲得更多為智能客戶(hù)端解決方案創(chuàng )建、部署和管理更新的有效選項。 |
• | Microsoft Office InfoPath™ 2003。InfoPath 2003 是能夠使用類(lèi)似于表單的界面從用戶(hù)那里收集結構性數據的應用程序。InfoPath 2003 提供了對 XML Web 服務(wù)(一種基于表單的用戶(hù)界面)的支持,以及對標準技術(shù)(如 WSDL 和 UDDI)的支持。InfoPath 2003 支持有限的脫機使用,方法是允許用戶(hù)在脫機時(shí)與表單進(jìn)行交互,然后允許用戶(hù)在聯(lián)機時(shí)將該表單轉發(fā)給 Web 服務(wù)。 |
移動(dòng)智能客戶(hù)端應用程序
移動(dòng)智能客戶(hù)端是在智能設備上運行的應用程序,這些智能設備包括 Pocket PC、Smartphone 以及其他超小型臺式設備(如機頂盒)。這些應用程序是使用 .NET 框架壓縮版(它是完整 .NET 框架的子集)開(kāi)發(fā)的。
.NET 框架壓縮版具有完整 .NET 框架的許多功能,支持 XML,并且消耗 Web 服務(wù)。它被進(jìn)行了優(yōu)化以便在超小型臺式設備上使用,并且它包含用于開(kāi)發(fā)用戶(hù)界面的 Windows 窗體設計器。
通過(guò)使用 Visual Studio .NET 智能設備項目,您可以開(kāi)發(fā)能夠在 .NET 框架壓縮版上運行的智能客戶(hù)端。采用這一方法,您可以通過(guò)在超小型臺式設備的模擬器上使用 Visual Studio .NET 來(lái)開(kāi)發(fā)、測試和調試應用程序。模擬器的使用大大加快了這些類(lèi)型應用程序的開(kāi)發(fā)和測試速度。
移動(dòng)智能客戶(hù)端應用程序通常用于提供對重要數據和服務(wù)的移動(dòng)訪(fǎng)問(wèn),或者在用戶(hù)處于移動(dòng)狀態(tài)時(shí)收集和整合數據。這些類(lèi)型應用程序的示例有保險和金融數據收集應用程序、庫存管理應用程序和個(gè)人工作效率管理應用程序。
對智能客戶(hù)端和瘦客戶(hù)端進(jìn)行取舍
要針對您的情況選擇正確的應用程序體系結構,必須考慮許多因素。要確定智能客戶(hù)端方法是否最適合您的應用程序,請認真考慮您當前和將來(lái)業(yè)務(wù)應用程序的需要。如果您的應用程序基于不適合的體系結構,則它可能無(wú)法滿(mǎn)足用戶(hù)和整個(gè)企業(yè)的要求和期望。如果以后更改體系結構以滿(mǎn)足新的要求或者利用新的機遇,則可能要付出極為高昂的代價(jià)。
如果您需要向各種外部受眾提供面向外界的應用程序,則瘦客戶(hù)端體系結構通常最為適當;而對于需要與其他客戶(hù)端應用程序或硬件集成或者對它們進(jìn)行協(xié)調,或者需要脫機工作或通過(guò)響應迅速的用戶(hù)界面提供特定高性能功能的內部應用程序而言,智能客戶(hù)端體系結構通常最為適當。
實(shí)際上,這兩種方法在很大程度上互相重疊,而且每種方法都具有明顯的優(yōu)點(diǎn)和缺點(diǎn)。您只有在認真考慮您的要求并且了解如何在您所處的場(chǎng)合下應用每種方法之后,才能夠選擇正確的方法。您可以使用表 1.1 來(lái)幫助您對智能客戶(hù)端和瘦客戶(hù)端體系結構進(jìn)行取舍。
表 1.1 瘦客戶(hù)端和智能客戶(hù)端的特點(diǎn)
特點(diǎn) | 瘦客戶(hù)端 | 智能客戶(hù)端 |
提供內容豐富的用戶(hù)界面 | 可以,但難以開(kāi)發(fā)、測試和調試。通常將應用程序與單個(gè)瀏覽器聯(lián)系起來(lái)。 | 是。更易于開(kāi)發(fā)、測試和調試。 |
可以利用本地計算機上的硬件資源 | 是,但只能通過(guò) COM 組件使用。 | 是 |
可以與其他本地應用程序交互 | 否 | 是 |
可以多線(xiàn)程化 | 否 | 是 |
可以脫機工作 | 否 | 是 |
在低帶寬和高延遲環(huán)境中可以很好地執行。 | 否 | 是 |
易于部署 | 是 | 不一定。困難程度取決于應用程序要求。 |
低維護和更改管理成本 | 是 | 不一定。成本取決于應用程序要求。 |
可以部署到具有不同功能的多種客戶(hù)端上。 | 是,盡管更復雜的瘦客戶(hù)端可能要求單個(gè)瀏覽器。 | 是??梢栽谥С?/span> .NET 框架(包括 .NET 框架壓縮版)的任何平臺上部署。 |
智能客戶(hù)端體系結構難題
智能客戶(hù)端的體系結構難題不同于瘦客戶(hù)端,并且您需要在您的應用程序設計中予以考慮。智能客戶(hù)端應用程序具有顯著(zhù)的優(yōu)點(diǎn),但是您只有在適當地解決這些難題之后才能實(shí)現這些優(yōu)點(diǎn)。
通過(guò)智能客戶(hù)端可以將數據和邏輯分發(fā)到客戶(hù)計算機,而瘦客戶(hù)端則傾向于將數據和邏輯集中存放在 Web 服務(wù)器和其他后端服務(wù)中。盡管可以通過(guò)智能客戶(hù)端方法使應用程序變得更加高效,并且不需要與服務(wù)器進(jìn)行往返通訊以確定后續步驟,但您需要考慮到應用程序及其數據現在比瘦客戶(hù)端應用程序分布得更為廣泛,并且相應地修改您的設計。
如果您要在客戶(hù)端上實(shí)現業(yè)務(wù)規則,您將需要在必要時(shí)更新這些規則,而不是更新整個(gè)應用程序。這可能意味著(zhù)您需要使用不同的機制來(lái)分別更新該應用程序以及更新該應用程序內部的業(yè)務(wù)規則。
通過(guò)在客戶(hù)端上緩存數據,您可以顯著(zhù)改善應用程序的性能和可用性,但您必須確保適當地刷新數據并且不會(huì )使用陳舊的數據。因為許多用戶(hù)可以訪(fǎng)問(wèn)和使用相同的數據,您還必須考慮數據并發(fā)的影響。您的應用程序必須能夠處理出現的數據沖突或一致問(wèn)題,因為應用程序現在分布得更為廣泛,并且可以脫機操作。
.NET 框架在智能客戶(hù)端應用程序的宿主方式方面提供了極大的靈活性。應用程序可以作為傳統桌面應用程序運行,還可以宿主在 Office 或 Microsoft Internet Explorer 內。也可以進(jìn)行許多種組合。例如,Windows 窗體應用程序可以宿主 Internet Explorer 或 Office 組件,并且任何宿主都可以包含任何其他宿主。
您可以將不穩定的應用程序邏輯(例如,控制大訂單折扣的業(yè)務(wù)規則)結合到根據需要通過(guò) HTTP 下載的程序集中。這樣做消除了在開(kāi)發(fā)新應用程序邏輯時(shí)部署新版本客戶(hù)端應用程序的需要。您可以使用與附加(或不常使用)應用程序功能相同的模型,以便使初始應用程序規模保持最小,并且根據需要安裝附加功能。
您可以選擇將您的智能客戶(hù)端作為復合應用程序進(jìn)行部署,此時(shí)許多應用程序組合起來(lái)構成一個(gè)統一的解決方案??梢酝ㄟ^(guò)耦合桌面應用程序,或者通過(guò)提供一般性的外殼應用程序以容納多個(gè)共同構成解決方案的輕型應用程序,來(lái)構成這樣的解決方案。
當用戶(hù)必須訪(fǎng)問(wèn)許多應用程序以完成其工作時(shí),復合應用程序尤其有用。例如,呼叫中心中的客戶(hù)服務(wù)代理通常必須使用許多 LOB 應用程序,包括桌面應用程序、基于瀏覽器的應用程序以及基于終端的應用程序。所有這些 LOB 應用程序都可以宿主到在它們之間提供集成的普通 Windows 窗體應用程序中,從而大大簡(jiǎn)化用戶(hù)的工作,最為重要的是減少花在特定呼叫上的時(shí)間。通過(guò)提供普通外殼來(lái)宿主這些 LOB 應用程序,可以在不同的解決方案中開(kāi)發(fā)、測試和重用通用基礎結構功能,如安全性、部署、窗口管理、應用程序集成、審核等等,從而使 LOB 應用程序的開(kāi)發(fā)人員能夠將精力集中于業(yè)務(wù)功能。
面向服務(wù)的體系結構的出現意味著(zhù)您可以設計智能客戶(hù)端來(lái)利用網(wǎng)絡(luò )服務(wù)。所有此類(lèi)服務(wù)都是以行業(yè)標準方式提供的,這就改善了互操作性、開(kāi)發(fā)人員工具支持以及在智能客戶(hù)端應用程序中內置新功能的容易程度。
聯(lián)系客服