Anders Norås on DSLs with C#

Anders has a fantastic post about creating DSLs using C#. He covers the normal design rules you need to break when programming your DSL (like changing state in the get{} accessor), as well as other tips on building the grammar such as selectively overriding the implicit cast operator. A great read for anyone even remotely interested in fluent interfaces.