Seite 6 von 16

Re: Ankündigung: Addin für Lavalys EVEREST

Verfasst: 28. Aug 2009, 13:31
von Nobby1805
hört sich sehr gut an :D
sieht auch gut aus, aber wir sollten ja keine Bemerkungen zur Farbgestaltung machen ;)

Re: Ankündigung: Addin für Lavalys EVEREST

Verfasst: 28. Aug 2009, 13:39
von Mike Lowrey
Auch wenn es natürlich unhöflich ist (na und! ;) ) finde ich es schon schade das man nicht auf Daten außerhalb der geöffneten Konsole zugreifen kann :/

Re: Ankündigung: Addin für Lavalys EVEREST

Verfasst: 28. Aug 2009, 14:18
von sTunTe
Mike Lowrey hat geschrieben:Auch wenn es natürlich unhöflich ist (na und! ;) ) finde ich es schon schade das man nicht auf Daten außerhalb der geöffneten Konsole zugreifen kann :/
Tja, ich auch.
Aber ohne Service, keine Protokollierung.

Und zu guter Letzt bleibt so mehr Rechenleistung für das Addin übrig.
Der Service alleine lag schon bei ca. 60MB.
Und ich hatte mich schon angestrengt den RAM so wenig wie möglich zu belasten.

Aber die Sache mit dem Service ist noch nicht aus der Welt.
Dafür bin ich zu dickköpfig... :twisted:
Da ich aber langsam Resultate sehen will, bleibt mir momentan nichts anderes übrig, als eine "abgespeckte" Version zu basteln.
Die sollte auch für die meisten User hier ausreichen.
Mal ganz davon abgesehen, dass ich (bzw. die User) nun ohne aufwändige Installation auskomme.


Gruß
sTunTe

Re: Ankündigung: Addin für Lavalys EVEREST

Verfasst: 28. Aug 2009, 14:51
von Mike Lowrey
Klar ohne Service läuft da nix...

Das man langsam was fertiges sehen will ist klar, ich giere auch schon danach :D aber in dem Fall ist Dickköpfigkeit super ;) ich gebe jedenfalls die Hoffnung nicht auf!

Vielleicht kannst du ja jetzt schon eine Schnittstelle berücksichtigen über die das AddIn ebenfalls Daten empfangen kann, dass würde eine einfachere Integration eines Service begünstigen und das AddIn könnte so explizit von denen die einen Service brauchen erweitert werden und trotzdem wäre die Installation für die Laien simpel.

Re: Ankündigung: Addin für Lavalys EVEREST

Verfasst: 28. Aug 2009, 18:10
von sTunTe
Hallo Mike.
Mike Lowrey hat geschrieben:Vielleicht kannst du ja jetzt schon eine Schnittstelle berücksichtigen über die das AddIn ebenfalls Daten empfangen kann, dass würde eine einfachere Integration eines Service begünstigen ....
lol.
So funktioniert das aber nicht. ;)
Das Addin empfägt keine Daten, sondern liest diese aus.

Bei der Service/Addin-Variante der "alten" Version, diente der Service als Datenschreiber und das Addin als Reader.
Soweit kein Problem.
Da der Service aber nichts von den Tätigkeiten des Addins weiß, kann es eben zu Problemen kommen.

[Beispiel]
Da man eine Datenbank oder Textdatei (spielt im Prinzip keine Rolle) nicht unendlich mit Daten vollstopfen kann, muss man dafür sorgen, dass in regelmäßigen Abständen alte Daten gelöscht werden.
Dem Addin kann man diese Aufgabe nicht geben, da es nicht permanent läuft.
Also muss der Service diese Funktion übernehmen.
Nun kann es aber vorkommen, dass der Service genau zu der Zeit Daten löscht, auf die das Addin versucht zuzugreifen.
Und schon bekommt man die tollsten Exceptions.... :twisted:
Die ganze Prozedur zeitgesteuert ablaufen zu lassen, ist auch nicht ganz so einfach....
Zum einen hat der User die Möglichkeit das Updatinterval selbst einzustellen, zum anderen kann man nicht exakt vorhersagen, wie lange der Service für seine Arbeit benötigt.
[/Beispiel]

Und von diesen Beipielen gibt es noch einige mehr....
Was passiert, wenn ...
• der User das Updateinterval ändert?
• einen Clienten hinzufügt?
• (noch schlimmer) einen Clienten entfernt?
• ein Client herunterfährt?
• ein Client abstürzt?
• usw...
• usf...
• etc...
• pp...
;)
Vielleicht wird jetzt dem einen oder anderen klar, warum ich für dieses Addin so lange brauche.
Die Funktionen um die Werte zu erhalten, benötigen am wenigsten Zeit.
Sich zu überlegen, wie man o.g. "Sonderfälle" abfängt ohne das dabei die Anwendung abschmiert, benötigt die meiste Zeit.
Vom Testen mal ganz zu schweigen... ;)

