您好,登錄后才能下訂單哦!
本篇文章為大家展示了ASP.NET中如何選擇應用系統架構,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
架構的選擇
架構的選擇與應用程序的類型有關。這里說的是ASP.NET應用,那么Client-Server的架構就很顯然排除了。剩下:
基于組件的架構
應用可以按組件劃分,不用組件實現不同功能和邏輯,組件之間的接口規范有很好的定義。某些組件可以重用。
分層Layered的架構
應用被劃分成了堆疊在一起的若干層,每一層完成特定的服務和功能,與其上下層接口,各層之間是調用被調用的關系。在最上面的層只有調用下面的一層,在中間的層則兼有調用和被調用。在最下面的層則是僅供上面的層調用。通常劃分成UI層,商務邏輯層,數據層等,并且通常多個層都部署在同一臺服務器上。
消息總線型的架構
應用程序按照預定義的格式來收發消息。有一個消息隊列和消息存儲,分發處理的任務。相關消息的事件被程序處理。支持不同的系統平臺。消息總線里面有若干定義好的消息流,消息總線同各系統平臺交換數據,支持不同的格式。將消息交由不同的處理程序處理。
Model, View, Controller(MVC)架構
用戶交互的處理與UI顯示分離
用戶交互的處理和UI顯示與數據分離
3Tier/N Tier的架構
Tier可以譯成排。以與Layer(層)有所區別。將應用程序劃分成一系列的服務,包括UI, Business(商業邏輯), 數據等服務。各Tier可部署在不同的服務器上。類似于分層(layer)的架構。通常分層(layer)不跨機器的邊界,也即所有層(layer)都部署在一臺服務器上。Tier是要跨機器的邊界。各Tier之間用預定義的通信協議來通信,如WCF, Web service, 或者TCP/IP等。分層(layer)的各層(layer)之間的通信都是通過該編程語言的引用和調用來實現的。所以是有區別的。
面向對象的架構
應用可以劃分成自給自足的可重用的對象集合,對象包含了數據和行為。各對象之間有消息交互。
面向服務的架構
應用使用一個功能是通過調用一個服務。在服務提供者和調用者之間有通信合同和消息,通信合同定義了消息的格式和通信的方式。消息則包含通信的內容。面向服務的架構是“請求-響應”的工作模式。應用程序是以一種服務提供的,調用者需要向服務發送預定義好的請求消息,服務才做出響應。
這些架構類型都可以用來開發ASP.NET應用。我們可以從其中選擇架構類型的組合來,比如:分層Layered的架構 + 面向服務的架構。MVC架構 + 消息總線型架構。具體的選則,取決于應用程序的要求。現在說一下如何選架構:
如果
有若干現成組件,比如以前系統的ActiveX組件或者.NET的組件
應用程序足夠簡單而不需要分層的架構,通過調用這些組件就可完成大部分工作
不同語言開發的組件需要結合在一起,如ASP.NET需要調用VB寫的COM+的組件
應用程序需要支持插件技術,可以動態切換組件,例如用.NET反射技術實現的插件技術
那么我們可以選擇基于組件的架構。
如果
應用程序比較復雜,不同的功能需要不同的層來各司其職,如數據訪問,商務邏輯,表現等。
有比較復雜的商務邏輯和流程。
那么我們可以選擇分層的架構。
如果
有若干已有系統并且這些系統之間有特定的交互
需要讓一個系統與外部的其他系統交互
不同平臺上的系統相互之間進行交互
那么我們可以選擇消息總線型的架構
如果
要獲得分離的UI視圖和處理邏輯
要UI視圖和處理邏輯與數據存儲分離
那么我們可以選擇Model,View,Controller(MVC)架構
如果
應用全部在內部網里
應用在互聯網上,同時商務邏輯需要暴露給公眾使用
商務邏輯足夠復雜,需要專門的服務器來提供商務邏輯服務。
應用程序比較復雜,不同的功能分布在不同的服務器上,每一種功能,都可能是由一組服務器來提供。
那么我們可以選擇3 Tier/N Tier架構
如果
相關商業領域有足夠多的現實對象(這些對象通常是相關商務人員口中的名詞),并且這些對象之間有交互
應用比較復雜,需要更多的抽象
對象的數據和行為都需要封裝以利重用
有足夠的資源來做深入的面向對象分析,如時間,人力等。
那么我們可以選擇面向對象的架構。
如果
應用需要支持平臺無關性
多個應用程序的功能放進一個單一的界面來提供
采用請求-響應模式運行
需要開發軟件加服務(Software plus service),軟件即服務(Software as a service)類型的應用,或者基于云計算的應用
那么我們可以選擇面向服務的架構。
針對目前的場景:大型ASP.NET應用,那么它最基本的需求可能是這樣的:
同時訪問的用戶將會是相當多的,比如幾千個,上萬個。
7x24小時都有大量用戶訪問
某些地方需要用戶登錄以獲取一些需要授權才能獲得的信息
我們可能選擇的架構組合可能是這樣的:
3Tier/N Tier的架構
Model, View, Controller(MVC)架構結合3Tier/N Tier的架構
3Tier/N Tier的架構結合面向服務的架構
3Tier/N Tier的架構結合面向對象的架構
當然也有可能是其他的組合。
分層Layered的架構不適合大型的ASP.NET應用。分層Layered的架構通常將UI層,商務邏輯,數據訪問層都部署在同一臺服務器上,首先一臺服務器不能負擔眾多的用戶,還有復雜的商務邏輯不是一臺服務器能全部擔負的。所以分層Layered的架構不適合大型的ASP.NET應用。小型的ASP.NET應用才適合分層Layered的架構。
基于組件的架構也不適合大型ASP.NET應用。通常來說大型的ASP.NET應用都是相當復雜的,它的UI界面,商務邏輯,數據都是復雜的。不會簡單到調用幾個控件就完成了大部分的工作,大型的ASP.NET應用的每一個Tier排,都需要眾多的服務器來分擔壓力,基于組件的架構的分布式能力有限,所以基于組件的架構是通常不會在大型ASP.NET應用里考慮的,除非是有若干個重要的控件,并且要考慮集成多個編程語言的控件時,才會考慮基于組件的架構。而且是在某個局部使用,即需要與其他架構一起結合起來用。
消息總線型架構可以在某些場景下參與大型ASP.NET應用的開發。通常是需要將多個系統平臺整合在一起的時候。消息總線型的架構需要結合其他的架構來共同構造ASP.NET應用。
MVC架構關注的更多的是UI,用戶交互的控制以及數據存取的分離。通常不能單獨去構造一個大型的ASP.NET架構。需要結合3Tier/N Tier架構來共同構造大型ASP.NET的架構。MVC架構在UI還有用戶交互上有固定的模式,所以可以在UI這一塊應用MVC的架構,當涉及到MVC中的模型Model時,就可以擴展到3 Tier/N Tier的架構。即在訪問模型Model時,就去訪問另外一個服務器上的商務邏輯和數據存儲。這個可以用下圖來表示:
面向對象的架構是更多地關注應用里面的面向對象分析,設計等過程產生出來的結果。這個結果體現了現實世界中的對象之間的交互作用。面向對象的架構需要結合其他架構如3 Tier/N Tier架構來共同構造ASP.NET應用程序的架構。
面向服務的架構是在特定場景下需要的。即上面所說的,多個功能作為一項服務,提供一個統一的UI給外界用戶。大型ASP.NET應用中通常需要將商務邏輯提供給公眾訪問。這時就可以采用面向服務的架構。面向服務的架構也需結合其他架構如3 Tier/N Tier架構來共同構造ASP.NET應用程序的架構。
3 Tier/N Tier架構對于大型ASP.NET應用來說是必須的。它的每一Tier排都由若干服務器組成。只有這樣才可以服務眾多的用戶。如上面的圖所示,UI調用商務邏輯時得跨越機器的邊界,調用另外一臺服務器上的商務邏輯服務接口。
上述內容就是ASP.NET中如何選擇應用系統架構,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。