Erfahrung mit .NET Reflector Pro

8

Hat jemand Erfahrung mit .NET Reflector Pro (nicht die kostenlose Version)?

Ich habe nach einer Möglichkeit gesucht, um eine Anwendung in einer externen Umgebung (z. B. einem Produktionsserver, der nicht im Büro ist) problemlos zu debuggen, und ich fand .NET Reflector Pro und seine Funktion "Treten Sie in dekompilierte Assemblys ein und verwenden Sie alle Debugging-Techniken, die Sie für Ihren eigenen Code verwenden würden".

Es sieht sehr nützlich aus, aber ich würde gerne etwas über persönliche Erfahrungen mit dem Tool erfahren ... besonders von Leuten, die es "jeden Tag" benutzen.

Danke!

BEARBEITEN: Einige zusätzliche Informationen: Ich möchte diese Funktion zum Debuggen der alten Versionen einer modularen Anwendung (mehr als 100 Module in verschiedenen Versionen) für schwer reproduzierbare Fehler verwenden, die nicht in einer Testumgebung angezeigt werden (z. B. Kombination von Daten) in der Datenbank, aktuelle Konfiguration des Servers / Clients, etc.).

Es gibt eine Möglichkeit, die angegebenen Assemblys neu zu erstellen (manchmal sind dutzende Assemblys erforderlich) ... fügen Sie einige problemspezifische Protokollinformationen hinzu. Aber es dauert lange, anstatt Dinge wie lokale Variablen, Felder, Threads usw. einfach zu debuggen und zu betrachten.

    
TcKs 01.03.2010, 11:42
quelle

7 Antworten

6

Ich bin gerade über diesen Beitrag gelaufen ... aber ich habe Erfahrung mit .NET Reflector Pro. Insgesamt kann die Debugging-Funktion Ihr Bacon (manchmal auch aushelfen) wirklich retten.

In der Tat habe ich kürzlich einen Blog posten" zum Debuggen des .NET Framework-Quellcodes mit .NET Reflector Pro. Dieser Beitrag gibt dir definitiv einen Einblick in meine eigenen Erfahrungen mit dem Tool.

Ссылка

Ich würde auch sagen, dass Sie möglicherweise schwer jemanden finden, der die Debugging-Funktion jeden Tag verwendet. Ich benutze es nur, wenn ich sehr schwierige Probleme debuggen (oder ein wenig Einblick bekommen) muss, die wahrscheinlich nicht in meinem eigenen Code, sondern im .NET Framework oder einer Drittanbieter-Assembly sind.

Einige mögen argumentieren: "Warum würden Sie nicht einfach die native Unterstützung von Visual Studio verwenden?" Nun, ich tue ... wenn ich kann, aber nicht jede Assembly wird unterstützt. Manchmal sind die freigegebenen Bits auch nicht mehr aktuell mit dem, was auf dem öffentlichen Symbol-Server von Microsoft verfügbar ist ... selbst die unterstützten Assemblies werden zu bestimmten Zeiten nicht unterstützt .

Selbstverständlich können Sie mit .NET Reflector Pro auch Assemblies von Drittanbietern debuggen, bei denen Sie keinen Zugriff auf die .pdbs und / oder den Quellcode haben. Mein Blogpost wird auch in diesen Situationen hilfreich sein. Der Beitrag ist ein ziemlich generisches "How to" -Post zur Verwendung der Debugging-Funktion.

Eine offensichtliche Sache, auf die (wie bereits erwähnt) hingewiesen wurde, ist, dass die Debugfunktionen von .NET Reflector Pro nur innerhalb von Visual Studio verwendet werden können. Daher muss Visual Studio auf den Computern installiert werden, auf denen Sie versuchen, zu debuggen. Die meisten Produktionsumgebungen verfügen nicht über eine Entwicklungsumgebung auf diesen Computern (oder können nicht installiert werden). Daher ist es möglicherweise nicht möglich, .NET Reflector Pro in Ihrem speziellen Szenario zu verwenden.

Die kostenlose Version von .NET Reflector muss nur irgendwo kopiert werden, damit sie funktioniert. Sie könnten also (zumindest) die Baugruppen analysieren, die Sie interessieren.

    
cplotts 21.01.2011, 17:53
quelle
7

Es sieht ziemlich cool aus, aber ich bezweifle, dass es sehr oft nützlich sein wird.

Meistens liegt der Fehler wahrscheinlich in meinem eigenen Code, für den ich Quelle, PDBs und die Menge habe, also brauche ich keinen Reflektor dafür. Mit der Möglichkeit, Microsoft Framework Code zu debuggen, brauche ich dafür auch keinen Reflector Pro. Der Anwendungsfall für Reflector Pro scheint daher das Debuggen von Bibliotheken von Drittanbietern zu sein. Offensichtlich werden diese von Zeit zu Zeit einige Bugs verursachen und in diesen Fällen kann Reflector Pro seinen Preis wert sein.

Das Einzige, was es hinzufügt, ist jedoch die Fähigkeit, diese nahtlos zu debuggen. Sie können den Code immer noch mit der Plain-Vanilla-Edition von Reflector betrachten. Nach meiner Erfahrung reicht das in den meisten Fällen.

Ich gebe zu, dass ich hier falsch liegen könnte, aber mein Bauchgefühl ist, dass die kostenlose Ausgabe für viele Nutzer ausreichen wird. In jedem Fall habe ich keine Eile, um $ 200 für dieses spezielle Feature zu bezahlen.

    
Brian Rasmussen 01.03.2010 11:56
quelle
3

