News

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."

Expanding Libraries
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."
comments powered by Disqus

Featured

  • Hands On: New VS Code Insiders Build Creates Web Page from Image in Seconds

    New Vision support with GitHub Copilot in the latest Visual Studio Code Insiders build takes a user-supplied mockup image and creates a web page from it in seconds, handling all the HTML and CSS.

  • Naive Bayes Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the naive Bayes regression technique, where the goal is to predict a single numeric value. Compared to other machine learning regression techniques, naive Bayes regression is usually less accurate, but is simple, easy to implement and customize, works on both large and small datasets, is highly interpretable, and doesn't require tuning any hyperparameters.

  • VS Code Copilot Previews New GPT-4o AI Code Completion Model

    The 4o upgrade includes additional training on more than 275,000 high-quality public repositories in over 30 popular programming languages, said Microsoft-owned GitHub, which created the original "AI pair programmer" years ago.

  • Microsoft's Rust Embrace Continues with Azure SDK Beta

    "Rust's strong type system and ownership model help prevent common programming errors such as null pointer dereferencing and buffer overflows, leading to more secure and stable code."

  • Xcode IDE from Microsoft Archrival Apple Gets Copilot AI

    Just after expanding the reach of its Copilot AI coding assistant to the open-source Eclipse IDE, Microsoft showcased how it's going even further, providing details about a preview version for the Xcode IDE from archrival Apple.

Subscribe on YouTube

Upcoming Training Events