Blazor-Diagrams / Blazor.Diagrams

A fully customizable and extensible all-purpose diagrams library for Blazor
https://blazor-diagrams.zhaytam.com
MIT License
959 stars 190 forks source link

[DISCUSSION] Version 2.0.0 #75

Closed zHaytam closed 3 years ago

zHaytam commented 3 years ago

Hello,

I have been thinking a lot about the future of the library and what path to take to ensure that the users get the best experience. It is time to start moving away from react-diagrams as the only inspiration and move forward.

My next plan is to rework some parts of the library and add some much needed functionalities to make Z.Blazor.Diagrams a usable library in many use cases. Here's what I'm planning:

I'm not sure how many actual users do we have, but seing all these changes that will be made, this version will have a lot of breaking changes, and that's why it's a major version.

Any feedback is very welcome!

zHaytam commented 3 years ago

A couple of extra points I'm still thinking about:

EugeneDelage commented 3 years ago

Hello, I really like your component. The usage I intend to do with it in the future is very close to the visual programming software called grasshopper (you can find a tutorial here https://youtu.be/XHqiD-qXGA0 . It is all about connecting nodes together. Thanks

MichaelLant commented 3 years ago

.NET 5 is very important

I am not sure what you mean by JS/CSS isolation

Managing the location of ports would be nice. IOW, say that a newly added port could be an input port (left side of the object) and or an output port (right side of the object) would be very helpful. This is important for workflow and implied directionality. Not sure if this already exists, but it is very useful.

zHaytam commented 3 years ago

Hello @MichaelLant, I have received a message from you in another repo but it seems it got deleted?

Thanks @zHaytam for the info.

What do you mean by CSS/JS isolation?

My key criteria for selecting a diagramming tool are:

Blazor - obviously Minimial JS/CSS Ability to style components and create customer renders Contain elements within elements. This could be as simple as the entitites in an ERD: Table with its prescribed columns (represented as rows in the diagram element) and then the properties of each column that are exposed in an editor. Ability to constrain link types, for example a column definition can only connect to a table, but not the individual columns. Easy access to the underlying model of the diagram so that the layout definition can be mapped to data for processing I have a bunch of other requirements, but those are the key ones.

I will be looking at Blazor.Diagrams over the weekend.

Thank you for you help with sorting out the other problems I encountered.

Michael

Is it okay if I post it again?

zHaytam commented 3 years ago

Just to answer you, all the requirements you need are available in Z.Blazor.Diagrams. It will surely get much better in 2.0.0, but it's still possible to do all of that with the current version.

What I mean by CSS/JS Isolation is what got added in Blazor (.NET 5). It can make a lot of things much easier and cleaner, especially the JS modules part.

Read more here:

MichaelLant commented 3 years ago

Hi Haytam,

I am fine if you repost it.

I am sorry for the confusion. I am looking at both diagraming components and I got the Git projects mixed up with the posts.

Michael

Sent from Mailhttps://go.microsoft.com/fwlink/?LinkId=550986 for Windows 10


From: Haytam Zanid notifications@github.com Sent: Saturday, January 30, 2021 5:03:58 AM To: zHaytam/Blazor.Diagrams Blazor.Diagrams@noreply.github.com Cc: Michael Lant mlant@sphere-data.com; Mention mention@noreply.github.com Subject: Re: [zHaytam/Blazor.Diagrams] [DISCUSSION] Version 2.0.0 (#75)

Hello @MichaelLanthttps://github.com/MichaelLant, I have received a message from you in another repo but it seems it got deleted?

Thanks @zHaytamhttps://github.com/zHaytam for the info.

What do you mean by CSS/JS isolation?

My key criteria for selecting a diagramming tool are:

Blazor - obviously Minimial JS/CSS Ability to style components and create customer renders Contain elements within elements. This could be as simple as the entitites in an ERD: Table with its prescribed columns (represented as rows in the diagram element) and then the properties of each column that are exposed in an editor. Ability to constrain link types, for example a column definition can only connect to a table, but not the individual columns. Easy access to the underlying model of the diagram so that the layout definition can be mapped to data for processing I have a bunch of other requirements, but those are the key ones.

I will be looking at Blazor.Diagrams over the weekend.

Thank you for you help with sorting out the other problems I encountered.

Michael

Is it okay if I post it again?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/zHaytam/Blazor.Diagrams/issues/75#issuecomment-770187321, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAFIKXXZWWILOIZZWJKVAJLS4PKQ5ANCNFSM4WWCH2AA.

MichaelLant commented 3 years ago

Thanks for the info. I was unaware of the .css isolation in Blazor. Still so much to learn.

Do you have a planned release date for 2.0?

Michael

Sent from Mailhttps://go.microsoft.com/fwlink/?LinkId=550986 for Windows 10


From: Haytam Zanid notifications@github.com Sent: Saturday, January 30, 2021 5:10:15 AM To: zHaytam/Blazor.Diagrams Blazor.Diagrams@noreply.github.com Cc: Michael Lant mlant@sphere-data.com; Mention mention@noreply.github.com Subject: Re: [zHaytam/Blazor.Diagrams] [DISCUSSION] Version 2.0.0 (#75)

Just to answer you, all the requirements you need are available in Z.Blazor.Diagrams. It will surely get much better in 2.0.0, but it's still possible to do all of that with the current version.

What I mean by CSS/JS Isolation is what got added in Blazor (.NET 5). It can make a lot of things much easier and cleaner, especially the JS modules part.

Read more here:

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/zHaytam/Blazor.Diagrams/issues/75#issuecomment-770188006, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAFIKXSKRJZL5YMQLHBHPNDS4PLINANCNFSM4WWCH2AA.

zHaytam commented 3 years ago

No problem haha!

Do you have a planned release date for 2.0?

I'm still thinking about the needed changes, so right now no. Will add a date once I have everything thought of.

zHaytam commented 3 years ago

Changes done so far:

Starting with all the breaking changes first, then enhancements/new functionalities. There will be a guilde on how to upgrade to 2.0.0 from older versions.

MAKolker commented 3 years ago

Please add import/export layout to JSON (or xml)

zHaytam commented 3 years ago

Please add import/export layout to JSON (or xml)

For sure. There will be new methods for (de)serializing everything in the library. You can choose to/from what (json or xml or something else).

Rickybarb5 commented 3 years ago

Serialization is a very good feature. I actually find myself in the situation where I need to clone nodes, in order to preserve state when editing the various properties, that would help quite a lot.

zHaytam commented 3 years ago

More work done:

zHaytam commented 3 years ago

I just uploaded to NuGet a new Release Candidate!

Alongside all the mentioned changes, here are the new important ones:

If any of you have the time, feel free to test the prerelease and tell me your thoughts!