Current Version v0.0.1-beta

Build .NET apps faster,
with less code.

Backlot is an opinionated framework on top of .NET Core for building API-centric web and back-end systems, powered by our own Movie Pattern Practice.

▍ bash
dotnet CLI
$ dotnet new install Backlot.Start
ASP.NETAzure FunctionsRavenDBLiteDB AutofacRedis
◇ The Movie Pattern Practice

Code that reads like a screenplay.

Four concepts. Clear separation. A uniform language across every project, every team and every team member.

01 · Roles

What your code can do

Concise and reusable interfaces acting as an abstraction for underlying objects.

var formula = new {
  Op = "sum"
}.Presents<IFormula>()
02 · Scenarios

What your code actually does

Concrete SOLID code pieces that implement business logic and encapsulate behavior.

await Calculate
    .With(formula)
    .Play();
03 · Watchers

React to what happened

Observer scenarios and their events, react or trigger new scenarios as follow-ups

WatchAll<DebugWatcher>();
Watch<Calculate,
  PingeMe>();
04 · Director

Orchestrate execution

Central orchestration component to manage executions across different hosts.

.ConfigureBacklotWeb((c, b)
  => new WebDirector());

▤ Building blocks

Batteries included.
Swap any one.

Each block features a sensible default and adheres to SOLID principles to enable straightforward replacements.

⌬

Core

The foundational building block that powers every Backlot project.

✦

Authentication

Built-in secure authentication providers out of the box, plus a clean pattern to plug in your own.

▤

Persistence

RavenDB, LiteDB, or SQL. Pick the right store that fits your project best, without rewriting code.

▣

Storage

Built-in storage providers that match your host. Replacable by any cloud storage of your own.

✉

Hosts

Swap hosts by changing configuration only. We support ASP.NET web apps, Azure Functions, plain consoles and more to come.

✺

Multitype data support

Owe to our flexible rolecreate and mediaformatter practices. We support multiple dataformats for both in- and output.

⚡ Less ceremony

A single point of implementation
one file.

Skip the boilerplate. Declare a scenario, define the Roles you need, and find the entities (Actors) who can play these roles. The framework wires it into endpoints, a fluent C# API and serve you with a authentication and database storage out of the box.

  • ✓Uniform structure across every project
  • ✓Configurable and scalable at its core
  • ✓Multiple hosts supported, switch without code changes
  • ✓Opinionated defaults, escape hatches everywhere
HelloWorld.cs C#
[Scenario(typeof(HelloWorld), access: [Access.Everyone])]
public class HelloWorld(IDirector role) :
  Scenario<HelloWorld, IDirector, string>(role)
{
  protected override string Exec()
  {
    return "Hello World!";
  }
}
💳 Pricing

Designed with collaboration in mind

Choose the license that fits your project's needs.

Community Edition

Free & Open Source

$0 / forever
  • ✓ All core features available
  • ✓ For none commercial projects
  • ✓ Community support
View on Github
Recommended

Commercial License

Enterprise & Closed Source

Talk with us
  • ✓ Closed source projects
  • ✓ Commercial use
  • ✓ Priority support
Contact Sales
◉

“Close the gap between describing software and building it, Backlot support teams to collaborate in a clear, uniform, agile way.”

Our mission!

Ready to roll the cameras?

Spin up your first scenario now. Backlot does the wiring, so you can focus on doing the interesting bits.