it-swarm.com.de

Open Source Alternativen zu Reflector?

Nur um zu fragen, ob jemand eine Open Source Alternative zu RedGates Reflektor kennt? Ich möchte herausfinden, wie ein Tool, das Reflector ähnelt, tatsächlich funktioniert.

Wenn Sie eine kostenlose, aber keine Open Source-Alternative zu Reflector kennen, können Sie die folgende verwandte Frage beantworten:

Zusammenfassung - Aktualisiert am 11. Mai 2011

Eine kurze Zusammenfassung der verschiedenen Open Source-Projekte und -Tools, die vorgeschlagen wurden:

  1. Gemeinsame Compiler-Infrastruktur (CCI)
  2. Mono Cecil
  3. ILSpy
  4. dnSpy (Fork von ILSpy, Projekt scheint aktiver als das Original zu sein)
  5. Dotnet IL Editor (DILE)
  6. IL.View
  7. Monoflektor ( seit April 2011 nicht mehr aktiv )

Die folgenden Ressourcen könnten ebenfalls von Interesse sein:

  • TypeView.cs
  • Jason Haleys Notizen zum Zerlegen von .NET
  • Adrian Banks letzter Blogbeitrag fasst eine Reihe von Reflector-Alternativen zusammen, darunter mehrere Optionen, die unten nicht erwähnt werden.
  • Mark Lichtenbergs ausführlicher Blog-Beitrag vergleicht mehrere der Open-Source-Alternativen (DILE, ILSpy und Mono Cecil mit MonoDevelop) mit Reflector.
419
MagicAndi

2 Möglichkeiten, die ich kenne.

Diese geben Ihnen C # zwar nicht.

31
leppie

Aktualisiert am 13. Dezember 2011

Die folgenden Open Source-Tools stehen zur Verfügung:

  • ILSpy vom SharpDevelop-Team. Dank Scott Hanselmans Tweet Hervorheben des Tools.
  • Dotnet IL Editor (ein Disassembler)
  • IL.View - Eine .NET Reflector-Alternative, die in Silverlight 4 als Silverlight-Anwendung außerhalb des Browsers geschrieben wurde. Siehe diesen Blog Beitrag für Details.
175
MagicAndi

Ein weiterer Ersatz wäre dotPeek . JetBrains hat es als kostenloses Tool angekündigt. Es wird wahrscheinlich mehr Funktionen haben, wenn es mit ihrem Resharper verwendet wird, aber selbst wenn es alleine verwendet wird, funktioniert es sehr gut.

Die Benutzererfahrung ähnelt eher MSVS als einem eigenständigen Disassembler. Ich lese lieber Code als in Reflector. Strg + T-Navigation passt auch besser zu mir. Es könnte besser sein, den Baum nur mit dem Codebereich zu synchronisieren.

Alles in allem befindet es sich noch in der Entwicklung, ist aber bereits sehr gut nutzbar.

38

Telerik hat heute eine Beta ihres eigenen Dekompilierungswerkzeugs JustDecompile veröffentlicht. Geschlossene Quelle, aber kostenlos und sieht vielversprechend aus.

15
ray glover

ILSpy funktioniert super!

Soweit ich das beurteilen kann, funktioniert alles, was Reflector gemacht hat, und es sieht auch so aus.

12
Rob

Eigentlich bin ich mir ziemlich sicher, dass Reflector als Disassembler mit einigen Decompiler-Funktionen angesehen wird. Disassembler, weil es die Bytes aus der Datei einer Assembly liest und in eine Assemblersprache (in diesem Fall ILasm) konvertiert. Die Decompiler-Funktionalität, die durch das Parsen der IL in bekannte Muster (wie Ausdrücke und Anweisungen) bereitgestellt wird, die dann in übergeordnete Sprachen wie C #, VB.Net usw. übersetzt werden du wünschst ... aber die Magie, wie sie die IL in die Ausdrucksbäume zerlegt, ist ein streng gehütetes Geheimnis.

Ich würde empfehlen, sich eines der drei oben genannten Dinge anzuschauen, um zu verstehen, wie IL-Disassembler funktionieren: Dile, CCI und Mono sind alles gute Quellen für dieses Zeug.

Ich empfehle außerdem dringend, die Ecma 335-Spezifikation und das Buch von Serge Lidin zu erwerben.

10
Jason Haley

Der Hauptgrund, warum ich Reflector verwendet habe (und ich denke, der Hauptgrund, warum die meisten Leute ihn verwendet haben), war sein Dekompilierer: Er kann die IL einer Methode zurück in den Quellcode übersetzen.

In diesem Sinne wäre Monoflector das Projekt, das man sich ansehen sollte. Es verwendet Cecil, das die Reflektion durchführt, und Cecil.Decompiler, der die Dekompilierung durchführt. Monoflector legt jedoch eine Benutzeroberfläche über beide Bibliotheken, sodass Sie eine sehr gute Vorstellung von der Verwendung der API erhalten.

Monoflector ist auch eine gute Alternative zu Reflector. Hier können Sie die Typen durchsuchen und die Methoden dekompilieren. Dies entspricht 99% der Verwendung von Reflector. Es ist sehr rau an den Rändern, aber ich denke, das wird sich schnell ändern.

8
Joe White

Reflector selbst ist eine .NET-Assembly, sodass Sie Reflector.exe in Reflector öffnen können, um zu überprüfen, wie die Assembly erstellt wurde.

5
Andrew Hare

Ich arbeite derzeit an einem Open-Source-Disassembler/Dekompiler namens Assembly Analyzer. Es generiert Quellcode für Methoden, zeigt Assembly-Metadaten und -Ressourcen an und ermöglicht das Durchlaufen von Abhängigkeiten.

Das Projekt wird auf CodePlex gehostet => http://asmanalyzer.codeplex.com/

3
Codewhisperer84

Das Reflektor-Werkzeug verwendet Reflection.- anscheinend ist das nicht richtig.

Sie haben um zwei Dinge gebeten - Code, der zeigt, was der Reflektor tut, und eine Alternative zum Reflektor.

Hier ist ein Beispiel, das sich stark von der Funktionsweise von Reflector unterscheidet. Es zeigt jedoch die Reflexionstechnik: TypeView.cs

Ich habe keinen Vorschlag für einen Open-Source-Reflektor-Ersatz.

1
Cheeso