https://github.com/avanade/liquid-application-framework
Liquid Application Framework documentation, useful links and sample project
https://github.com/avanade/liquid-application-framework
abstraction-layer api architecture aws azure cosmosdb dotnet dotnet-core entity-framework-core framework gcp grpc hexagonal-architecture microservices mongodb multicloud rabbitmq restful-api servicebus sqs
Last synced: 3 days ago
JSON representation
Liquid Application Framework documentation, useful links and sample project
- Host: GitHub
- URL: https://github.com/avanade/liquid-application-framework
- Owner: Avanade
- License: mit
- Created: 2021-03-26T18:59:26.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2024-07-29T19:14:01.000Z (10 months ago)
- Last Synced: 2025-04-07T04:18:19.322Z (about 1 month ago)
- Topics: abstraction-layer, api, architecture, aws, azure, cosmosdb, dotnet, dotnet-core, entity-framework-core, framework, gcp, grpc, hexagonal-architecture, microservices, mongodb, multicloud, rabbitmq, restful-api, servicebus, sqs
- Language: C#
- Homepage:
- Size: 6.58 MB
- Stars: 491
- Watchers: 26
- Forks: 56
- Open Issues: 22
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Liquid Application Framework



[](https://avanade.github.io/code-of-conduct/)
[](https://avanade.github.io/maturity-model/)This repository contains Liquid Application Framework full code, samples, templates and [documentation](docs/About-Liquid.md).
## What is Liquid?
Liquid is a **multi-cloud** framework designed to **accelerate the development** of cloud-native microservices while avoiding coupling your code to specific cloud providers.
When writing Liquid applications, you stop worrying about the technology and focus on your business logic - Liquid abstracts most of the boilerplate and let you just write domain code that looks great and gets the job done.
## Feature
- Abstracts a number of services from cloud providers such as Azure, AWS and Google Cloud to enable you to write code that could run anywhere.
- Brings a directed programming model that will save you time on thinking how to structure your application, allowing you to focus on writing business code.| Liquid Application Framework Binaries | Version |
| :-- | :--: |
| [`Liquid.Core`](https://www.nuget.org/packages/Liquid.Core) |  |
| [`Liquid.Repository.Mongo`](https://www.nuget.org/packages/Liquid.Repository.Mongo) |  |
| [`Liquid.Repository.EntityFramework`](https://www.nuget.org/packages/Liquid.Repository.EntityFramework) |  |
| [`Liquid.Repository.OData`](https://www.nuget.org/packages/Liquid.Repository.OData) |  |
| [`Liquid.Cache.Memory`](https://www.nuget.org/packages/Liquid.Cache.Memory) |  |
| [`Liquid.Cache.NCache`](https://www.nuget.org/packages/Liquid.Cache.NCache) |  |
| [`Liquid.Cache.Redis`](https://www.nuget.org/packages/Liquid.Cache.Redis) |  |
| [`Liquid.Cache.SqlServer`](https://www.nuget.org/packages/Liquid.Cache.SqlServer) |  |
| [`Liquid.Messaging.Kafka`](https://www.nuget.org/packages/Liquid.Messaging.Kafka) |  |
| [`Liquid.Messaging.RabbitMq`](https://www.nuget.org/packages/Liquid.Messaging.RabbitMq) |  |
| [`Liquid.Messaging.ServiceBus`](https://www.nuget.org/packages/Liquid.Messaging.ServiceBus) |  |
| [`Liquid.WebApi.Http`](https://www.nuget.org/packages/Liquid.WebApi.Http) |  |
| [`Liquid.Dataverse`](https://www.nuget.org/packages/Liquid.Dataverse) |  |
| [`Liquid.Storage.AzureStorage`](https://www.nuget.org/packages/Liquid.Storage.AzureStorage) |  |
| [`Liquid.GenAi.OpenAi`](https://www.nuget.org/packages/Liquid.GenAi.OpenAi) |  |## Getting Started
You can use Liquid Templates to get your microservice started.
Install the templates by running the following dotnet CLI command at the PowerShell prompt :
```Shell
dotnet new install Liquid.Templates
```
and run dotnet new command with the name and parameters of the following templates:
|Name|Description|
| :-- | :-- |
|`liquidcrudsolution` |Liquid WebAPI CRUD Solution (Domain and WebAPI projects) |
|`liquidcrudaddentity` |Liquid entity class, CRUD mediator handlers and CRUD controller |
|`liquiddomainaddhandler` |Liquid mediator command handler |
|`liquiddomainproject` |Liquid Domain project (mediator command handler) |
|`liquidwebapisolution` |Liquid WebAPI solution (Domain and WebAPI projects) |
|`liquidwebapiaddentity` |Liquid entity class, mediator command handler and CRUD controller |
|`liquidwebapiproject` |Liquid WebAPI project |
|`liquidworkersolution` |Liquid WorkerService solution (Domain and WorkerService projects) |
|`liquidworkerproject` |Liquid WorkerService project |
|`liquidbcontextaddentity` |Liquid DbContext entity configuration class (for Entity Framework) |
|`liquiddbcontextproject` |Liquid Repository project (EntityFramework DbContext configurations) |### Sample:
To create an WebAPI solution with CRUD handlers, you must:
- execute command :
```Shell
dotnet new liquidcrudsolution --projectName "some root namespace" --entityName "some entity" --entityIdType "type of your unique ID"
```- open the folder where the command was executed, and open the project created in the IDE of your choice:

- follow the instructions found in the generated code TODOs, and run!
> You can make changes in code, add more classes and project if you need, and also using others Liquid templates to do it!
## Contribute
Some of the best ways to contribute are to try things out, file issues, and make pull-requests.
- You can provide feedback by filing issues on GitHub or open a discussion in [Discussions tab](https://github.com/Avanade/Liquid-Application-Framework/discussions). We accept issues, ideas and questions.
- You can contribute by creating pull requests for the issues that are listed. Look for issues marked as _ready_ if you are new to the project.
- Avanade asks that all commits sign the [Developer Certificate of Origin](https://developercertificate.org/).In any case, be sure to take a look at [the contributing guide](CONTRIBUTING.md) before starting, and see our [security disclosure](https://github.com/Avanade/avanade-template/blob/main/SECURITY.md) policy.
## Who is Avanade?
[Avanade](https://www.avanade.com) is the leading provider of innovative digital, cloud and advisory services, industry solutions and design-led experiences across the Microsoft ecosystem.