F#:没有UI(比如WPF)吗?

ice*_*l89 19 wpf f#

我最近在F#上看过一些视频.它似乎主要用于服务或类?我在VS2010 Beta中看不到"F#WPF"应用程序?

Jam*_*ard 35

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种选择:

  • 手动编写所有UI代码,这对于简单的应用程序来说很好;
  • 创建您的F#代码作为库来处理"硬件",如异步和并行代码,或以计算为中心的代码,并从C#/ VB调用它;
  • 将您的UI代码创建为C#/ VB库,并从F#驱动它并将事件处理委托给F#; 要么
  • 使用DSL计算表达式(monad)来简化手工构建UI(在此答案中查找其他链接时发现了这一点).

其中,从F#调用C#UI库可能是最灵活的,同时仍保留熟悉的范例.但是,使用计算表达式手动快速构建UI当然值得一看.

  • 此外,还有一系列关于在F#中创建WPF应用程序的文章:http://blogs.msdn.com/dsyme/archive/2008/01/05/learning-wpf-through-f-and-vice-versa逐约翰 - liao.aspx (7认同)

Jon*_*eet 13

你当然可以在F#中创建GUI - 毕竟它只是另一种.NET语言.

Tomas Petricek的书"真实世界的功能编程"(我已经帮助了一点)有各种GUI示例.该源代码可用,如果你想看到的例子来下载.

诚然GUI编程的某些方面不映射非常良好的功能性风格,有参与了很多突变,但有办法和周围这意味着:)


for*_*i23 13

使用F#3.0和XAML类型提供程序,可以在Visual Studio 11中为F#创建WPF设计器.请参阅http://www.navision-blog.de/2012/03/22/wpf-designer-for-f/


Jon*_*rop 5

我们出售一个名为F#for Visualization的商业图书馆,用100%F#代码编写,并使用WPF从F#代码中提供带排版数学的交互式图形:

替代文字http://www.ffconsultancy.com/products/fsharp_for_visualization/images/help_big.gif

因此,使用WPF在F#中编写GUI应用程序当然是可能的.