6 years ago I was in a WebServices DevCon in Boston and Don Box did a presentation about data, where he started playing with SQL and doing things like 'insert into people select * from products'. As People/Products had the same schema (Id/Name), it worked fine (I'm not sure if that was the actual example, but it was something like that). The object-oriented-strongly-typed heads in the audience were nodding saying that he was doing something 'bad'.
Everyone in Microsoft is talking about writing declaratively and letting the user express the intention and not the steps required to perform the task.
Oslo was the most interesting technology I've seen at the PDC by far, and the Quadrant session was really amazing. If you did not see it yet, go and watch it. They had Quadrant run in the Microsoft Surface in the Expo area, and being able to explore a model using Surface is very powerful.
I was going to write a large post on Oslo, until I found this one. I still did not play enough with it yet to add value to what Fowler said.
The first genuine, spontaneous, unanimous round of applause after a Keynote demo happened today when they shown the Live Mesh stuff. Two 'friends' were looking at the same picture, one edited it, and it was immediately changed in the other one's machine.
Infragistics sponsored the Expo-Hall Reception yesterday night, and all the Infragistics guys went dressed as movie characters or movie stars.
I attended this session as I'm working in both platforms right now, and expected to learn something.
It was disappointing. There main two things mentioned as 'differences', what that in Silverlight you need to go through some hoops to make cross-domain calls, and that are some differences in the networking stack. The other was that you did not have a Visual State Manager in WPF. I've learned this after the first day of working with Silverlight so it did not help much.
The rest of the presentation was showing things that worked well in both platforms.
If you spent some time working with both platforms you know that there are a lot of other differences that cause pain, so the presentation did not feel honest. In the Q&A section some people pointed to those issues, and the answers were that they are looking to increase the compatibility among both platforms.
The message was that if you need to run on both platforms, start with Silverlight and then move to WPF, which is also obvious once you start working with both platforms.
They mentioned there was an implementation of the Visual State Manager for WPF in CodePlex, which would be helpful, but I could not find it.
I was in Anders Helsberg the Future of C# presentation (actually, in the overflow room).
C# 3.0 most important feature was Expression<Func>.
C# 4.0 most important feature is IDynamicObject.
I think the scenarios enabled by Expression<Func> are far more interesting than the ones enabled by IDynamicObject.
DynamicObject also provides the ability to intercept method calls so a call like "customer.find_by_customer_id(1)' can be translated to the proper expression, as a DynamicObject implementation can intercept the call and do whatever it wants, like "missing method" in ruby.
Support for co/contra variance is something that should have been in C# 3.0, so it's not big news, and the fact that it does not work with value types is disappointing (if you expect an IEnumerable<object> you can pass an IEnumerable<string> but not an IEnumerable<int>).
Optional and named parameters is a cute feature that simplifies some scenarios, but it's also not a killer feature.
The new C# compiler looks interesting, but the fact that he needed to show that at the end of the presentation was a sign of the weakness of the rest of the stuff. It was necessary to show something cool that was not included in C# 4.0 but will be in the future, to excite the audience. In any case, the new compiler looks like a killer feature and could enable some Boo-like extensions to C# that could change the game.
Amazon Cloud offering provides, in beta, a Windows VM and a way to run SQL Server.
The Microsoft Cloud preview basically provides a way to run ASP.NET, what it looks to be Windows Workflow activities, WCF services, and use SQL Data Services.
Microsoft's looks more ambitious, and their architecture is probably more sophisticated and complex and than Amazon's.
However, it looks to be solving the complex problems before solving the simple ones. If I use Azure, I'll need to write my application in a way that can be run in that platform. If I use Amazon's, I can write it in the same way I always did (and of course, I can run all the code I already have).
I'm disappointed that Microsoft does not provide the same services as Amazon. I'm not saying they should not provide an Azure-like platform, but I think they should also provide Windows VMs and SQL Servers.
Actually, I could live without a Windows VM, but not having SQL Server implies a rewrite and I don't think SQL DataServices is the answer to every DB need.
Not everyone is building Facebook. Most of us don't need that level of scalability. But we could use an on-demand platform that provides scalable hosting, and could take advantage of the number of value-added services that can be built on top of that.
So, please, Microsoft, give us SQL Server.
PS: The identity federation stuff in Azure looks very cool.