My presentation to the Cleveland .NET SIG on 3/9/2010 can be downloaded here.
The last few weeks have been more surreal than usual. I’ve been simultaneously preparing a presentation for the Cleveland .NET SIG on “Functional Programming in C# and F#”. And, at the same time, I’ve been participating in a review of Entity Framework 4.0 and NHibernate for my current client project. Talk about worlds colliding. Functional programming is about immutable data. Ideally all objects should have fields that are read-only. The ORMs on the other hand want to everything to be read/write: every class must have a default constructor, and every property must have a setter, even its “ID”. Fans of EF and NH boast that they “fully support” domain-driven design, but neither of them comes close. I’m about ready to write my own ORM – in F#.