As always when the new SharePoint installation is deployed I tend to think about it's framework. As we know SharePoint is compiled to work with .NET framework 3.5, actually it works best with .NET 2.0 and I found myself doing hacks, from time to time, to make it work with 3.5 library. And I don't get it when people say that SharePoint 2010 works with .NET framework 3.5 Service Pack 1, it is so misleading. The truth is that SharePoint 2010 is compiled against .NET in version 3.5, and this version of ASP.NET framework is based on 2.0 runtime, it is because .NET version 3.0 and 3.5 did not change the runtime. Why can't I use framework 4.0, why people at Microsoft thought It would be great not to allowed SharePoint, to work with .NET 4.0 libraries? I can only guess that they wanted to realese new version as soon as possible, and didn't want to experiment with a new runtime, that probably did not exist when they started the project (or what is more probable it was unstable and no one knew if it is going to be stable on time). The result of those actions is my headacke, each time when I try to create architecture in order to overcome framework problem. In example I have to host WF4.0 workflows as WCF services in order to use it.
The next thing I do not like in SharePoint 2010 is it's configuration. Everything is done through XML, and there is no fluent, that I am aware of to make it simpler. In example, when I work in my development environment, and I have a fresh SharePoint installation I look at the web to find how to turn on error logging, that are developer friendly. As always it takes time to find in on the web and modify web.config.
<SafeMode CallStack="true" ...>
Why can't you Microsoft make it more friendly?