I'm after some good tips for fluent interfaces in C#. I'm just learning about it myself but keen to hear what others think outside of the articles I am reading. In particular I'm after:
If you could post one tip or thought, or whatever per post. I want to see how they get voted on, too.
Thank you in advance.
The single biggest challenge I have experienced as a consumer of fluent interfaces is that most of them aren't really fluent intefaces -- instead they are really instances of what I tend to refer to as 'legible interfaces'.
A fluent interface implies that its primary goal is to make it easy to SPEAK it whereas a legible interface implies that its primary goal is to be easy to READ it. Most fluent interfaces only tend to be ridiculously difficult to code with but conversely incredibly easy to READ later by others.
Assert().That().This(actual).Is().Equal().To(expected).
Except().If(x => x.GreaterThan(10));
...is alot easier to read later than it is to actually compose in code!