Hallo!
Neue Version 0.9.8.3 online!
CHM Plugin available as plugin now
Support for typeparamref tag added
Support for seealso tag added
Added type constraints to syntax
Some fixes
Gruß
Geaz
Und wieder eine neue Version 😃
Diesmal wurde extrem an der Performance der Exporter geschraubt. Sollte um einiges schneller als vorher sein! Außerdem wurde eine Auswahl für die Exporter hinzugefügt. Hier die Changes:
Viel Spaß!
Oder benötigt SharpDox dafür irgendwelche Voraussetzungen?
Keine Voraussetzungen. sharpDox kommt mit einer eigenen UML Bibliothek die das übernimmt. Kannst ja wenn du magst und kannst dein Projekt rüber schicken und ich schau drauf.
Wird kein Projektname angegeben, dann gibts die ArgumentNullException. Besser wäre, wenn er dann einfach den Projekt-Ordner-Namen nimmt, oder anzeigt, dass der Name eingegeben werden soll.
Das soll definitiv nicht so sein! Schreibe ich in die Issue-Liste und ist mit dem nächsten Release behoben. Danke!
Prinzipiell musst du ja eh deine Methoden, Typen usw. per Hand dokumentieren (Inline-Dokumentation). Die Generatoren nehmen dir lediglich die Erstellung der Ausgabe ab. Sonst müsstest du ja selber alle HTML Seiten zum Beispiel anlegen und mit Inhalt füllen. Halte ich für etwas aufwendig...
Des weiteren will ich nur ein paar Methoden und Klassen dokumentieren.
Du solltest eigentlich bei jedem ordentlichen Tool auswählen können, welche Methoden und Typen in der Doku beinhaltet sein sollen.
Zu den Sequenzdiagrammen:
Die Sequenzdiagramme werden lediglich für Aufrufe innerhalb des Codes erstellt der analysiert wird. Code der nicht zum Projekt gehört oder von dir ausgeschlossen wurde, wie zum Beispiel .Net Framework Aufrufe oder ausgeschlossene private Methoden (Sichtbarkeitseinstellungen), werden nicht visualisiert. Sollten dann entsprechende Aufrufe vorhanden sein, so finden sich diese bei der entsprechenden Methode als letzter Eintrag (in der CHM & HTML Ausgabe).
Ein PDF Exporter existiert in der Tat NOCH nicht. Ich sitze gerade an einem Word-Exporter. Das könnte man dann bei Bedarf einfach aus Word heraus in ein PDF speichern.
Wann ich das Word-Plugin fertig habe weiß ich aber leider nicht. Bin da schon länger immer wieder mal dran, aber das Programm fordert dann doch immer wieder anders meine Aufmerksamkeit 😃
Die im zip-Paket enthaltene chm-Datei verhält sich ebenso
Das ist sehr eigenartig! Bei mir klappt es wie es soll...
Auch ein weiteres Projekt das ich erstellt habe klappt einwandfrei...
Welches Betriebssystem nutzt du?
Gruß
Geaz
Edit: Kann es sein, dass du die CHM von einem Netzwerkpfad ausführst? Dann kann es zu diesem Problem kommen. Einfach von der lokalen Platte ausführen, dann klappts. Ist ein Problem bei dem Help Viewer.
Jetzt tust du den Helfern hier aber unrecht!
In allen Antworten waren durchaus hilfreiche Informationen! Lies dir doch alleine den Beitrag von Abt mal durch, dann wirst du dort viel über seine Erfahrungen und Herangehensweisen lesen können.
Das was du als negative Kritik bezeichnest sind durchaus berechtigte Argumente. Jeder hier weißt dich damit lediglich daraufhin, dass eine Selbstständigkeit nicht mit einer Homepage getan ist.
Besonders dein Satz "Ich habe es momentan ein wenig eilig." empfinde ich so, als ob du der Meinung bist, dass es nun mit ein wenig Werbung getan ist und die Kunden von alleine kommen werden. Dem ist nicht so! Du wirst viele Kontakte aufbauen müssen etc. (haben meine Vorredner bereits aufgelistet).
Es wird ein langwieriger Prozess sein bis du anständige Ergebnisse erwarten kannst.
Das ist alles worauf dich meine Vorredner hinweisen wollten. Und zusätzlich haben sie dir sehr hilfreiche und ausführliche Tipps gegeben.
Gruß
Geaz
Neue Version online mit vielen tollen Features 😃
Siehe Startbeitrag.
Gruß
Geaz
Leider kann man nicht "einfach" diese Property setzen und anzeigen lassen.
Jedoch kannst du das ganze so machen:
<DataGrid >
<DataGrid.Columns>
<DataGridTextColumn Header="W" ToolTipService.ToolTip="wöchentlich"/>
</DataGrid.Columns>
<DataGrid.Resources>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="ToolTip" Value="{Binding Column.(ToolTipService.ToolTip), RelativeSource={RelativeSource Self}}"/>
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.Resources>
</DataGrid>
Gruß
Geaz
Hallo,
ich habe einen Monitor mit 1920x1080 dran und kann bei mir jedenfalls keine störende Unschärfe ausmachen. Aber nachdem du das mit dem RAMDAC angesprochen hast kann ich vielleicht auch einfach nur Glück gehabt haben (habe eine GeForce 550GTM drin - falls das weiterhilft) 😃
Gruß
Geaz
Viele Notebooks haben eine HDMI und einen VGA Anschluss. Die kannst du beide dann nehmen, um zwei Monitore anzuschließen. Habe ich hier auch so gemacht. Funktioniert ganz gut.
Gruß
Geaz
Neue Version und HTML-Plugin online (siehe ersten Beitrag).
Gruß
Geaz
So, Version 0.9.7.1 ist bereits online!
Folgendes wurde geändert:
Falls ihr Version 0.9.7 benutzt besorgt euch umgehend die neue Version, da dadurch ein großes Problem im CHM Exporter behoben wurde.
Gruß
Geaz
Kannst du mir mal per PM den Inhalt der Log.txt schicken?
Gruß
Geaz
Version 0.9.7 ist online! Unter anderem ist der Bug oben von "SomeoneYouKnow" behoben. Für Details siehe den ersten Beitrag.
Hall Tehral,
habe dein Spiel gerade einmal angetestet. Gefällt mir schon ganz gut. Hier ein Punkte die mir persönlich nicht ganz so gut gefallen:
Wäre auch cool wenn die Gegner Gegenstände droppen würden 😃
Gruß
Geaz
Hallo SomeoneYouKnow,
danke für dein Feedback! 😃
Ich hab den Bug mit auf meine Liste genommen und werde mir den für die nächste Version vornehmen.
Grüße,
Geaz
Und ein kleines Update ist online.
Version 0.9.6.1 behebt einen Bug mit CDATA Tags in Dokumentationen. Diese wurden bisher irgnoriert. Außerdem wurden die Textformatierungen etwas angepasst.
Gruß,
Geaz
Danke für die Blumen 😃
Es freut mich, dass dir das Tool zusagt!
Wegen meiner früheren Benutzung von NDoc fände ich persönlich noch ein paar Konfigurationsmöglichkeiten schön. Z.B. würde ich es bevorzugen, wenn ich für eine WPF-View (z.B. Page oder UserControl) nicht alle Member der Basisklasse mit angezeigt bekomme (ich weiß, Microsoft macht das auf seiner MSDN auch so, aber für Anwendungscode finde ich das arg unschön).
Finde ich eine sinnvolle Ergänzung. Habe es mir für die nächste Version notiert! Falls du noch weitere Vorschläge hast, würde ich die auch gerne hören.
Beste Grüße,
Geaz
Neue Version mit neuen Features online! Bitte den Startbeitrag lesen 😃
Gruß,
Geaz
public Fun GetThePartyStarted(Greetings fromMe)
{
var enjoy = new Cake(fromMe);
return new Fun(enjoy);
}
Wenn du XML nutzen willst kann ich dir eine Bibliothek ans Herz legen, welche zwei Nutzer aus diesem Forum erstellt haben: http://xmlrepository.ch/
Neben SQL und XML gäbe es noch die Möglichkeit ein Object-Store zu nutzen. Das hat den Vorteil, dass du eigentlich garkeine Logik brauchst, um deine Objekte in und aus der Datenbank zu bekommen, da deine Objekte so wie sie sind in der Datenbank gespeichert und wieder ausgelesen werde. Eine gute Bibliothek dafür ist: http://ndatabase.codeplex.com/
Oh, bin nicht auf die Idee gekommen, dass es nicht ausreichen könnte.
Dann wäre wahrscheinlich der angegebene Ausgabepfad sinnvoller als das Tmp Verzeichnis.
Danke für den Hinweis! Werde ich mit auf die liste für die nächste Version nehmen.
Hallo 😃
Wollte das Tool mal über ein kleines Projekt ( Android ) "jagen" und bekomme da leider am Schluss gesagt
Der letzte satz könnte etwas ausführlicher sein.
In der log.txt sollten mehr Infos drin stehen. Im Baufenster sind absichtlich nicht zu viele. Ich weiß, dass es momentan noch ein Problem geben kann, falls im Titel des Projektes Leerzeichen sind. Kann das der Fall sein? Wird in der nächsten Version behoben.
@Abt: Verstehe ich es richtig, dass du die Namespaces die gleich sind unterhalb des "höheren" Namespaces haben möchtest? Oder, dass sie korrekt sortiert werden? Momentan werden die Namespaces einfach alle auf der höchsten Ebene angezeigt.
Gruß,
Geaz
So, endlich ist die neue Version fertig!
Einfach auf der Seite herunterladen und ausprobieren.
Der Bauprozess sollte insgesamt um einiges flotter sein. Außerdem habe ich das html Plugin rausgenommen und durch ein chm Plugin ersetzt. Das html Plugin werde ich überarbeiten und als optionales Plugin auf der Seite anbieten.
Ansonsten habe ich die GUI etwas überarbeitet und den ein oder anderen Bug entfernt und Idee umgesetzt.
Ich hoffe, dass alles klappt. Viel Spaß 😃
Probiermal folgendes Xaml aus:
<Trigger Property="IsPressed" Value="true">
<Setter Property="Foreground" Value="#DEINEFARBE" />
</Trigger>
Das ist jedenfalls der Trigger für einen Click-Effekt.
Gruß,
Geaz
da die Webanwendung an sich ja statuslos ist, mache ich es bei geänderten Datensätzen immer so, dass ich zunächst (anhand der ID) noch einmal den original-Datensatz lese, dann die Felder neu setze und anschließend SaveChanges aufrufe.
Auch eine Möglichkeit, welche ich einsetze. Jedoch sollte man sich hier im klaren sein, dass dadurch durch jedes Update ein zusätzliches Select auftritt. Das mag zwar bei einem Select über eine ID nicht extrem ins Gewicht fallen, aber es ist dennoch zusätzlicher Aufwand.
Jedoch finde ich diese Möglichkeit auch einfacher 😃
Du kannst den State im ObjectTracker selbst neu setzen. DIes ist z.B. in diesem Buch beschrieben: Programming Entity Framework: DBContext
Beispiel:
db.Entry(previousMenuGroup).State = EntityState.Unchanged;
((IObjectContextAdapter)context).ObjectContext
.ObjectStateManager
.ChangeRelationshipState(
menuItem,
menuItem.MenuGroup,
l => l.MenuGroup,
EntityState.Added);
((IObjectContextAdapter)context).ObjectContext
.ObjectStateManager
.ChangeRelationshipState(
menuItem,
previousMenuGroup,
l => l.MenuGroup,
EntityState.Deleted);
Ist zwar umständlich, aber so klappts.
Gruß,
Geaz
Hallo ashrak,
dein "Problem" ist hier, dass deine Eigenschaft MenuGroup hier eine independent association ist. Heißt, dass durch ein setzen des EntityStates auf deinem MenuItem dieser EntityState nicht auch für diese Relation gilt. Der StateTracker hält für independent associations einen eigenen State. Da du hier vermutlich die Aktualisierung in verschiedenen Datenbankkontexten durchführst, sprich an disconected entities, weiß der StateTracker zum Zeitpunkt der Aktualisierung nichts über die geänderten Relationen.
Du hast zwei Möglichkeiten:
public class MenuItem
{
public int Id { get; set; }
public int Sort { get; set; }
public String Name { get; set; }
public int MenuGroupID { get; set; }
}
Dadurch wirkt sich eine Änderung der Eigenschaft auch direkt auf das Element aus. Jedoch kann dieser Ansatz nicht für many-to-many Eigenschaften genutzt werden - soweit ich weiß.
Ich hoffe ich konnte einige Klarheiten beseitigen 😃
Gruß,
Geaz
Hallo Björn,
wow, danke für diese Rückmeldung! Kenne nicht viele die das so lange hätten laufen lassen 😃
Was die Geschwindigkeit und Speicherauslastung des Tools angeht habe ich mir bereits etwas überlegt! Wollte mal schauen, ob ich das vielleicht sogar noch über Pfingsten umgesetzt bekomme.
Außerdem werde ich das HTML Plugin überarbeiten damit nicht mehr solch riesige Dateien dabei rauskommen.
Und falls es interessiert: Ich habe bereits angefangen ein Plugin für eine Word-Ausgabe zu schreiben. Dieses werde ich dann, nachdem ich die genannten Fehler behoben habe, weiterentwickeln und hoffentlich bald bereitstellen können.
Beste Grüße und Danke,
Geaz
Und noch einmal Hallo 😃
Ich habe Version 0.9.1 hochgeladen. Dadurch sollten die beiden erwähnten Fehler behoben worden sein! Würde mich freuen wenn ihr es ausprobiert und Bescheid gebt.
Gruß,
Geaz
Hallo 😃
Danke für eure Rückmeldungen!
Ich habe das Tool getestet und habe probiert die Dokumentation für einige von meinen Projekten, unter anderem auch LightCore zu bauen.
Dabei kam eine NullReference Exception, gleich am Anfang beim bauen.
Die Ursache für den Fehler konnte ich heute früh direkt finden. Ein Update, dass dieses Problem behebt sollte heute Abend online sein. Danke für den Hinweis!
Am besten wäre wohl, die Software einmal an einem grösseren OpenSource-Projekt ausprobieren.
Habe ich eigentlich schon oft und mit einigen Projekten getestet.
Beim Start erhalte ich allerdings nach längerer Laufzeit den Fehler
Den Fehler hatte ich schon einmal bei Projekten mit großen Klassen oder Methoden. Der Fehler sollte unabhängig von der größe des eigentlichen Projektes sein. Ich werde versuchen im nächsten Update ein Fix dafür zu implementieren.
Danke für die Fehlermeldungen!
Gruß,
Geaz
Version 0.9 ist online!
Leider musste ich in der neuen Version das Updatesystem entfernen. Es kam zu ein paar Komplikationen. Deswegen muss die neue Version direkt von der Homepage geladen werden.
Hier die paar Änderungen:
Zudem hat das Wordpress Plugin eine Änderung bekommen: Es kann ausgewählt werden, ob nur öffentliche Elemente in der Dokumentation erscheinen sollen. Diese Funktion wird auch später im HTML Plugin hinzugefügt. Zudem bin ich gerade dabei ein Word Plugin zu schreiben.
Gruß,
Geaz
Schau einmal hier:
http://code.google.com/p/spotify-local-api/
Darüber solltest du glaub ich sogar die aktuelle Abspielzeit bekommen.
Gruß,
Geaz
Hi,
sieht nicht schlecht aus 😃
Ich hätte da noch eine Idee:
Warum nutzt du denn nicht die Spotify API um Infos zum aktuellen Song zu erhalten? Dann würde z.b. auch das angezeigt Cover übereinstimmen.
Gruß,
Geaz
0.8.5 ist veröffentlicht 😃
Hi,
ersteinmal danke noch einmal für die Hilfe 😃
Das das mit WPF ala Family.Show machbar ist ist klar. Das Problem hier ist ja, dass .pngs generiert werden, welche nun einmal an sich nicht klickbar sind. Dies könnte natürlich in HTML gelöst werden. Zum Beispiel über Imagemaps oder Javascript. Dazu wäre es jedoch notwendig, dass der HTML-Exporter zum Zeitpunkt der Dokuerstellung Kenntnisse über die Position der einzelnen Elemente des Diagramms hat. Diese Informationen hat er momentan leider nicht.
Deswegen meinte ich, dass ich mal schauen muss, ob und wie ich das am geschicktesten lösen kann.
Gruß,
Geaz
Danke für dieses ausführliche Feedback! Ich werde schauen, ob ich noch einiges davon für die kommende Version umsetzen kann.
Kurz noch einige Gegenfragen:
Das mit der Namespaceauswahl finde ich eine gute Idee. Da muss ich noch überlegen wie ich das am geschicktesten umsetzen kann.
Zum einbetten der Klassendiagramme: Meinst es wäre besser wenn es eine klappbare Sektion innerhalb der Doku wäre? Weil in voller Form will ich die dort nicht einbauen, da die je nach Größe die Übersicht "kaputt" machen würden.
Das mit den navigierbaren Sequenzdiagrammen hatte ich mir auch einmal überlegt. Jedoch habe ich noch keine Idee wie ich das gut umsetzen kann. Die Diagramme werden ja während des Bauvorgangs erstellt und zum Zeitpunkt der Dokuerstellung hat der Exporter keine Information darüber wass in den Bildern tatsächlich enthalten ist (was zum Beispiel zur Erstellung einer Imagemap nötig wäre). Muss mal schauen, ob ich dafür einfach meine Diagramm-Modelle mit an die Methoden-Modelle dranhänge.
Vielen Dank noch einmal für dein Feedback!
Gruß,
Geaz
@pinki:
Danke für die Info! Werde das in der nächsten Version standardmäßig einbauen.
@telfa:
Es scheint fast so, als würde ich nicht überprüfen, ob in den Einstellungen ein Ausgabepfad angegeben ist. Kann es sein, dass du dort keinen angegeben hast? Werde die Überprüfung in der kommenden Version einbauen.
Kurzer Zwischenstand:
Die meisten bisher gefunden Bugs habe ich bereits entfernt. Dazu habe ich die GUI etwas verfeinert und die Bauausgabe verbessert und einen Fortschrittsbalken eingebaut. Die GUI wird nun auch nicht mehr langsam bei großen Projekten. Der Updater funktioniert auch soweit. Was noch fehlt ist die abschließende Überarbeitung der Sequenzdiagramme. Sobald dies geschehen ist werde ich die neue Version durchtesten und veröffentlichen.
Gruß,
Geaz
Hi,
danke für euer vieles Feedback. Das hilft mir sehr und ist auch weiterhin sehr erwünscht 😉
Ich hatte vorhin schon mal eine Sequenz, die über mehrere Klassen ging, drum war ich verwundert. Hab ich mich getäuscht oder erstellt das Tool normalerweise den vollen Sequenzbaum ab der Methode bis zum letzten Aufruf? Denn dann solltest du das nochmal prüfen.
Sollte eigentlich die komplette Sequenz sein. Habe es gecheckt und es wird in der nächsten Version korrekt funktionieren. Dazu werde ich die Sequenzdiagramme etwas vom Erscheinungsbild überarbeiten.
Was mir allerdings noch fehlt, ist die Beschreibung der Parameter bei den Funktionen (<param ...)
Thomas
Auf der Liste und auch in der nächsten Version mit drin. Danke für deine aufmunternden Worte 😃
@björn
Wäre es mögich, dass du mir die Klasse, in der der Fehler auftritt, zu schickst? Ich habe bereits eine Vermutung warum das passiert und würde diese gerne gegenchecken.
Deine anderen Punkte sind ebenfalls auf der Liste und mit der nächsten Version hoffentlich erledigt 😃
- Bei der Auswahl des Logos werden keine Bilder angezeigt.
- Wählt man Neu bleibt die Ansicht innerhalb des Bauen menüs.
- Bauen kann angeklickt werden, obwohl kein Projekt ausgewählt ist.
- Eine Fortschrittsanzeige wäre nett.
Das Bild wird in der Tat bisher nicht vom HTML Exporter genutzt. Wird in der nächsten Version, genau wie auch deine anderen Punkte, erledigt sein 😃
Zudem wird in der nächsten Version ein AutoUpdater beinhaltet sein, welcher automatisch das Hauptprogramm und registrierte Plugins aktualisieren kann. Habe ich Samstagabend geschrieben und funktioniert ganz gut bisher.
Danke euch allen noch einmal für die Unterstützung und die netten Worte 😃
Gruß,
Geaz
Zwei Sachen hab ich noch:
- Warum werden die erstellten Grafiken 2 mal gespeichert? Einmal unter diagrams und ein weiteres mal unter html\images\diagrams. - Würde es hier nicht einmal ausreichen?
Eigentlich würde es reichen, dass ist richtig. Ich habe mir nur gedacht, dass es ganz nett wäre, wenn man einfach den html Ordner kopieren kann und dann hat man die ganze Dokumentation direkt in einem Ordner. Gerade wenn man mehrere Exporter aktiv hat finde ich das persönlich ganz praktisch. Ist vielleicht einfach Geschmakssache 😃
- Ich fänds im Sequenzdiagramm schöner, wenn Aufrufe einer Klasse auf sich selbst nicht mit diesem kleinen Pfeilchen dargestellt werden, sondern wie es die meißten UML-Tools machen. Siehe im Anhang.
Da gebe ich dir recht. Habe es auf meiner Liste und ist mit dem nächstem Update drin.
Gruß,
Geaz
@raketenhund:
Freut mich, dass dir das Programm zusagt 😃
Ich habe eine neue Version hochgeladen, welche die meisten deiner Probleme beheben sollte. Sowohl das Problem mit dem IE (war im HTML und Wordpress Plugin. Die Doku auf meiner Seite sollte jetzt auch funktionieren), die Zeitangabe in der Log und die Ausgabe im Bausausgabefenster. Einfach mal in die Changelog innerhalb der .rar reinschauen und probieren, ob es jetzt klappt.
Wegen deiner "System.UnauthorizedAccessException" wäre es super, falls du mir deine Log über mein Bugreport Forumlar schicken könntest.
@inflames2k:
Hmm, bei den Klassendiagrammen war der erste Screenshot und meine Aussage wohl etwas irreführend. Momentan ist es in der Tat so, dass lediglich ein Klassendiagramm der aktuellen Klasse angezeigt wird. Ein komplettes Diagramm, also inklusive Beziehungen, ist für die nächste Version geplant (sollte kein großes Problem sein, da alle benötigten Informationen bereits vorhanden sind).
Das Problem mit dem Sequenzdiagramm hört sich eigenartig an, bin auf deinen Screenshot gespannt 😃
Gruß,
Geaz
Hey,
freut mich zu hören, dass es so gut klappt 😃
Das Tool erstellt Klassendiagramme und Sequenzdiagramme, find ich es einfach nicht, oder werden die in der HTML-Dokumentation nicht ausgegeben?
Einmal sollten alle Diagramm auch im Unterordner "diagrams" im Ausgabepfad zu finden sein. In der HTML-Doku sind die etwas "versteckt", damit die, je nach Größe, nicht im Weg sind. Schau einmal wenn du in einer Klassenübersicht bist oben rechts, da ist ein Button "Klassendiagramm". Wenn du in einer Methode bist, welche mindestens einen Aufruf einer anderen Methode aus deinem Projekt tätigt, ist an der selben Stelle ein Button "Sequenzdiagramm".
Habe dir mal ein Bild angehängt, damit wir nicht aneinander vorbei reden 😉
Gruß,
Geaz
Und noch ein Screenshot von der GUI
Und der zweite Screenshot
Hallo!
Version 1.2 online!
Gruß
Geaz
Hallo!
Es hat sich einiges getan!
Ab jetzt ist sharpDox nicht nur frei benutzbar sondern obendrein auch open source!
Jeden den es interessiert der kann ab jetzt den Code hier einsehen und gerne auch etwas beitragen 😃
Zudem sind nun einige neue Features dabei:
Größte Erneurungen sind, dass in der GUI nun nicht nur Namensräume, sondern bis auf Member-Ebene einzelne Elemente aus der Dokumentation ausgeschlossen werden können.
Zudem kann eine Dokumentation nun z.B. um Artikel erweitert werden! Hier ein Beispiel für einen solchen Artikel.
Ein weiteres Feature ist die Erstellung von mehrsprachigen Dokumentationen!
Alles weitere steht in der Dokumentation von sharpDox beschrieben, die ihr hier findet.
Die Seite für sharpDox ist ebenfalls zu Github gezogen und ist weiterhin über http://sharpdox.de erreichbar.
Beste Grüße
Geaz