CalcEngine Plus

User-authored calculations for .NET

Why A Calculation Engine?

CalcEngine Plus is a .NET software component that parses mathematical expressions that include application-specific tags. Typically, these expressions are configured by end-users at runtime (and stored in database, or retrieved from a config file, etc). If you are building a stock-market analytics application, your users might configure an entity with an expression such as

0.25 * GOOG + 0.5 * MSFT + 0.25 * APPL

where GOOG, MSFT and APPL are understood by your users to mean "the current share price for Google/Microsoft/Apple"

Expressions can include any variable name you like (e.g. "Pump301.flowrate", or "Predicted_handbag_sales") so long as you, the developer, can supply a numeric value for these things at the instant the expression is evaluated.

A good calc engine unleashes your users' expertise to create and imagine, to build what-if scenarios, models and innovative reports in a familiar domain. Giving this power to your users makes your product or application look fantastic. And putting the onus of configuration on your users can de-risk your project estimates and increase profitability of your proposals.


"We can build one ourselves"

As a project manager or development manager, you will one day be confronted with a developer who earnestly insists that he or she can build a calc engine over a weekend. If their enthusiasm outweighs your nagging doubts then perhaps, after four frantic days of coding, you will be presented with a home-brew calculation engine.

It will be buggy and unreliable and it will probably have a horrible and unintuitive syntax. But your product needs a calc engine, and so you commit to the in-house version. No sooner is it baked into the core of your app than subtle bugs emerge. Performance slows when you hit real-world loads. Next thing, the client has built so many calculations that he demands nested calculations to encapsulate logic to keep things under control. Maybe you have hierarchical structures, and the client demands that a parent node must automatically aggregate all the child nodes.

Before you know it, you've blown four, five, six weeks of developer time trying to get it right. Your schedule is shot and the client has lost faith. You're saddled with a mass of ugly code that you have to maintain in perpetuity, and the one developer that knows how it works is starting to take private phone calls in the hallway...


Don't be that manager.

Check out how easy it is to incorporate in your application.

Check out a couple of the necessary features, like nested expressions, and hierarchy support. There's the list of supported operations, and there's a nice extensibility mechanism so you can define your own functions that operate just like the built-in ones.

Download a trial or simply buy a copy for your team now.