我基於WCF的SOA架構專案實戰

2021-05-26 15:57:51 字數 2191 閱讀 6133

本人才疏學淺,在現在的專案中即是程式設計師又是架構設計組組長。在使用wcf技術前看了無數號稱wcf實戰部落格,沒有一篇是我想要的。不過也算學到些皮毛。在此謝過,對你們的善意分享和辛勤勞動表示萬分的感謝。很久不發部落格了,最近研究wcf有些心得發上來和諸位分享一下。還請各位高手跳過,但願不會浪費各位的表情。這裡先上幾張圖,後面再講過程。

架構過程遇到的問題和解決方法。

1、要不要使用dto物件,要不要建立dto層?

解決辦法是巧妙的將實體物件和dto物件合併,這樣少了轉換的過程。感覺還行。

樣本如下:

namespace rtls.entities

[datamember]

public virtual string rolename

[datamember]

public virtual bool active

[datamember]

public virtual string desc

[datamember]

public virtual datetime? timestamp

[datamember]

public virtual string remark

private ilistlist;

//一對多關係:角色(role)有乙個或多個角色功能(sysrolefunc)

[datamember]

public virtual ilistrolefuncs

return list;

}set

}        }}

using system;

using system.servicemodel;

namespace rtls.iservices

}namespace rtls.services

public bool deletesysrole(entities.sysrole role)

public ilistgetall(bool isactive)

public ilistgetpageresults(int curpageno, int limit, string name, bool isactive, ref int totalcount)

public ilistgetrolebyuserid(int userid)

public bool modifysysrole(entities.sysrole role)}}

雖然說不推薦這樣用,但是工期有限啊。沒有使用linq,所以要真是dto-->entity,entity-->entity轉換來轉換去的要死人的。因為這個原因曾經打算放棄使用wcf,讓客戶端直接引用bll和model層。後來發現這樣合併了之後可以繼續下去了,就這樣做了。對錯先暫且不論。

2、怎麼除錯和設定wcf引數?

當然是摸索了,跌倒,跌倒...爬起來,再來!上幾張圖:

3.乙個winnt服務如何host多個wcf服務?

protected override void onstart(string args)

開始監聽uri為:",

serviceelement.name, serviceelement.endpoints[0].address.tostring()));

};servicehost.open();               

}           

}這個辦法是在吉日大哥的通用許可權元件裡面看到的,這裡對吉日大哥表示衷心的感謝!希望大夥尊重一下扎扎實實搞技術的人,我不是為了跟吉日大哥打廣告。做人要懂得感恩!你技術牛,你鄙視我可以,我不羨慕你,也不一定要屌你。

4、怎樣使用泛型工廠類來簡化和重構**?

這個正在嘗試中,畢竟先完成了。

5、使用winnt服務的方式安裝、發布容易嗎?好用嗎?

///

/// 應用程式的主入口點。

///

servicebase servicestorun;

servicestorun = new servicebase

;servicebase.run(servicestorun);

想知道怎樣除錯服務程式像除錯控制台程式一樣嗎? 把服務的onstart方法標記為public new .預設是protected override.然後像下面那樣取消那些注釋,並注釋上面  的**就ok了。

//var shostsvr = new rtlshostsvr();

}

我對SOA的反思 SOA架構的本質

年初的時候,寫過一篇名為 國內eai正當時,bpm為時尚早,workflow持續增長,soa依然概念 的blog日誌。那個時候,我認為soa還依然是個很 虛 的概念。而現在,我只能說 sorry,那時候的我,錯了。soa已經不再是概念,而是乙個實實在在的構架了。在寫完那篇帖子之後,我一直在反思soa...

我對SOA的反思 SOA架構的本質

年初的時候,寫過一篇名為 國內eai正當時,bpm為時尚早,workflow持續增長,soa依然概念 的blog日誌。那個時候,我認為soa還依然是個很 虛 的概念。而現在,我只能說 sorry,那時候的我,錯了。soa已經不再是概念,而是乙個實實在在的構架了。在寫完那篇帖子之後,我一直在反思soa...

我對SOA的反思 SOA架構的本質

年初的時候,寫過一篇名為 國內eai正當時,bpm為時尚早,workflow持續增長,soa依然概念 的blog日誌。那個時候,我認為soa還依然是個很 虛 的概念。而現在,我只能說 sorry,那時候的我,錯了。soa已經不再是概念,而是乙個實實在在的構架了。在寫完那篇帖子之後,我一直在反思soa...