A .NET Software Transactional Memory framework