BlazingSolutions / TimeKeeper

A project for learning Blazor
9 stars 0 forks source link

Component Library #2

Closed DotNetDublin closed 3 years ago

DotNetDublin commented 3 years ago

Decision needs to be made on an appropriate component library to utilise within the project.

Below are some options and I have excluded the commercial vendors.

Feel free to suggest any alternatives.

My current vote would be for https://mudblazor.com/

harperjohn commented 3 years ago

I have been looking at most of these for a while now. And of the the purely open source options, I am (heavily) in favor of MudBlazor too!

For my work project, I am going to (try) to use MudBlazor and Radzen in "parallel". Sort of "shadow" them against each other. If they end up being quite "close" I will probably shift the majority/exclusive focus to MudBlazor. If Radzen turns out to be far superior in some way, I may have to switch focus to them until MudBlazor can "catch-up"/"mature" enough.

That being said, during this process, I have realized the with a component library (like any library) nothing is guaranteed (now and certainly not "forever") and that I will consciously focus on really limiting/abstracting any application dependencies on the library.

In fact, in a recent "Ed Charbeneau" video, he briefly mentioned creating your own Blazor Component layer, so that "all" the third party library details could be hidden/abstracted... This might be a lot of work... or maybe it will be easy enough to be completely justified.... I am definitely keeping it in mind.

Finally, I think the actual choice of a library, is less important (long term significance) than "knowing" the library "inside and out". I hope that we can decide/settle in MudBlazor so that we can dive into and "own" it.

I (and probable we) don't have the time/interest to create a Component Library from scratch, but I feel that I (and hopefully we) realize that a Component Library is at the heart/foundation of our apps, and using it "arms length" and "crossing our fingers" as it works its "magic" is unsettling at best, and a path to future nightmares at worst.

I don't want to write a library from scratch... I don't even want to become a "major contributor" on the project... but I want to know the library well enough so that I "could be a major contributor" if I wanted to be.

I want to know it well enough that I could "branch" the project if the project "lost steam" or "drastically changed" direction. My "branch" might be just used for the life of my project, or it may take on a new life... in any event, I don't want to be at the mercy of any project (open source or commercial) for such a major piece of my application.

Side note - learning the library has the side benefit of seeing some very interesting (and working) Blazor code... that is the result of lots of work and lots of review... There has got to be some significant value in that knowledge experience.

AnkurSheel commented 3 years ago

Anyone got any thoughts on Syncfusion? They have a free community licence for Companies and individuals with less than $1 million USD in annual gross revenue and 5 or fewer developers.

It's also valid for Open Source.

https://www.syncfusion.com/blazor-components

DotNetDublin commented 3 years ago

Syncfusion has been mentioned a few times on the practicaldotnet community.

Certainly rich in terms of the number of components it offers.

Overall I would still be leaning towards https://mudblazor.com/ as while the less than $1 million USD in annual gross revenue and 5 or fewer developers offer may fit this scenario people may want to use what they learn here for their own jobs which don't qualify and would then have to convince their employer to stump up for a licence.

I also think we could end up with more the 5 developers working on the project.

That all said it's still one to consider.

AnkurSheel commented 3 years ago

@DotNetDublin Makes sense. Happy to use something that people are already using or can use in their jobs. I have mostly worked in companies where the FrontEnd has been in React so I don't have much of an opinion here :)