某项目要调用现有的100多个DLL 一 开始
某個項目需要使用很多內部其他Team的DLL 和第三方的DLL (大概百來個吧......這是什么鬼啊...可怕的歷史,又不能改 這些dll都上生產環境了)
如果直接用dll引用之后調用? 會有很多很多的問題
1.程序的質量會下降到 這百來個dll中質量最差的一個 (萬一某些人在代碼里面寫什么lock(string) 啊什么的....死啦死啦的)
2.很多dll需要特殊的配置 把這些東西都放在web.config就準備等死吧...也不知道哪些是哪些,維護很容易死人
3.有些dll也許內部做了什么cache啊 或者開了什么socket端口啊 這種東西.. (有個組件TMD的內部緩沖了1G的數據,要死人啊,堅決關掉他)
4.要避免不同組件之間的沖突,例如一個dll的配置影響到其他dll的配置
?
最終要實現的效果是
? 配置文件隔離
不同組的DLL之間隔離,不要讓代碼互相影響
?
想為他們做一下隔離,想了以下的方案
1.服務器隔離, 把若干個dll分為一組,部署為webservice(或socket之類的)到其他服務器上 , 通過這種方式調用相互之間的影響最小
2.進程隔離, 把若干個dll分為一組,弄一個HOST 在console或者window service 上. 通過named pipe, message之類的方式通信
3.Application Domian隔離...這個就沒啥好說了,開發比較簡單
1和2的開發成本太高了 而且以后debug也是一個大問題......
3的問題是
a.現在的第三方組件的類很多沒有標記為Serializable 也不繼承MarshalByRefObject, 輸入輸出參數也沒有標記為Serializable,
b.需要額外的編碼量,相對于直接引用來說, 增加調試難度
c.性能問題 大數據量的序列化反序列化造成性能損失(performance hurt)
?
目前看起來還是比較靠譜, 不過還需要做一下程序原型設計...
1.看看究竟能不能走的通
2.如何減少編碼量
3.性能問題影響大么?怎么解決
轉載于:https://www.cnblogs.com/PurpleTide/archive/2011/01/28/1947073.html
總結
以上是生活随笔為你收集整理的某项目要调用现有的100多个DLL 一 开始的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 60个数据窗口技巧(转)
- 下一篇: Office文档模型深入---Outlo