[DISCUSSION] Version and package naming for AspNet Core MVC 1 support
kevinkuszyk opened this issue · 7 comments
I'd like to get some feedback on naming and version strategy for AspNet Core MVC 1 support.
Historically we have had separate packages for each version of MVC we support. The reasons for this are:
- We didn't support testing all features of MVC so it didn't make sense to call it a 1.0 product.
- Some users had difficulty with binding redirects and constraining package versions.
Moving forward I am thinking about maintaining one FluentAssertions.AspNetCore.Mvc package and resetting it's version number to 1.0. It's major version would be pegged to the Microsoft.AspNetCore.Mvc package, so that when they introduce new / breaking changes at v2 FluentAssertions.AspNetCore.Mvc would also increase to v2.
See: aspnet/Home#1255
Thoughts?
👍
I think it's a good approach as well, as a user it was always a bit annoying to have to find the correct version for the MVC we're targetting.
What's the status on supporting MVC Core? Is there a branch where the work has started? Would you need some help? If so, where can we help?
What's the status on supporting MVC Core?
I've started a few times, but always been burnt by how fast the pre-release breaking changes were coming out of Microsoft. I haven't had the time since RTM to go back to this.
Is there a branch where the work has started?
Yes, my latest effort was in the aspnet-core-rc2 branch. I'd moved the shared code into a shared project in preparation for adding a new MVC Core project. I just merged that to master in #31.
Would you need some help
Yes please.
If so, where can we help
From memory, the next steps are:
- Add new projects for MVC Core and MVC Core tests.
- Use conditional compilation on shared
.csfiles to fix namespaces for "classic" MVC and MVC Core. - Add new samples project for MVC Core.
- Wire MVC Core projects into AppVeyyor build.
- Ship a beta to NuGet?
If you're able to spend some time on the first 3, I'll pick up the others. Thanks in advance!
I'm glad to help, I'm tired of writing complicated unit tests for my MVC 6 app :).
I've forked the project and will start working on the first three steps this afternoon.
I'm wondering if conditional compilation will be enough... Just stumbled upon that they have removed the ViewResultBase class, ViewResult now inherits directly from ActionResult. Will make a lot of differences for the ViewResultBaseAssertions class.
I don't know the detail of the API changes I'm afraid.
I'd say wire it up as best you can using as much code as possible from the shared project. If the some types / API surface has changed in significantly MVC Core, then feel free to add new assertions and extensions in the new MVC Core project.
Having given this some more thought, I've shipped the first version which supports MVC Core as 0.7.0-beta1. I don't think we support anywhere near all the features in MVC Core, so sticking with 0.x for now,