It was to be expected but some of the stuff in the keynote was already familiar from the LINQ session. But it was nice to see the audience appreciate Erik explaining the impedance problem.
He went on to say that he really like the discoupling of relationships from object whereas they are implied in certain domain models. This way you can avoid relationships between another domain’s objects that are of no interest to your specific domain. The same goes for behavior.
The title of democratizing the Cloud (or Internet) was explained in a set of principles or guidance that basically said: do not burden a developer with problems that he/she cannot easily fix or are very hard to fix without a guaranteed ROI. He gave a funny example about choosing a producttype in Visual Studio. He asked: why do I have to decide to create a console application which is then almost impossible to change to a web application?
Defering these hard decision could be done by having the runtime environment do late binding on the platform of choice. Why make the developer chose for winforms, web or mobile at designtime?
His tip for making life easier on the developer was also : use what is in the room.
This was kind of repeated in the last session I attended in the form of architecture of locality, but maybe more about that later.
As a farewell, he demonstrated how LINQ queries could be used to have the runtime determine how to parallelize these and perform a distributed database action. Very interesting.