NET 分布式架構(gòu)開發(fā)實戰(zhàn)之一 故事起源
前言:
本系列文章主要講述一個實實在在的項目開發(fā)的過程,主要包含:提出問題,解決問題,架構(gòu)設(shè)計和各個邏輯層的實現(xiàn)以及新問題的出現(xiàn)和代碼的重構(gòu)。本系列文章以故事的形式展開,而且文章列舉的很多項目的名稱,大家也不用太關(guān)心,很多都是虛擬的。
本篇主要講述項目的一些背景
新人Richard被分配到了一個企業(yè)自動化信息管理項目組--Automation Information Management Project(后面簡稱AIM),當(dāng)Richard進(jìn)入項目組的時候,這個項目已經(jīng)開始了,項目的架構(gòu)也已經(jīng)在兩周之前構(gòu)建好了--SOA架構(gòu),而且使用的主要技術(shù)也敲定了:WCF, Linq.
注:因為項目是首次采用"新技術(shù)"(因為以前沒有使用WCF,Linq,所以被稱為新技術(shù)),項目就這樣開始進(jìn)行了。
半年之后問題就開始出現(xiàn)了(其實問題就一開始就出現(xiàn)了,只是大家還認(rèn)為問題不大):因為當(dāng)初在設(shè)計的時候,項目的架構(gòu)是由項目組的其他兩個人設(shè)計的,整個項目開發(fā)基本上就沒有采用面向?qū)ο蟮乃枷雭黹_發(fā),而且雖然在架構(gòu)設(shè)計上分了:數(shù)據(jù)層,業(yè)務(wù)層,服務(wù)層,和UI層,但是各層之前是緊緊的耦合,可以說是“牽一發(fā)而動全身”:如數(shù)據(jù)訪問層稍微一改,業(yè)務(wù)層就跟著動,然后改變一層層的開始波及。
大家都開始覺得這樣很累,但是項目已經(jīng)做到這個階段了,不可能重來。每次新需求一來,項目的的改動可以說是天翻地覆。而且當(dāng)初設(shè)計架構(gòu)的那位仁兄也就項目一開始的一個月后就走了。
下面的圖就展示項目中的架構(gòu)設(shè)計:
咋一看起來還是不錯的,一般的架構(gòu)都是這樣設(shè)計的。下面就開始講述它們之間的一些調(diào)用關(guān)系,看看有什么問題:
數(shù)據(jù)訪問層:
public class EmployeeDAL { public List<Employee> GetAllEmplyees() { //... } }
其中Employee就是Linq生成的一個實體對象。
業(yè)務(wù)層:
代碼
public class EmployeeBL { public List<Employee> GetAllEmplyees() { EmployeeDAL employeeDAL = new EmployeeDAL(); return employeeDAL.GetAllEmplyees(); } }
出處:博客園
責(zé)任編輯:bluehearts
上一頁 下一頁 .NET分布式架構(gòu)開發(fā)實戰(zhàn)(一) [2]
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|