微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南0Application課件_第1頁
微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南0Application課件_第2頁
微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南0Application課件_第3頁
微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南0Application課件_第4頁
微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南0Application課件_第5頁
已閱讀5頁,還剩103頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0

ApplicationArchitectureGuide2.0

DesigningApplicationonthe.NETPlatform王冠三博士微軟總部研究院首席研究員任NISD部門首席架構(gòu)師微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0

ApplicationAr應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0日程指南導(dǎo)讀應(yīng)用軟件架構(gòu)設(shè)計(jì)基礎(chǔ)微軟.NET平臺(tái)概述Rich-Client

Visual

Studio演示網(wǎng)絡(luò)應(yīng)用軟件的架構(gòu)設(shè)計(jì)移動(dòng)應(yīng)用軟件的架構(gòu)設(shè)計(jì)案例:微軟語音產(chǎn)品設(shè)計(jì)過程應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0日程微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0背景概述2002版的“基于.NET的應(yīng)用軟件架構(gòu)設(shè)計(jì):設(shè)計(jì)應(yīng)用軟件和服務(wù)”(ApplicationArchitecturefor.NET:DesigningApplicationandServices)基于原理的指南,整合最新實(shí)踐和技術(shù)微軟內(nèi)部的經(jīng)驗(yàn)為主,外部專家和用戶的積極參與本人的參與:語音API(SAPI)架構(gòu)轉(zhuǎn)型W3C,ECMA,ISO代表微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0背景概述微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0目的主要對(duì)象:解決方案架構(gòu)師和開發(fā)組長(zhǎng)更加有效地研發(fā).NET平臺(tái)上的應(yīng)用軟件對(duì)其它平臺(tái)上的軟件開發(fā)也很有參考價(jià)值提供設(shè)計(jì)層面的指南注重最常見的應(yīng)用類別有助于架構(gòu)師選擇正確的架構(gòu)設(shè)計(jì)方案,選擇正確的技術(shù),做出更有效的設(shè)計(jì)決策,遵循正確的模式(pattern)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0目的微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0指南的組織機(jī)構(gòu):圍繞六個(gè)方面典型的架構(gòu)設(shè)計(jì)風(fēng)格(archstyles)應(yīng)用類別(apptypes)架構(gòu)設(shè)計(jì)框架(archframe)質(zhì)量屬性(qualityattributes)原理,模式,實(shí)踐(principles,patterns,practices)技術(shù)與相關(guān)功能(tech&capabilities)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0指南的組織機(jī)構(gòu):圍繞六個(gè)方面微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0主要特征(features)應(yīng)用軟件的架構(gòu)設(shè)計(jì)框架(framework)模塊化整體化專業(yè)知識(shí)充分驗(yàn)證(微軟內(nèi)部測(cè)試評(píng)價(jià)+外部反饋不斷的局部演進(jìn):.Net

Framework已到3.5版(4.0版Beta)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0主要特征(features)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0應(yīng)用架構(gòu)設(shè)計(jì)基礎(chǔ)(fundamentals)架構(gòu)設(shè)計(jì)設(shè)計(jì)一個(gè)結(jié)構(gòu)的解決方案的過程,以滿足技術(shù)和運(yùn)行需求,同時(shí)以最佳的方法達(dá)到質(zhì)量指標(biāo)要求涉及眾多因素和相關(guān)人員涉及一系列的決策架構(gòu)設(shè)計(jì)的定義沒有統(tǒng)一的定義:是工程,是科學(xué),也是藝術(shù)通常包含構(gòu)件及其結(jié)構(gòu),構(gòu)件之間的關(guān)系微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0應(yīng)用架構(gòu)設(shè)計(jì)基礎(chǔ)(fundam微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0三種常見的定義(一)“Softwarearchitectureencompassesthesetofsignificantdecisionsabouttheorganizationofasoftwaresystemincluding:Selectionofthestructuralelementsandtheirinterfacesbywhichthesystemiscomposed.Behaviorasspecifiedincollaborationamongthoseelements.Compositionofthesestructuralandbehavioralelementsintolargersubsystems.Architecturalstylethatguidesthisorganization.Softwarearchitecturealsoinvolvesfunctionality,usability,resilience,performance,reuse,comprehensibility,economicandtechnologyconstraints,tradeoffsandaestheticconcerns.”微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0三種常見的定義(一)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0三種定義(二)Thehighest-levelbreakdownofasystemintoitsparts.Thedecisionsthatarehardtochange.Therearemultiplearchitecturesinasystem.Whatisarchitecturallysignificantcanchangeoverasystem’slifetime.Intheend,architectureboilsdowntowhatevertheimportantstuffis.微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0三種定義(二)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0三種定義(三)“Thesoftwarearchitectureofaprogramorcomputingsystemisthestructureorstructuresofthesystem,whichcomprisesoftwareelements,theexternallyvisiblepropertiesofthoseelements,andtherelationshipsamongthem.Architectureisconcernedwiththepublicsideofinterfaces;privatedetailsofelements—detailshavingtodosolelywithinternalimplementation—arenotarchitectural.”微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0三種定義(三)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0架構(gòu)設(shè)計(jì)的作用提供一個(gè)堅(jiān)實(shí)的“地基”(solidfoundation)提供開發(fā)工程師一個(gè)統(tǒng)一的系統(tǒng)設(shè)計(jì)思路和策略重點(diǎn)在于構(gòu)件和界面如何交互作用降低產(chǎn)品的風(fēng)險(xiǎn)考慮關(guān)鍵的使用“場(chǎng)景”(scenarios)避免常見問題考慮決定的長(zhǎng)遠(yuǎn)影響微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0架構(gòu)設(shè)計(jì)的作用微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0架構(gòu)設(shè)計(jì)的目標(biāo)通過對(duì)使用場(chǎng)景的深刻理解來建立業(yè)務(wù)需求和技術(shù)需求之間的“橋梁”尋求最佳技術(shù)方案來實(shí)現(xiàn)業(yè)務(wù)需求重點(diǎn)是識(shí)別對(duì)系統(tǒng)結(jié)構(gòu)有重要影響的業(yè)務(wù)需求降低技術(shù)方案業(yè)務(wù)風(fēng)險(xiǎn)讓系統(tǒng)具有足夠的靈活性解決質(zhì)量指標(biāo)要求之間的平衡解決其他因素之間的沖突微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0架構(gòu)設(shè)計(jì)的目標(biāo)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0好的架構(gòu)設(shè)計(jì):展現(xiàn)系統(tǒng)的結(jié)構(gòu)但是隱藏實(shí)現(xiàn)的細(xì)節(jié)滿足所有的使用需求能解決系統(tǒng)相關(guān)人員(stakeholders)的各種顧慮很好地實(shí)現(xiàn)功能需求,同時(shí)也滿足質(zhì)量指標(biāo)的要求微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0好的架構(gòu)設(shè)計(jì):微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)手段以設(shè)計(jì)底線為參考制定多個(gè)待選方案測(cè)試評(píng)估,改進(jìn)幾個(gè)要點(diǎn):所用假設(shè)是否正確滿足那些明顯的和隱含的需求存在的關(guān)鍵風(fēng)險(xiǎn)對(duì)付風(fēng)險(xiǎn)的方案微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)手段微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0架構(gòu)設(shè)計(jì)底線方法應(yīng)用類型架構(gòu)設(shè)計(jì)風(fēng)格功能元件的分析部署策略合適的技術(shù)質(zhì)量指標(biāo)要求全局因素微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0架構(gòu)設(shè)計(jì)底線方法微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)的核心步驟明確架構(gòu)設(shè)計(jì)的目的(objectives)找出關(guān)鍵場(chǎng)景(keyscenarios)概略分析開發(fā)的應(yīng)用(overview)識(shí)別“敏感點(diǎn)”(hotspots)制定候選方案(candidatesolutions)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)的核心步驟微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0架構(gòu)設(shè)計(jì)風(fēng)格(styles)基于構(gòu)件的架構(gòu)(component-based)信息通道架構(gòu)(message-bus)層次架構(gòu)(layered-based)3-tier/N-tier架構(gòu)面向?qū)ο蠹軜?gòu)(object-oriented,OOA)名詞取向Nouncentric面向服務(wù)架構(gòu)(service-oriented,SOA)動(dòng)詞取向Verbcentric微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0架構(gòu)設(shè)計(jì)風(fēng)格(styles)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0質(zhì)量屬性要求可用性(availability)概念完整性(conceptualintegrity)靈活性(flexibility)互通性(interoperability)可維護(hù)性(maintainability)可管理性(manageability)性能(performance)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0質(zhì)量屬性要求微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0質(zhì)量屬性要求(續(xù))可靠性(reliability)再用性(reusability)擴(kuò)展性(scalability)安全性(security)可支持性(supportability)可測(cè)試性(testability)易用性(usability)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0質(zhì)量屬性要求(續(xù))微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0架構(gòu)設(shè)計(jì)的關(guān)鍵原則采用模型分析,降低風(fēng)險(xiǎn)(UML)采用模型和視圖(views)進(jìn)行交流辨別什么決定影響核心工程適應(yīng)變化的設(shè)計(jì)而不是“永存”的設(shè)計(jì)采用“遞加漸進(jìn)”的方法逐步完善設(shè)計(jì)重全局思考而不要過多地在乎細(xì)節(jié)不能忽視架構(gòu)設(shè)計(jì)的有效評(píng)估微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0架構(gòu)設(shè)計(jì)的關(guān)鍵原則微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0.NET平臺(tái)概述由若干服務(wù)器應(yīng)用,基礎(chǔ)設(shè)施構(gòu)件(infrastructure),實(shí)時(shí)服務(wù),和.NET框架構(gòu)成應(yīng)用基礎(chǔ)設(shè)施CLR.NETFramework移動(dòng)應(yīng)用(mobile).NETCompactFrameworkASP.NETMobileSilverlightMobile微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0.NET平臺(tái)概述微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0.NET平臺(tái)支援的應(yīng)用類型Web應(yīng)用ASP.NET“強(qiáng)勢(shì)”網(wǎng)絡(luò)應(yīng)用(RichInternetApp(RIA))Silverlight“強(qiáng)勢(shì)”客戶端應(yīng)用(RichClient)WindowsFormsWindowsPresentationFoundation(WPF)數(shù)據(jù)庫(Database)MicrosoftSQLServer微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0.NET平臺(tái)支援的應(yīng)用類型微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0.NET平臺(tái)支援的應(yīng)用類型(續(xù))服務(wù)(services)ASP.NETWebServices(ASMX)WindowsCommunicationFoundation(WCF)協(xié)同/工作流(collaboration/workflow)WindowsWorkflowFoundation(WF)OfficeSharePoint(MOSS)BizTalkServer網(wǎng)絡(luò)服務(wù)器(WebServer)InternetInformationServices(IIS)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0.NET平臺(tái)支援的應(yīng)用類型(續(xù)Visual

Studio演示

VisualStudio演示微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0例:.NET平臺(tái)和層次式架構(gòu)的應(yīng)用微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0例:.NET平臺(tái)和層次式架構(gòu)的微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0.NET層次架構(gòu)設(shè)計(jì)API表現(xiàn)層(presentationlayer)UI構(gòu)件UI處理件System.Web.UISystem.Windows.Form微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0.NET層次架構(gòu)設(shè)計(jì)API微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0.NET層次架構(gòu)設(shè)計(jì)API(續(xù))業(yè)務(wù)層(businesslayer)應(yīng)用表象(appfa?ade):UI

independent業(yè)務(wù)工作流(businessworkflows)業(yè)務(wù)構(gòu)件業(yè)務(wù)實(shí)體(businessentities)System.WorkflowSystem.TransactionsSystem.ServiceModels微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0.NET層次架構(gòu)設(shè)計(jì)API(微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0.NET層次架構(gòu)設(shè)計(jì)API(續(xù))數(shù)據(jù)層數(shù)據(jù)存取輔助功能(helputilities)服務(wù)代理(serviceagents)System.DataSystem.Data.Services微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0.NET層次架構(gòu)設(shè)計(jì)API(續(xù)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0.NET層次架構(gòu)設(shè)計(jì)API(續(xù)):綜合因素(cross-cutting)安全性運(yùn)行管理信息交流System.Security,System.Messaging,System.Runtime…System.Configuration,System.Deployment微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0.NET層次架構(gòu)設(shè)計(jì)API(續(xù)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)的核心原則關(guān)注分離原則(separationofconcerns)功能單一原則(singleresponsibility)最少相知原則(leastknowledge)不重復(fù)原則(reusability)逐步疊加原則重合成,輕繼承原則(compositionoverinheritance)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)的核心原則微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)面對(duì)的關(guān)鍵問題認(rèn)證和授權(quán)(authenticationandauthorization)在信任邊界之間缺乏認(rèn)證在信任邊界之間缺乏授權(quán)過細(xì)或不當(dāng)授權(quán)暫存(caching)暫存易變的數(shù)據(jù)暫存敏感數(shù)據(jù)暫存方法不當(dāng)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)面對(duì)的關(guān)鍵問題微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)面對(duì)的關(guān)鍵問題(續(xù))信息交流(communication)傳輸協(xié)議選擇不當(dāng)不必要的傳輸對(duì)敏感數(shù)據(jù)保護(hù)不當(dāng)合成(composition)太多的模塊間的依賴硬性依賴妨礙UI的動(dòng)態(tài)布局硬性依賴妨礙模塊的動(dòng)態(tài)裝載(dynamicloading)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)面對(duì)的關(guān)鍵問題(續(xù))微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)面對(duì)的關(guān)鍵問題(續(xù))并發(fā)和事務(wù)處理(concurrencyandtransactions)對(duì)靜態(tài)數(shù)據(jù)的并發(fā)存取不作保護(hù)不當(dāng)“鎖定”導(dǎo)致“死鎖”沒有選擇正確的數(shù)據(jù)并發(fā)模型運(yùn)行時(shí)間長(zhǎng)的事務(wù)處理“鎖定”數(shù)據(jù)不必要地使用“排他鎖定”微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)面對(duì)的關(guān)鍵問題(續(xù))微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)面對(duì)的關(guān)鍵問題(續(xù))配置管理(configurationmanagement)缺乏配置信息對(duì)敏感配置信息保護(hù)不當(dāng)對(duì)配置信息的存取不作必要的保護(hù)耦合和凝聚(couplingandcohesion)功能組合不當(dāng)關(guān)注分離不明確層次之間的緊密耦合微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)面對(duì)的關(guān)鍵問題(續(xù))微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)面對(duì)的關(guān)鍵問題(續(xù))數(shù)據(jù)存?。╠ataaccess)不必要的認(rèn)證和授權(quán)細(xì)分過于頻繁的數(shù)據(jù)庫調(diào)用混淆業(yè)務(wù)邏輯與數(shù)據(jù)存取代碼例外管理(exceptionmanagement)“例外”發(fā)生時(shí)向用戶透露敏感信息使用“例外”去控制程序的運(yùn)行沒有記錄“例外”發(fā)生詳細(xì)信息微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)面對(duì)的關(guān)鍵問題(續(xù))微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)面對(duì)的關(guān)鍵問題(續(xù))分層(layering)構(gòu)件誤置不遵循分層和獨(dú)立規(guī)則沒有考慮層次的物理配置問題狀態(tài)管理(statemanagement)不正確的狀態(tài)存儲(chǔ)方式?jīng)]有考慮序列化要求(serializationrequirements)在需要時(shí)不“硬存”狀態(tài)(persisting)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)面對(duì)的關(guān)鍵問題(續(xù))微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)面對(duì)的關(guān)鍵問題(續(xù))結(jié)構(gòu)(structure)與使用場(chǎng)景不吻合的結(jié)構(gòu)過于復(fù)雜的結(jié)構(gòu)沒有考慮部署局面(deploymentscenarios)用戶體驗(yàn)(user

experience)不遵循通用的慣例沒有考慮“易接觸”(accessibility)疊加不相關(guān)的功能,從而導(dǎo)致界面擁擠微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)面對(duì)的關(guān)鍵問題(續(xù))微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)面對(duì)的關(guān)鍵問題(續(xù))驗(yàn)證(validation)越過信任邊界時(shí)不進(jìn)行驗(yàn)證不驗(yàn)證值域,類型,格式,和長(zhǎng)度不使用現(xiàn)有的驗(yàn)證邏輯工作流(workflow)沒有考慮管理需求選用不當(dāng)?shù)哪J剑╬attern)沒有考慮“例外”狀態(tài)以及相應(yīng)的對(duì)策微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)面對(duì)的關(guān)鍵問題(續(xù))微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0常見網(wǎng)絡(luò)應(yīng)用的部署設(shè)計(jì)模式(DesignPatterns)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0常見網(wǎng)絡(luò)應(yīng)用的部署設(shè)計(jì)模式微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0部署模式非分布式微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0部署模式微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0部署模式分布式微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0部署模式微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0典型的網(wǎng)絡(luò)應(yīng)用安全架構(gòu)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0典型的網(wǎng)絡(luò)應(yīng)用安全架構(gòu)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0部署模式:信任子系統(tǒng)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0部署模式:信任子系統(tǒng)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0部署模式:多個(gè)信任服務(wù)模型微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0部署模式:多個(gè)信任服務(wù)模型微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0部署模式:WebFarm微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0部署模式:WebFarm微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0部署模式:裝載平衡集群微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0部署模式:裝載平衡集群微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0部署模式:Failover微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0部署模式:Failover微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0移動(dòng)應(yīng)用的架構(gòu)設(shè)計(jì)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0移動(dòng)應(yīng)用的架構(gòu)設(shè)計(jì)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0移動(dòng)應(yīng)用架構(gòu)設(shè)計(jì)多層次應(yīng)用用戶體驗(yàn)(UI)層業(yè)務(wù)層數(shù)據(jù)層用戶端類型強(qiáng)功能用戶端業(yè)務(wù)層,數(shù)據(jù)層在終端上弱功能用戶端業(yè)務(wù)層,數(shù)據(jù)層在服務(wù)器上微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0移動(dòng)應(yīng)用架構(gòu)設(shè)計(jì)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)考量用戶端類型終端特征(屏幕尺寸,分辨率,CPU,…)連接特點(diǎn),帶寬恰當(dāng)?shù)腢I層次結(jié)構(gòu)的分布終端的資源限制(電池,內(nèi)存,CPU功能…)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)考量微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0技術(shù)考量.NETCompactFramework.NET框架類庫子集只支持VisualBasic和VisualC#老程序移植問題較多WindowsMobile注意版本之間的差異(專業(yè)/普通)采用不同的安全模型,程序不完全通用僅使用WindowsMobileAPI讀存內(nèi)存和文件微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0技術(shù)考量微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0技術(shù)考量(續(xù))SilverlightforMobile還處于開發(fā)階段支持多媒體和交互性移動(dòng)終端與桌面應(yīng)用的一致性盡量使用ASP.NET/HTML,避免ASP.NETforMobileWindowsEmbedded適用于機(jī)頂盒,POS機(jī),ATM,支持GPS等終端設(shè)備不同的設(shè)備類興許采用不同的版本采用共同程序基庫時(shí)必須考慮版本間的不一致微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0技術(shù)考量(續(xù))微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0核心問題認(rèn)證和授權(quán)暫存(caching)通訊配置管理(configuration)數(shù)據(jù)存取終端設(shè)備特點(diǎn)意外事件管理(exception)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0核心問題微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0核心問題(續(xù))信息記錄(logging)移植(porting)同步(synchronization)電源UI性能測(cè)試部署(deployment)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0核心問題(續(xù))微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0

