So, I messed around with the GPIO pins and an addressable LPD8806 LED strip last night. I've done some things with that LED strip and a Netduino in the past and I'd figure I'd see how the GPIO stack and the SPI API compare.
The SPI stuff is a bit weird. On Netduino, you'd just go "give me SPI device 0 or 1 with a clock rate of X." Here, you have to get some sort of selector string containing "SPI0" or "SPI1", get a collection of DeviceInfo objects for all devices that have that connector string, then grab the actual SPI device using the Id property of the first element in that collection and a settings structure. It all seems like a great candidate for a built-in helper method to do for you.
It's all worth it though. On the .NET Micro Framework you had extremely limited means (no generics!) to work around inevitable performance issues. It worked, but every time you did something you had to go "Oh yeah, I can't do that here, how did we do that back in the 90's?" Now I'm using generics, LINQ, async/await etc. to drive hardware, and it's all fast enough to work without a lot of optimization beforehand. It's pretty awesome.