Mr. Guthrie and Whom It May Concern,
Thank you for your team’s contributions to the software development industry. ASP.Net, the CLR, and your other significant additions to the .Net platform have genuinely advanced the state of software development. Although it may seem that you are damned if you do and damned if you don’t, most of us developers out here do appreciate your work.
Speaking and working with developers who live daily with your tools, I find confusion and concern over your relationship to the open source community that has grown up around the .Net platform. While Sun, IBM, other platform providers, and ISVs clearly see the open source community as a complimentary codebase to their products, Microsoft tends to use the best and brightest work from the community space as a feature map for .Net.
This is perfectly reasonable considering the your challenge to create the ubiquitous development platform for Windows based application development. It seems that the .Net open source community is a metering rod of what we (in the trenches developers) care about and also serves as a free R&D lab for Microsoft. This is a nice, symbiotic relationship resulting in fewer necessary acquisitions for Microsoft and more heterogeneous tools baked in to .Net.
We can all live happily with that. On one condition.
When rolling something from the community into the .Net platform or tools, please add value above that of the original community solution. It is not enough to simply bake it in and consider that the value proposition. We all know how to include assemblies in our projects, thank you very much. Merely including something in the CLR so that we don’t have to link in an outside assembly is a poor excuse for success. You owe something more to the people who built the original solution. Make it better. Make it rock.
Take, for example, MSUnit. Boo. Hiss. That was a big miss. Can’t they be easier to run in the UI? Where are all of the baked in Asserts from NUnit?
Or take MSBuild. No please, take it. No out of the box task to Zip files? C’mon.
And SandCastle? We’ll just leave that alone for now.
So you can understand our concern when we hear rumor of your new toy, a MVC model for ASP.Net that uses an HttpHandler to invoke controllers. Awesome. Perfect! Yes! About time! Bring it! AND… Please do Monorail justice and don’t kill it without doing something as good or better.
If you cant improve upon the functionality of MonoRail, just point to it as a good practice until you can. This one is far too important for anything less than a home run.
Waiting with trepidation and wide-eyed optimism,
.Net Developers of the World