I knowâ€¦ it does seem odd that I would have a title of saying that Windows needs to be friendly to .NET developers. Considering that .NET is THE development environment for Windows (no offense to my C++ or Mono friends), it seems a strange that I would have some â€œcomplaintsâ€ about Windows not being friendly towards .NET developers. But itâ€™s true.
It is not that Windows isnâ€™t a good platform to develop on. Quite the contrary. Great tools, lots of great OS features that are readily accessible, etc. The problem is that the Windows team sometimes forgets that the vast majority of Windows development is now done in .NET. I am sure many of you read that and said, â€œDuh! Of course.â€ So what am I talking about?
As you start getting into the back corners of the operating system, it suddenly feels like some Microsoft teams have never heard of .NET. Example? Windows Firewall. I have been writing some peer-to-peer stuff and it would be nice to be able to set some firewall rules when an app is installed, or better yet, prompt the user at runtime to change the rules and dynamically set them. Can you do that? Sure, if you are writing in C++ or want to use a COM object and wrap it with .NET. There is no .NET implementation out of the box. Talk about a pain in the ass! I have spent enough time playing with p/invoke and COM wrappers to know that I donâ€™t want to go there unless absolutely necessary.
Peer to peer is another example. Great team â€“ good guys on it. They have been fantastic helping me work my way through my learning. The problem is, some of the coolest parts of their stack do not have a managed implementation. Distributed routing tables? Absolutely wicked stuff but C++ only. Peer Groups; C++ only. Peer Graphs; C++ only. Double argghhh!
Even with the release of Windows 7, the problem continues. The Windows API Code Pack certainly helped expose some of the new Win 7 features, but still no Windows Firewall support. Peer to peer still missing. Some other APIs are still native only. Considering that .NET has been around for quite a while now, you would think that 100% of the Windows API would be covered with managed implementations by now.
Some day, my friends, some dayâ€¦.