I just started out playing with .NET Core on my own time. Getting the feeling for the technology, trying to learn the basic concepts and getting some basic programming tasks done.
Working in .NET for the last eight or so years I really find this one much more different then the usual flavor provided by Microsoft.
Lets be honest, on most .NET projects I worked the MacDonalds style of programming, where 80% of the problems are solved easily by spending 20% of your project time while you spend the remaining 80% dealing with the remaining 20% of the problems which incidentally are what the the project is about. Go figure.
With this first dotnet core project I spend my time dealing with something completely different. It actually reminds me of the time I was learning to code in PHP and Python (it was years back during my Linux times).
The first thing that struck me was complicated level of setting up a project (project.json configuration) and linking all projects in a solution together and then managing all the different execution and deployment environments. Whaat?
But hell, its fun to deal with these type of issues.
Most of the help I got didn’t come from the actual documentation. It was mostly useless, so I just relied on googling for solutions or going directly to the dotnet core repository and looking trough the source code.
The second biggest problem was that there was not a solution wide way to build all projects and run all tests. Well, that was easily solved by using the custom Task functionality of VSCode.
Something like this:
And then in the root of the solution writing this small batch script:
And then with a simple, and familiar CTRL+SHIFT+B , voila:
it builds everything and it even runs all the tests.
The command line interface is simple and easy to understand, and once you get past the project.json madness you will have a literally very powerful platform to work on.
The coolest thing it is that the project is completely open source so well if you find a problem or have a need, the solution is several hours and a pull request away.
Of course I don't see .NET teams jumping all over it right now. I haven't yet tried developing in .NET Core with Visual Studio but I guess as with every version 1.0 of a Microsoft Technology the tooling will suck long time (usually we have to wait till version 3.x till we get the maturity level high enough to develop normally). But hell, I could be very wrong.
Still its a cool thing to play with. If you are curious what I did so far please look at my GitHub profile: