.NET Reflector
.NET Reflector je prohlížeč tříd, dekompilátor a statický analyzátor pro software vytvořený pomocí .NET Framework, původně napsán Lutzem Roederem. MSDN Magazín jej zařadil na seznamu top deseti pomůcek pro vývojáře,[1] které tito musejí mít, a Scott Hanselman jej udal jako součást jeho „velkých deseti nástrojů, které mu změnily práci i život“.[2]
Přehled
.NET Reflector byl prvním prohlížečem CLI assembly. Používá se k prozkoumávání, navigaci, hledání, analýze a prohlížení obsahu CLI komponent jako např. assembly a překládá binární informací do formy čitelné pro lidi. Základně Reflector umožňuje dekompilaci CLI assembly do C#, Visual Basic, Common Intermediate Language a F#(alfa verze). Reflector také zahrnuje strom volání, pomocí kterého se lze dostat až k metodám volaných v metodách mezijazyka. Dále také ukazuje metadata, zdroje a XML dokumentaci. Vývojář v .NET může využít Reflector k pochopení vnitřního chodu kódových knihoven, k ukázání rozdílů mezi verzemi stejného assembly a jak různé části CLI aplikace spolupracují. Existuje pro něj mnoho pluginů.
.NET Reflector lze použít k nalezení problémů s výkonem či programátorských chyb, prohlížení tříd, správě a obeznámení se základy kódu. Další možností jeho využití je nalezení závislostí assembly nebo i DLL, použitím možnosti Analyzátoru. Mimo strom volání je zde také prohlížeč dědičností. Zachytí stejnou dokumentaci či komentáře, které jsou uloženy v xml souborech spolu s asociovanými assembly, které pohání InteliSense ve Visual Studiu. Je dokonce možné projíždět připojenou dokumentaci (xmldoc), hledat specifické typy, členy a reference. Lze použít pro efektivní převod zdrojového kódu mezi C# a VB.
.NET Reflector byl navržen tak, že počítá s rozšiřováním jeho funkcí pomocí pluginů, mnoho z nich je open source. Některé z těchto pluginů poskytují rozkládání i jiných jazyků, a to například PowerShell, Delphi a MC++. Jiné analyzují assembly různými cestami, jako například poskytnutím měření kvality, sekvenčních diagramů, diagramů tříd, matic nebo grafu struktury závislostí. Je možné použít pluginy pro vyhledávání textu, uložení rozloženého kódu na disk, exportovat assembly do XMI/UML, porovnávat různé verze nebo nalézt určitý kód. Některé pluginy umožňují ladění procesů, jiné jsou navrženy k testování vytvořením obalů.
Historie
.NET Reflector byl vyvinut Lutzem Roederem jako freeware. Jeho první verze vznikly v lednu roku 2001.[3] 20. srpna Red Gate Software oznámil, že přebírají zodpovědnost za budoucí vývoj softwaru. V únoru 2010 vydal Red Gate .NET Reflector 6 spolu s komerční Pro edicí, která umožnila uživatelům vstupovat do dekompilovaného kódu pomocí ladění ve Visual Studiu, jakoby se jednalo o jejich vlastní kód. 10. ledna 2011 Red Gate oznámilo, že verze 7 bude obsahovat PowerCommands plugin od Jasona Haley. .NET Reflector 7 byl vydán 14. března 2011 jako komerční produkt. To vedlo k vytvoření několika volně šiřitelným alternativám, například dotPeek, CodeReflect nebo ILSpy. 26. dubna 2011 Red Gate oznámili, na základě zpětné vazby od komunity, že pro stávající uživatele bude verze 6 nadále dostupná zdarma.
Reference
V tomto článku byl použit překlad textu z článku .NET Reflector na anglické Wikipedii.
- AVERY, James. Ten Must-Have Tools Every Developer Should Download Now [online]. MSDN Magazine, 2004-07-01 [cit. 2008-08-20]. Dostupné v archivu pořízeném z originálu dne 2008-09-19. (anglicky)
- HANSELMAN, Scott. Scott Hanselman's 2007 Ultimate Developer and Power Users Tool List for Windows [online]. 2007-08-23 [cit. 2008-08-20]. Dostupné v archivu pořízeném z originálu dne 2008-09-14. (anglicky)
- ROEDER, Lutz. Lutz Roeder's Programming.Net [online]. [cit. 2012-03-30]. Dostupné v archivu pořízeném z originálu dne 24-01-2001. (anglicky)