Wcf 開發日記 1

2021-04-16 09:38:05 字數 1786 閱讀 7431

這篇日記是記錄我在開發

wcf中所遇到的問題,以及解決的方法。這個專案並不是乙個從零開發的專案,某種程度上可以被看作是從

2層架構到

3層的遷移。

其中遇到了很多問題,包括技術的和非技術的。這些都將會被我一一記錄。這些經驗和技術實踐可以被用作

soa專案的參考。

專案的總覽:

wcf和

wpf都是

ms的新技術,

wpf被用來構造新一代的ui,

wcf則是新一代分布計算的開發平台。與

com+

不同wcf

有著學習曲線平緩,開發周期短的優勢。

現在我要做的工作是將同事之前開發的

wpf + database 的2

層應用移植成為

3 層的

soa。個人認為這是一種重構,這是一種從

c/s => soa

的重構。

問題1,

如何分層

(how to layer?)

3層presentation, domain and database

毫無疑問,這是被無數次企業開發實踐證明過的,可行的方法。現在的問題是

domain layer(

微軟稱之為

biz logic)

內部是什麼樣子的。是把所有邏輯混雜在一起嗎?

我們說當然不是,

fine-design

是為了更好的可重用和更好的擴充套件。那麼如何可以讓我們

domain

是fine-design

?這是個問題,每個人有自己的解決方案,包括

martin fowler 在中

也說過,他的意見只是參考,乙個好的架構師不能失去的是自己的想法和判斷力。要想邏輯清晰當然要分層,我的想法是在

domain

內部也要分層。第1

層,也就是最外那層。當然是

service layer

,它的任務很簡單負責和

ui互動,提供

ui所需要的一切服務。當然在

ui所需要的所有介面中,可以根據邏輯和行為對它們(所有的介面函式)進行介面的劃分。這樣一來,可重用和擴充套件性都有了保障。感謝

wcf它為我們做了這一切,在

wcf中可以使用稱之為

contract

的概念將不同的介面函式劃分成可重用的介面。第2

層是真正的

domain layer

,這一層的實現的方法很多,最簡單的方法就是使用乙個類,它的每乙個函式就是乙個訪問資料庫的邏輯,當然了,它的劣勢是擴充套件性差。如果是小型的企業應用,這種方法無疑是最好的。另一種方法複雜些,不過有著更好的擴充套件性。將不同的訪問邏輯提取出抽象介面,根據

strategy pattern

暴露給上層應用。

strategy pattern

保證了良好的擴充套件性。即使有新的邏輯加入,所需要的也不過是乙個性的邏輯類,當然這個類要實現

strategy

的所有介面。 第

3層資料訪問層,

object to relation

的相互對映乙個是乙個問題。類是物件導向的而資料庫是面向

record

的。無數人給出了

的方法,包括

linq

技術。使用

.net

作為開發平台某種程度上避免了這種痛苦

datatable, datarow and dataset

讓我們的工作輕鬆了很多。它同時也讓

memory-update

成為可能。

MAS開發日記 1

我一直認為,乙個良好的軟體開發企業,必須有以下品質 1。軟體質量穩定 2。開發效率高 3。可維護性,以及持續性維護性要高 4。產品或服務針對某個細分市場,具有獨特的價值。根據我們小型軟體團隊的實際情況,我們總結了一套軟體開發的標準管理規範和操作指引,並自主研發了乙個軟體開發的平台,通過這些工作,我們...

專案開發日記(1)

今天是2022 04 15,系統已經開發到v1.1了。我亂命名的,我也不懂怎麼給版本命名。就這樣把,v1.0也就是前兩天的事,當時把整個系統主要一點的功能做出來了,做出來就算成功!v1.1就是接著v1.0繼續把功能實現下去。亂命名的,搞的後面都不知道該是v1.2還是v1.1.1了。目前是大四馬上畢業...

wcf學習日記 2014 7 1

wcf的所有的服務都會公開契約,即描述服務功能的基本方式 wcf的契約有4種 服務契約 描述客戶端能夠執行的服務操作 資料契約 描述與服務互動的資料型別 int,string隱式定義了契約 錯誤契約 描述服務出錯如何處理 訊息契約 允許服務可以直接和訊息互動 定義和實現服務契約 servicecon...