PlatformFramework.EFCore 0.2.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package PlatformFramework.EFCore --version 0.2.0
NuGet\Install-Package PlatformFramework.EFCore -Version 0.2.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="PlatformFramework.EFCore" Version="0.2.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add PlatformFramework.EFCore --version 0.2.0
#r "nuget: PlatformFramework.EFCore, 0.2.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install PlatformFramework.EFCore as a Cake Addin
#addin nuget:?package=PlatformFramework.EFCore&version=0.2.0

// Install PlatformFramework.EFCore as a Cake Tool
#tool nuget:?package=PlatformFramework.EFCore&version=0.2.0

PlatformFramework GitHub Workflow Status GitHub code size in bytes

Nuget An application framework for building applications on ASP.NET Core

Nuget A Web part of framework on top of the PlatformFramework

Nuget / A EntityFramework Core part of framework on top of the PlatformFramework

Work in Progress

  • add tests
  • stabilize Hooks Api
  • review Auth code and features
  • derive Context from IdentityContext with configuration
  • add tenancy
  • add tenant Angular template project

Technologies

Installing

From the Package Manager Console:

PM> Install-Package PlatformFramework
PM> Install-Package PlatformFramework.Web
PM> Install-Package PlatformFramework.EFCore

Getting Started

PlatformFramework
  • In your Startup.cs
public void ConfigureServices(IServiceCollection services)
{
    services
        .AddFramework(x =>
        {
            x.Assemblies.Clear();
            x.Assemblies.Add(Assembly.GetExecutingAssembly());
            x.Assemblies.Add(typeof(ApplicationRegistry).Assembly);
        })
        .WithDefaults(); // add default framework services. This can be omitted and replaced by concrete extensions
    
    ....
}
PlatformFramework.Web
  • In your Startup.cs
public void ConfigureServices(IServiceCollection services)
{
    services
        .AddWebFramework()
        .WithPermissionAuthorization()
        .WithCors(options =>
        {
            options.AddPolicy("Default", x => x
                .AllowCredentials()
                .SetIsOriginAllowed(isOriginAllowed: _ => true)
                .AllowAnyMethod()
                .AllowAnyHeader());
        })
        .WithResponseCompression(options =>
        {
            options.Providers.Add<BrotliCompressionProvider>();
            options.EnableForHttps = true;
        });
       
    ....
}
PlatformFramework.EFCore
  • In your Startup.cs
public void ConfigureServices(IServiceCollection services)
{
    services
        .AddEfCore<ProjectDbContext>(o => //configure DbContext and `IUnitOfWork`
        {
            var connectionString = "__CONNECTION_STRING__";
            o.UseNpgsql(connectionString, assembly => assembly.MigrationsAssembly(Assembly.GetExecutingAssembly().FullName));
        })
        .WithMigrationInitializer() // add DBContext migrator to startup
        .WithHooks(x => // add `on SaveChanges` entity hooks 
        {
            x.WithTrackingHooks();
            x.WithSoftDeletedEntityHook();
        })
        .WithEntities(x => // add Entities to DbContext
        {
            x.ApplyConfiguration<MyEntity, MyEntityConfiguration>();
        });
            
    ....
}

Samples

  • Download Visual Studio 2019 (any edition) from https://www.visualstudio.com/downloads/
  • Open PlatformFramework.sln and wait for Visual Studio to restore all Nuget packages
  • Samples are in to try out (navigate to /swagger for API test)

Contributing

  • Clone the repository using the command git clone https://github.com/vermilion/PlatformFramework.git and checkout the master branch. Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Licences

Licenced under MIT.

Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on PlatformFramework.EFCore:

Package Downloads
PlatformFramework.EFCore.Identity

Entity Framework Core part of a PlatformFramework package

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.6.1 634 9/16/2020
0.6.0 578 9/16/2020
0.5.4 556 9/11/2020
0.5.3 509 9/11/2020
0.5.2 520 9/11/2020
0.5.1 539 9/11/2020
0.5.0 494 9/11/2020
0.4.2 425 9/10/2020
0.4.1 374 9/8/2020
0.4.0 407 8/31/2020
0.3.0 489 8/13/2020
0.2.1 469 8/10/2020
0.2.0 498 8/10/2020
0.1.1 470 8/7/2020