Become a fan of Slashdot on Facebook


Forgot your password?

Microsoft Releases Source of .NET Base Classes 110

Disgruntled Fungus writes "A few months ago, we discussed Microsoft's intention to open source the .NET libraries. According to a developer's official blog, the source code is now available. The source to libraries such as System, IO, Windows.Forms, etc. can now be viewed and used for debugging purposes from within Visual Studio. Instructions for doing so have also been provided. The source code has been released with a read-only license and 'does not apply to users developing software for a non-Windows platform that has "the same or substantially the same features or functionality" as the .NET Framework.'"
This discussion has been archived. No new comments can be posted.

Microsoft Releases Source of .NET Base Classes

Comments Filter:
  • by Jugalator ( 259273 ) on Friday January 18, 2008 @05:16AM (#22090854) Journal
    They could already have done this if they wanted to though.

    (see also Lutz Roeder's popular .NET Reflector software)
  • Reflector (Score:5, Informative)

    by Anonymous Coward on Friday January 18, 2008 @06:00AM (#22090972)
    Of course, anyone doing serious development with .NET has been looking at the source for years now in any case by using Lutz Roeder's .NET Reflector, which is a C# (etc) decompiler (not just a disassembler). It's the only way to reliably discover and work around the horrible bugs and misdesigns in MS's libraries. (Yes, WSE, I'm looking at you.)

    Reflector is downloadable from []. And it's obfuscated, so it won't run usefully on itself :-)
  • Looks rather clunky (Score:5, Informative)

    by Dr_Barnowl ( 709838 ) on Friday January 18, 2008 @06:30AM (#22091048)
    Has anyone looked at the instructions for using these sources in Visual Studio? It seems monstrously crippled compared to debugging third party sources in Eclipse.

      * Each source file you debug into is dynamically downloaded once for each session and not retained.
      * Setting breakpoints in the source is a multi-step process, because the source is different from the corresponding symbol files because the copyright banners they insert change the CRC. You have to tell the IDE to ignore that.
      * You have to manually tell it to load symbols for each file.
      * The symbols are also served up from an MS server (but they are cached beyond a single session).
          * Some of these symbol files are 10MB, so VS "may be unresponsive" while you download them.
      * "Go to Definition" doesn't work.

    This in contrast to the same support in Eclipse, where all you have to do is
      * Download the source
      * Tell the IDE where to find the source

    14) Can I point a web browser at the symbols URL and download the symbols directly?

    No, you'll get an HTTP 400 (Bad Request) response.
    So in addition, you'll need a professional version of Visual Studio, because the Express versions don't support the Source Server feature.

    Given that it all seems so inconvenient to use, I think I may be sticking to Reflector.
  • it's not open source (Score:5, Informative)

    by nguy ( 1207026 ) on Friday January 18, 2008 @06:41AM (#22091094)
    Microsoft is not releasing those libraries as open source. What they are doing is what they and other companies have been doing for a long time: releasing some of their source code in read-only form to "help" people debug.

    In fact, the real problem with this is that, in case of ambiguities, people will code increasingly to Microsoft's source code instead of the specification. Furthermore, after having released it, Microsoft may attempt to claim that the Mono project copied some of their source code in violation of the license.

    One can't prevent Microsoft from doing this, but it's not a good thing.
  • by drachenstern ( 160456 ) <> on Friday January 18, 2008 @04:26PM (#22099520) Journal
    I love how they indicate which packages you'll need, WinZip and Perl. Perl. How did I miss that being included in the VS canon?

    On Windows you will need:
    Windows XP SP2.
    Microsoft Visual Studio .NET 2005.
    Perl 5.8.7 (available from
    Archiving utility of choice--WinZip or other.
    256 MB of memory.
    One gigabyte of free disk space.
    And then there's this:

    The Shared Source CLI archive contains the following technologies in source code form:
    • An implementation of the runtime for the Common Language Infrastructure (ECMA-335).
    • Compilers that work with the Shared Source CLI for C# (ECMA-334) and JScript.
    • Development tools for working with the Shared Source CLI such as assembler/disassemblers (ilasm, ildasm), a debugger (cordbg), metadata introspection (metainfo), and other utilities.
    • The Platform Adaptation Layer (PAL) used to port the Shared Source CLI from Windows XP to other platforms.
    • Build environment tools (nmake, build, and others).
    • Test suites used to verify the implementation.
    • A rich set of sample code and tools for working with the Shared Source CLI.
    So it only does C# and JScript? WTF, hello, VB? Also, what other platforms? Vista? I thought that a platform was something that ran a different executable format, such as {PE | ELF | exe | A.OUT | &c.} not {Windows XP | Windows Vista | Windows Server}

We declare the names of all variables and functions. Yet the Tao has no type specifier.