Chakra.Core 2.0.7

There is a newer version of this package available.
See the version list below for details.
dotnet add package Chakra.Core --version 2.0.7                
NuGet\Install-Package Chakra.Core -Version 2.0.7                
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="Chakra.Core" Version="2.0.7" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Chakra.Core --version 2.0.7                
#r "nuget: Chakra.Core, 2.0.7"                
#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 Chakra.Core as a Cake Addin
#addin nuget:?package=Chakra.Core&version=2.0.7

// Install Chakra.Core as a Cake Tool
#tool nuget:?package=Chakra.Core&version=2.0.7                

Chakra.Core

Framework and guidelines for build .NET 4.x and .NET Core based enterprise applications.

  1. Given a defined set of entities and model for your application workflow...
public class Product: IEntity
{
    public int? Id { get; set; }
    public string Code { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
}
  1. Define a repository interface for retrieve your domain entities
public interface IProductRepository: IRepository<Product>
{
    IList<Product> FetchAvailableProductsInPeriod(DateTime from, DateTime to);
}
  1. Define one or more fake scenarios with a common interface for test (ad unit test) your application layers
public class IApplicationScenario: IScenario
{
    IList<Product> Product{ get; set; }
}

public class SimpleScenario: IApplicationScenario
{
    public IList<Product> Product{ get; set; }

    public void InitializeEntities()
    {
        Products.Add(new Product
        {
            Id = Product.Count + 1, 
            Code = "ABC", 
            Name = "Product ABC", 
            Description = "Non important..."
        });
    }
}
  1. Implement a concrete class for a storage provider (ex: fake provider)
[Repository]
public class MockupProductRepository: MockupRepositoryBase<Product, IApplicationScenario>, IProductRepository
{
    public MockupProductRepository(IDataSession dataSession) 
        : base(dataSession, scenario => scenario.Products) { }

    public IList<Product> FetchAvailableProductsInPeriod(DateTime from, DateTime to) 
    {
        //TODO...Insert here the method implementation
		//ex. => Scenario.Products.Where(p => p...
    }
}
  1. Register default data session for application (ex. fake data provider, specifying default scenario)
ScenarioFactory.Initialize(new SimpleScenario());
SessionFactory.RegisterDefaultSession<MockupDataSession>();
  1. Open session on storage (ex. database) using default configured provider, resolve repository interface using registered storage provider and obtain concrete repository implementation
using (IDataSession dataSession = SessionFactory.OpenSession())
{
    var productRepository = dataSession.ResolveRepository<IProductRepository>();

    var entities = productRepository.FetchAvailableProductsInPeriod(
        new DateTime(2013, 8, 1), DateTime.Now);
}

You have the opportunity to switch a provider (ex. from fake to Entity Framework, from NHibernate to MongoDb) changing a single line of code on your application that can be really database agnostic and every single part can be tested in its own isolated context.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  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. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (6)

Showing the top 5 NuGet packages that depend on Chakra.Core:

Package Downloads
Chakra.Core.EntityFramework

Provider for Microsoft EntityFramework Core in Chakra.Core framework

Chakra.Core.Configurations

Configuration extensions for Chakra.Core

Chakra.Core.MongoDb

Provider for MongoDB in Chakra.Core framework

Chakra.Core.Windows

Utilities and structure for Chakra.Core on Windows platform

Chakra.Core.Mocks

Data providers and structures for mock data and scenarios

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
5.0.2 2,465 10/29/2021
5.0.0 1,298 6/21/2021
3.0.4 1,481 6/21/2021
3.0.3 3,002 7/2/2020
3.0.2 1,946 3/24/2020
3.0.1 1,391 3/23/2020
3.0.0 1,555 1/31/2020
2.0.15 13,301 10/24/2019
2.0.13 3,062 12/11/2018
2.0.12 2,246 10/30/2018
2.0.11 1,734 10/30/2018
2.0.10 1,686 7/17/2018
2.0.8 1,033 5/7/2018
2.0.7 2,018 12/20/2017
2.0.6 1,245 12/16/2017
2.0.5 1,302 12/7/2017
2.0.4 1,021 12/5/2017
2.0.3 1,164 12/5/2017
2.0.2 1,336 11/8/2017