gpt4 book ai didi

.net - F# 和 "enterprise-level"报告

转载 作者:行者123 更新时间:2023-12-02 13:21:35 26 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

5年前关闭。




Improve this question




基于您的 实际体验 , 白皮书或其他受人尊敬的可引用研究,F# 目前是用于公司/企业级报告的可行工具吗?
注意:在投票结束这个“没有 build 性”的问题之前,请阅读底部的部分。
背景
我目前在一家大公司工作,该公司大量使用了许多不同的报告工具,包括(但不限于)SAS、Cognos、SSRS,甚至是少量的 COBOL。每个工具都有其应有的位置,其中许多工具在大多数方面在功能集等方面是相同的。我们的大多数工具都能够相对轻松地输出到 PDF、Excel 和数据库,并且在这些情况下工作得非常好。
不幸的是,我的组织和许多组织一样,使用 Excel 电子表格,无论喜欢它还是讨厌它,我们都会花费大量时间编写 .NET 控制台应用程序来从 Excel 电子表格中提取信息并将信息插入其中。 (我对争论这种方法的优点或缺点不感兴趣。它就是这样,我无法改变它。)
与上面列出的报告技术一样出色,当涉及到电子表格中的高级 ETL 时,它们就落伍了。它们只是不是为此而设计的,虽然它们非常擅长将报告格式化为 Excel 电子表格,但它们并不擅长更新现有电子表格或以某种非常特定的方式提取数据(仅提取以红色突出显示的值,例如)。所以我们最终编写了很多 .NET 控制台应用程序来完成这一点。 (再次 - 对讨论这种方法不感兴趣。它就是这样。我知道 - 我也不喜欢它。)
在我看来,.NET 是一个出色的框架,并且足够灵活,几乎可以处理任何编程任务,因此理论上我们可以处理 .NET 中的所有报告。但是 - 尝试处理 .NET 中的所有报告需要很长时间。我们必须自己编写所有样板文件。我喜欢利用我们已有的实际报告工具的强大功能、简单性和稳健性。
因此,我们最终为单个任务编写了两个应用程序 - 例如,一个 SAS 作业从多个数据源加载数据,执行转换并将结果存储在永久或临时位置,以及第二个 .NET 作业结果并将它们加载到电子表格中。 (我知道。)

