What is Memoization? Just a simple demo outlining how you might write a simple generic callsite cache in F# aka Memoize. This is something that you can find elsewhere on the web - it's easy to write one. What I really want to illustrate is if you were to write something similar in C# how … Continue reading Lightweight callsite caching with F# and C#
Meet Entity Framework, the Anti-SQL Framework
Entity Framework 6 is coming! Entity Framework 6 is now ramping up for a release. It brings nice Async functionality, but also gives lots more power to the Code First capability, as well as also bringing EF completely out of the core .NET framework - it's instead now a standalone NuGet package. So, the story … Continue reading Meet Entity Framework, the Anti-SQL Framework
The future of C#
Having recently discussed (and effectively ruled out) JavaScript as a valid programming language on the server, I wanted to review the current situation for C#, how it has changed in the past few years and my thoughts on where I see it going as a server-side language. Java and C# I want to start by … Continue reading The future of C#
Data vs CPU costs
Had an interesting discussion on twitter regarding storing relational data and how to essentially pre-render joins across data to improve performance at the cost of storage space. To my knowledge, this isn't really possible, and goes against the ethos of relational databases anyway i.e. avoid duplication of data, one record for any bit of information … Continue reading Data vs CPU costs
On Javascript…
So, a couple of days ago I had a good discussion on Twitter with a developer that I respect regarding the future of JS. This was in response to this article, which basically suggests that within the next few years JS will become the defacto programming language on both the client and server. Now, I've … Continue reading On Javascript…
Bringing F# to the masses…
I think that the biggest job that the F# team have now, having already written an awesome language, is to get better adoption and improve the general understanding of what F# within the .NET community of what it is compared to C# and VB .NET - people out there think it's just a "more functional" … Continue reading Bringing F# to the masses…
Pigs in Lipstick
A "fluffy" post today, that doesn't talk about F# or EF or RavenDB etc. but about general development processes. Something I think all developers need to learn, and are always honing, is the ability to trust their instinct when something feels wrong. What do I mean by this? Well, primarily this is about identifying when … Continue reading Pigs in Lipstick
Back from DDD East Anglia
So, last weekend was DDD East Anglia, where I was lucky enough to be picked as one of the speakers! I was really impressed with the quality of the talks there, but more than that, the fact that there is a .NET community out there that are actively interested in learning new technologies and getting … Continue reading Back from DDD East Anglia
Update on experiences of using Git
I've been using Git now for a few months almost exclusively. When I last blogged on it I'd been using it for but a few weeks. Since then I've come to the conclusion that it should be the de-facto choice for source control. This might be obvious to those of you that use Git on … Continue reading Update on experiences of using Git
Modelling problem domains in C# and F# – Part 2
In my last post, I illustrated how we could model a simple real-world problem using classic OO concepts such as type hierarchies, interfaces and stateful objects. In this post I want to contrast that with a functional-first approach using F#. Discriminated Unions In order to model the different types of Positions on a Monopoly board … Continue reading Modelling problem domains in C# and F# – Part 2