Yeah! RC2 is here!
Microsoft have well and truly moved the cheese with this one. I'm trying to remain on the fence with an opinion about all this until I am using it in anger. It's the future of .net, and it will allow me to code in osx, should I get the urge. So to that end, I'm in, and I want to migrate my in-production MVC web app to core.
So, right, what's the latest with ASP.NET 5, sorry I mean core :)
Well, the release candidate 2 is out, and you can get it from the nice domain dot.net. Install everything, feel good about yourself for a bit, and then with a deep breath do the file->new dance and create a new asp.net core web application with MVC. Ok, this isn't too bad. It kinda makes sense. Ok, I can see that Entity Framework is all over the place, and being a fan of dapper, that's going to be an issue, but hey it's my fault for not starting with an empty project.
So, once I get past the "Hello world" jubilation, it's time to start thinking about migration.
Now, I could start talking about moving your client-side assets and using GulpJS to build everything there, and how that works with the quite nice-looking tag helpers (Oh but I did like the old Bundling system, hey ho). No, I won't talk about that, I'll talk about the thing that has stopped me in my tracks and forced me to re-think when/if I should try to take on this migration....
None of my dependencies work
Well, some of them do, but most of them don't.
I use Dapper, and StackExchange.Redis as 2 examples. Nick Craver, one of the maintainers of these projects, has been awesome, and has pushed out RC2-versions of these libraries to nuget within days of the RC2 announcement.
But, I use a lot of other libraries....
- EnterpriseLibrary transient fault handling (Not freaking updated since 2013)
- Freeagent API .NET client (I had to fork that and add my own support for missing bits)
- NPOI (Excel generating magic)
- and on and on...
None of these exist that target .netstandard (to work with asp.net core). It's only been out for a week, so of course I'm being utterly unreasonable. But I can't realistically start migrating anything until things start to move. I can help out, and perhaps I should be brushing up on the changes required to target the core bits and then submitting pull requests. However, I suspect a lot of people are waiting for RTM. And I think that's what I should do too.
I also think that some projects (EnterpriseLibrary transient fault handling for example) might be very slow to move, and might force me to move to alternatives (Polly looks nice).
Stop the car.
It's all a lot of work. A lot more than I really anticipated.
So, I'm parking that one. Instead, I'm going to just re-build the asp.net Identity system from my old app in Identity 3. In case you were wondering about breaking changes with that: everything is different. And, there is literally NO documentation anywhere about plumbing in asp.net identity unless you use Entity Framework. So I'm going to blog about making one with Dapper, if I ever get it working :)