Working with .NET Core isn’t for developers focused on productivity or who want modern tools.
Why do I say this?
Because Visual Studio tooling hasn’t been released (or well-updated) to deal with .NET Core or ASP.NET Core, so you have to deal with a lot of bugs, missing features, poor templates, etc.
Generally you are probably better off relying on circa-1989 “modern tooling” like command lines and text editors (though VS Code is pretty good) at the moment.
Microsoft is working on next-gen tooling, so this isn’t a permanent issue, but it is somewhat frustrating to go back in time 25+ years when I’m used to this century’s tooling.
My biggest current frustration is that (working onCSLA .NET) I have a master solution that includes projects for all the platforms CSLA supports:
- .NET Core (netstandard1.5)
- Full .NET (4, 4.5, 4.6)
- Xamarin (Forms, iOS, Android)
- WinRT (Windows 8.1 and Windows Phone 8.1)
And all my actual code is in shared projects so I only have to maintain the code once, even though it builds for 11 different platform targets in total.
Normally (when you don’t have a .NET Core project in your solution) you can switch your code view between the various platforms in your solution. This is the drop-down in the top-left corner of your code window. Unfortunately when you have a .NET Core project (netstandard project) in your solution this drop-down stops working.
As a result I’m finding that I need to have 3 solutions:
- A master solution to build everything, including netstandard
- A non-netstandard solution to work on everything except .NET Core
- A netstandard solution to work on the .NET Core and ASP.NET Core projects
This way, in the netstandard solution I can actually see what’s going on with the correct code and Intellisense for .NET Core:
And in my non-netstandard solution I can switch between the rest of the platforms to get the correct experience:
Three solutions where I should have (and used to have) just the one master solution.
I can’t wait until the tooling catches up to the platform so things get simpler again!