Hi,
(apologies for the lengthy description)
I'm working on setting a roadmap for a phased/incremental upgrade path of a .Net Framework 4.8 solution to .Net 8.0+.
The existing solution has a large number of projects with direct project references and has become quite the monolith in places, one of which is the Repository/DataAccess layer which utilises Entity Framework 6.4.4, fronted by classes for the CRUD actions.
The core requirement of a phased migration exists, due to the desire to achieve this almost transparently, reducing impact on the product roadmap.
I've realised we can't migrate directly to .Net 8.0 due to the lack of support for referencing between .Net Framework & .Net. So I determined that initially we'll need to target .NetStandard 2.0, having a mix of .Net Framework & Standard, before a further phase to target .Net 8.0+.
The key issue I'm facing is that we use EF 6.4.4, which isn't supported in .NetStandard 2.0, but annoyingly is supported in .NetStandard 2.1, which we can't use given that isn't supported in .Net Framework. Additionally, we can't use EFCore as that is only supported in .Net and not Standard 2.0. On top of all this, I need to maintain transaction scope multiple updates.
Clearly I'll need to implement an alternative Repository/DA layer and migrate functionality when and as required.
FYI - I've explored the possibility of switching to Fluent NHibernate (as that has support for Standard 2.0), but feel it would be a huge refactor and prohibitive learning curve. I've also considered implementing a new layer either as a self-hosted REST API or gRPC service, however that fails on the transaction scope requirement.
So finally the Question... Has anyone any suggestions of how best to implement the Repository/DA layer given the above issues?