Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

mac-michael/bfsharp

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bfsharp

A framework which helps building business applications. It provides business rules, validation rules and a text-based language for writing rules. It supports automatic dependency detection, automatic rule reevaluation.

  • 8 August 2011: SwitchRule - better rule groups management; Client\Server context, ValidateOnlyOnServerSide
  • 28 July 2011: Formula DSL language is available in WP7.
  • 27 July 2011: Rules with Automatic Dependency Analysis support in WP7. Now rules can be truly multiplatform (.Net, SL, WP7).
  • 24 July 2011: Major performance improvments and expression caching (alpha). To turn it on use ExtensionsOptions.CacheLambdas.

A new tutorial was created. You can find it here.

To view LiveSamples go here.

Now with NuGet integration - you can find it here.

BFsharp Provides several features which help in building business applications:

  • Business rules
[Test]
public void BusinessRuleEvaluate()
{
    var e = new Entity();
    e.Extensions.AddBusinessRule(en => en.Number2 + 5, en => en.Number);

    e.Extensions.Enable();

    e.Number2 = 5;

    e.Number.ShouldEqual(10);
}
  • Formula - text language for writing rules
e.Extensions.AddBusinessRule("Number=Number2+Number3");

You can use Formula without rules

var compiler = new FormulaCompiler()
    .WithFlatType(typeof(Math));

var f = compiler.NewLambda().
    WithParam<int>("Param1").
    WithParam<int>("Param2").
    Returns<int>().
    Compile("max(@Param1, @Param2) + 4");

f(2, 3).ShouldEqual(7);
  • Validation rules
[Test]
public void FuncValidationRule()
{
    var e = new Entity();
    e.Extensions.AddValidationRule(en => en.Name == "yol");

    e.Extensions.Enable();

    e.Name = "abc";
    e.Extensions.BrokenRules.Count.ShouldEqual(1);
            
    e.Name = "yol";
    e.Extensions.BrokenRules.Count.ShouldEqual(0);
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.