【问题标题】:Can F# be Used in a Full Web Application可以在完整的 Web 应用程序中使用 F#
【发布时间】:2021-03-03 21:45:25
【问题描述】:

不久前 - 我从 C# 迁移到 nodejs/typescript 并且非常喜欢从 OOP 迁移到更实用的样式(并且错误更少)。

由于报告框架的限制和其他一些事情(我仍然使用 vue.js 作为前端的东西),我最近搬回了 .Net。

我真的很喜欢 F#——但我在使用 ORM 时遇到了一些问题——我使用了一些 UI 框架,例如 Devexpress。是否值得坚持使用 F# 并且可以在功能齐全的 Web 应用程序中使用它 - 或者它的某些部分是否需要用 C# 编写(如 DAL)?

我正在尝试采用更实用的方法,而不是纯粹的“一切都必须是功能性”的方法,所以我不介意到处都有一些可变的。将 F# 用于完整的应用程序真的很痛苦,还是会变得更好?

我知道这部分是基于意见的 - 但那些有语言经验的人会告诉我是否可以在任何地方使用 F# 或者语言是否被拆分。

谢谢

【问题讨论】:

  • 您在使用 ORM 时遇到了什么问题?
  • 您也没有指定您使用的网络框架。不仅仅是 DevExpress;那是一个控件集合。
  • 您看过 SAFE 堆栈吗?它看起来很有希望。 safe-stack.github.io
  • 看看这里:tomasp.net/blog/fsharp-mvc-web.aspx。除了更少的大括号之外,在这种情况下,c# 和 f# 之间并没有太大区别。
  • @RobertHarvey 也许我有点懒——但我正在寻找一个库,我可以在其中向 ORM 发送一条记录,它会更新整个记录,而不是我必须指定每个字段。我发现最接近的是 Dapper 浏览了所有这些,但甚至有一些问题。我最终只用它做了一些事情,因为它是一个遗留数据库 - 我正在转向 MongoDB。

标签: f#


【解决方案1】:

如果您的问题是 F# 是否可以在 CRUD 类型的网络应用中使用,答案是肯定的。

您也可以(几乎)在 C# 中使用 F# 执行相同的操作。您可以使用 dapper/EF/NHibernate 并模仿您在 C# 中所做的工作。

话虽如此,因为您不会进行函数式编程,因此使用 F# 的好处会减少。

如果您决定采用函数式编程风格,那么您或许应该使用基于 CQRS 和事件溯源的架构,而不是使用 FP 真正擅长的 ORM。但要注意,学习曲线不小。

【讨论】:

    猜你喜欢
    • 2013-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-31
    • 2010-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多