Skip to content

Separate EntityFramework APIs into separate package #292

Open
@jaredcnance

Description

@jaredcnance

We would like to support other ORMs such as Marten (see #291) and MongoDb (https://github.com/json-api-dotnet/JsonApiDotNetCore.MongoDb). In order to do this, EF should not be installed unless the developer explicitly chooses it as their ORM. I'd like to see developers install their ORM specific version from the beginning (e.g. dotnet add package JsonApiDotNetCore.EntityFramework) which will bring the base library (JsonApiDotNetCore) in as a transient dependency.

So, the dependency chain will look something like:

JsonApiDotNetCore.EntityFramework -> JsonApiDotNetCore -> Microsoft.AspNetCore., ...
JsonApiDotNetCore.Marten -> JsonApiDotNetCore -> Microsoft.AspNetCore.
, ...
JsonApiDotNetCore.MongoDb -> JsonApiDotNetCore -> Microsoft.AspNetCore.*, ...

The roadmap for doing this will look something like:

  • v2.x : removal of EF APIs into separate project installed by default, dependency chain looks like JsonApiDotNetCore -> JsonApiDotNetCore.EntityFramework. This allows us to begin separation in a non-breaking way.
  • v3 : complete separation and inversion of dependency. This will require application developers to install the new package and possibly change namespaces...(namespace changes could be amortized through deprecations and proxies)...

Blocked by #254

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions