HOME

TheInfoList



OR:

.NET Reflector is a
class browser {{Unreferenced, date=July 2010 A class browser is a feature of an integrated development environment (IDE) that allows the programmer to browse, navigate, or visualize the structure of object-oriented programming code. History Most modern clas ...
,
decompiler A decompiler is a computer program that translates an executable file back into high-level source code. Unlike a compiler, which converts high-level code into machine code, a decompiler performs the reverse process. While disassemblers translate e ...
and static analyzer for software created with .NET Framework, originally written by Lutz Roeder.
MSDN Magazine Microsoft Developer Network (MSDN) was the division of Microsoft responsible for managing the firm's relationship with developers and testers, such as hardware developers interested in the operating system (OS), and software developers developing ...
named it as one of the Ten Must-Have utilities for developers, and
Scott Hanselman Scott may refer to: Places Canada * Scott, Quebec Scott is a municipality in La Nouvelle-Beauce Regional County Municipality, in Quebec, Canada Canada is a country in North America. Its Provinces and territories of Canada, ten pr ...
listed it as part of his "Big Ten Life and Work-Changing Utilities".


Overview

It can be used to inspect, navigate, search, analyze, and browse the contents of a CLI component such as an assembly and translates the binary information to a human-readable form. By default Reflector allows decompilation of CLI assemblies into C#,
Visual Basic .NET Visual Basic (VB), originally called Visual Basic .NET (VB.NET), is a multi-paradigm, object-oriented programming language developed by Microsoft and implemented on .NET, Mono, and the .NET Framework. Microsoft launched VB.NET in 2002 as the ...
,
C++/CLI C++/CLI is a variant of the C++ programming language, modified for Common Language Infrastructure. It has been part of Visual Studio 2005 and later, and provides interoperability with other .NET languages such as C#. Microsoft created C++/CLI ...
and
Common Intermediate Language Common Intermediate Language (CIL), formerly called Microsoft Intermediate Language (MSIL) or Intermediate Language (IL), is the intermediate language binary instruction set defined within the Common Language Infrastructure (CLI) specification. ...
and F# (alpha version). Reflector also includes a "Call Tree" that can be used to drill down into
intermediate language An intermediate representation (IR) is the data structure or code used internally by a compiler or virtual machine to represent source code. An IR is designed to be conducive to further processing, such as optimization and translation. A "good" ...
methods to see what other methods they call. It will show the
metadata Metadata (or metainformation) is "data that provides information about other data", but not the content of the data itself, such as the text of a message or the image itself. There are many distinct types of metadata, including: * Descriptive ...
, resources and
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
documentation. .NET Reflector can be used by .NET developers to understand the inner workings of code libraries, to show the differences between two versions of the same assembly, and how the various parts of a CLI application interact with each other. There are a large number of add-ins for Reflector. .NET Reflector can be used to track down performance problems and bugs, browse classes, and maintain or help become familiar with code bases. Using the Analyzer option, it can also be used to find assembly dependencies, and even windows DLL dependencies. There is a call tree and inheritance-browser. It will pick up the same documentation or comments that are stored in xml files alongside their associated assemblies that are used to drive
IntelliSense Code completion is an autocompletion feature in many integrated development environments (IDEs) that speeds up the process of coding applications by fixing common mistakes and suggesting lines of code. This usually happens through popups while typ ...
inside
Visual Studio Visual Studio is an integrated development environment (IDE) developed by Microsoft. It is used to develop computer programs including web site, websites, web apps, web services and mobile apps. Visual Studio uses Microsoft software development ...
. It is even possible to cross-navigate related documentation (xmldoc), searching for specific types, members and references. It can be used to effectively convert source code between C# and Visual Basic. .NET Reflector has been designed to host add-ins to extend its functionality, many of which are
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
. Some of these add-ins provide other languages that can be disassembled too, such as
PowerShell PowerShell is a shell program developed by Microsoft for task automation and configuration management. As is typical for a shell, it provides a command-line interpreter for interactive use and a script interpreter for automation via a langu ...
,
Delphi Delphi (; ), in legend previously called Pytho (Πυθώ), was an ancient sacred precinct and the seat of Pythia, the major oracle who was consulted about important decisions throughout the ancient Classical antiquity, classical world. The A ...
and MC++. Others analyze assemblies in different ways, providing quality metrics, sequence diagrams, class diagrams, dependency structure matrices or dependency graphs. It is possible to use add-ins to search text, save disassembled code to disk, export an assembly to XMI/UML, compare different versions, or search code. Other add-ins allow debugging processes. Some add-ins are designed to facilitate testing by creating stubs and wrappers.


History

.NET Reflector was originally developed by Lutz Roeder as
freeware Freeware is software, often proprietary, that is distributed at no monetary cost to the end user. There is no agreed-upon set of rights, license, or EULA that defines ''freeware'' unambiguously; every publisher defines its own rules for the free ...
. Its first versions can be tracked back to January 2001. Archive.org hosts a collection of the early versions of Reflector. On 20 August 2008,
Red Gate Software Redgate Software is a software company based in Cambridge, England. It develops tools for developers and data professionals and maintains community websites. The company describes itself as offering end-to-end Database DevOps to help organizati ...
announced they were taking responsibility for future development of the software. In February 2010 Red Gate released .NET Reflector 6 along with a
commercial Commercial may refer to: * (adjective for) commerce, a system of voluntary exchange of products and services ** (adjective for) trade, the trading of something of economic value such as goods, services, information or money * a dose of advertising ...
Pro edition that enabled users to step into decompiled code in the Visual Studio debugger as if it were their own source code. On 10 January 2011 Red Gate announced that .NET Reflector 7 would incorporate Jason Haley's PowerCommands add-in. On 1 February 2011 Red Gate announced that .NET Reflector would become a commercial product as of version 7, which was released on 14 March 2011. This led to the creation of several free alternatives, including dotPeek, CodeReflect and the open source program ILSpy. Subsequently, on 26 April 2011, due to community feedback Red Gate announced that they would continue to make .NET Reflector 6 available for free to existing users (while new users will have to pay for Reflector).


References

{{.NET Framework Reflector Decompilers Static program analysis tools 2001 software