Waiting for .NET Core Tooling

Datetime:2016-08-22 22:15:17          Topic: .Net           Share

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)
  • UWP
  • 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!





About List