My side project idea
Tags: csharp, javascript, blazor
Published: 2019-05-09 21:46:00

The other day I was looking around for some good components for building a website. Actually scratch that, I have to remember that language is important and what I shouldn't do is bloat language that has already been defined and prefer a longer explanation to what I'm trying to describe.

# My use case
I like to code in my spare time, but what I hate doing is the stuff that I shouldn't be doing, front end in my opinion is a bunch of mapping model to table and or chart. I find that 99% of the time I just want to map data from my server to a table in my client but this throws up a bunch of problems 

## Problems: 
* Pagination
* Searching
* Sorting
* Columns 

I want something that has good intellisense that I can almost copy and paste from one view to another, make some model and property settings and call it day, basically I want to spend as little time as possible in the front end.

Now good news is, is that there are so many numerous libraries our there that can help, jQuery datatables, tabulator all of these are fine options. There was one (or two) that really caught my eye as a c# developer which was the devextreme/devexpress tools (which look very similar to telerik tools). They have some really nice c# razor wrappers that make it really nice to map one to to other and I fell in love almost immediately.

That is until I saw the price!
$499 per developer per year.

I am not tight with money anymore but that is a lot of cash for something I could write myself.

# Write yourself? 
Ah yes here we are! This is my side project now, I think it will be split into two parts the first will be the JavaScript side. Which will be responsible for taking your information and putting it on the screen! And there will be a c# library that will give you some razor syntax.

# Why don't you use an existing library?
I could, there are plenty out there, to be honest I haven't played around with JavaScript in a while so I fancy a pretty hefty JavaScript challenge, to see what has changed. This way I also get more control over what I'm doing I'll understand it to a better level. It will probably never be as good as the other libraries out there but I just want something that I can use in my websites so I'm taking time out to write a utility!

# Some initial decisions
* Typescript not JavaScript
** I mean why not, it's really nice language and gives me options to compile it down to any JavaScript version
* Chai/Mocha seems to be as good as any other testing framework, don't see why I shouldn't be using it
* Handlebarsjs - I'm lazy I don't want to be writing my own templating language and i think they will have a better grasp on speed when it comes to manipulating the Dom than I do.
* No jQuery - it's 2019, there is so little reason to be using this library any more.
* No styling - I'm going to allow the user to style the components. May have to revise this one depending on how difficult this becomes
* Editor's - I already pay for jet brains ultimate for rider and resharper so I may as well utilize their web storm IDE. It is very similar to what I'm comfortable with.
* Framework support - none. Not interested right now, maybe something I can add later.
* Browser support - latest or die!

# Interested?
So am I! I don't know how this is going to go, maybe I'll just give up in a month, but I'm hoping I see this through because I think this will help myself and some other developers with easier interfaces.

Here is a link to the project [GitHub project](https://github.com/joro550/bear-bones)!

I will try and write blog posts about thoughts feelings, where I have gone wrong, where I have gone right. I think this might be a good learning experience for anyone learning from what I am doing (including me)

## What's with the name? 
It was a misspelling I made when talking about a slimmer version of the devextreme library with someone, I like the name, I'm going to get a logo for it :D

# The future
* Charts!
* Anything else I think should belong in a front end 

Once I think the JavaScript version of the library is stable I'm going to start on a blazor implementation because I think that's going to be where the future is going to be especially for c# development. Part of me wants to start with the blazor side but I'm gonna be a good developer and support a current technology and not just jump for the shiny and new.