|
前言:
本系列文章主要講述一個(gè)實(shí)實(shí)在在的項(xiàng)目開(kāi)發(fā)的過(guò)程,主要包含:提出問(wèn)題,解決問(wèn)題,架構(gòu)設(shè)計(jì)和各個(gè)邏輯層的實(shí)現(xiàn)以及新問(wèn)題的出現(xiàn)和代碼的重構(gòu)。本系列文章以故事的形式展開(kāi),而且文章列舉的很多項(xiàng)目的名稱,大家也不用太關(guān)心,很多都是虛擬的。
本篇主要講述項(xiàng)目的一些背景
新人Richard被分配到了一個(gè)企業(yè)自動(dòng)化信息管理項(xiàng)目組--Automation Information Management Project(后面簡(jiǎn)稱AIM),當(dāng)Richard進(jìn)入項(xiàng)目組的時(shí)候,這個(gè)項(xiàng)目已經(jīng)開(kāi)始了,項(xiàng)目的架構(gòu)也已經(jīng)在兩周之前構(gòu)建好了--SOA架構(gòu),而且使用的主要技術(shù)也敲定了:WCF, Linq.
注:因?yàn)轫?xiàng)目是首次采用新技術(shù)(因?yàn)橐郧皼](méi)有使用WCF,Linq,所以被稱為新技術(shù)),項(xiàng)目就這樣開(kāi)始進(jìn)行了。
半年之后問(wèn)題就開(kāi)始出現(xiàn)了(其實(shí)問(wèn)題就一開(kāi)始就出現(xiàn)了,只是大家還認(rèn)為問(wèn)題不大):因?yàn)楫?dāng)初在設(shè)計(jì)的時(shí)候,項(xiàng)目的架構(gòu)是由項(xiàng)目組的其他兩個(gè)人設(shè)計(jì)的,整個(gè)項(xiàng)目開(kāi)發(fā)基本上就沒(méi)有采用面向?qū)ο蟮乃枷雭?lái)開(kāi)發(fā),而且雖然在架構(gòu)設(shè)計(jì)上分了:數(shù)據(jù)層,業(yè)務(wù)層,服務(wù)層,和UI層,但是各層之前是緊緊的耦合,可以說(shuō)是牽一發(fā)而動(dòng)全身:如數(shù)據(jù)訪問(wèn)層稍微一改,業(yè)務(wù)層就跟著動(dòng),然后改變一層層的開(kāi)始波及。
大家都開(kāi)始覺(jué)得這樣很累,但是項(xiàng)目已經(jīng)做到這個(gè)階段了,不可能重來(lái)。每次新需求一來(lái),項(xiàng)目的的改動(dòng)可以說(shuō)是天翻地覆。而且當(dāng)初設(shè)計(jì)架構(gòu)的那位仁兄也就項(xiàng)目一開(kāi)始的一個(gè)月后就走了。
下面的圖就展示項(xiàng)目中的架構(gòu)設(shè)計(jì):
咋一看起來(lái)還是不錯(cuò)的,一般的架構(gòu)都是這樣設(shè)計(jì)的。下面就開(kāi)始講述它們之間的一些調(diào)用關(guān)系,看看有什么問(wèn)題:
數(shù)據(jù)訪問(wèn)層:
public class EmployeeDAL
{
public List<Employee> GetAllEmplyees()
{
//...
}
}
NET技術(shù):.NET分布式架構(gòu)開(kāi)發(fā)實(shí)戰(zhàn)之一 故事起源,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。