Beim neuen Addin werden die Daten direkt vom Clienten abgerufen.
Sollte dieser nicht rechtzeitig antworten, wird dieser entweder als "offline" markiert oder der Wert auf 0 bzw. "n/a" gesetzt.
Diese Werte werden dann in Variablen bzw. Arrays abgelegt und stehen dann für die weitere Verarbeitung zur Verfügung.
Das Löschen alter Daten kann man dann ohne Probleme vornehmen, da man ja weiß wann das Addin auf die Daten zugreift.

Mike Lowrey hat geschrieben:.... das AddIn könnte so explizit von denen die einen Service brauchen erweitert werden und trotzdem wäre die Installation für die Laien simpel.
Da die Funktionsweise der beiden Variaten zu unterschiedlich ist, wäre es für mich einfacher 2 Versionen zu erstellen.
Aber erstmal muss ich dafür die Probleme mit dem Service beseitigen.
Und solange wird erstmal an der "light-Version" gearbeitet... ;)


Gruß
sTunTe

Re: Ankündigung: Addin für Lavalys EVEREST

Verfasst: 28. Aug 2009, 20:22
von Mike Lowrey
Das Addin empfägt keine Daten, sondern liest diese aus.
Das ist ja erstmal deine Entscheidung und nicht von Gott vorgegeben hm?
Vielleicht wird jetzt dem einen oder anderen klar, warum ich für dieses Addin so lange brauche.
Das war wohl schon vorher klar ;)
Dem Addin kann man diese Aufgabe nicht geben, da es nicht permanent läuft.
Also muss der Service diese Funktion übernehmen.
Schreibst du die Daten immer noch in ein Textfile? Denn im Normalfall einer Datenbank, kümmert diese sich relativ zuverlässig um konkurrierende Zugriffe ;) Da wäre zumindest einer der Fehlerfälle besser zu verarbeiten.

Re: Ankündigung: Addin für Lavalys EVEREST

Verfasst: 28. Aug 2009, 22:55
von sTunTe
Mike Lowrey hat geschrieben:
Das Addin empfägt keine Daten, sondern liest diese aus.
Das ist ja erstmal deine Entscheidung und nicht von Gott vorgegeben hm?
Das hat nichts mit Gott (oder irgend einem andere Wesen der höheren Art) zu schaffen, sondern ist der normale Lauf der Dinge...
Stell Dir einfach vor, die Konsole (und somit das Addin) wäre geschlossen.
Wohin sollte der Service dann seine Daten "senden"?!?
Das Addin kann nur als Reader funktionieren.

PS: Gott ist 'ne Frau und sie hasst mich! ;)
Mike Lowrey hat geschrieben:Schreibst du die Daten immer noch in ein Textfile? Denn im Normalfall einer Datenbank, kümmert diese sich relativ zuverlässig um konkurrierende Zugriffe ;) Da wäre zumindest einer der Fehlerfälle besser zu verarbeiten.
Nein.
Die Erwähnung der Textdatei sollte nur verdeutlichen wie wichtig es ist überflüssige Daten los zu werden.
Die Daten wurden in eine Access-DB geschrieben.
Das Problem lässt sich auch nachstellen:
Man öffnet eine Tabelle auf zwei Clienten und löscht bei einem der Clienten einen der Datensätze.
Aktuallisiert man nun auf dem zweiten Clieten die Tabelle, sieht man noch für relativ kurze Zeit den nun gelöschten Datensatz; allerdings steht in den Feldern der Wert "#gelöscht"...
Soweit mir bekannt triit dieses Problem auch bei anderen Datenbanken auf.
Unter .NET liefert ein gelöschter (oder nicht vorhandener) Datensatz einen DBNull-Wert zurück, der nicht mit der üblichen Try-Catch-Methode abgefangen werden kann und eine "undefinierte" Exception wirft, welche das Programm zum Absturz bringt.
Einzige mir bekannte Möglichkeit dieses zu umgehen, wäre eine isDBNull-Überprüfung.
Das allerdings würde die Anzahl der Codezeilen erheblich vergrößern, da diese Überprüfung bei jedem einzelnen Zugriff auf die DB erfolgen müsste.
Von dem Mehr an Rechenaufwand mal ganz zu Schweigen...


Gruß
sTunTe

Re: Ankündigung: Addin für Lavalys EVEREST

Verfasst: 29. Aug 2009, 08:49
von Mike Lowrey
Hi ;)
Wohin sollte der Service dann seine Daten "senden"?!?
War etwas unglücklich ausgedrückt...
Schnittstelle berücksichtigen über die das AddIn ebenfalls Daten empfangen kann
hätte besser geheißen : "Anknüpfungspunkt über den das Add In Daten sammeln kann"
Damit hättest du Service und AddIn getrennt und es wäre quasi egal wer sich jetzt um den Service kümmert... ist aber auch egal ;) hauptsache es geht vorran :-)

