我們在Haskell有一個很大的控制檯應用程序,我負責製作跨平臺並添加一個gui。使用ZeroMQ進行跨平臺開發?
的要求是:
- 本機作爲-可能的外表和感覺。
- 客戶端適用於Windows和Mac OS X,如果可能,Linux。
- 沒有單獨的運行時間來安裝。
- 沒有必要的網絡通信。 haskell代碼處理非常敏感的信息,無法通過線路傳輸。這真的是這不是一個Web應用程序的唯一原因。
現在,這個問題的真正原因是爲了解釋我目前正在研究的一個解決方案,並徵求我沒有想到的原因,這使得這是一個壞主意。
我的解決方案是一個本地gui。 Windows上的Winforms,Mac OS X上的Cocoa和Linux上的GTK/Glade,它們只是簡單地處理演示文稿。然後,我會在Haskell代碼的頂部編寫一個圖層,將其變爲使用ZeroMQ來處理消息的UI和來自UI的消息的響應者,以及可能來回序列化數據的protobufs。所以本地應用程序將啓動它本身啓動所有魔法發生的守護進程,並且來回發送消息。
除了確保守護進程只接受來自啓動它的應用程序的連接,以及爲高級gui元素(我正在考慮表視圖,單元格等)提供正確數據的挑戰,我沒有看到很多缺點。
我在想什麼,這是一個壞主意?
我或許應該提到,乍看之下,我打算在所有平臺上使用GTK。問題在於,雖然它很接近,並且GTK和Glade支持Haskell很適合使用,但結果看起來並不「正確」。它很接近,但只是微妙的方式不足以讓那些碰巧正在爲這項工作寫檢查的人無法接受這種解決方案。
此外,gui的多平臺問題和多語言問題不是問題,所以我不一定要尋找其他方法來解決這個問題,除非它簡化了與haskell代碼的交互操作。
我用hack-handler-webkit或類似的東西搞砸了很久。它工作得很好。只要有空閒時間,我一定會研究這個。謝謝(你的)信息! – clintm 2011-05-04 23:07:47