Vici Core

Project coordinator

  • Philippe Leybaert (Lead developer)


  • Björn Bailleul

Vici Core is a multi-purpose .NET library which is used as the core component for Vici MVC and Vici CoolStorage. Its core functionilty is a late-bound expression parser and template rendering engine. It also includes an easy to use tokenizer that can be used for parsing all kinds of file formats (a full-featured JSON parser is included).

The library includes the following subcomponents/frameworks:

  • Application configuration framework (with pluggable configuration providers)
  • Dynamic type conversion framework
  • Logging framework (with pluggable logging providers)
  • Notification framework
  • Smart data caching class
  • Scheduling framework (with pluggable scheduling providers)
  • Late-bound expression parser and template engine (includes a generic tokenizer, C# expression parser and generic template parser)
  • JSON serializer/deserializer

All features are available for .NET (Windows), Mono and MonoTouch (iPhone).

Detailed feature overview

Check out this blog post for an overview of the framework: http://blog.activa.be/index.php/2012/05/vici-core/

Application Configuration Framework

Allow you to create a typed class that maps to a pluggable configuration provider. Supports versioning (auto reload of changed configuration). Includes providers for app.config and custom XML files.

Dynamic Type conversion

Convert any data type to any other data type using "Vici Conversion Heuristics". No more type conversion exceptions!

Logging Framework

Add easy logging to your application using pluggable logging providers. File and console loggers are built-in, but you can easily add your own.

Notification Framework

Easily implement the notifier/observer pattern in your application. Similar to Apple's NSNotificationCenter.

Smart data caching

Thread-safe and fully typed caching class which can be used in any application. It supports sliding and absolute expiration times, auto-loading of expired objects.

Scheduling Framework

Add scheduling support to your application. Supports cyclic, daily and monthly schedules.


The tokenizer can be used to tokenize any input string using an extensible algorithm. A full-featured JSON tokenizer and parser is included.

C# expression parser

If you want to parse C# expressions at runtime, you can use this component. It will compile a given expression to a syntax tree and can then be evaluated using a user-specified context. Expressions are evaluated as a late-bound expression. This means that there is no type checking when compiling the expression, but when evaluating.

Template parser

The Vici Core template rendering component allows you to incorporate template parsing and rendering in your application. The template syntax is fully configurable. A few standard template syntax configurations are included, including Velocity syntax.

JSON Serializer/Deserializer

Serialize any object to JSON notation or parse any JSON string to either a dictionary object or a typed object.