国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

創(chuàng)建多界面的應用程序

2024-07-21 02:22:04
字體:
供稿:網(wǎng)友


對于你們開發(fā)小組開發(fā)的軟件,你可能想給用戶提供最佳的用戶界面,這就意味著你需要不只一個界面。用戶希望可以在任何時候、任何地點、在各種設備上訪問信息。這就形成了人們對靈活界面的需求,而且使應用程序的基本原理和用戶界面的設計和創(chuàng)建顯得更為重要了。在本篇文章中,我們將講述一些用來定義、設計、構(gòu)建和測試支持.net多個用戶界面的應用程序的最好的方法。我們的探討只局限于現(xiàn)有的以及很快會實現(xiàn)的用于.net平臺的開發(fā)技術。然而,如果你們的開發(fā)團隊已經(jīng)創(chuàng)建了一個java前端系統(tǒng),并通過.net web services來運行一個服務器端應用程序的話,這些方法也同樣適用。
在rob ericsson的“為好的ui 選擇合適的工具”(http://www.fawcette.com/china/xmlfile.aspx?id=25)一文中,他講述了應用程序的一些特點,可以幫你選擇是用windows forms還是用asp.net來實現(xiàn)一個應用程序。這種選擇的要點就是要對每種技術進行成本效益分析,將應用程序的可用性作為一個最重要的因素來考慮。然而,這通常并不是一個簡單的二選一的問題。有時侯,一個應用程序有很多不同的用戶群。所以,用戶的需求以及他們對用戶界面的需求會有很大的差別就不足為奇了。對于這種類型的應用程序,“一刀切”(one-size-fits-all)式的windows forms或asp.net實現(xiàn)方式可能就不太適合了。
在這種情況下,你應該考慮創(chuàng)建一個可以提供多個用戶界面的應用程序。對于這種具有多個界面的應用程序,我們可以將microsoft exchange server作為例子來講述:outlook是windows客戶端,outlook web access (owa)是基于web的界面。你臨時不在辦公室時使用owa是很理想的,而outlook windows客戶端是設計用于大量的日常工作的。然而,不同的界面并沒有必要用不同的技術來構(gòu)建。讓我們來看一個客戶服務中心的應用程序??蛻舴针娫捊泳€員運用的數(shù)據(jù)錄入界面同用來管理應用程序的界面有很大的不同,雖然它們都是用windows forms構(gòu)建的。實際上,運用相同的界面技術來創(chuàng)建兩個不同的界面比將多個界面技術整合到一個應用程序中要簡單得多。
認可困難
雖然一些工具供應商認為創(chuàng)建具有多個用戶界面的應用程序很簡單,但事實并非如此。很多時候,創(chuàng)建一個web或pda應用程序所帶來的興奮感都會讓開發(fā)人員失去理智,從而不去考慮windows應用程序是否對用戶更有效。另外添加一個界面會給你的應用程序帶來許多復雜的問題,所以不要輕易作出這樣的決定。為了幫助你決定是否給你的應用程序采用多個用戶界面,你應該問自己這樣幾個問題。
第一,用戶不在辦公室時需要訪問你的應用程序嗎?對遠程用戶的支持是提供多個界面的主要原因。在許多情況下,這些用戶確實需要一個單獨的界面來運用應用程序。用戶在一個擁擠的飛機場和在一個安靜的辦公室所使用的環(huán)境是完全不同的。
第二,你的應用程序需要在不同的平臺上運行嗎?因為.net目前不提供跨平臺的互用性,所以如果你的需求包括在非windows操作系統(tǒng)上運行應用程序,那么你就應該創(chuàng)建一個asp.net應用程序,使用戶可以從多個web瀏覽器訪問它(見工具條“.net正走向成功”)。如果你運用microsoft mobile internet toolkit,所支持的web瀏覽器可以包括那些在palm os pdas和手機上運行的瀏覽器。
最后,你有需求截然不同的用戶群嗎?在著手開發(fā)應用程序前,仔細考慮這些問題是很值得的,否則會造成相當大的麻煩并給應用程序帶來風險。只有當你確信你的應用程序用戶的確需要多個界面時,你才可以投資來構(gòu)建它們。
選擇你的技術
一旦你決定構(gòu)建一個具有多個界面的應用程序,你就需要確定運用哪種技術。.net提供了許多用戶界面選項,要對創(chuàng)建一個具有多個界面的.net應用程序作出合理的選擇,你就必須充分了解.net相關的界面技術。
windows forms是在.net中開發(fā)富客戶端(rich client)應用程序的基礎??蛻舳藨贸绦虮绕湎鄳幕跒g覽器的應用程序有一些固有的優(yōu)勢。用戶可以運用客戶端應用程序,而不需要網(wǎng)絡連接。雖然在辦公環(huán)境中網(wǎng)絡已經(jīng)無處不在了(尤其是隨著諸如802.11這樣的無線網(wǎng)絡技術的普及),但在不能利用網(wǎng)絡連接的情況下,用戶仍需要很多應用程序。例如,他們可能需要在家運用一個應用程序,在這種情況下,只有很少數(shù)的用戶有寬帶連接;或者需要在車間運用應用程序,這時候由于電磁干擾而不能進行網(wǎng)絡連接;或者在乘飛機旅行時。除了提供離線功能外,客戶端應用程序也可以充分利用windows的特殊功能,而基于瀏覽器的應用程序只能運用windows“最低標準”的功能。
windows forms是microsoft foundation classes(mfc)的“指定繼承人”,它是win32 api用戶界面庫的首選對象封裝器(object wrapper),但是mfc和windows forms之間有許多不同。嚴格地說,mfc是個c++類的模式,而任何.net語言都可以訪問windows forms的類。另外,類的模式的靈活性和可用性都有了很多改進。由于mfc本質(zhì)上是win32上的一個thin wrapper,所以它有很多不一致性,而且很難學習并有效運用。windows forms類的模式是經(jīng)過了改進的,一致的,它的學習曲線類似于visual basic的學習曲線,而且有更多的功能。運用windows forms,我們可以完成任何通過直接寫到win32類庫來完成的任務。如果你需要擴展類來支持你的應用程序的一個特殊的用戶界面,你可以通過繼承windows forms的類來實現(xiàn)。
運用mfc或visual basic創(chuàng)建客戶端應用程序的一個最大的缺點就是發(fā)布應用程序和所有必需的dlls很困難。客戶端應用程序的安裝步驟通常很復雜,而且可能很麻煩。windows forms的智能客戶端使我們可以在開發(fā)應用程序時將富客戶端的強大性和靈活性與基于瀏覽器的應用程序容易發(fā)布的特點結(jié)合起來。
asp.net是在.net中創(chuàng)建基于web的應用程序的重要技術。近幾年來,基于web的應用程序已經(jīng)超越了簡單的數(shù)據(jù)庫存取前端系統(tǒng)的范圍,它包括許多不同的應用。基于web的應用程序?qū)蛻舳说南拗品浅5?,這就是它們很受歡迎的一個原因。任何可以通過網(wǎng)絡訪問web服務器的機器都可以運用一個將符合標準的html發(fā)送到瀏覽器的應用程序。在界面功能上你需要考慮這種功能,使用戶可以在任何web瀏覽器上訪問一個應用程序,但是對于許多應用程序來說,固有的html標簽提供的基本的用戶界面部件就足夠創(chuàng)建一個可用的界面了。
除了可以創(chuàng)建基于html的應用程序外,asp.net也使創(chuàng)建基于soap(simple object access protocol)的web services變得非常容易了。在一個客戶端應用程序中使用一個web services也很簡單。因為通過運用.net的soap可以很容易地創(chuàng)建客戶端/服務器應用程序,所以在你的應用程序中提供多個界面就變得更容易了。將web services同富客戶端結(jié)合起來就可以讓用戶享有web應用程序和富客戶端的好處,從而彌補了它們各自的不足。
你在考慮pda用戶界面時會有新的想法。雖然對pdas的大肆宣傳已經(jīng)減少了,但它們?nèi)源砹擞脩粼L問社團信息的一種方式。gartner dataquest預言在2002年會生產(chǎn)1550萬pdas。由于pda的屏幕更小、輸入技術有限以及典型的使用環(huán)境,所以對pda界面的需求同對一個windows或web應用程序的需求有很大的不同。
因為為pda設計可用的應用程序與windows或web應用程序的開發(fā)截然不同,所以.net提供了工具以簡化該步驟。visual studio .net的smart device extensions可以讓開發(fā)人員運用.net 工具(他們已經(jīng)很熟悉了)來創(chuàng)建.net compact framework應用程序。.net compact framework是.net framework的一個子集,它在資源受到限制的(resource-constrained)設備上運行,如pocket pc pdas、智能電話和其它運行windows ce .net的設備。
.net compact framework提供了必要的工具來創(chuàng)建可用的應用程序,包括客戶端對web services的訪問、ado.net、加密、適當?shù)睦L圖和窗體功能。除了只在pocket pc設備上運行的.net compact framework外,.net也具有microsoft mobile internet toolkit(mit)的特點。這個asp.net的擴展功能可以讓開發(fā)人員在各種設備上創(chuàng)建web應用程序,包括支持wap的手機和大多數(shù)運行palm os的pdas。它包含一組服務器端的控件,為列表、命令、通話、日歷等提供用戶界面元素??丶鶕?jù)訪問設備自動提供適當?shù)臉俗R語言(html、wml、chtml)。這就可以讓你把精力集中到應用程序邏輯的開發(fā)和用戶回饋上,而mit則負責無線開發(fā)的細節(jié)。
付諸實施
.net提供了許多用戶界面技術。為了有助于你了解如何運用它們,我們創(chuàng)建了一個樣例應用程序,它有兩個界面:一個windows forms客戶端和一個asp.net客戶端。樣例是個時間跟蹤和項目管理應用程序,是為一個專門的服務公司開發(fā)的,用來跟蹤客戶項目所花的時間。該應用程序有明顯的需求不同的用戶群,可以很好地說明多用戶界面的應用。
在定義時間跟蹤應用程序的根本的需求時,我們確定了四種不同的用戶群:項目經(jīng)理、顧問經(jīng)理、顧問和訂約人。前兩種用戶需要數(shù)據(jù)輸入和報表分析的功能,而后兩種用戶只需要數(shù)據(jù)輸入和遠程訪問功能。因為這些用戶群的需求不同,所以我們把應用程序分成兩個界面:一個用于管理和分析的windows forms應用程序,和一個用于數(shù)據(jù)輸入和遠程訪問的asp.net web forms應用程序。
花時間了解應用程序的不同用戶群的需求是很有價值的,而這個步驟經(jīng)常被人們忽視(見工具條“建立可用性需求”)。在著手設計應用程序時了解用戶群的需求可以使你的程序的重用性達到最大,還可以避免產(chǎn)品開發(fā)中的重復勞動。因為我們在設計應用程序時有了這樣的了解,所以我們就可以用asp.net web services了,并可以構(gòu)建一個支持多個用戶界面平臺的簡單而有效的應用程序。
集中的、跨平臺的商業(yè)邏輯的一個危險就是在所有用戶界面平臺上實現(xiàn)該商業(yè)邏輯提供的全部功能。重要的一點是,我們應該關注個別界面的需求,不要因為可以得到某種商業(yè)邏輯提供的功能就去實現(xiàn)它。恰當?shù)淖龇ㄊ且私饽愕挠脩羧翰⑹冀K考慮他們的需求。
根據(jù)我們創(chuàng)建.net應用程序的經(jīng)驗,我們已經(jīng)掌握了一些有用的東西,在此我們將分享給你。軟件開發(fā)中最大的挑戰(zhàn)之一就是收集并記錄需求。你努力去解決的問題(需求)往往會和那個問題的建議性解決方案(設計)混淆在一起?;镜挠美梢詭湍惴直嫘枨蠛驮O計(見資源)。將基本用例與具體用例進行比較,你會發(fā)現(xiàn)具體用例中說明了用戶和一個特殊界面之間的實際交互。當你編寫一個具體用例時,你已經(jīng)創(chuàng)建了(至少是含蓄地)用戶界面。這種不成熟的界面設計可能在以后的開發(fā)周期中造成許多問題,尤其是如果你在你的應用程序中用了多個界面的話。如果用例指定了一個具體的依賴于特殊的windows控件的交互層,那么當交互媒介發(fā)生改變時,你就必須修改需求。這就會導致需求的脆弱性,它會阻止正常的設計進程并延遲開發(fā)。
仔細設計商業(yè)邏輯
在確定需求時,除了要非常注意細節(jié)外,我們發(fā)現(xiàn)仔細設計商業(yè)邏輯層尤為重要。最重要的是,如果你打算運用web services,你就需要注意管理串行化和傳送域?qū)ο蟮拿浇榈木窒扌?。設計和構(gòu)建適當?shù)膚eb services是該問題的關鍵:這個問題解決得好就可以讓你在.net中更容易地運用多個界面。雖然web services伴隨有許多夸張的宣傳,但在多個界面設計方面,它們的靈活性確實是不可比擬的。
你也需要了解你的應用程序?qū)⒊尸F(xiàn)的界面的相關的技術細節(jié)。例如,客戶端技術如何處理狀態(tài)?雖然asp.net為web應用程序簡化了狀態(tài)處理,但如果你的應用程序?qū)⒂幸粋€web界面時,這仍然是個需要考慮的問題。因為web依賴于無狀態(tài)的http協(xié)議進行通訊,因此確定如何跟蹤一個用戶在應用程序的位置這一負擔就落在了應用程序開發(fā)人員的身上。在asp.net中跟蹤狀態(tài)比用以前的技術跟蹤狀態(tài)要容易很多,但你仍需要確定在你的應用程序中如何跟蹤并運用狀態(tài)信息。在設計應用程序時考慮其它問題(包括數(shù)據(jù)結(jié)構(gòu)和持久性)也是很重要的。http本身不支持傳送和保持數(shù)據(jù)結(jié)構(gòu)(同保持狀態(tài)的問題類似),所以你必須確定如何在你的應用程序中實現(xiàn)它們。幸運的是,asp.net的易于使用的soap實現(xiàn)方式可以幫你解決這個問題。
忽視可用性是你在多界面應用程序中可能犯的最大的一個錯誤。對功能加以限定是種很好的方法:越少越好。在一個界面載入過多的功能會變得很混亂,而且很難使用。如果你遵循bauhaus的設計格言——形式追隨功能,那么就會得到更好的結(jié)果。了解你的應用程序可以提供的功能以及用戶如何使用那些功能對于創(chuàng)建一個可用的應用程序來說是很必要的。這可能意味著,每個平臺的界面根據(jù)那類用戶期望的功能的不同而有很大的不同。
在樣例應用程序中,web和windows forms界面明顯不同,因為我們有不同的用戶群,他們的使用模式不同。運用該應用程序的顧問對創(chuàng)建漂亮的報表不感興趣;他們只想根據(jù)項目記錄時間。給他們提供“額外”的報表分析功能可能是個好主意,但是最小限度地增加復雜性都會造成應用程序總成本的增加。如果顧問們需要額外的報表功能,那么我們應該一步步地收集需求并構(gòu)建該功能。
先測試最重要的ui
有時侯你可能不需要多個界面,你可以通過先測試最重要的界面來確定這一點。例如,如果應用程序的主要用戶是內(nèi)部windows桌面用戶,你可能認為智能客戶端界面是最重要的。另一方面,如果主要用戶是一群移動用戶,你可能選.net compact framework界面。不管你選擇哪個界面,你應該首先創(chuàng)建這個最重要的界面,對它進行測試來看看你是否真的需要提供另外的界面。這就可以讓你有機會仔細關注應用程序商業(yè)邏輯,并確信它是否非常穩(wěn)固。通過一些可用性測試,你可能發(fā)現(xiàn)web界面“需求”是不需要的,如果你有一個設計良好的windows forms智能客戶端應用程序的話。如果測試表明你需要多個界面,你可以從最先發(fā)布的界面收集用戶反饋,它們可以用來改進未來界面的設計。
.net framework提供了很多技術可以使創(chuàng)建多個用戶界面的工作變得簡單。然而,在創(chuàng)建有效的用戶界面方面并沒有什么“尚方寶劍”。不管你用什么工具,仍然會有可用性這個基本問題:需要對用戶群及其用戶有所了解。一旦你了解了這些,你的開發(fā)小組就需要設計一個用戶界面使用戶可以更有效地執(zhí)行他們的任務了。最后,開發(fā)小組需要測試這個用戶界面,確信它確實是個有效的解決方案。
多個用戶群對一個應用程序的界面需求會截然不同,這種情況會越來越多,你可以利用.net工具來創(chuàng)建你需要的界面。windows forms為windows用戶提供強大的、智能客戶端功能,而asp.net可以使開發(fā)人員創(chuàng)建強大的web應用程序;.net compact framework和mit可以讓你創(chuàng)建靈活的pda和手機用戶界面。了解你可以運用的工具以及用戶的需求是用.net構(gòu)建成功的用戶界面的關鍵。
關于作者:robert ericsson是位經(jīng)驗豐富的軟件開發(fā)人員和項目經(jīng)理,他主要致力于microsoft技術的研究。jason cline是位軟件工程師,專門從事.net framework的研究。你可以通過[email protected]聯(lián)系他們。


商業(yè)源碼熱門下載www.html.org.cn

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 巴南区| 永仁县| 施甸县| 徐汇区| 宁强县| 宝鸡市| 旬阳县| 吴桥县| 广河县| 灌阳县| 邹城市| 太湖县| 特克斯县| 沙湾县| 双牌县| 阜平县| 冀州市| 长治县| 闻喜县| 崇文区| 额尔古纳市| 南宫市| 新巴尔虎左旗| 崇礼县| 抚宁县| 大丰市| 芜湖县| 洪洞县| 保山市| 自治县| 晋宁县| 三亚市| 崇文区| 通海县| 云林县| 乌拉特前旗| 南通市| 灵璧县| 马公市| 佛冈县| 自治县|