SharpCore

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.


SharpCore.Caching

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.

SharpCore.Communications

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.

SharpCore.Logging

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

SharpCore.NullableTypes

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

SharpCore.Objects

Provides an object factory with dependency injection.

SharpCore.Scheduling

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.

SharpCore.Utilies

Provides generalized utility functionality:


Requirements

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.

About

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