With the upcoming release of WinRT / Metro, Microsoft has chosen to put the .NET Open Source community in a frustrating position, by making it very difficult to port existing code to the WinRT profile of the framework. In particular, they have deprecated all of the existing synchronous File IO and Network APIs. Gone. Nada. These two concerns aren't easy to abstract away either - the semantics of synchronous code are pervasive in most code bases.
However, this is a good thing. Why? I propose that we should Embrace and Extend the Windows IO and Network APIs - implement versions that run on the Desktop CLR, MonoTouch, and MonoDroid, then start using them in libraries as the *sole* means of interacting with IO. I'll be discussing the details of this idea in my talk as well as why this will be an overall positive for the Open Source world, if we capitalize on this opportunity.