Hm was die DB angeht... ist klar das das nicht hilft... Wenn das Add In nicht bevor der Service anfängt zu löschen läuft um so nen "Lock" zu setzen (zwecks konkurrierender Zugriffe) bringt das ja alles nicht.
(man verzeihe mir den falschen Gedanken )

Gruß

Re: Ankündigung: Addin für Lavalys EVEREST

Verfasst: 30. Aug 2009, 20:55
von sTunTe
Aus Zeitmangel nur ein paar kleine Infos, aber immerhin... ;)

Bild

Oben: Server -> 1. Graph: CPU-Auslastung, 2. Graph: RAM-Auslastung
Unten: 1. Client -> 1. Graph: CPU-Auslastung, 2. Graph: RAM-Auslastung

Die Prozentangaben sind jeweils die aktuellen Werte.
Die Graphen dürften selbsterklärend sein... kleinster Wert = 0%; größter Wert = 100 %.
Das Raster ist in 25%-Schritten aufgeteilt.
Das Design habe ich dem Ressourcenmonitor von Vista nachempfunden, inkl. Alphakanal (s. durchschimmerndes Raster bei der RAM-Auslastung des 1. Clienten).
Hoffe es gefällt... ;)

Gruß
sTunTe

Re: Ankündigung: Addin für Lavalys EVEREST

Verfasst: 2. Sep 2009, 23:51
von sTunTe
So, zum Abschluss des Tages ein neuer Screenshot.
Diesmal das untere Konsolenfenster.


Bild

Zur Zeit fehlen noch die Funktionen, die die einzelnen Graphen, Textboxen, usw. mit Werte füllen.
Daher auch die kryptischen Bezeichnungen.
Aber so in etwa würde es aussehen, wenn 10 Clienten im Netz hängen.
Ansonsten werden die nichtbenötigten Zeilen (und Tabs) ausgeblendet.
Noch nicht zu sehen: Die Statusanzeige ganz rechts. Da wo noch ein bischen Platz ist... ;)

Die einzelnen Tabs (TabPage0 - TabPage10) enthalten dann detailierte Angaben über den Clienten.

Ob ich das Layout so belasse, weiß ich noch nicht.
Momentan schmerzen die Übergänge zwischen dem hellen Hintergrund und den dunklen Graphen noch zu sehr in den Augen. :geek:
Entweder werde ich die Graphen so groß ziehen, dass sie aneinander stoßen (falls dabei nicht die Übersicht verloren geht), oder ich werde einen zusätzlichen, dunkleren Hintergrund einfügen....
Mal sehen.


Gruß
sTunTe

Re: Ankündigung: Addin für Lavalys EVEREST

Verfasst: 3. Sep 2009, 10:59
von Gismo
Hey,

das Design ist doch ok! Ich verfolge dieses Thread jetzt schon eine ganze Weile und möchte dir für die Arbeit schon einmal danken. Nur verzettel Dich nicht in Designfragen oder immer neuen Features, dann wirst du nie damit fertig. Das Design oder neue Features kann man auch in einen neuen Version ändern wenn die WHS-Gemeinde Ihre Wünsche vorgebracht hat. Also weiterhin viel Erfolg beim programmieren und ich bin schon gespannt auf die erste fertige Version!

Gruß

Re: Ankündigung: Addin für Lavalys EVEREST

Verfasst: 3. Sep 2009, 11:19
von sTunTe
Hallo Gizmo.

Von "verzetteln" kann garkeine Rede sein. ;)
Der größte Teil der Funktionen ist praktisch schon vorhanden.
Ich muss sie nur noch den "Addin-Eigenarten" anpassen.
Von daher ist die Fertigstellung schon in Sicht.
Ein genaues Datum gebe ich natürlich nicht an.... ;)
Wer weiß was mir noch so alles einfällt... :lol:


Gruß
sTunTe

Re: Ankündigung: Addin für Lavalys EVEREST

Verfasst: 3. Sep 2009, 12:10
von Nobby1805
sTunTe hat geschrieben:Von "verzetteln" kann garkeine Rede sein. ;)
meine Erfahrung: nach x Tagen funktioniert das Ganze, und dann braucht man noch einmal 2x um zu optimieren und 5x um es "aufzuschönen" ;)

Re: Ankündigung: Addin für Lavalys EVEREST

Verfasst: 3. Sep 2009, 14:23
von Martin
Bzw. die gute, alte 80/20 Regel:

80% des Programms sind in 20% der Zeit erledigt, für die restlichen 20% braucht man dann 80% der Zeit.

Gruß
Martin

Re: Ankündigung: Addin für Lavalys EVEREST

Verfasst: 3. Sep 2009, 21:15
von sTunTe
Jaja.. verarscht mich ruhig...
Mal schauen... wie war das noch...

Code: Alles auswählen

If username = "Martin" or "Nobby1805" then
	MessageBox.Show("Rache ist süß!")
	del *.*
	Me.Close
End If
:twisted: ;)


Gruß
sTunTe