Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[C#] Plotly.NET.CSharp Roadmap #353

Closed
1 of 3 tasks
kMutagene opened this issue Aug 23, 2022 · 21 comments
Closed
1 of 3 tasks

[C#] Plotly.NET.CSharp Roadmap #353

kMutagene opened this issue Aug 23, 2022 · 21 comments
Labels
Area: CSharp Area: MissingAbstraction Plotly.js functionality that has to be implemented Type: Enhancement

Comments

@kMutagene
Copy link
Collaborator

This issue tracks the roadmap for the native C# package Plotly.NET.CSharp

Plans on how to design and develop the C# API have been laid out and tracked in #285 and #322.

The general roadmap implementation-wise is the following:

  • 1. C# bindings for the high-level Chart construction API ([C#] C# bindings progress #296), one binding per chart at first (no overloads)
  • 2. C# GenericChart Extension methods (this covers more or less all styling functions). Once these are finished, the F# extension methods for fluent interface can be removed.
  • 3. C# bindings for Object abstractions (TraceObjects, LayoutObjects, etc.) this might be a bit tricky
@kMutagene kMutagene added Type: Enhancement Area: MissingAbstraction Plotly.js functionality that has to be implemented Area: CSharp labels Aug 23, 2022
@kMutagene kMutagene pinned this issue Aug 23, 2022
@kMutagene
Copy link
Collaborator Author

Please update us, I ask ChatGPT to provide me useful links for Plotly.NET C# notebook examples.

Please take a closer look on ChatGPT and it's limitations, especially regarding the years of origin of it's training dataset and compare that to the year the C# bindings lib was released.

The only one that works are in the unit tests, which are limiting in scope

Plotly.NET.CSharp is already released on nuget. Any chart you create with it works in a notebook. If you cannot give me links to notebooks "not working" i cannot help you further.

This is an open source project. If you need C# notebook samples, there is no one stopping you from contributing.

That being said, for a direct pointer at some C# notebooks that use Plotly.NET.CSharp, take a look at the ML.NET sample books: https://github.com/dotnet/csharp-notebooks/tree/main/machine-learning

@kMutagene
Copy link
Collaborator Author

Nothing here talks about ==> Plotly.NET.CSharp

Please read the title of this very issue you just posted on.

@kMutagene
Copy link
Collaborator Author

  1. 11 are closed.

@kMutagene
Copy link
Collaborator Author

kMutagene commented Mar 14, 2023

After going through many issues here, I started to piece together, what will work and what will not work.

If that is the case, feel free to contribute a notebook that contains the things that work.

Am I wrong to assume this project [https://plotly.com/csharp/] is not related to this?

That site uses the base library Plotly.NET. Plotly.NET.CSharp is a native C# API on top of that. You can still use base Plotly.NET in C#, but the native bindings are idiomatic C#. All of this information is contained in both the Readme and Docs of this library.

@kMutagene
Copy link
Collaborator Author

In general however i can see that confusion is coming from the docs on plotly.com being old. See for example #356

@zyzhu
Copy link

zyzhu commented Mar 14, 2023

It is indeed a problem for newbies who had experience in Plotly before. Their first stop shall be the official doc from Plotly, not searching prior issues here on GitHub. It is just a big obstacle for onboarding .Net users of Plotly.

Hope the official doc architecture at Plotly can be improved. Otherwise, the capital and time invested in .Net adoption of Plotly might be wasted. @jackparmer. It is like a last-mile problem to me.

@zyzhu
Copy link

zyzhu commented Mar 14, 2023

I agree about the notebook. Microsoft's doc team shall consider contributing time to add more C# notebooks. F# community has coped with a decade of using C# only samples and docs to work around edgy issues in F#.

The F# community is small and engaging. But you cannot expect to put too much extra burden for them to add more C# resources. It needs broader help from the C# community. though they are under the same umbrella of .Net.

What I'm talking about is the investment from Plotly in this library. The official document on its website is still using a preview package and not showing examples of using Plotly.NET.CSharp yet. That is a pity as the engagement is missing the last piece to complete the picture.

@zyzhu
Copy link

zyzhu commented Mar 15, 2023

not showing examples of using Plotly.NET.CSharp yet.

Without digging further, I thought Plotly.NET is strictly F#

That’s such a weird comment TBH. The name .Net means it’s for all languages under .Net. Following your logic, F# community should consider 99% of .Net libraries are strictly C# simply because the examples or docs are in C#?

@kMutagene
Copy link
Collaborator Author

kMutagene commented Mar 15, 2023

I am investigating how to update the docs on the official page and moving completely to those docs eventually, including C# versions of the samples.

However, i still want to comment on your general attitude here @GeorgeS2019.

Comments like this

not showing examples of using Plotly.NET.CSharp yet.

Without digging further, I thought Plotly.NET is strictly F#

this

In short, the pieces of information NEEDED for a QUICK Start in c# REMAINS missing

and this

There are ONLY 4 issues labelled with csharp. It is like finding a needle in an ocean!

In combination with repeatedly ignoring me asking for further information or contributions reflect a certain demanding attitude i find rather reprehensive to show in an open source project that is maintained and provided to you completely free of charge. Just note that i investigate this issue despite this attitude, not because of it. Please rethink the way you interact with OSS maintainers in the future.

@kMutagene
Copy link
Collaborator Author

kMutagene commented Mar 15, 2023

@zyzhu

It is like a last-mile problem to me.

Absolutely, but it is still quite a lot of work porting and maintaining official samples, and now additionally for C# as well. Even after understanding how the whole process works. See #376 for a more in-depth explanation on the current status

Despite that, this library has seen quite some growth and adoption, also in the C# space with ML.NET using it for their sample notebooks and model builder for example. The additional weight of maintaining and improving the C# bindings is however becoming visible, meaning this will just need some time, especially if i am the only one to do it.

@GeorgeS2019

This comment was marked as off-topic.

@kMutagene
Copy link
Collaborator Author

@GeorgeS2019 You severely underestimate how hard it is to get content on the official plotly site. Putting it in this repo will not help with the samples you saw being outdated.

However, while I am working on that, my latest blog post might help you out, it contains both F# and C# code for the same graphs, so it might also help you translating F# sample sin the future (you can select the language on the top of the page): https://fslab.org/blog/graph-gallery/scatter/fsharp.html

@zyzhu
Copy link

zyzhu commented Mar 17, 2023

@kMutagene I have spent a few hours getting familiar with this github and also receiving kind feedback.

The keyword I need is: There is something call Plotly.NET.Csharp in addition to Plotly.NET

That means I need to spend further many many hours preparing myself to learn Poltly.NET.Csharp and ignore all the F# notebooks.

I hate to get into this kind of unfruitful argument. But I have to say your comments severely lack empathy and basic respect to the free open source resources provided here. Don’t forget the author did not owe you any C# documentation as you did not sponsor a penny to the project. Anything provided here are out of courtesy.

If you or your clients are expected to earn profits from using Plotly.Net in their products or research, consider sponsoring the project to show your support for its long-term sustainability https://opencollective.com/fslab.
This spirit applies in general to all open source projects.

Based on my understanding, Plotly.Net library was written for F# first and was open sourced. Out of courtesy and benefits for the whole .Net community, a package to be more friendly to C# is written as Plotly.Net.CSharp. But it has little use for the author and his research group. So don’t expect they spend extra time out of their leisure to help you with that front. If you want, either contribute yourself, sponsor it or at least ask nicely.

Just go check the samples of Newtonsoft.Json https://www.newtonsoft.com/json/help/html/SerializeObject.htm. Any sights of F# samples? Following your logic, shouldn’t F# users just give up using Newtonsoft.Json?

Stop acting like a cry baby. Act like a grownup and show basic respect. Sorry and not sorry about my bluntness.

@zyzhu
Copy link

zyzhu commented Mar 17, 2023

@GeorgeS2019 You severely underestimate how hard it is to get content on the official plotly site. Putting it in this repo will not help with the samples you saw being outdated.

However, while I am working on that, my latest blog post might help you out, it contains both F# and C# code for the same graphs, so it might also help you translating F# sample sin the future (you can select the language on the top of the page): https://fslab.org/blog/graph-gallery/scatter/fsharp.html

Thank you so much for putting in efforts to consolidate two documentation sites into one. Though I like the beauty of fsdocs, having one single official documentation will go a long way for adoption. Hope the guys from Plotly will be helpful in this transition. Not sure whether they have capacity in the current uncertain economy and financial market.

Unfortunately I have little time to spare these days on OSS. I am also stuck with some old XPlot use cases myself internally and haven’t made the transition to Plotly.Net yet. But I will try to contribute to fixing some old docs and submit issues once I use it more often.

@GeorgeS2019

This comment was marked as off-topic.

@GeorgeS2019

This comment was marked as off-topic.

@GeorgeS2019

This comment was marked as off-topic.

@kMutagene
Copy link
Collaborator Author

@GeorgeS2019

The reasoning behind having these packages is clearly stated in the first few sentences in the readme. Additionally, it is also stated that you can use the core API in both languages, and it is indeed designed to work that way.

You do not seem to bother to do some basic reading before you go into a project, DEMAND changes and influence on library design that took weeks internally until a common ground was found. Instead, you post a 10-year-old Stack Overflow question, like that would magically solve the issues that we have seen with using the core F# API from C# in the past.

So let me be quite clear here:

Even after me stating that your behavior is unacceptable, you ignored that and even went forward tagging me in other projects like I am your personal code monkey.

From now on, I will ignore you in any issue in any project, until you learn some basic manners. Go on with this behavior, and I will block you entirely.

@kMutagene
Copy link
Collaborator Author

Closing this issue and opening a new one since this got off-topic real hard.

@kMutagene kMutagene unpinned this issue Mar 23, 2023
@GeorgeS2019

This comment was marked as off-topic.

@GeorgeS2019

This comment was marked as off-topic.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: CSharp Area: MissingAbstraction Plotly.js functionality that has to be implemented Type: Enhancement
Projects
None yet
Development

No branches or pull requests

3 participants