WPF多進程UI客戶端(Like Chrome)設計

接上一篇 WPF多進程UI探索(Like Chrome) 找到了相對較靠譜的跨進程傳遞WPFUI的方法,本篇將對WPF多進程UI框架進行設計。框架

功能性需求

  1. 一個主進程做爲宿主,承載多個子進程的UI
  2. 每一個子進程相互獨立,互不影響
  3. 主進程和子進程能夠靈活拆卸和裝配
  4. ...

非功能性需求

  1. 對現有的開發模式影響小
  2. 對潛在的插件擴展提供支持
  3. 單元測試覆蓋率>60%
  4. ...

設計方案一

image41.png

思路是宿主程序啓動新的空進程做爲 子進程,在子進程中經過AppLoader加載真正子進程的內容,這樣的好處是不限制真正子進程的形式,能夠是exe,也能夠是dll,這樣對於後續帶UI的第三方插件的支持很友好;缺點則是子進程的狀況可能較爲複雜,AppLoader的實現會比較麻煩。post

設計方案二

image42.png

此方案相對方案一更簡單,直接在宿主程序中啓動子進程程序,省掉了AppLoader的環節。可是,此方案要求子進程是exe程序。單元測試

Logical View

image40.png

Process View

image43.png

image44.png

說明

須要強調的點是測試

  1. 主進程管理各子進程的UI
  2. 子進程互不影響
  3. MAF的使用

Demo效果

1.gif
相關文章
相關標籤/搜索