天天看點

.NET企業級應用架構設計系列之技術選型

這裡說的技術選型實際上是指技術方向的選擇,或者叫平台方案的選擇,也或者叫技術路線等,總之是大方向的把握。假定項目背景是要做一個中型WEB系統,公司組建新的技術團隊以及營運團隊來運作。基于這個模糊的項目背景,看看我們能得到些什麼。

首先我們想到的是目标系統的特征:

A) 穩定性及可服務性:這是對軟體系統最基本的要求,為客戶提供穩定的服務是業務開展的最基礎的保證。這是和客戶的耐心作戰,是赢取客戶和擴充業務縱深度的前提。很難想象有人會在一個不穩定的系統面前花費精力去做一件本該很容易的事情。

B) 整體性能及更新擴容餘地:雖然很多時候對系統壓力的擔心是多餘的,但系統架構必須有一定的應付突發事故的能力以及具備足夠的更新擴容空間來滿足潛在的業務擴張,不然總會有手忙腳亂的一天。系統性能是可服務性的一方面,而更新擴容空間是系統持續長期運作的保障。

C) 可維護性及可管理性:除開靈活的系統實作帶來的可維護性,系統軟體和硬體裝置的選擇同樣對可維護性産生重要的影響。這需要結合團隊的人員架構來共同考慮。在維護性和管理性方面的問題必然帶來更新擴容和應對業務變化方面的巨大困難。

再者,我們會想想想在市面上的解決方案提供商都能給我們什麼:

目前在WEB系統方面流行的主要是Java和.NET兩個平台級的軟體技術方向,它們之是以流行是因為在許許多多的場合被證明能保障較高的生産效率。兩者提供的解決方案都表現不錯,隻不過可能達到相同的目标所帶來的總體擁有成本不一樣而已。也就是說,它們在解決方案特征方面差異不大。一些重點比對項參考如下:

Java

.NET

備注

可移植性

好,能在大多數作業系統平台上順利移植。

差,隻有Windows相容平台上移植。

移植性對于最終客戶來說沒有多大意義,但Java運作于Linux系統能降低投入成本。

廠商支援

多,有許多伺服器廠商支援Java。

少,但呈現增多的趨勢。

社群技術支援

多,有許許多多的社群和專業的技術支援廠商。

多,單純Microsoft一家提供的技術文檔就已經相當豐富。

微軟的.NET戰略不止是技術上的戰略,也是針對人的戰略。

開源産品

多,而且有很多非常成熟的産品級開源項目。

少,和Microsoft一家獨斷有曆史因素。

 開源軟體的技術支援整體上都不完備。

社會人力資源

多,但兩極分化嚴重。

多,但做過深入開發的人少,特别是.NET 2.0和3.0平台。

結論來自某人才招聘網統計資料。

另外,我們會想想我們的人手,也就是說開發團隊方面我們擁有哪些方面的人和技術。整個系統的開發需要團隊的力量,架構設計和技術方向選型必須關注人的因素。隻有合适的人做合适的事情才能産生預期的高位價值。人力資源和技術團隊架構在選擇方向上起重要作用,需要結合人力資源市場的人才分布來思考。團隊的曆史經驗對架構設計有很大影響,因為曆史經驗可以帶來架構重用以及減少學習新技術和新工具的曲線。另外,團隊的素質決定了軟體過程能否順利實施。是以,團隊在架構設計中占有相當的分量。(這裡,絕不要把架構設計孤立起來看待,它不隻是規劃期的事情,因為架構設計是對未來的把握,任何影響因素都要盡可能的考慮進來,特别是一些重大影響因素)。

上面的三點,是一個互相聯系的整體,合在一起就成了一個三角形,我把它叫做“架構設計三角形”:

圖1:架構設計三角形

接下來,結合一些指導原則,它們是許許多多軟體系統成功失敗的經驗總結。其實,看起來也是非常直接的,很容易了解和接受:

A) 尋找最容易找到的技術人員組建團隊。這樣可以将人員流動對項目的影響減到最小,同時也可以快速的組建團隊進入開發期。目前,IT人力資源市場上,Java方向和.NET方向是兩個主要的企業級開發方向,多數IT人才也集中在這兩塊。

B) 使用成熟技術。顯然,Java和.NET都是成熟的技術。在軟體解決方案方面都有各自的長處和優點,但對企業級應用而言都可以勝任。通過這幾年的發展,.NET和Java都形成了豐富的社會技術資源。.NET經過1.0到3.5的發展,在企業級應用方面已經在實踐中變得更加的成熟了。

C) 使用團隊熟悉的技術。避免過于陡峭的學習曲線,可以把對開發人員的的要求降至更低。但這并不等于使用最簡單的技術來完成複雜龐大的企業級應用,應該是在易學易用的前提下構造穩定可維護的目标系統。冒着危險選擇不成熟的技術或者不熟悉的技術都隻能得到一個漏洞百出的系統。

D) 側重于開發期的規劃與管理,開發穩定可維護的産品。對團隊的素質側重點放在溝通和編寫穩定可維護代碼的視角,避免目标系統走向紊亂而不可控的地步,進而導緻最終失敗的結局。

結合具體實際情況,結論很容易得出了。考慮的方向是:目标系統 + 技術團隊 =〉 解決方案。詳細的結論就不寫了,我這次為項目選擇的是.NET 2.0平台。

版權

作者:靈動生活 郝憲玮

如果你認為此文章有用,請點選底端的【推薦】讓其他人也了解此文章,

.NET企業級應用架構設計系列之技術選型

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。