Klassendiagramm-Erzeuger (open source)

    • Release

    Es gibt 23 Antworten in diesem Thema. Der letzte Beitrag () ist von possible31776.

      Klassendiagramm-Erzeuger (open source)

      Hallo.

      Da die Express-Version von Visual Studio keine Klassendiagramme erstellen kann, hier die unprofessionelle Aushilfe.

      • unterstütz: Typ, Name ; Eigenschaften, Methoden, Events
      • Commandlineargs- und drag & drop-Support für die Haupttextbox
      • da sich auch Fehler einschleichen können, gibt es die benutzerdefinierte Erstellung
      • speichert das Diagramm als png ab


      Bugs: Ja, genug bei der Erkennung von Functions (zB bei API's oder seltsam angeordneten Zeilen umbrüchen mit "_"), aber dafür hab ich die benutzerdefinierte Eingabe gemacht.

      - 73 kB
      - FW 2.0

      Viel Spass.
      Bilder
      • snap0001.png

        19,17 kB, 665×475, 1.808 mal angesehen
      • snap0002.png

        19,39 kB, 665×475, 1.827 mal angesehen
      • snap0003.png

        18,07 kB, 665×497, 1.499 mal angesehen
      • snap0004.png

        21,4 kB, 665×497, 1.491 mal angesehen
      Dateien
      Für ein Mindestmaß an Rechtschreibung, Interpunktion und Majuskeln!

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „bla“ ()

      Du bist ein Gott :D genau sowas fehlt mir noch :)

      Für den _-Bug würde ich einfach jede Linie die auf ' _' endet so ändern:

      Quellcode

      1. Linie 1 _
      2. auch Linie 2
      3. zu
      4. Linie 1 auch Linie 2

      Ich habs noch nicht getestet, aber funktionieren auch Public Const und kann unterschieden werden durch Public und Public Shared ? Funktionieren Enums auch ?

      Mangafreak1995 schrieb:

      Ich habs noch nicht getestet, aber funktionieren auch Public Const und kann unterschieden werden durch Public und Public Shared ? Funktionieren Enums auch ?


      Öhm, nur Eigenschaften, Methoden und Events.
      Aber du kannst die Suche gerne verfeinern^^

      momentan ganz simpel:

      VB.NET-Quellcode

      1. Dim Eigenschaften As New List(Of String)
      2. Dim Methoden As New List(Of String)
      3. Dim Events As New List(Of String)
      4. For Each line As String In txtMain.Lines
      5. If line.Contains(" Property ") = True Then
      6. Eigenschaften.Add(Trimmen(line))
      7. End If
      8. If line.Contains(" Function ") = True OrElse line.Contains(" Sub ") = True Then
      9. Methoden.Add(Trimmen(line))
      10. End If
      11. If line.Contains(" Event ") = True Then
      12. Events.Add(Trimmen(line))
      13. End If
      14. Next


      VB.NET-Quellcode

      1. Private Function Trimmen(ByVal s As String) As String
      2. Try
      3. s = s.Substring(0, s.IndexOf("("))
      4. Return s.Substring(s.LastIndexOf(" ") + 1)
      5. Catch ex As Exception
      6. Return s
      7. End Try
      8. End Function


      Kannst du gerne verbessern :)
      Für ein Mindestmaß an Rechtschreibung, Interpunktion und Majuskeln!
      würde ich ja mit RegEx lösen ;)
      zum Beispiel RegEx.Replace(text, " _$", " ")

      Mangafreak1995 schrieb:

      würde ich ja mit RegEx lösen ;)
      zum Beispiel RegEx.Replace(text, " _$", " ")

      Das wäre eine mögliche Lösung. Da gibts nur ein Problem: Ab VB2010 gibt es das Compilerfeature, dass man für Zeilenumbrüche keinen Underscore mehr braucht.

      Ein Lösungsansatz wäre es, den Code mit der Hilfe des CodeDomProviders zu compilen. Die daraus entstandene Binary kann dann mit Reflection analysiert werden. Könnte allerdings Probleme mit Public/Private geben. Außerdem ist das alles zusammen nicht mal so schnell in 5 Minuten zu machen. ;)

      Was anderes würde mir so auf die schnelle nicht einfallen.

      Ansonsten: Nette Idee, werds mal benutzen, wenn ich gerade keine volle IDE da habe.

      Btw: Dieses Feature wäre echt nett für die Alpha IDE von Lindi gewesen. Schade, dass weder das Programm, der Updateserver noch der Benutzer existiert. :(
      Von meinem iPhone gesendet

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „nikeee13“ ()

      Du bist ein Gott :D genau sowas fehlt mir noch :)

      /sign. Nettes Programm :)


      link_275

      //EDIT: Das ist ja OpenSource, was ja auch toll ist.. Aber irgendwie find Ich's scheiße mit anderer Leute Code rumzuspielen, da reg' Ich mich immer auf, dass MIR sowas nicht eingefallen ist ^^ Weiß ja nicht wie's bei euch ist ...
      Hello World

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „link_275“ ()

      Hallo,

      habe ich was verpasst? Visual Studio bietet doch genau diese Funktionalität von Haus aus, ihr müsst nur im Projektmappen-Explorer mit Rechtsklick auf eine Klasse klicken und dann "Klassendiagramm anzeigen" wählen. Siehe Bild:



      damit lassen sich selbst sehr komplexe Klassen samt Hierarchie perfekt darstellen:
      Alles klar, danke für den Hinweis :)
      Hatte schon ewig die Express Version nicht mehr im Einsatz, da verdrängt man diese Erinnerungen ;)

      Dann würde ich dem Programm noch die Fähigkeit hinzufügen Vererbungen und Abhängigkeiten darzustellen, damit es auch ein richtiges Diagramm wird. Sieht soweit aber schon ganz gut aus.

      Eine weitere Idee wäre es eine Möglichkeit anzubieten eine Solution datei (SLN) Vom Visual Studio einzulesen und ein Diagramm des Projekts anzufertigen. :)
      Echt toll.
      Aber ich hätte mir schon etwas Reflection erwartet.
      Vererbung usw. ist nicht drin. Und das ist einer der Hauptgründe für ein Klassendiagramm.
      Außerdem ich habe mal eine umfangreichere KLasse reingeladen (ca. 1000 Zeilen)... Rat mal was passiert ist :D
      Eine

      Memo schrieb:

      Echt toll.
      Aber ich hätte mir schon etwas Reflection erwartet.
      Vererbung usw. ist nicht drin. Und das ist einer der Hauptgründe für ein Klassendiagramm.
      Außerdem ich habe mal eine umfangreichere KLasse reingeladen (ca. 1000 Zeilen)... Rat mal was passiert ist :D
      Klasse mit 1000 Zeilen? Nana, sowas macht man doch nicht ;)
      Huch, ich wusste gar nicht das ich eine Methode bin =) mit was für Parametern kann man mich denn füttern??

      Wie bei mir: GrundFuerBan As String :P

      würd mich echt interessieren, warum da die Nicks stehen?! xD
      Ich wollte auch mal ne total überflüssige Signatur:
      ---Leer---