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 http://sourceforge.net/projects/sharpcore.
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
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,
Once the job has completed execution, all subscribers are notified through the
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.