Lately I've been working on a "Commons" framework that I am planning to release to the public. There is two versions of the framework - one that targets the .NET 2.0 framework, and one that targets the 3.5 framework. The goal is to create a framework that really leverages the new C# (or VB) language enhancements. I'm not sure how soon I will be releasing a CTP, but here is a list of things that it can do so far...
- Custom Implementation of LINQ Standard Query Operators (partial implementation so far) so you can use LINQ when targeting .NET 2.0 framework (assuming you are using VS 2008).
- Numerous extension methods, all in a separate namespace "iSynaptic.Commons.Extensions"
- IEnumerable<T>.WithIndex()
- IEnumerable<T>.LookAheadable()
- IEnumerable<T>.Delimit(string delimiter)
- Action<...>.Curry<...>(...)
- Action<T>.MakeConditional(Predicate<T> condition)
- ICollection<T>.Remove(params T[] itemsToRemove)
- Enum.IsDefined() (useful/simpler as a extension method)
- Func<...>.Curry<...>(...)
- Func<T>.MakeConditional(Predicate<T> condition)
- Func<T>.ToAction()
- ...and many more
- An implementation of the Specification pattern
- Scope<T> and NestableScope<T> implementation
- ReadOnlyDictionary<TKey, TValue>
- Cloneable<T> - uses dynamic IL generation to clone objects really fast!
- Transactional<T> - makes use of Cloneable<T> to create transactional objects that support System.Transactions
- ScanningTextReader and SimpleScanner for custom text parsing
- ProcessingInstructionParser to parse XML processing instructions when you are using XmlReaders
- ...and much more
I've got a number of things I plan to implement, but this is what is mostly functional now. I want to get testing code coverage up a little higher (I'm at 66%), so stay tuned...
b813d021-911c-4283-bde9-65f2843e4e95|0|.0