SharpCore is an open source C# framework designed to provide common cross-cutting functionality to applications. Two of the main goals of SharpCore are ease-of-use and extensibility.

SharpCore consists of several different pieces, all designed with specific goals in mind.

SharpCore can be downloaded at


Provides several different options for caching data. Current providers include

Note: The DistributedCache and MiserCache implementations do NOT provide their own cache, but rely another configured cache.


Provides session based communication between a client and a server. Once a SessionServer has been initialized and started, clients can connect and send Communiques. When a SessionServer receives a client communique, a notification event is fired.

Note: All Communiques sent across AppDomains require the Serializable attribute.


Provides logging to different sinks, at different configured levels. Current sinks include


Provides containers that allow value types to be represented as null. The current list of wrapper classes include


Provides an object factory with dependency injection.


Provides functionality for scheduling jobs and sending notifications.

All jobs derive from JobBase and must implement an abstract method, Execute. Once the job has completed execution, all subscribers are notified through the OnComplete event.


Provides generalized utility functionality:


The only requirement for SharpCore is a binary compatible implementation of the .NET Framework 1.1. I'm currently working on a .NET 2.0 version, but it's not ready to be released yet.


SharpCore was written and is maintained by Adrian Anttila in his spare time. You can submit feeback to him here.