In dem von Ihnen geposteten Link steht geschrieben: "NET Reflector Pro ist ein Add-In für Visual Studio, mit dem Sie Code und Assemblys von Drittanbietern debuggen können, selbst wenn Sie die Quelle nicht haben."

Sie können es also nur auf einem Entwicklungscomputer verwenden ... weil ich bezweifle, dass der Benutzer Visual Studio auf einer Produktionsmaschine hat.

    
IordanTanev 01.03.2010 11:47
quelle
1

Ich benutze .NET Reflector Pro und benutze "Gehe in dekompilierte Assemblies und benutze alle Debugging-Techniken, die du für deinen eigenen Code verwenden würdest" . Hier ein paar Beispiele:

Citrix XenServer:

Wir verwenden Citrix XenServer und automatisieren viele Prozesse mit der C # Xen-API. Manchmal ist es aus den Dokumenten nicht ersichtlich, wie man die API am besten für die Ausführung bestimmter Funktionen (z. B. Snapshot-Verwaltung) verwendet.

Citrix XenServer wird mit XenCentre ausgeliefert. XenCentre ist eine .NET Windows Forms-Anwendung, die stark an den Xen-API- und SDK-Tools ausgerichtet ist. Während die Anwendung nicht Open Source ist, haben sie sie nicht verschleiert. Ich benutze Reflector Pro, um in ihren Code zu gehen, Breakpoints zu setzen, damit ich die Xen-API besser verstehen kann.

Es ist ein sehr sehr nützliches Werkzeug für mich und war das Geld wert (in der Tat habe ich meins gekauft, als sie ein Angebot hatten, also kostete es mich nur 46,00 Euro). Ich habe dank dieses Features unzählige Stunden gespart, anstatt nur eine statische, disassemblierte Ansicht des Codes (ala vanilla .NET Reflector) zu haben, mit der ich arbeiten kann, oder auf Fragen von ihrem Support-Team gewartet habe (die sehr gut sind, aber "Lehre einen Mann zum Fischen" ....) oder in ihren Foren.

IIS Metabase Explorer 1.6:

Ein weiteres gutes Beispiel für die Nützlichkeit des Tools war das IIS6 Metabase Explorer 1.6-Tool. Ich musste verstehen, wie ich von einer .NET-Anwendung in die IIS6 ABO (Admin Base Objects) COM-API aufrufen. Wie es der Zufall wollte, stellte sich heraus, dass diese Version des Metabase Explorer eine .NET Windows Forms-Anwendung mit einem verwalteten Interop-Wrapper rund um die ABO-API ist.

Mit der "step in" -Funktion konnte ich verstehen, wie man die ABO-API von .NET verwendet, Breakpoints setzt, Live-Variablen untersucht usw. Auch dies scherte ein paar Stunden von dem, was wurde eine ziemlich quälende Aufgabe (die ABO-API ist nicht gerade gut dokumentiert oder freundlich).

Fazit: Wenn Sie nicht wirklich nach dem Code einer anderen Person AND suchen müssen, müssen Sie in der Lage sein, Breakpoints zu setzen und den Status der Anwendung zur Laufzeit zu sehen für Ihre Bedürfnisse. Meistens muss ich jedoch sehen, was eine Anwendung oder Bibliothek eigentlich macht und wie sie sich "live" verhält. Ohne in die Rechte und Unannehmlichkeiten von RedGates neuesten Mätzchen mit .NET Reflector einzugreifen, war es aus Söldnersicht verdammt nützlich.

    
Kev 20.04.2011 08:20
quelle
1

Ich finde, dass ich nicht oft in kompilierte Assemblies debugge, aber wenn ich es tun muss, passiert es normalerweise in einem zweitägigen Abschnitt, in dem, glaube ich, es nicht die doppelte Kalenderzeit ergeben würde / p>

Es kann manchmal eine Weile dauern, bis Reflector Pro die Assemblys für eine Debug-Sitzung scannt, aber dieser Zustand bleibt erhalten, was gut ist, und das Scannen findet im Hintergrund statt.

Ich bin auf Ihren Post gestoßen, als ich nach einem Problem suchte, bei dem Fehler im Error Window von Visual Studio für Assemblys angezeigt wurden, die von Reflector Pro dekompiliert wurden. Diese sind für meine Anwendungsentwicklung bedeutungslos (und verhindern nicht, dass die App kompiliert wird), fügen dem Fenster jedoch etwas Unordnung hinzu. Nach ein bisschen mehr Forschung könnte dies eine weitere SO-Frage sein.

    
Kit 09.08.2011 15:17
quelle
1

Das Debugging in disassemblierten Bibliotheken hat meinen Arsch gerettet, während ich in einem SharePoint SPFieldUser nach einem seltsamen Verhalten gesucht habe. Ich habe mehrere Tage damit verbracht und ich hätte es nicht ohne die Möglichkeit gelöst, den Kontrollzyklus zu durchlaufen und zu sehen, welche Eigenschaften das Verhalten in bestimmten Phasen beeinflussen. wirklich ein Lebensretter!

    
mizuki 02.09.2011 14:14
quelle
0

Vielleicht möchten Sie Ihre Fragen im Forum stellen, das Red-Gate für das Produkt sucht: Ссылка

    
Jason Haley 01.03.2010 12:42
quelle

Tags und Links