在过去的几年里,我看到和听到了很多关于 F# 的东西,我自己也涉足过它。我在大学学习了 OCAML,我喜欢函数式编程。当需要时,我很乐意在单一平台(如果不是单一语言)上为特定报告进行所有编程。不过,问题是 F# 语言和 .NET 框架是否已经为企业级报告做好了充分准备——我说的是 的报告。必须准确高效地运行。微软肯定是selling it hard ,但我想知道是否有人在其他报告技术方面有经验,是否真的在生产环境中尝试过。它与其他报告技术相比如何,能否轻松集成到企业环境中?你是如何解决安全问题的?做得对,F# 需要什么样的内存配置文件(我们说的是数百万条记录)?它是否能很好地处理表格数据?它有效率吗?维护起来有多容易(尤其是在代码增长的情况下)?需要什么样的第三方附加组件、插件等才能使某些东西工作(或者它可以开箱即用地完成大部分工作)?与其他报告系统(获得类似结果)相比,需要多少工作(编程时间等)?
如果您没有使用 F# 的经验,或者您只使用 F#,那么我对您的意见并不特别感兴趣 - 我想听听那些实际上已经弥合差距并且可以根据经验将机会和机会联系起来的人的意见使用 F# 作为大数据报告引擎的陷阱(数百万条记录,输出为各种格式)。
我已经看到一些问题已经涵盖了这方面的一些内容:

  • Statistical functionalities of F# (or .NET libraries)
  • Your experiences with Matlab/F#/R for data analysis and modeling algorithms

  • 但他们已经有几年了。几个版本之后,F# 能胜任这项任务吗?或者我是一只在错误的树上吠叫的狗?
    编辑
    为了清楚起见,我对 F# 的新 information-rich programming 特别感兴趣。 .在 F# 3.0 之前,它只是一项有趣的技术,但 F# 的 recently added capabilities使用数据库类型提供程序及其查询表达式使其看起来像是其他报表创作技术的可行替代方案。 Microsoft is certainly suggesting it is .
    可接受的答案 将包含实现在 F# 中构建的企业级报告引擎的第一手资料(或对文档化案例研究的引用),以及与任何性能 yield 或损失等其他报告技术的比较。过于详细 - 足以让普通(有能力的)经理相信 F# 将是适合/不适合批量/批处理数据处理的技术。 已经完成了吗?谁干的?结果如何?实现有多复杂(相对于类似技术)?它的表现好吗?

    我为什么要问一个主观问题?
    像大多数优秀的 stackoverflow 成员一样,我经常投票结束主观问题。根据 FAQ ,应避免主观问题,但不完全禁止。常见问题链接到 six guidelines for great subjective questions我试图遵循。请在投票结束此问题之前阅读这些指南。

    最佳答案

    How does it compare with other reporting technologies and can it be easily integrated into a corporate environment?



    我不知道 F# 与其他报告技术相比如何,但我已经在多个企业环境中部署了它,它与 C# 基本相同,即简单而健壮。

    How did you address security?



    与 C# 相同。

    Done right, what kind of memory-profile does F# require (we're talking millions of records)?



    我找到了 one GC bug in .NET在 5 年的使用中,它并非特定于 F#。我在处理大对象时遇到了几个问题(同样,不是 F# 特定的),但总的来说,GC 是健壮和高效的,并且收集积极。

    我处理了数十亿条记录,发现 F# 速度极快且非常可靠。请注意,F# 用于 Microsoft 的 Bing AdCenter(用于广告放置)和 Microsoft 的 Halo 3,两者都需要处理 TB 数据集。

    Does it process tabular data well?



    是的,你有简单的并行性(参见 Array.Parallel 模块),但它相对于其他工具的主要优势在于处理结构化数据,如树和图。

    Is it efficient?



    是的。

    我们当前的客户是世界上最大的保险公司之一,从 C++ 切换到 F# 后,性能提高了 10 倍(代码大小减少了 10 倍)。

    之前的一个客户看到了将编译器从 OCaml 迁移到 F# 的性能改进。这令人印象深刻,因为 OCaml 是专门为编写编译器而设计的,而且速度非常快。

    一位前客户让我们重写他们的交易平台,尽管我们正在从非 GC C++ 转向 GC 的 F#,但我们看到了 100 倍的吞吐量和延迟改进。

    How easy is it to maintain (especially if the code grows)?



    易于维护。在 ML 中,添加函数是一件轻而易举的事情,当您扩展联合类型时,静态类型系统捕获会为您提供大量反馈。

    我们当前的客户在去年 4 月发布了他们的第一个 F# 代码,尽管根本没有接受过任何 F#(或 OCaml)方面的培训,但其维护者没有任何问题。

    What kind of third-party add-ons, plug-ins, etc. are required to get something working (or can it do most everything out of the box)?



    我们从未使用过任何(但我们卖了两个!)。我考虑过的唯一第三方的东西是 WPF 控件,它们同样不是特定于 F# 的。

    How much work (programming hours, etc) is required compared to other reporting systems (for similar results)?



    不知道,抱歉。看起来我们有一些关于 Dialogue 和 HP Extreme 的工作,所以我很快就会发现......

    How complicated was the implementation (relative to similar technologies)?



    F# 代码比旧的主流语言(如 C++、C# 和 Java)简单得多。

    我想强调的是,当您使用 F# 解决过于复杂而无法使用更传统工具解决的问题时,F# 确实会带来好处,而不仅仅是在 F# 中重写旧代码。

    例如,我们目前的客户一直在使用一个业务规则引擎,他们花了大约 1,000,000 英镑购买,但它并没有解决他们的业务问题(与大 table 斗争,与数学斗争)所以我给他们写了一个定制业务的演示一周内用大约 1,000 行 F# 代码编写规则引擎。我无法用任何其他工具做到这一点。

    关于.net - F# 和 "enterprise-level"报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14629549/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com