In a move widely considered only a half-step toward openness, Microsoft on Wednesday announced that it will open up its .Net source code for developers to view, but not change.
The source code will be available later this year when Visual Studio 2008 and the .Net Framework 3.5 are released to manufacturing, Scott Guthrie, a general manager in Microsoft’s developer division, said on his company blog.
“One of the things my team has been working to enable has been the ability for .Net developers to download and browse the source code of the .Net Framework libraries, and to easily enable debugging support in them,” Guthrie explained.
Released in Stages
Microsoft will begin by offering the source code, with source file comments included, for the .Net Base Class Libraries (System, System.IO, System.Collections, System.Configuration, System.Threading, System.Net, System.Security, System.Runtime, System.Text, etc), ASP.Net (System.Web), Windows Forms (System.Windows.Forms), ADO.Net (System.Data), XML (System.Xml) and WPF (System.Windows), Guthrie said.
Following “in the months ahead” will be more libraries, including WCF, Workflow, and LINQ, he added.
Developers will be able to download the .Net Framework source libraries via a stand-alone install, so that they can use any text editor to browse it locally, Guthrie added. Microsoft will also provide integrated debugging support of it within Visual Studio 2008, he said.
No Changes Allowed
While the availability of the .Net source code promises to be helpful for debugging applications, it is being released under the Microsoft Reference License, which is part of the company’s Shared Source Initiative. That means developers can look at the code and use it for debugging purposes, but they can’t change, recompile or distribute it.
“For a few developers out there, this could make debugging applications easier,” Greg DeMichillie, lead analyst at Directions on Microsoft, told TechNewsWorld. “If you have a really nasty bug that you can’t figure out, sometimes being able to step into the source code can help where nothing else does.”
“You’re up late one night writing code,” explained Microsoft’s Shawn Burke, a director who also worked on the project, in his company blog. “Maybe it’s a technology you’re just learning or something you haven’t tried before. You’re getting an exception from deep in the code. You can’t figure out why … the blogs aren’t helping, the newsgroups aren’t helping, the docs aren’t helping. The next day you call product support. Since they don’t have your code in front of them, it’s also hard for them to triangulate what’s going on.
“Now, imagine you’ve got source and symbols available,” Burke continued. “With that, you can enable ‘Break on Exception’ in your debugger, run your scenario, and have the debugger stop exactly where the exception was thrown. The code gets loaded up and you sniff around a bit and realize — duh! — you forgot to set some other piece of state in an earlier call or a parameter. You fix your code and you’re off and running.”
The move may, however, be too little, too late.
A Step Backward
“This is something Microsoft should have done seven or eight years ago,” DeMichillie added. “Now that Java has gone open source, with the ability to make modifications, and Adobe has open sourced its platform too, for Microsoft to come along and do this now is sort of like, ‘whatever.’ No one will decide to adopt .Net because of this.”
In 1993, Microsoft actually shipped a C++ library with modifiable source code, DeMichillie noted. Any changes made were only for the developer’s own use, “but in a way, with this, Microsoft hasn’t even caught up with where Microsoft was 14 years ago,” he said.
Microsoft’s success increasingly depends on the success of its partners, Roger Kay, president of Endpoint Technologies, told TechNewsWorld. “In the past, it could control more and dictate more to its partners, but today it needs to elicit collaboration.”
Promoting the Platform
So, opening up the .Net source code is an attempt to encourage developers to use the platform, Kay said.
“Anything it can do to make it easier is a step in the right direction,” he said.
The move may also be part of “Microsoft’s new role as a kind of elder statesman in the industry,” Kay added.
Is it, perhaps, a step on the way toward a truly open source approach for Microsoft?
“I would be stunned if Microsoft actually went open source,” DeMichillie noted. “The .Net framework is the basis for so many of Microsoft’s own applications, and protecting its intellectual property is very important for Microsoft. Never say never, but it would certainly be a big surprise.”