[英]F#: is there no UI (like WPF) for it?
我最近在F#上看過一些視頻。 它似乎主要用於服務或類? 我在VS2010 Beta中看不到“F#WPF”應用程序?
F#實際上有一些非常好的構造用於創建事件驅動的UI應用程序,例如First Class Events , Object Expressions ,從構造函數調用屬性setter,例如:
new Form(Text="My Window Title", Width=600, Height=400)
,
還有很多。
但是,在VS中創建表單設計器會為您的語言重新設置CodeDom。 只要您的語言看起來與C#或VB 完全相同 ,當前CodeDom架構的效果很好; 它不適合生成F#代碼(這來自我現在無法找到的網絡廣播或采訪)。 它還需要部分類,如果我沒記錯的話,在Beta 1的語言中不支持。在第一版中,F#團隊不是專注於設計師支持,而是決定將他們的資源用於增強語言的其他部分,例如異步和並行編程等
這意味着您在F#中創建UI至少有4種選擇:
其中,從F#調用C#UI庫可能是最靈活的,同時仍保留熟悉的范例。 但是,使用計算表達式手動快速構建UI當然值得一看。
你當然可以在F#中創建GUI - 畢竟它只是另一種.NET語言。
Tomas Petricek的書“真實世界的功能編程” (我已經幫助了一點)有各種GUI示例。 如果要查看示例,可以下載源代碼 。
誠然GUI編程的某些方面不映射非常好,以功能性風格,有參與了很多突變,但有辦法和周圍這意味着:)
使用F#3.0和XAML類型提供程序 ,可以在Visual Studio 11中為F#創建WPF設計器。請參閱http://www.navision-blog.de/2012/03/22/wpf-designer-for-f/
我們出售一個名為F#for Visualization的商業圖書館,用100%F#代碼編寫,並使用WPF從F#代碼中提供帶排版數學的交互式圖形:
(來源: ffconsultancy.com )
因此,使用WPF在F#中編寫GUI應用程序當然是可能的。
它是一種.NET語言,因此它可以使用.NET類庫。 這意味着Winforms,WPF或您可能在C#中使用的任何其他內容。
根據James Hugard的鏈接更新
目前,F#不會用於GUI,因為它不是最重要的用例。 來自Don Syme的博客 :
在第一個支持的版本中,我們的目標必須是關注F#的核心優勢,以便使用F#Interactive進行探索性編程,使用數據編程並實現並行和異步組件。
雖然理論上可以使用F#和標准GUI庫,但如果需要GUI,則應使用VB或C#:
F#用戶應使用Visual Studio設計器工具生成C#或Visual Basic代碼,並將這些組件合並到其F#應用程序中。
從長期來看,“生成F#代碼的面向表示的設計器工具”,根據Syme,“絕對可行”。
當然,您也可以使用F#中的所有WPF類。 您可以使用F#創建Windows,控件和其他所有內容,有時我也可以在F#控制台中使用它。
它還沒有像C#或VB那樣緊密集成到Visual Studio中,但正如您在評論中看到的那樣,未來的設計人員支持是可行的。 我想我們必須等到那時(或使用其他工具)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.