Carcass is a free, open-source, community-driven infrastructure framework built on .NET 9 for creating modern, scalable applications.
Carcass offers a wide range of features designed to accelerate application development and ensure maintainability.
Carcass follows a modular design, allowing applications to be composed flexibly with independent, reusable components.
Built for modern cloud environments, Carcass enables efficient serverless execution, distributed computing, and seamless scalability.
Carcass is designed around DDD principles, providing a structured approach to software design, focusing on business logic and clear domain boundaries.
Separates command and query responsibilities, improving scalability, maintainability, and performance in data-driven applications.
Stores all state changes as a sequence of events, ensuring immutability, auditability, and support for event-driven architectures.
Comprehensive multitenancy support allows seamless development of SaaS applications, enabling tenant isolation and shared resources.
Every system change is logged to provide traceability, accountability, and insights into application behavior over time.
Carcass includes real-time capabilities built with SignalR, enabling instant updates and interactive experiences.
Carcass includes built-in authentication, authorization, and data protection, with support for Firebase Authentication, ensuring robust security measures.
To install Carcass.*
and its dependencies via the .NET Core CLI, execute the following command:
dotnet add package Carcass.*
To install Carcass.*
and its dependencies via NuGet, execute the following command:
Install-Package Carcass.*
To pack and publish NuGet packages locally, use the provided NuGetPackAndPublish.ps1
script. This script automates the process of building, packing, and adding NuGet packages to your local NuGet repository.
-
Open a PowerShell terminal at the root of the project.
-
Run the following command:
./scripts/NuGetPackAndPublish.ps1 -V '<Version>'
Replace
<Version>
with the package version (e.g.,'1.0.0'
,'1.0.0-beta1'
). Note the single quotes around the version. -
The packaged files will be saved in the
nupkgs
directory and added to the local NuGet repository (C:/NuGet/packages
by default).
An example of using the Carcass framework with Azure Functions can be found in the Carcass.Sample.AzureFunctions
project. This sample demonstrates how Carcass can be implemented with Azure's serverless computing model, including features like dependency injection, Entity Framework Core, Firebase Authentication, and the usage of Azure's FunctionContext
accessor for working with the function's execution context.
- Carcass.Core β Core abstractions, interfaces, and types used by Carcass.* libraries.
- Carcass.Azure.Functions β Features for execution control, state management, and workflow coordination in Azure Functions.
- Carcass.Data.Core β Domain-Driven Design, CQRS, and Event Sourcing core abstractions, interfaces, and types used by Carcass.Data.* libraries.
- Carcass.Data.Elasticsearch β Domain-Driven Design, CQRS, and Event Sourcing built with Elasticsearch.
- Carcass.Data.EntityFrameworkCore β Domain-Driven Design, CQRS, and Event Sourcing built with Entity Framework Core.
- Carcass.Data.EventStoreDb β Domain-Driven Design, CQRS, and Event Sourcing built with EventStoreDB.
- Carcass.Data.Firestore β Domain-Driven Design, CQRS, and Event Sourcing built with Firebase Firestore.
- Carcass.Data.MongoDb β Domain-Driven Design, CQRS, and Event Sourcing built with MongoDB.
- Carcass.Firebase.Core β Firebase authentication core abstractions, interfaces, and types used by Carcass.Firebase.* libraries.
- Carcass.Firebase.AspNetCore β Firebase authentication built with ASP.NET Core.
- Carcass.Firebase.AzureFunctions β Firebase authentication built with Azure Functions.
- Carcass.Json.Core β JSON serialization, deserialization, and transformation core abstractions, interfaces, and types used by Carcass.Json.* libraries.
- Carcass.Json.NewtonsoftJson β JSON serialization, deserialization, and transformation built with Newtonsoft.Json.
- Carcass.Json.SystemTextJson β JSON serialization, deserialization, and transformation built with System.Text.Json.
- Carcass.Http β HTTP abstractions for ASP.NET Core applications.
- Carcass.Logging β High-performance logging adapter built for .NET Core logging infrastructure.
- Carcass.Media.Core β Media file storage, processing, and metadata management core abstractions, interfaces, and types used by Carcass.Medi 8594 a.* libraries.
- Carcass.Media.AzureBlobs β Media file storage, processing, and metadata management built with Azure Blob Storage.
- Carcass.Media.Cloudinary β Media file storage, processing, and metadata management built with Cloudinary.
- Carcass.Metadata β Metadata management for structuring data.
- Carcass.Multitenancy.Core β Tenant isolation, lifecycle management, and resource sharing core abstractions, interfaces, and types used by Carcass.Multitenancy.* libraries.
- Carcass.SignalR β Real-time communication built with SignalR.
- Carcass.Swashbuckle β Swagger API documentation built with Swashbuckle.
- Carcass.Yaml.Core β YAML serialization, deserialization, and transformation core abstractions, interfaces, and types used by Carcass.Yaml.* libraries.
- Carcass.Yaml.DotNetYaml β YAML serialization, deserialization, and transformation built with YamlDotNet.
This project is licensed under the MIT license.