General set of base classes implementing the primitive concepts and useful utilities that are required for all but the basic of libraries and applications. Core to our approach is Dependency Injection and Unit Testing - all components have be factored to assist developers with both concepts, things like static state have been avoided to ensure injection and parallel testing can take place without any issues.
Currently a few Core base classes are implemented;
SafeLockA lockable object that timeouts to prevent potential deadlock situationsBaseSyncronisedProviding a SyncRoot ofSafeLocktype for use withusing(SyncRoot.Enter()) { ... }BaseDisposableImplements a Disposable pattern for quick and simple useBaseNotifiableImplementsINotifyPropertyChangedfor use when your classes are using bindingPLogA logging framework based onILoggerandILoggerFactoryso you can use your favourite Logger such as NLog, Serilog or log4net
A start to the Networking namespace has been made with;
NetAddressWraps up IPEndPoint with helpful string based construction. This will be used throughout the future networking classes
Further Networking classes will be added once the unit testable wrappers have been created for Socket and SocketAsyncEventArgs