Yes, I agree. The folks involved with the mono project are working very hard to provide all the functionality of Windows .NET, but I fear there is some functionality in windows that will remain proprietary. Anyway, since Microsoft is leading the .NET movement, they could simply change some of their code to lock in those developers that are writing in windows .NET, so the code would not port to any other platform. This means that project like mono will need to contantly react based on whatever Microsoft does.