【问题标题】:How to learn GUI programming in F# [closed]如何在 F# 中学习 GUI 编程 [关闭]
【发布时间】:2010-05-09 01:16:55
【问题描述】:

这几天我对学习 F# 很感兴趣,并且想将它用于 GUI 应用程序。不幸的是,我以前没有 .Net 或 C# 方面的背景。有没有什么好的资源(网站、书籍)可以在不先通过 C# 的情况下学习这个?

非常感谢。

【问题讨论】:

  • 这有点像说我怎样才能学会用铅笔画画;)
  • @Benjol:为什么?我可以理解您认为 GUI 编程应该在 VB、C#、Java、Delphi 等 IDE 中进行。我认为这不是唯一的方法,答案确实提供了很好的选择。可能更好的主意是将 F# 与 C# 结合起来,就像其中一个链接一样,但功能反应式编程可能不是那么糟糕。你有什么看法?

标签: .net user-interface f#


【解决方案1】:

我与 Jon Skeet 合写的 Real-world Functional Programming 书(抱歉打广告!)需要一些面向对象语言(例如 C#)的现有知识,但它简要解释了所有更高级的特性例如,C# 与 Java 进行了比较。

它有一些使用 WinForms 进行 GUI 编程的示例(更现代的框架是 WPF,但有些概念本质上是相同的)。你可以看几个例子,因为有一些与GUI相关的免费内容:

  • Chapter 4(巧合的是,作为免费示例提供 :-))展示了如何使用基本功能实现用于绘制简单图形的应用程序。
  • Programming user interfaces using workflows(免费摘录)展示了一种对编写反应式应用程序非常有用的高级模式(据我所知,这在其他任何地方都没有详细描述)

据我所知,Robert Pickering 的Beginning F# 也有一些用户界面示例,还包括一些 WPF 示例(虽然我还没有这本书,所以我不知道它到底包含什么) .

但是,没有一本 F# 书籍会让您成为 GUI 专家。您仍然需要花一些时间详细了解 WinForms/Silverlight/WPF。网上有很多 C# 的例子,读完上面的一个,你应该可以直接翻译成 F#,不过买一本技术类的书也是个好主意。

【讨论】:

  • 你能在 Visual Studio 中用 F# 使用 winform/WPF 设计器吗?
  • @BlueRaja:不是直接的,但您可以创建一个 C# 项目来包含设计器生成的代码。看到这个帖子:stackoverflow.com/questions/2604589/…
  • 我有你的书 Tomas,我想说这是一个很好的起点。
  • 我也得到了它,我目前所读的内容非常好。 :)
  • 感谢您的建议。看起来是一本非常好的书,我会用其他票数购买它。但有一件事,它需要 C# 的实际经验吗?说明是这样说的。我没有,虽然我有面向对象编程(Java、C++、Delphi)的经验。
【解决方案2】:

我刚拿到 The Real-world Functional Programming 一书,如果您想将 F# 与 GUI 内容混合使用,这本书适合您,因为它有大量示例并且可以直接进入其中。这是我得到它的主要原因:) 网上我遇到过这个,我喜欢 F#/DirectX 的例子。 F#.NET tutorials and examples

【讨论】:

    【解决方案3】:

    我的书Visual F# 2010 for Technical Computing 有一章专门介绍使用 WPF 的图形,涵盖基本的 WPF 控件和在 F# 交互中使用 WPF。 The F#.NET Journal 中也有很多文章涉及 WPF(向下滚动并运行一些可下载的演示)。我们的F# News 通常包含简短的博客文章,其中包含基于 WPF 的 F# 应用程序,例如Game of Life in 32 lines of F#.

    【讨论】:

      【解决方案4】:

      Gui 设计师还行。但是您可以创建一个 F# 类来包含与其相同的代码。学习如何手工编写表单非常有用。 我个人会推荐它,而不是使用 C# 设计器创建代码然后与之交互的方法(这将比必要的复杂得多)。 此外,C# 中存在的所有用于 winforms 或 WPF 编程的类对于 F# 完全相同,并且有意设计为在使用 .net 平台的任何语言中轻松使用。

      【讨论】:

      • 谢谢。在使用您的方法提出这个问题后,我完成了部分学习,顺便使用了 IronPython,所以我非常同意。
      【解决方案5】:

      http://searchwindevelopment.techtarget.com/generic/0,295582,sid8_gci1289090,00.html

      需要注册(电子邮件地址)。不知道好不好看,不过值得一看。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-10
        • 2010-09-23
        • 1970-01-01
        • 2011-02-26
        • 1970-01-01
        • 1970-01-01
        • 2010-09-20
        • 1970-01-01
        相关资源
        最近更新 更多