.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;
	}

...