Skip to content

Releases: NDecision/Banzai

.Net Standard 2.0 Support

16 Sep 23:18
Compare
Choose a tag to compare
  • All libraries have been converted to .Net Standard 2.0 and their dependencies have been updated.
  • Banzai.Serilog has been added!
  • Banzai.Javascript was no longer viable and has been eliminated.

2.0.3.1 - Additions to allow flows to be retrieved via INodeFactory.

01 Jul 18:28
Compare
Choose a tag to compare
  • Additions to allow flows to be retrieved via INodeFactory.
  • Added checks for registering JSON abbreviations and allowing full class names for abbreviations to avoid collisions.
  • Added tests

2.0.1.1

22 May 20:44
Compare
Choose a tag to compare

Bug Fix Release of 2.0 to fix up id generation on nodes/and serialization.

From 2.0:
What's new with 2.0

The main updates so far to the 2.0 branch are:

All non-async convenience methods are gone. These were methods for those that didn't want to work in the async paradigm, but people just need to learn how to handle this on their own. It's becoming less important with so much server-side code embracing async. This is a breaking change, hence the move to 2.0.
So what do I do if I override a method and my implementation isn't async?
The best approach currently is to perform a Task.FromResult(result). Task.FromResult doesn't incurr scheduler overhead.
This is what Banzai was previously doing internally.
ShouldExecute:

public override Task<bool> ShouldExecuteAsync(IExecutionContext<SubjectA> context)
{
     return Task.FromResult(context.subject.SomeBooleanPropertyToEvaluate);
} 

PerformExecute:

protected override Task<NodeResultStatus> PerformExecuteAsync(IExecutionContext<CartSubject> context)
{
    //Do something synchronous here...
    return Task.FromResult(NodeResultStatus.Succeeded);
}

More information to help with debugging.
Nodes and flows may now have an assigned ID and FlowID. This helps primarily when building flows using the fluent interface or via JSON. Logging and debugging of these items can be very tedious when you can only tell that you're inside of a pipleline node. Now you should be able to example the Id and FlowId properties of generic nodes to better understand what is currently executing.
Nodes now reference their result using the Result property. Now when debugging a node, you can look at the Result of the current node to understand the current result status of the node. The result will reflect the current or last time the node was executed.
Although ShouldExecute blocks were present in the previous version, they were not documented. This documentation has now been added.

Added Serialization to JSON, Javascript support, better support for configuration

10 Feb 02:50
Compare
Choose a tag to compare
  1. Can SerializeTo/Deserialize from JSON
  2. Better helper methods for "fluent" configuration.
  3. Can build V8 Javascript flow nodes
  4. Can add metadata to nodes during configuration.