Updates to OneTrueError

Bug fixes

OneTrueError has gotten some bug fixes. A windows update of .NET framework gave us a bit of a down time. Won’t happen again. Fortunately the client library always continue to try to deliver reports if something fails. So nothing should be lost even if the report site is temporarily down.

Continue Reading

Windows azure & WordPress

I had a minor down time due to a failing WordPress plugin update. I had to manually delete the failing plugins using the FTP account which is hidden inside the publish profile XML which you can download. Now I manually have to reinstall those plugins.

Alternative to IEnumerable for read-only collections

.NET 4.5 introduced a new interface which is great if you want to expose a collection as readonly.

The problem with IEnumerable<T> is that it’s forward only. i.e. there is no guarantee that you can traverse it multiple times. The collection size might also be unknown, depending on the implementation.

So if you want to expose a collection which can be traversed multiple times and where the size is know there is as of .NET 4.5 another alternative. And that’s IReadOnlyList<T>. It inherits another new interface called IReadOnlyCollection<out T>.


public interface IReadOnlyCollection<out T> 
      : IEnumerable<T>, 
    int Count { get; }
public interface IReadOnlyList<out T> 
      : IReadOnlyCollection<T>
      , IEnumerable<T>
      , IEnumerable
    T this[int index] { get; }

Usage example

public class MyRepository
    public IReadOnlyList<User> FindUsers(string lastName)
        // [...]

    // [...]