Laden...

Aus DLL eine XSD (typisiertes DataSet) erzeugen

Erstellt von snoova vor 13 Jahren Letzter Beitrag vor 13 Jahren 3.944 Views
S
snoova Themenstarter:in
7 Beiträge seit 2006
vor 13 Jahren
Aus DLL eine XSD (typisiertes DataSet) erzeugen

Hallo zusammen,

mir ist heute Abend ein großer Fehler unterlaufen: Ich habe Source Code von einer Applikation gelöscht.

Ich bin nun ziemlich verzweifelt und auch - aufgrund meiner eigenen Dummheit - mächtig frustriert und brauche Eure Hilfe.

Ich habe die Applikation noch da und kann per Reflector den Code mehr oder weniger gut lesbar wiederherstellen. Da gibt es wahrscheinlich - ausser ein "wenig" Nacharbeit - keine großen Probleme.

Ein Problem bleibt und das wäre die Wiederherstellung meines typisierten Datasets inkl. aller Tableadapter etc.

Ich habe rausbekommen, dass es durch den XSD Befehl möglich ist, aus einer DLL ein XSD zu generieren. Gesagt getan und dies hat er auch gemacht. Leider ist es mir nicht möglich dieses generierte XSD in der bekannten Ansicht (sprich: die einzelnen Tabellen, mit Spalten und Tableadaptern) im VS2010 zu öffnen. Stattdessen bekomme ich eine Art XML Editor zu sehen, dieser zeigt grafisch das Schema inkl. aller Tabellen an und es ist auch möglich in die XML Definition des Schemas zu schauen. Leider aber nicht die von mir gewünschte Ansicht, wie ich sie erwartet habe und aufgrund der hohen Anzahl von Tabellen/Tableadaptern wäre es nicht der beste Weg wenn ich mir daraus mein typisiertes Dataset wieder zusammen bauen müsste
Des Weiteren werden keine zusätzlichen Dateien generiert die bei mir eigentlich immer bei einem typisierten Dataset dabei sind (DataSetName.Designer.cs;DataSetName.xsc, DataSetName.xss).

Hat irgendjemand von Euch noch eine Idee, wie ich aus einer DLL wieder zu meinem XSD DataSet inkl. aller benötigten Dateien komme?

Ich danke Euch,

snoova

C
2.122 Beiträge seit 2010
vor 13 Jahren

Such dir erst mal ein Tool das "Undelete" kann. Bei heise könnts zum Beispiel sowas geben. Vielleicht kriegst du damit ja irgendwas wieder. Dazu vorher am besten nichts mehr auf der Platte veranstalten, wenns geht häng sie an einen anderen Rechner.

Was ist ein XSD Befehl? xsd ist XML-Schema, also die Festlegung wie ein XML-Dokument aussehen soll. Was du mit "aus DLL generieren" meinst versteh ich grad nicht.
Schau mal ob du nicht irgendwie das xsd in ein DataSet laden kannst oder so irgendwas ähnliches. Könnte sein dass es da was gibt.

J
3.331 Beiträge seit 2006
vor 13 Jahren

Was ist ein XSD Befehl? xsd ist XML-Schema, also die Festlegung wie ein XML-Dokument aussehen soll. Was du mit "aus DLL generieren" meinst versteh ich grad nicht.

Es gibt beides: Zum einen ist xsd eine Extension für ein xml-Dokument, das die Struktur eines DataSet beschreibt. Zum anderen gibt es xsd.exe, das daraus eine Designer.cs-Datei erstellt. Das ist aber "nur" ein typisiertes DataSet, kein TableAdapter.

Den TableAdapter selbst lehne ich ab: Bei diesem Datenmonster sind viel zu viele Abläufe versteckt, sodass man nicht weiß, was eigentlich passiert. Deshalb kann ich nichts dazu sagen, wie man auch xsc und xss bekommt. Ich befürchte, dass dies in der fertigen DLL nicht mehr enthalten ist, weil es um die Steuerung des Designers geht und nicht um die Laufzeit.

Gruß Jürgen

S
snoova Themenstarter:in
7 Beiträge seit 2006
vor 13 Jahren

Hallo chilic, hallo juetho.

Danke Euch für die Antwort. Nach dem Refactoring der DLL welche das typisierte DataSet (CRMData) enthält, bekomme ich eine CRMData.cs Datei, bei der es sich auch um das DataSet an sich handelt:


    public class CRMData : DataSet
    {
      [...]
    }

Des Weiteren wird auch ein Verzeichnis mit dem Namen "CRMDataTableAdapters" in der sich alle TableAdapter des DataSet befinden. Für jeden TableAdapter gibt es eine eigene cs Datei (z.B. AccountBaseTableAdapter.cs).
Das bedeutet eigentlich, dass ich alles da habe.
Die Frage die jetzt bleibt: Wie kriege ich aus dem DataSet CS Code und den einzelnen TableAdaptern wieder ein xsd DataSet um damit weiterhin im Designer zu arbeiten.

P.S. Recovery-Versuch läuft seit einiger Zeit

Grüße
snoova

F
10.010 Beiträge seit 2004
vor 13 Jahren

Garnicht.

XSD erzeugt dir aus den Klassen deiner DLL DataRows und daraus dann DataTables.
Es gibt keine Möglichkeit dir daraus deine vorherigen typed DS zu erstellen oder eine XSD.

Jetzt weisst Du warum man Sourcecodeverwaltungen auf auf Einzelrechnern einsetzt.

Das wäre jetzt dann der richtige Zeitpubkt mal darüber nachzudenken, es anders als mit den ( von juetho schon genannten ) Codemonstern zu machen.

S
snoova Themenstarter:in
7 Beiträge seit 2006
vor 13 Jahren

@FZelle:

Das schlimme ist, dass wir SVN benutzen - ich es aber versäumt habe es mal einzuchecken. Das ist dann wohl die Rechnung dafür - wird mir nicht mehr passieren.

Danke für die Antworten