I was asked recently what I thought Microsoft could do to improve the developer experience. I had to think about this one, but not for long.
First, I have always said that having the source code to the .NET framework would make things much easier – hence why Reflector is so popular. But I can't very well make this suggestion because it has already been done. I would however love to see the SharePoint assemblies added to Microsoft's source server.
My next suggestion has been that Microsoft should release a developer version of their server operating systems like they do for SQL Server: fully featured, but not licensed for production. For years I ran Windows 2003 Server on my laptop. And I used it too – multiple websites in IIS, DNS so I didn't have to remember crazy ports, etc. While this afforded me the luxury of developing software in the same environment that it would be deployed to, it wasn't without its pitfalls. For starters, in order to run antivirus, I had to buy the corporate version. I couldn't just install a home edition of Norton for $40, I had to buy the corporate edition for much more. It was also tougher to set up and use as a day to day development platform.
My last suggestion? More on the humorous side, can someone please tell the Certification team that Visual Studio now has IntelliSense and design-time syntax checking? You know, since at least version 6? Some of these questions, and I can't actually give you a real one, are very annoying:
John works for Acme Widgets, and has to build a utility to read XML files into a set of existing classes. Which code method should he use?
Who cares!? Let's focus on real, project changing stuff, like when to actually use xml serialization versus binary serialization, etc.