Finally, a Look at .NET Source Code
Microsoft grants the first look at its .NET Framework reference source code and takes the first step toward opening its dev framework.
In a surprise move, Microsoft said it's releasing the reference source code for some of the .NET Framework libraries, a key step toward opening up the proprietary development platform.
Developers will be able to review and debug .NET source code with Visual Studio 2008 and .NET Framework 3.5. Released under the Microsoft Reference License, developers are able to view -- but not modify or distribute -- the reference source code.
The goal is to give .NET developers an opportunity to better understand "the inner workings of the framework's source code," according to Scott Guthrie, general manager of Microsoft's developer division, in a blog posting.
"Having source code access and debugger integration of the .NET Framework libraries is going to be really valuable for .NET developers," Guthrie writes. "Being able to step through and review the source should provide much better insight into how the .NET Framework libraries are implemented, and in turn enable developers to build better applications and make even better use of them."
The initial reference libraries will be available to developers who agree to the license in the Visual Studio 2008 and .NET 3.5 RTMs, expected later this year. Developers familiar with Visual Studio's debugging capability can simply extend that functionality to the reference source code.
"It will work similarly except the source files will be stored on a Microsoft server on the public Internet, and people will have to configure that as a symbol server essentially within Visual Studio," says Dino Chiesa, director of the .NET Platform at Microsoft.
The initial reference source code will include the .NET Base Class Libraries, Windows Presentation Foundation, Windows Forms, ASP.NET, XML and ADO.NET. Microsoft also plans to release Windows Communication Foundation, Windows Workflow Foundation and Language Integrated Query (LINQ) at a future date, although the company has not committed to a specific timeframe.
"We're going to release the source code for additional libraries where it makes sense," says Chiesa. "We haven't made any announcement where we say we are releasing all the source code -- we haven't done that."
Microsoft will continue to expand the list of libraries, he adds. "We're not being specific about when and which ones only because we just don't know yet and it depends on the engineering schedules."
The move to open up the reference source code is aimed at advanced .NET developers, and described by Microsoft as another step in a continuum to enable better transparency. "This isn't a release of open source," says Chiesa.
The licensing strategy, although part of the Microsoft Shared Source Initiative, is structured to that end. The company submitted two licenses (Microsoft Permissive License [MS-PL] and Microsoft Community License) for approval to the Open Source Initiative (OSI) in August -- the Microsoft Reference License was not among them. The OSI asked for modifications to the MS-PL in September.
|Libraries Open for Viewing
Available in Final Release of
Visual Studio 2008/.NET 3.5:
• NET Base Class Libraries
• Windows Presentation Foundation
• Windows Forms
• ASP.NET, XML, ADO.NET
Planned for Future Release:
• Windows Communication Foundation (WCF)
• Windows Workflow Foundation (WF)
• Language Integrated Query (LINQ)
Testing the Waters
Microsoft has internally debated opening up the .NET Framework for years, according to former employees. Why make the reference source code available now? The timing is tied in part to the release of Visual Studio 2008, says Chiesa. It also takes time to go through the engineering and decision process, he says.
Developers will welcome the move but see it as an incremental step, given the fact that they won't be able to modify or distribute the code, says Forrester Research Inc. analyst Jeffrey Hammond. "I'd view it as a testing-the-waters move. The next step would be going to the source submitter process that would allow other folks to innovate with the .NET Framework," Hammond says.
"It would be interesting to see Microsoft adopt a process by which they can tap into the innovation of the community at large. That's one of the things they're really struggling with right now," he adds.
Hammond points out that Microsoft needed to make such an initial move, given what developers are becoming accustomed to in the open source world with tools such as Eclipse and Apache.
"One of the things that makes Eclipse so powerful is there are so many external committers that a tremendous amount of defects get fixed in a very rapid timeframe," Hammond says.
Still, developers are ultimately going to want to be able to modify the .NET code. This first move by Microsoft should at least ease the bug-fixing process, he says.
"When you have a bug and that bug gets traced to a commercial software product, you can report the bug to the vendor but then you're pretty much out of luck until the vendor comes back with a solution," he says. "With this you can debug into that source, you can figure out why you're having a problem, and maybe you work around it yourself or be very specific when you give Microsoft feedback in terms of a defect that's impacting your ability to work."