Hallo an alle!
Brauche eure Hilfe, ich hab aus Unachtsamkeit einen SourceCode in VB2010
gelöscht (unwideruflich).
Nun zu meiner Frage :
Ist es möglich aus dem letzten Stand des Application Files den Source
Code wieder zu generieren?
Wäre um eure Hilfe dankbar
Gruß
And
Der klassische Vergleich, der bei so einer Frage kommt: Man kann auch
aus einem Hamburger nicht wieder eine Kuh machen. Genauso kann man aus
einem fertigen Programm nicht wieder den Quellcode machen.
Auch wenn du's jetzt nicht hören willst, aber wie konntest du den Code
weder in einem Repository noch als Sicherungskopie irgendwo haben? Das
ist sehr leichtsinnig.
Ein kleiner Tipp für's nächste Mal: Das sinnvollste Backup, welches ich
je implementiert habe, ist Teil eines jeden meiner Makefiles. Nach jedem
(!) erfolgreichen Compilerlauf macht es ein einfaches Delta-Backup.
Unter Unix genügen dafür find, cpio und bzip2 bzw. gzip. Die
gepackten Daten gehen mit einem Zeitstempel in eine dediziertes
Verzeichnis. Durch eine geeignete Verzeichnisstruktur und geeignete
Filter lässt sich erreichen, dass nur manuell erstellte Dateien
gesichert werden. Ein solches Backup ist kaum größer als ein paar
Dutzend Kilobyte, benötigt nur Bruchteile von Sekunden und hat mir schon
so manche Kopfschmerzen erspart, denn es passiert immer wieder, dass man
mal etwas versehentlich löscht oder eine experimentelle Version wieder
haben möchte, die es nicht bis ins Repository geschafft hat. Ab und an
kann man auch ein Full-Backup manuell anstoßen. Lege das
Backup-Verzeichnis auf eine separate Festplatte, einen USB-Stick oder
eine SD-Karte und Du bist auch gegen Plattenausfälle gewappnet. Der
heute in jedem Rechner vorhandene SD-Slot ist dafür bestens geeignet,
darin kann die Karte auch bei einem Notebook ständig stecken, ohne dass
sie stört. Kauf Dir zwei, drei oder vier Karten, die Du einmal die Woche
wechselst und Du hast eine schon fast professionelles Backup Lösung.
Wenn Du willst, kannst Du die Daten ab und zu auf CD archivieren, auch
bei intensiver Programmierung ergibt das bei geschickter Filterung nur
alle paar Wochen eine CD. Für dieses Mal nützt Dir das zwar nichts mehr,
aber der nächste Datenverlust kommt bestimmt und dann gilt wie immer:
Ein Backup ist kein Backup!
123 schrieb:> Nein - du kannst einen Disassembler versuchen aber da kommt nichts> gescheites dabei heraus.Da Dieter schrieb:> Mitdenken!!! Woher soll das Tool wissen, wie der Code mal ausgesehen> hat?Rolf Magnus schrieb:> Genauso kann man aus> einem fertigen Programm nicht wieder den Quellcode machen.
Alles falsch :-)
Oben wurde es ja schon einmal erwähnt: du kannst die .NET Assembly
mühelos wieder in Quellcode zurückwandeln. Schau mal bei Google, da gibt
es sicherlich massig Anleitungen zu dem Thema.
Ein paar Dinge gehen natürlich verloren (z.B. Quellcode-Kommentare),
aber das wirst du wohl in Kauf nehmen müssen.
A. H. schrieb:> Nach jedem> (!) erfolgreichen Compilerlauf macht es ein einfaches Delta-Backup.> Unter Unix genügen dafür find, cpio und bzip2 bzw. gzip. Die> gepackten Daten gehen mit einem Zeitstempel in eine dediziertes> Verzeichnis. Durch eine geeignete Verzeichnisstruktur und geeignete> Filter lässt sich erreichen, dass nur manuell erstellte Dateien> gesichert werden.
Dafür kann man viel besser ein VCS wie z.B. git oder mercurial benutzen.
foobar schrieb:> Dafür kann man viel besser ein VCS wie z.B. git oder mercurial benutzen.
Dass man das kann steht außer Zweifel, dass es auch sinnvoll ist
keineswegs. Ein VCS ist kein Backup-Tool. Wenn Du nach jedem
Compilerlauf ein Update ins VCS machst dürfte es bald zugemüllt sein mit
Dingen die es weder wert sind, dort zu landen, noch von denen ich das
möchte. Code der compiliert muss ja noch lange nicht fehlerfrei sein und
ich möchte nicht jeden dummen Tippfehler im VCS wiederfinden. Ebenso
wenig möchte ich bei jedem make einen Kommentar für das VCS schreiben.
Ins VCS kommen bei mir nur Dinge, die getestet sind oder wenigstens eine
halbwegs in sich geschlossene und beschreibbare Einheit bilden.
Abgesehen davon muss ja auch das VCS irgendwie gesichert werden, bei
Deiner vorgeschlagenen Nutzung entsprechend häufig. Dass das einfacher
und effizienter zu machen ist als ein kleines Skript im Makefile wage
ich mal zu bezweifeln.
A. H. schrieb:> Wenn Du nach jedem> Compilerlauf ein Update ins VCS machst dürfte es bald zugemüllt sein mit> Dingen die es weder wert sind, dort zu landen, noch von denen ich das> möchte.
Die goldene Regel des VCS lautet: Check in early, check in often.
A. H. schrieb:> Ins VCS kommen bei mir nur Dinge, die getestet sind oder wenigstens eine> halbwegs in sich geschlossene und beschreibbare Einheit bilden.
Dafür gibt's Tags.
Boris P. schrieb:> Die goldene Regel des VCS lautet: Check in early, check in often.
Sure, but often doesn't mean always, and early doesn’t mean straight
away.
Ein VCS ist ja auch so etwas wie ein Protokoll des Entwicklungsprozesses
und ich glaube nicht dass man dem, der das einmal liest, einen Gefallen
tut, wenn man jede Menge Versionen protokolliert, die vielleicht nur
existieren, weil jemand mal ein Vorzeichen oder ein Semikolon falsch
gesetzt hat. Etwas mehr Substanz sollte schon dahinter sein, sonst
erzeugt man nur unnötiges Rauschen und das Repository liest sich eines
Tages wie der Abspann eines Monty Python Films: „Dem Elch im Hintergrund
von Szene 37 das Maul wischte...“
Eine eigene Frage?
Dieser Thread ist über 12 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.