https://github.com/tkellogg/objectflow
Lightweight workflows in .NET for busy developers
https://github.com/tkellogg/objectflow
Last synced: about 1 year ago
JSON representation
Lightweight workflows in .NET for busy developers
- Host: GitHub
- URL: https://github.com/tkellogg/objectflow
- Owner: tkellogg
- License: lgpl-3.0
- Created: 2011-03-04T23:19:25.000Z (over 15 years ago)
- Default Branch: master
- Last Pushed: 2011-09-12T14:20:30.000Z (almost 15 years ago)
- Last Synced: 2025-03-26T10:04:37.771Z (about 1 year ago)
- Language: C#
- Homepage: https://github.com/tkellogg/objectflow
- Size: 2.07 MB
- Stars: 64
- Watchers: 10
- Forks: 29
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
Objectflow: Workflows for busy developers
=================================
Objectflow is a framework for declaratively creating workflows in C# with a fluent syntax. Objectflow allows you to consolidate your business logic in the usual places (the model) so the workflow only has to focus on how those pieces fit together.
// Define a workflow
var workflow = new StatefulWorflow()
// Configure security
.Configure(config => config.Security.AsStrict.UsingMethod(() => _factory.GetAllowedTransitions())
// Declare a starting point
.Yield("Scheduled")
.Do(x => x.Open())
.Yield("In Progress")
.Unless(x => x.IsReadyToBeClosed()).Fail("Site visit was not ready to be closed")
.Do(x => x.Close());
Objectflow provides several services that can optionally be plugged in; including security, persistence, error handling, and UI integration. Each workflow is built inside plain C# classes, making them completely compatible with dependency injection frameworks (unlike Workflow Foundation).
We also provide other facilities for interacting with workflows to provide persistance and security frameworks.
See the [Quickstart guide](https://github.com/tkellogg/objectflow/wiki/Home) for more information.
Installation
--------------------------
Objectflow is available via NuGet under the code `StatefulObjectflow`. (http://www.nuget.org/List/Packages/StatefulObjectflow)
Contributing
--------------------------
If you would like to suggest a feature or report a bug, open an issue. If you want to contribute code, fork the repository, make changes, and send a pull request through github.