我們有執行高性能數據處理的傳統C++代碼(例如,從硬件設備饋入的大量數據以時間敏感的方式處理,以便顯示,轉換並傳輸到輔助存儲器)。C#和C++可以交互使用高性能代碼嗎?
我們對新的GUI和新實用工具(現有的GUI是C++ MFC和Qt)的C#/ .NET感興趣。當然,對於現有的系統,我們沒有.NET虛擬機的「語言翻譯」問題(現有代碼都是C++)。
經過大量研究和許多書籍,我不確定這可以有效地完成。可能的方法(我錯過任何?):
- 重寫一切都在.NET(不能 發生 - 太多的代碼,裸機設備訪問,時間敏感的重算法處理)
- 薄對於託管的託管 C++/CLI
- 厚適配器層適配層 C++/CLI
- 不要使用.NET(經理感到極大的悲傷 )
我們對(2)「精簡適配器層」的關注是,如果GUI可以(重新)使用「業務」層中的邏輯(許多屬性由算法派生),那將會很好,所以如果我們不公開/包裝C++類,很多GUI邏輯將僅複製業務層中現有的C++邏輯。我們對(3)「粗適配器層」的擔憂是,用C#類來包裝每個C++類似乎非常繁瑣(昂貴),並且一些書籍表明跨該邊界的裝箱/拆箱訪問似乎暗示了這一點方法是不可行的/令人望而生畏的(除了微不足道的設計之外,它的表現令人望而卻步)。
你如何在C++中實現的深富階級結構的頂部接口新的C#/。NET(GUI)?