[英]Writing cross-platform application with a complex GUI
我想開發一個帶有復雜GUI的應用程序(帶動畫的組合框,帶樣條的圖表,透明層......)。 我有很好的C#2.0經驗,而且我正在學習WPF,但我讀到了,遺憾的是,沒有計划將WPF移植到Mono。
如果我堅持使用C#並使用OpenGL創建自定義GUI控件(通過OpenTK ) ,我覺得這將是一項艱苦的工作(與GTK集成,調試,難以用於設計表單)。
我可以使用Java(使用JOGL) ,但我不熟悉它,而且我不了解性能問題。
最后一個選項是C ++ ,但我必須做一個大的修訂 (自上次使用它以來的幾年),我發現很難用C ++開發GUI和便攜式應用程序。 (也許我錯了!不過,我很害怕用這種語言開發這么復雜的應用程序。)
你有什么建議? 我最好選擇C#+ OpenTK,Java + JOGL還是返回C ++?
我會選擇Qt。 請訪問http://qt.nokia.com/products/ 。 如果你害怕C ++(但沒有理由害怕它),你可以試試Java Swing。 我認為這些是多平台桌面GUI開發的最佳選擇。
我建議使用Mono和GTK#。 使用.Net開發應用程序遠比在C ++中使用它更有效。 當然,你必須堅持使用C#3.0和.Net 2.0(實現3.5的一些功能,如LINQ)。 但它仍然比C ++提供更多,例如QT,會給你。
轉到C#以提高工作效率。 對C ++沒什么,但它有點冗長。 至於GUI庫,我認為WinForms曾經在Mono上工作。 或者,GTK#。
我不建議使用wpf,因為它是一個依賴於平台的平台。 Silverlight可能是更好的選擇。
但是,如果你正在開發一個Web應用程序,jquery將是一個不錯的選擇,你也可以考慮adobe flex和adobe air; http://www.adobe.com/products/air/
多平台是否必須包含iDevices? 它可以在網上嗎? 這是你必須首先回答的兩個問題。
如果你可以沒有iPad / iPhone支持,那么Flex / Flash / Air是高度圖形化的好東西。 它是一個多平台,可以確保並輕松地集成到Web上。 對於這種情況,可能是您提供有限細節的最佳選擇。
Qt也適合你,雖然我不能確定它的圖形庫是否會讓它變得簡單。 我個人從未使用它,所以其他人必須回答這個問題。 但由於它是在C ++中,您也可以使用其他庫。
對於這種復雜的GUI,Java Swing聽起來很粗糙。 制作一些基本的東西並不算太糟糕,但如果你期待像C#這樣的體驗,我想你會感到沮喪。 當然只是個人意見。
最后,如果它可以是一個Web應用程序,為什么不堅持使用C#和Silverlight? .NET解決方案可能適合您,因為您已經在學習它。
首先,不要將C#用於任何便攜的東西。 對於GUI來說,Mono是一個糟糕的選擇,原因有兩個:
我的個人意見 - 使用C ++。 它會給你非常好的便攜性和獨立性。
您有兩種選擇:
此外,Java還提供了JDK附帶的Swing工具包,並且可以在所有Java平台上使用,甚至是像OpenVMS這樣非常奇怪的平台。
Silverlight可以在Windows / Mac / Linux和一些手持設備上運行,並且可以移植到更多的手持設備上。 我相信Silverlight最終會被移植到每個流行的設備上。
Silverlight是:
Silverlight具有您所要求的所有功能。
Silverlight與C#配合得很好,C#比C ++更有效。
Silverlight基本上是WPF的一個非常大的子集,因此如果您已經了解WPF,那么您已經了解了Silverlight。
除非您絕對需要iPhone / iPad支持,否則我認為這個決定非常明顯。
看看WPF和Cocoa的這種比較,以了解WPF / Silverlight與Qt,Flash / Flex / Air和GTK#之類的比較,所有這些都使用類似於原型類似於WinForms的對象模型。可可。
在我的日常工作(一家知名的微處理器公司),我們使用Java,Eclipse RCP和Java OpenGL開發復雜的工程應用程序。 性能很好 - 我們可以輕松獲得數百萬個多邊形/秒和高達100幀/秒。 Eclipse中的SWT小部件足夠快,我們不必使用JOGL渲染任何自定義控件。
我有一套教程,展示了如何開始這種編程。 該系列以http://wadeawalker.wordpress.com/2010/10/09/tutorial-a-cross-platform-workbench-program-using-java-opengl-and-eclipse/開頭。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.