按耐不住激動(dòng)的心情,因?yàn)槔^上篇文章后,不斷的完善框架,今天終于整個(gè)系統(tǒng)基本穩(wěn)定了,就繼續(xù)談框架。

  我做C#開(kāi)發(fā)已經(jīng)近五年了。已經(jīng)愛(ài)上她了,我經(jīng)常開(kāi)玩笑說(shuō),寫(xiě)代碼如同談戀愛(ài),關(guān)鍵是我想認(rèn)真的做一名程序員而不是碼農(nóng)。

  簡(jiǎn)單回顧一下,目前系統(tǒng)是WCF三層C/S插件系統(tǒng)。服務(wù)器端是WCF程序寄宿在IIS中,其中我的配置設(shè)計(jì)是長(zhǎng)連接,客戶(hù)端支持多線程,一個(gè)volatile的實(shí)例對(duì)象??蛻?hù)端用Winform,其中客戶(hù)端框架及規(guī)則及核心代碼都是我實(shí)現(xiàn)編寫(xiě)的,顧今天只談客戶(hù)端。

  什么是插件框架?一個(gè)插件是業(yè)務(wù)上可劃分的模塊,代碼布局上是一個(gè)程序集,(當(dāng)然構(gòu)件系統(tǒng)可以對(duì)應(yīng)多個(gè)程序集)。框架的作用是把程序集加載到內(nèi)存,及負(fù)責(zé)程序集中的功能的路由通信。

  現(xiàn)在的系統(tǒng)是使用osgi把程序集加載到內(nèi)容中,因?yàn)閮H是使用此功能,所以完全可以用C#中的反射程序集加載到內(nèi)存,注意用LoadFile方法。

  目前關(guān)于框架所設(shè)計(jì)的表有模塊表,插件表,窗體表,元素表。

  主界面(框架的控制中心)設(shè)計(jì)界面只有幾個(gè)容器,其他全是動(dòng)態(tài)生成的(模塊,插件,窗體)。

  說(shuō)說(shuō)路由通信規(guī)則吧,什么叫路由通信呢?程序跑起來(lái)之后所有的功能都加載到主界面了。而每個(gè)模塊中的插件在不同的程序集中,(界面主要是動(dòng)態(tài)生成的),怎么能實(shí)現(xiàn)從一個(gè)插件中的某個(gè)窗體跳轉(zhuǎn)到主界面任意一個(gè)插件中的窗體上且?guī)е?