ApplicationArchitectureGuide2.0

DesigningApplicationonthe.NETPlatform王冠三博士微軟總部研究院首席研究員任NISD部門首席架構(gòu)師微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0

ApplicationAr應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0日程指南導(dǎo)讀應(yīng)用軟件架構(gòu)設(shè)計(jì)基礎(chǔ)微軟.NET平臺(tái)概述Rich-Client

Visual

Studio演示網(wǎng)絡(luò)應(yīng)用軟件的架構(gòu)設(shè)計(jì)移動(dòng)應(yīng)用軟件的架構(gòu)設(shè)計(jì)案例:微軟語音產(chǎn)品設(shè)計(jì)過程應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0日程微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0背景概述2002版的“基于.NET的應(yīng)用軟件架構(gòu)設(shè)計(jì):設(shè)計(jì)應(yīng)用軟件和服務(wù)”(ApplicationArchitecturefor.NET:DesigningApplicationandServices)基于原理的指南,整合最新實(shí)踐和技術(shù)微軟內(nèi)部的經(jīng)驗(yàn)為主,外部專家和用戶的積極參與本人的參與:語音API(SAPI)架構(gòu)轉(zhuǎn)型W3C,ECMA,ISO代表微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0背景概述微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0目的主要對(duì)象:解決方案架構(gòu)師和開發(fā)組長(zhǎng)更加有效地研發(fā).NET平臺(tái)上的應(yīng)用軟件對(duì)其它平臺(tái)上的軟件開發(fā)也很有參考價(jià)值提供設(shè)計(jì)層面的指南注重最常見的應(yīng)用類別有助于架構(gòu)師選擇正確的架構(gòu)設(shè)計(jì)方案,選擇正確的技術(shù),做出更有效的設(shè)計(jì)決策,遵循正確的模式(pattern)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0目的微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0指南的組織機(jī)構(gòu):圍繞六個(gè)方面典型的架構(gòu)設(shè)計(jì)風(fēng)格(archstyles)應(yīng)用類別(apptypes)架構(gòu)設(shè)計(jì)框架(archframe)質(zhì)量屬性(qualityattributes)原理,模式,實(shí)踐(principles,patterns,practices)技術(shù)與相關(guān)功能(tech&capabilities)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0指南的組織機(jī)構(gòu):圍繞六個(gè)方面微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0主要特征(features)應(yīng)用軟件的架構(gòu)設(shè)計(jì)框架(framework)模塊化整體化專業(yè)知識(shí)充分驗(yàn)證(微軟內(nèi)部測(cè)試評(píng)價(jià)+外部反饋不斷的局部演進(jìn):.Net

Framework已到3.5版(4.0版Beta)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0主要特征(features)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0應(yīng)用架構(gòu)設(shè)計(jì)基礎(chǔ)(fundamentals)架構(gòu)設(shè)計(jì)設(shè)計(jì)一個(gè)結(jié)構(gòu)的解決方案的過程,以滿足技術(shù)和運(yùn)行需求,同時(shí)以最佳的方法達(dá)到質(zhì)量指標(biāo)要求涉及眾多因素和相關(guān)人員涉及一系列的決策架構(gòu)設(shè)計(jì)的定義沒有統(tǒng)一的定義:是工程,是科學(xué),也是藝術(shù)通常包含構(gòu)件及其結(jié)構(gòu),構(gòu)件之間的關(guān)系微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0應(yīng)用架構(gòu)設(shè)計(jì)基礎(chǔ)(fundam微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0三種常見的定義(一)“Softwarearchitectureencompassesthesetofsignificantdecisionsabouttheorganizationofasoftwaresystemincluding:Selectionofthestructuralelementsandtheirinterfacesbywhichthesystemiscomposed.Behaviorasspecifiedincollaborationamongthoseelements.Compositionofthesestructuralandbehavioralelementsintolargersubsystems.Architecturalstylethatguidesthisorganization.Softwarearchitecturealsoinvolvesfunctionality,usability,resilience,performance,reuse,comprehensibility,economicandtechnologyconstraints,tradeoffsandaestheticconcerns.”微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0三種常見的定義(一)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0三種定義(二)Thehighest-levelbreakdownofasystemintoitsparts.Thedecisionsthatarehardtochange.Therearemultiplearchitecturesinasystem.Whatisarchitecturallysignificantcanchangeoverasystem’slifetime.Intheend,architectureboilsdowntowhatevertheimportantstuffis.微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0三種定義(二)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0三種定義(三)“Thesoftwarearchitectureofaprogramorcomputingsystemisthestructureorstructuresofthesystem,whichcomprisesoftwareelements,theexternallyvisiblepropertiesofthoseelements,andtherelationshipsamongthem.Architectureisconcernedwiththepublicsideofinterfaces;privatedetailsofelements—detailshavingtodosolelywithinternalimplementation—arenotarchitectural.”微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0三種定義(三)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0架構(gòu)設(shè)計(jì)的作用提供一個(gè)堅(jiān)實(shí)的“地基”(solidfoundation)提供開發(fā)工程師一個(gè)統(tǒng)一的系統(tǒng)設(shè)計(jì)思路和策略重點(diǎn)在于構(gòu)件和界面如何交互作用降低產(chǎn)品的風(fēng)險(xiǎn)考慮關(guān)鍵的使用“場(chǎng)景”(scenarios)避免常見問題考慮決定的長(zhǎng)遠(yuǎn)影響微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0架構(gòu)設(shè)計(jì)的作用微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0架構(gòu)設(shè)計(jì)的目標(biāo)通過對(duì)使用場(chǎng)景的深刻理解來建立業(yè)務(wù)需求和技術(shù)需求之間的“橋梁”尋求最佳技術(shù)方案來實(shí)現(xiàn)業(yè)務(wù)需求重點(diǎn)是識(shí)別對(duì)系統(tǒng)結(jié)構(gòu)有重要影響的業(yè)務(wù)需求降低技術(shù)方案業(yè)務(wù)風(fēng)險(xiǎn)讓系統(tǒng)具有足夠的靈活性解決質(zhì)量指標(biāo)要求之間的平衡解決其他因素之間的沖突微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0架構(gòu)設(shè)計(jì)的目標(biāo)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0好的架構(gòu)設(shè)計(jì):展現(xiàn)系統(tǒng)的結(jié)構(gòu)但是隱藏實(shí)現(xiàn)的細(xì)節(jié)滿足所有的使用需求能解決系統(tǒng)相關(guān)人員(stakeholders)的各種顧慮很好地實(shí)現(xiàn)功能需求,同時(shí)也滿足質(zhì)量指標(biāo)的要求微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0好的架構(gòu)設(shè)計(jì):微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)手段以設(shè)計(jì)底線為參考制定多個(gè)待選方案測(cè)試評(píng)估,改進(jìn)幾個(gè)要點(diǎn):所用假設(shè)是否正確滿足那些明顯的和隱含的需求存在的關(guān)鍵風(fēng)險(xiǎn)對(duì)付風(fēng)險(xiǎn)的方案微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)手段微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0架構(gòu)設(shè)計(jì)底線方法應(yīng)用類型架構(gòu)設(shè)計(jì)風(fēng)格功能元件的分析部署策略合適的技術(shù)質(zhì)量指標(biāo)要求全局因素微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0架構(gòu)設(shè)計(jì)底線方法微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)的核心步驟明確架構(gòu)設(shè)計(jì)的目的(objectives)找出關(guān)鍵場(chǎng)景(keyscenarios)概略分析開發(fā)的應(yīng)用(overview)識(shí)別“敏感點(diǎn)”(hotspots)制定候選方案(candidatesolutions)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)的核心步驟微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0架構(gòu)設(shè)計(jì)風(fēng)格(styles)基于構(gòu)件的架構(gòu)(component-based)信息通道架構(gòu)(message-bus)層次架構(gòu)(layered-based)3-tier/N-tier架構(gòu)面向?qū)ο蠹軜?gòu)(object-oriented,OOA)名詞取向Nouncentric面向服務(wù)架構(gòu)(service-oriented,SOA)動(dòng)詞取向Verbcentric微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0架構(gòu)設(shè)計(jì)風(fēng)格(styles)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0質(zhì)量屬性要求可用性(availability)概念完整性(conceptualintegrity)靈活性(flexibility)互通性(interoperability)可維護(hù)性(maintainability)可管理性(manageability)性能(performance)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0質(zhì)量屬性要求微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0質(zhì)量屬性要求(續(xù))可靠性(reliability)再用性(reusability)擴(kuò)展性(scalability)安全性(security)可支持性(supportability)可測(cè)試性(testability)易用性(usability)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0質(zhì)量屬性要求(續(xù))微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0架構(gòu)設(shè)計(jì)的關(guān)鍵原則采用模型分析,降低風(fēng)險(xiǎn)(UML)采用模型和視圖(views)進(jìn)行交流辨別什么決定影響核心工程適應(yīng)變化的設(shè)計(jì)而不是“永存”的設(shè)計(jì)采用“遞加漸進(jìn)”的方法逐步完善設(shè)計(jì)重全局思考而不要過多地在乎細(xì)節(jié)不能忽視架構(gòu)設(shè)計(jì)的有效評(píng)估微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0架構(gòu)設(shè)計(jì)的關(guān)鍵原則微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0.NET平臺(tái)概述由若干服務(wù)器應(yīng)用,基礎(chǔ)設(shè)施構(gòu)件(infrastructure),實(shí)時(shí)服務(wù),和.NET框架構(gòu)成應(yīng)用基礎(chǔ)設(shè)施CLR.NETFramework移動(dòng)應(yīng)用(mobile).NETCompactFrameworkASP.NETMobileSilverlightMobile微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0.NET平臺(tái)概述微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0.NET平臺(tái)支援的應(yīng)用類型Web應(yīng)用ASP.NET“強(qiáng)勢(shì)”網(wǎng)絡(luò)應(yīng)用(RichInternetApp(RIA))Silverlight“強(qiáng)勢(shì)”客戶端應(yīng)用(RichClient)WindowsFormsWindowsPresentationFoundation(WPF)數(shù)據(jù)庫(Database)MicrosoftSQLServer微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0.NET平臺(tái)支援的應(yīng)用類型微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0.NET平臺(tái)支援的應(yīng)用類型(續(xù))服務(wù)(services)ASP.NETWebServices(ASMX)WindowsCommunicationFoundation(WCF)協(xié)同/工作流(collaboration/workflow)WindowsWorkflowFoundation(WF)OfficeSharePoint(MOSS)BizTalkServer網(wǎng)絡(luò)服務(wù)器(WebServer)InternetInformationServices(IIS)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0.NET平臺(tái)支援的應(yīng)用類型(續(xù)Visual

Studio演示

VisualStudio演示微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0例:.NET平臺(tái)和層次式架構(gòu)的應(yīng)用微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0例:.NET平臺(tái)和層次式架構(gòu)的微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0.NET層次架構(gòu)設(shè)計(jì)API表現(xiàn)層(presentationlayer)UI構(gòu)件UI處理件System.Web.UISystem.Windows.Form微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0.NET層次架構(gòu)設(shè)計(jì)API微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0.NET層次架構(gòu)設(shè)計(jì)API(續(xù))業(yè)務(wù)層(businesslayer)應(yīng)用表象(appfa?ade):UI

independent業(yè)務(wù)工作流(businessworkflows)業(yè)務(wù)構(gòu)件業(yè)務(wù)實(shí)體(businessentities)System.WorkflowSystem.TransactionsSystem.ServiceModels微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0.NET層次架構(gòu)設(shè)計(jì)API(微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0.NET層次架構(gòu)設(shè)計(jì)API(續(xù))數(shù)據(jù)層數(shù)據(jù)存取輔助功能(helputilities)服務(wù)代理(serviceagents)System.DataSystem.Data.Services微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0.NET層次架構(gòu)設(shè)計(jì)API(續(xù)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0.NET層次架構(gòu)設(shè)計(jì)API(續(xù)):綜合因素(cross-cutting)安全性運(yùn)行管理信息交流System.Security,System.Messaging,System.Runtime…System.Configuration,System.Deployment微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0.NET層次架構(gòu)設(shè)計(jì)API(續(xù)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)的核心原則關(guān)注分離原則(separationofconcerns)功能單一原則(singleresponsibility)最少相知原則(leastknowledge)不重復(fù)原則(reusability)逐步疊加原則重合成,輕繼承原則(compositionoverinheritance)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)的核心原則微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)面對(duì)的關(guān)鍵問題認(rèn)證和授權(quán)(authenticationandauthorization)在信任邊界之間缺乏認(rèn)證在信任邊界之間缺乏授權(quán)過細(xì)或不當(dāng)授權(quán)暫存(caching)暫存易變的數(shù)據(jù)暫存敏感數(shù)據(jù)暫存方法不當(dāng)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)面對(duì)的關(guān)鍵問題微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)面對(duì)的關(guān)鍵問題(續(xù))信息交流(communication)傳輸協(xié)議選擇不當(dāng)不必要的傳輸對(duì)敏感數(shù)據(jù)保護(hù)不當(dāng)合成(composition)太多的模塊間的依賴硬性依賴妨礙UI的動(dòng)態(tài)布局硬性依賴妨礙模塊的動(dòng)態(tài)裝載(dynamicloading)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)面對(duì)的關(guān)鍵問題(續(xù))微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)面對(duì)的關(guān)鍵問題(續(xù))并發(fā)和事務(wù)處理(concurrencyandtransactions)對(duì)靜態(tài)數(shù)據(jù)的并發(fā)存取不作保護(hù)不當(dāng)“鎖定”導(dǎo)致“死鎖”沒有選擇正確的數(shù)據(jù)并發(fā)模型運(yùn)行時(shí)間長(zhǎng)的事務(wù)處理“鎖定”數(shù)據(jù)不必要地使用“排他鎖定”微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)面對(duì)的關(guān)鍵問題(續(xù))微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)面對(duì)的關(guān)鍵問題(續(xù))配置管理(configurationmanagement)缺乏配置信息對(duì)敏感配置信息保護(hù)不當(dāng)對(duì)配置信息的存取不作必要的保護(hù)耦合和凝聚(couplingandcohesion)功能組合不當(dāng)關(guān)注分離不明確層次之間的緊密耦合微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)面對(duì)的關(guān)鍵問題(續(xù))微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)面對(duì)的關(guān)鍵問題(續(xù))數(shù)據(jù)存?。╠ataaccess)不必要的認(rèn)證和授權(quán)細(xì)分過于頻繁的數(shù)據(jù)庫調(diào)用混淆業(yè)務(wù)邏輯與數(shù)據(jù)存取代碼例外管理(exceptionmanagement)“例外”發(fā)生時(shí)向用戶透露敏感信息使用“例外”去控制程序的運(yùn)行沒有記錄“例外”發(fā)生詳細(xì)信息微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)面對(duì)的關(guān)鍵問題(續(xù))微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)面對(duì)的關(guān)鍵問題(續(xù))分層(layering)構(gòu)件誤置不遵循分層和獨(dú)立規(guī)則沒有考慮層次的物理配置問題狀態(tài)管理(statemanagement)不正確的狀態(tài)存儲(chǔ)方式?jīng)]有考慮序列化要求(serializationrequirements)在需要時(shí)不“硬存”狀態(tài)(persisting)微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)面對(duì)的關(guān)鍵問題(續(xù))微軟應(yīng)用軟件架構(gòu)設(shè)計(jì)指南2.0設(shè)計(jì)面對(duì)的關(guān)鍵問題(續(xù))結(jié)構(gòu)(struct

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論