Reference Source Code Center Team Blog

  • WPF Sources for .NET Framework 3.5 SP1 are available!

    Today we've made the WPF sources for the .NET Framework 3.5 SP1 available as download through Visual Studio 2008. The downloadable version of the sources is currently going through its latest tests and I'll make it available as soon as all tests have passed. The sources are available for Windows Vista and all other versions of Windows. The different flavors caused some of the delays but I hope we have overcome all issues and everyone will be able to take advantage of this improved insight in the inner workings of WPF and the .NET Framework.

     

    List of available assemblies

    NPWPF.dll

    ReachFramework.dll

    PenImc.dll

    System.Printing.dll

    PresentationBuildTasks.dll

    System.Windows.Presentation.dll

    PresentationCFFRasterizer.dll

    UIAutomationClient.dll

    PresentationCFFRasterizerNative_v0300.dll

    UIAutomationClientsideProviders.dll

    PresentationCore.dll

    UIAutomationProvider.dll

    PresentationFramework.Aero.dll

    UIAutomationTypes.dll

    PresentationFramework.Classic.dll

    WindowsBase.dll

    PresentationFramework.Luna.dll

    WindowsFormsIntegration.dll

    PresentationFramework.dll

    wpfgfx_v0300.dll

    PresentationFramework.Royale.dll

    PresentationFontCache.exe

    PresentationHostDll.dll

    PresentationHost.exe

    PresentationHostProxy.dll

    XamlViewer_v0300.exe

    PresentationNative_v0300.dll

    XPSViewer.exe

    PresentationUI.dll

     

     

    How to get started?

    You can find the instructions on how to configure Visual Studio 2008 and take advantage of the RSCC features on the RSCC web site. We've added some interesting features in Visual Studio 2008 SP1 and I'll make sure to write a blog post about that in the coming days.

     

    What if I run into issues?

    If you run into any issues with debugging one of these assemblies, please read the Visual Studio 2008 RSCC setup instructions and if that doesn't help post a question on the RSCC forum.
  • The Difference between RSCC and .NET Reflector

    .NET Reflector enables you to easily view, navigate, and search through the class hierarchies of .NET assemblies even if you don't have the code for them. With it, you can decompile and analyze .NET assemblies in C#, Visual Basic and IL.

    Reference Source Code Center and it's integration inside Visual Studio 2008 enables a rich debug scenario for developers building applications on top of the Microsoft platforms. With it, you have fast and easy access to Microsoft’s platform source code.

    What are the most important differences between RSCC and .NET Reflector?

    • RSCC can only display the sources of the .NET Framework that we currently support, .NET Reflector can enables you to see the reflected code of any .NET assembly
    • RSCC enables you to debug and step into the source code from inside Visual Studio
    • Both tools let you look at the .NET Framework source code in C#, but here's the difference in information you get as a developer:

    .NET Reflector

    private void ApplyClientSize()
    {
        if ((this.formState[FormStateWindowState] == 0) && base.IsHandleCreated)
        {
            Size clientSize = this.ClientSize;
            bool hScroll = base.HScroll;
            bool vScroll = base.VScroll;
            bool flag3 = false;
            if (this.formState[FormStateSetClientSize] != 0)
            {
                flag3 = true;
                this.formState[FormStateSetClientSize] = 0;
            }
            if (flag3)
            {
                if (hScroll)
                {
                    clientSize.Height += SystemInformation.HorizontalScrollBarHeight;
                }
                if (vScroll)
                {
                    clientSize.Width += SystemInformation.VerticalScrollBarWidth;
                }
            }

     

    Reference Source Code

      /// <devdoc>
      ///     This adjusts the size of the windowRect so that the client rect is the 
      ///     correct size.
      /// </devdoc>
      /// <internalonly/>
      private void ApplyClientSize() { 
    		if ((FormWindowState)formState[FormStateWindowState] != FormWindowState.Normal
    			 || !IsHandleCreated) { 
    			 return; 
    		}
    		// Cache the clientSize, since calling setBounds will end up causing
    		// clientSize to get reset to the actual clientRect size...
    		//
    		Size correctClientSize = ClientSize; 
    		bool hscr = HScroll;
    		bool vscr = VScroll; 
    		// This logic assumes that the caller of setClientSize() knows if the scrollbars
    		// are showing or not. Since the 90% case is that setClientSize() is the persisted 
    		// ClientSize, this is correct.
    		// Without this logic persisted forms that were saved with the scrollbars showing,
    		// don't get set to the correct size.
    		// 
    	bool adjustScroll = false;
    	if (formState[FormStateSetClientSize] != 0) { 
    		 adjustScroll = true; 
    		 formState[FormStateSetClientSize] = 0;
    	}
    

    ...

  • What's involved in preparing the .NET Framework sources for an RSCC release?

    It has taken us a considerable amount of time to prepare the sources for SP1, test the RSCC package, and do the deployment. During the past months we have already put a a lot of thought into this problem and we will be changing the way the RSCC process is integrated in the development of the .NET framework. For the .NET Framework 3.5 and .NET Framework 3.5 SP1 release our process was optimized to start the source preparation process after the final build of the assemblies was done. For the upcoming releases we will be making the RSCC process part of our static analysis quality gate and as such make sure that the sources are RSCC ready at all times. Here's an overview of the differences between the processes:

    .NET Framework 3.5 and .NET Framework 3.5 SP1 process

    1. Find the PDB that was built with the release version of the assembly. 
    2. Extract the source code of each file used to build the PDB.
    3. Source code cleanup for the entire source tree:
      1. Policheck scan
      2. Removal of developer names
      3. Adding of a standard copyright banner
      4. etc. 
    4. Run a visual pass on all the comments
    5. Remove certain comments and sections of code that we can't share 
    6. Generate RSCC package
    7. Commit changes to source control

     

    RSCC as a quality gate for upcoming releases

    1. Add RSCC build step to MSBuild
    2. Source code analysis during build (Policheck scan, etc)
    3. Remove comments and sections of code that you don't want to share for the check-in 
    4. Code and comments review for the pending check-in
    5. Developer commits changes to source control
    6. Generate RSCC package gets done on a daily basis on the build server

     

    What's the difference?

    The biggest difference is that with the new process developers will make sure that the code they write is RSCC ready before they check their source code in. By doing this on an ongoing basis we hope to significantly reduce the overhead of releasing the .NET Framework source code.

  • .NET Framework 3.5 SP1 Sources are available!

    During the past weeks we have been working on preparing the source code for the .NET Framework 3.5 SP1 release and we are happy to announce that we just released the following components to the Reference Source Code Center (RSCC) servers:

    mscorlib.dll Microsoft.Visualbasic.dll
    system.dll System.Web.Routing.dll
    system.data.dll System.ComponentModel.DataAnnotations.dll
    system.drawing.dll System.Web.Abstractions.dll
    system.web.dll System.Web.DynamicData.Design.dll
    system.web.extensions.dll System.Web.DynamicData.dll
    system.windows.forms.dll System.Web.Extensions.Design.dll
    system.xml.dll  

    We are working with the WPF team to get their sources ready for release, and we'll create an installable version of the .NET Framework 3.5 SP1 sources as soon as the WPF sources are available.

    How to get started?

    You can find the instructions on how to configure Visual Studio 2008 and take advantage of the RSCC features on the RSCC web site.

    What if I run into issues?

    If you run into any issues with debugging one of these assemblies, please read the Visual Studio 2008 RSCC setup instructions and if that doesn't help post a question on the RSCC forum.
  • Welcome to the Reference Source Code Center's Team Blog

    Welcome to our team blog!

    Did you ever think it would be possible to step through the source of the .NET Framework to solve your problem? Reference Source Code Center and it's integration inside Visual Studio 2008 enables a rich debug scenario for developers building applications on top of the Microsoft platforms. It provides just-in-time source-level debugging via Visual Studio 2008, serving up a file at a time, enhancing your developer experience.

    Reference Source Code Center provides:

    · Fast and easy access to Microsoft’s platform source code.

    · Smart-search capability and colored syntax for better code viewing.

    · Just-in-time, source-level debugging via Visual Studio 2008

     

    RSCC Forum

    We have recently restructured the RSCC team and will be following our Reference Source Code Center forum very closely to help you with any questions that you might have regarding Reference Source Code Center.

     

    How can you get started?

    The latest version of the configuration guide can be found here: http://referencesource.microsoft.com/serversetup.aspx

    Set Up Visual Studio 2008:

    a. Install and set up Visual Studio 2008 including any updates.

    Set Up the Symbols Path:

    a. Launch Visual Studio 2008.
    b. From the Tools menu, choose Options.
    c. In the Options dialog box, open the Debugging node and select General
            a. Clear 'Enable Just My Code (Managed only)'
            b. Check 'Enable source server support'

    d. Select Symbols under Debugging.
    e. In the Symbol File Locations box, add the following location:
       http://referencesource.microsoft.com/symbols

       Note: To add the Symbols path Click folder icon.
    f. Enter in text box under 'Cache symbols from symbol servers to this directory:' C:\Symbols\RSCC:
       Note : If C:\Symbols is already in use then you can chose another folder name. The folder name must be input into the
       text box
    g. Click OK.

    Debugging your Application

    a. Open your application code solution and build the solution.
    b. Set a break point in the code.
    c. Start debugging (press F5).
    d. EULA pops up, click Accept.
    e. Source code will be downloaded.


© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Microsoft
Page view tracker