微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 .NET 5 应用程序中的 observablehq/plot?

如何解决如何使用 .NET 5 应用程序中的 observablehq/plot?

我们的团队打算使用用 C# 编写并在 .NET 5 上运行的应用程序中的 JavaScript 库 observablehq/plot。作为概念证明,我们能够成功地使用在 {{} 上的单独进程中运行的该库3}}。这种方法的缺点是我们需要自己实现所有数据序列化和进程间通信,并且需要在我们的应用安装程序中捆绑 Node.js。我们正在寻找一种替代方法,它不需要 Node.js,而是直接在我们的 .NET 应用程序中托管 V8 JavaScript 引擎。目前,我们正在考虑为此使用 Node.js 包。虽然我们能够使用它成功运行简单的 JavaScript 代码,但我们发现 observablehq/plot 及其依赖项使用了一些存在于 Node.js 中的 API,但显然在开箱即用的 ClearScript 中不可用(Node.js 似乎在 JavaScript 中实现了其中一些 API,而在 C++ 中实现了一些 API)。使这些实现可用于在 .NET 应用程序中运行的 ClearScript 看起来是一项重要的任务,我目前无法估计其成本。

请问是否有人必须解决相同或类似的问题,您会推荐什么方法?有没有一种简单的方法可以让 observablehq/plot 使用 ClearScript 上运行的所有必要的 API?我应该考虑在 .NET 应用程序中托管 Chromium/Edge 浏览器引擎吗?我还没有尝试过这个,但我认为这是可能的,因为我的理解(如果我错了,请纠正我)是 ClearScript 控件可以在 .NET 上运行的 WPF 应用程序中使用,它是使用Chromium 和 V8 JavaScript 引擎。您还有其他方法可以推荐吗?


更新:应用 GUI 构建在 WebView2Avalonia 之上。最终我们可能会选择另一个图表库,也许不是用 JavaScript 编写的。但我手头的任务是专门研究我们是否以及如何在我们的应用中使用 JavaScript 库,以 observablehq/plot 为例,并研究其功能性能特征。

解决方法

如果您正在构建 WPF 桌面应用程序,您应该尝试满足您需求的基于 WPF 的图表库。

开源库:

  1. OxyPlot
  2. InteractiveDataDisplay
  3. ScottPlot 支持平移和缩放。

付费图书馆:

  1. Telerik RadChart
  2. DevExpress

在这篇文章中关于 WPF charts 的更多信息。

如果您使用的是 Blazor WebAssembly

使用 jsRuntime 和 JSObjectReference 导入和调用您的 Javascript observablehp 库。

如果您使用的是 Xamarin.Forms,那么最好的专业库可能是 SyncFusion:

  1. Syncfusion Charts

更新

如上所述,Avalonia Framework 将仅通过 webview/嵌入式浏览器支持此功能。这里有 3 个选项:

  1. Cefnet 是 Chromium 嵌入式框架的 .NET CLR 绑定
  2. CefGlue 与上述相同
  3. WebView Avaloria-CefGlue

有关与 Avalonia 一起使用的更多有用工具和库,请参阅Awesome Avalonia

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?