.NET Core Roadmap
github.com
github.com
The first step was to create a new project, okay cool. `dotnet new MyProject` -- oh wait I want it to be a class library. Let's see `dotnet --help`, hmm I don't see an option (at least not when I tried). Oh `dotnet new MyProject -t lib`, of course!
Okay lets add xUnit and xUnit-runner. There is no simple command line utilty that I saw to add them, so I have to manually edit the project.json file (wait isn't this supposed to be csproj again?). Oh wait there are weird compatibility issues between all the .NET Core versions, I have to manually go look it up on the xUnit page (https://xunit.github.io/docs/getting-started-dotnet-core.htm...). Okay I have the correct version listed, let's run my first test.
Error... Oh the created class library is targeting netstandard15, which I thought was all I needed? I need to add netcore50. Some other unexplained error occurred and I gave up for the time being. Yea maybe I could have sat through it an persevered, but why should I? Why should it all be so complicated and require two different frameworks just to get a small class library and a test project going.
Was I using it wrong? Most likely, but oh well. It was frustrating enough for me to just not continue with it. .NET Core fatigue feels more real than JavaScript fatigue.
The xUnit tutorial is here: https://www.microsoft.com/net/tutorials/csharp/getting-start...
Those tutorials are pretty intro level, but they do cover some of the issues you ran into.
Also, I'd recommend checking out the new Visual Studio 2017 RC with updated .NET Core tools and support for the csproj based projects: https://blogs.msdn.microsoft.com/dotnet/2016/12/12/updating-...
I think some of the docs and presentations have gone a little far to the everything-commandline direction. If you're an experienced .NET dev, you're probably going to be a lot more comfortable with Visual Studio at least to get started. Much easier to start with some working code and break it / play with it than to start at the command line and a project file... again, if you're an experienced .NET dev who's used to Visual Studio.
I will agree with your main point that it is confusing and that it should be easier. Those are actually some of the top things listed on the roadmap.
They've got a solid idea on how to work .NET Core, the desktop .NET framework and .NET Standard as the bridge, but the tooling for .NET Core work is undergoing frequent revisions.
For creating a cross platform library that just works it's pretty painless. Have you tried java/maven? Or webpack? Or god forbid cross platform C++?
Your problem seems to be focused on the fact that command line interfaces are not discoverable. This is true of all command line interfaces. Linux/Unix has many utilities that are quite foreign at first. But once you learn the interface (and in this case it is quite simple) you can accomplish things with quite a bit of efficiency.
I don't think I'm totally alone with that sentiment either. .NET Core was a project that had pretty high expectations from the beginning, a cross-platform, sane and simpler .NET development platform (C#/F# too!).
It does dot net init and a pre set up library.
It has been almost six months since the .NET Core release and we still don't have the "proper" tooling. They haven't done SignalR either. I've never been held in limbo for so long. The only reason I'm hanging on is because of C# and Visual Studio.
I don't even know what the significance of the ".NET Core 2.0" or ".NET Standard 2.0" releases are anymore, the amount of complexity added to the development decision making process in .NET Core got out of hand many months ago. I'm not the only serious .NET developer who is feeling puzzled about the purpose of all this. Sure, it was an interesting idea, but man the execution could have been better.
Edit: Ahh, okay, "Support the community extending CoreCLR in various ways (e.g. FreeBSD support)" https://github.com/dotnet/coreclr/blob/master/Documentation/...
This makes it sound like a sales pitch for Azure