Rainer's profileCyrons BlogPhotosBlogListsMore Tools Help

Blog


    July 26

    Design-Richtlinien für grafische Benutzeroberflächen

    Dank Jan Welker vom DotNet-Forum habe ich erfahren daß es Designrichtlinien für grafische Benutzeroberflächen gibt. Ich wußte vorher nichts davon und vielleicht geht es einigen anderen Entwicklern auch so. Darum poste ich mal den Link zu dem MSDN-Artikel.

    Die Oberfläche meines Program Sentinels ist demnach komplett falsch aufgebaut. Demnächst wird es eine neue Version davon geben, aber an der Funktionalität ändert sich nichts.

    July 24

    Program Sentinel

    ProgramSentinelLogo


    Der Sinn dieses Programms

    Es gibt so einige Aufgaben an einem PC, die laufen ziemlich lange Zeit selbstständig. Das sind zum Beispiel Datensicherungen. Nun möchte man nicht unbedingt dabei sitzen bleiben, sondern sich gerne mit anderen Dingen beschäftigen. Das ist auch kein Problem. Es ist nur lästig wenn man zwischendurch immer wieder mal schauen muß, ob die Aufgabe erledigt ist, denn leider melden sich die meisten Anwendungsprogramme nicht, wenn sie mit ihrer Arbeit fertig sind! Hier kommt Program Sentinel in's Spiel. Auf deutsch übersetzt, bedeutet Program Sentinel "Programmwächter", und genau das ist es.
    Program Sentinel überwacht die Aktivität von anderen Programmen und gibt sowohl eine akustische Meldung aus, als auch eine visuelle, wenn das überwachte Programm nicht mehr beschäftigt ist.

    Wie Program Sentinel funktioniert

    Jedes Programm (im Folgenden auch Prozess genannt) verbraucht bei seiner Arbeit ein bestimmtes Maß an Prozessorkapazität. Dieser Verbrauchswert schwankt, je nachdem wieviel zu tun ist. Hat ein Programm nichts zu tun, sinkt dieser Wert idealerweise auf null. Program Sentinel überwacht genau diese Prozessorlast. Da ein Programm auch bei starker Beschäftigung zwischendurch auch schon einmal auf jemand anderen warten muß (z.B. daß Daten auf einen Datenträger geschrieben werden), passiert es daß die Prozessorlast kurzzeitig immer wieder auf null fällt. Damit Program Sentinel nun nicht zu früh Alarm schlägt, wird die Prozessorlast periodisch über einen Zeitraum gemessen und daraus der Mittelwert gebildet. Dieser Zeitraum beträgt standardmäßig 10 Sekunden, kann aber vom Benutzer geändert werden.

    Die Bedien-Elemente von Program Sentinel

    Start

    So erscheint Program Sentinel direkt nach dem Start. Das wichtigste Element ist zunächst einmal die Auswahl-Liste. Klicken Sie rechts auf den nach unten gerichteten Pfeil, wird die Liste geöffnet und zeigt alle zur Zeit laufenden Prozesse an.
    Haben Sie nun Program Sentinel gestartet bevor Sie ihr Arbeitsprogramm gestartet haben, wird dieses noch nicht in der Liste angezeigt - aber das ist kein Problem.
    Klicken Sie links auf den Button "Prozessliste aktualisieren" und ihr neu gestartetes Programm wird in der Liste erscheinen.

    Auswahl

    Ein kleines Beispiel soll nun verdeutlichen wie es weitergeht:
    Hier soll Synctoy* überwacht werden. Klicken Sie in der Auswahl-Liste auf den Pfeil nach unten und geben Sie sy ein. Das reicht schon damit Program Sentinel automatisch zum ersten Eintrag springt, der mit "sy" anfängt. Klicken Sie auf den Eintrag "SyncToy".
    (*) SyncToy ist ein kostenfreies Datensicherungsprogramm von Microsoft. Sie können es hier downloaden:
    http://www.microsoft.com/prophoto/downloads/

    Messung

    Sofort beginnt Program Sentinel mit der Messung der Prozessorlast. Diese können Sie rechts neben "CPU-Last in %" als nominalen Wert ablesen und auch am sogenannten Progress-Bar rechts daneben. Je weiter er nach rechts ausschlägt, um so höher ist die Prozessor-Last.
    Die Überwachung findet damit aber noch nicht statt! Lassen Sie nun ihr Programm (hier SyncToy) seine Arbeit aufnehmen und klicken Sie dann erst auf den Button "Überwachung starten". Sofort ändert sich der Text dieses Buttons auf "Überwachung anhalten" und eine Textzeile erscheint, die darüber Auskunft gibt, daß der Prozess xyz übewacht wird (nächstes Bild):

    Aktiv

    Der nun interessanteste Display ist die "Durchschnittliche CPU-Last in %". Wie eingangs schon erwähnt, berechnet Program Sentinel den Durchschnittswert über einen bestimmten Zeitraum. Erst wenn die Prozessorlast während dieser gesamten Zeit null war, oder unterhalb des eingestellten Schwellenwertes (dazu später mehr), geht Program Sentinel davon aus daß das überwachte Programm nicht mehr beschäftigt ist.

    BailOut

    Falls Sie das Fenster von Program Sentinel stört, können sie es entweder mit einem Mausklick auf den Button "Zum Tray-Icon minimieren" oder auf den Schließ-Button (X oben rechts) zu einem Tray-Icon verkleinern.

    TrayInfo

    Besondere Fälle

    Program Sentinel arbeitet mit gewissen Voreinstellungen.

  • Ein Messzyklus dauert 10 Sekunden. Für diesem Zeitraum wird die durchschnittliche Prozessorlast berechnet.
  • Der Schwellenwert der Prozessorlast, an Hand derer Program Sentinel entscheidet, ob das überwachte Programm noch beschäftigt ist, beträgt 0%.

    Diese Werte können aber angepasst werden, denn hin und wieder gibt es Bedarf dafür. Je nachdem, welche Arbeiten ein Programm verrichtet, kann es vorkommen daß es für mehr als 10 Sekunden nichts zu tun hat, dann aber wieder voll loslegt.
    Des weiteren soll es Programme geben, die erzeugen immer eine gewisse Grundlast, auch wenn sie augenscheinlich nichts zu tun haben.

    Erweiterte Einstellungen

    Für solche Sonderfälle gibt es die erweiterten Einstellungen. Klicken Sie auf den Button "Erweiterte Einstellungen", erscheinen weitere Objekte auf der Oberfläche von Program Sentinel.

    Erweitert

    In der Nummernbox für das Messintervall können sie einen beliebigen Zeitraum zwischen einer und 60 Sekunden einstellen.
    Für den Last-Schwellenwert stehen gleich zwei Möglichkeiten für Änderungen zur Verfügung. Sie können einmal den Schwellenwert mit dem Schieberegler einstellen und auch über die Nummernbox darunter. Welcher Methode Sie den Vorzug geben, ist ganz Ihrem Geschmack überlassen. Beides hat die gleiche Auswirkung. Das kann man auch daran erkennen, daß sich der Wert in der Nummernbox ändert, wenn sie den Schieberegler bewegen.

    Hinweis:
    Sie können während einer laufenden Überwachung in die erweiterten Einstellungen wechseln. Das Messintervall und der Schwellenwert werden sofort für die aktuellen Messungen herangezogen.
    Sie können diese Werte auch jederzeit während einer laufenden Überwachung ändern.

    Schlußbemerkung

    Bei Program Sentinel wurde auf Bedienerfreundlichkeit geachtet. Sollten Sie ein Programm beenden daß gerade überwacht wird, merkt Program Sentinel das und meldet sich:

    terminiert

    Sie müssen sich also keine Sorgen machen.
    Und nun viel Spaß mit Program Sentinel.

    Systemvoraussetzungen

    Program Sentinel wurde auf einem Windows XP Computer entwickelt. Es sollte aber auch mit Windows Vista funktionieren.
    Damit Program Sentinel läuft, muß das .net Framework 3.5 installiert sein. Sie können es hier downloaden:
    Microsoft .net Framework 3.5

    Copyright

    Program Sentinel ist Freeware.
    Das bedeutet, Sie dürfen es ganz nach Belieben weitergeben. Allerdings dürfen Sie keinerlei Veränderungen vornehmen und auch vom Inhalt nichts entfernen. Das schließt sämtliche Komponenten, also auch diese Dokumentation ein.

    ©2008 by Rainer Hilmer

    Download des Programms:



    Download Sourcecode (C#):

    Kontakt

    Email: rainer_hilmer@hotmail.com

  • July 02

    Für Einsteiger, für Fortgeschrittene, für Profis

    Auf diversen Webseiten für Entwickler findet man Artikel, die so oder ähnlich kategorisiert sind. Für das .net-Forum habe ich gerade einen geschrieben und stand nun vor der Frage, in welche Kategorie mein Artikel denn nun gehört. Was ein Einsteiger ist, kann leicht beantwortet werden, aber ab wann ist man ein Fortgeschrittener oder gar ein Profi? Gibt es dafür offizielle, vielleicht sogar genormte Definitionen? Ich kann es mir schlecht vorstellen, aber wenn jemand genaueres weiß, dann immer her mit den Infos. Solange ich keine besseren, anderen, oder offiziellen Vorschläge/Definitionen lese oder höre, wage ich mal eine eigene Kategorisierung. Ich will mich keinesfalls darauf festnageln. Seht es als Diskussionsgrundlage.

    Einsteiger

    • hat keine oder wenig Ahnung.
    • Weiß gerade einmal was Klassen, Methoden und Properties sind
    • ist sich nicht sicher, wann es besser ist, statische oder nicht statische Klassen einzusetzen
    • weiß nichts (vielleicht gerade einmal den Ausdruck) über
      • Interfaces
      • Generika
      • Delegates
      • Events
      • abstrakte Objekte
      • Reflection
      • InterOp
      • Attribute

    Diese Liste ist nicht vollständig. Sie soll nur einen ungefähren Eindruck über den Horizont vermitteln.

     

    Fortgeschrittener

    • kennt alle gängigen .net-Klassen und Objekte auswendig und kann diese entsprechend anwenden.
    • ihm fällt zu einem Problem i.d.R. gleich die richtige Lösung ein
    • Falls, im übertragenen Sinne, neues Terrain betreten wird, reicht ein Blick in die MSDN-Hilfe und vielleicht noch eine Info über best practice.
    • Kennt Design Patterns und weiß sie anzuwenden

    Profi

    • Verdient seinen Lebensunterhalt als Entwickler - was nicht unbedingt heißen muß daß er Ahnung hat. :-P

    Nein, das war ein Scherz! ;-)
    Bei so manchem Handwerker kann man zu diesem Eindruck kommen; ein Entwickler wäre dagegen ganz schnell seinen Job wieder los, wenn er nicht genügend know how vorweisen kann.

    Tja, was unterscheidet nun einen Fortgeschrittenen vom Profi? Diese Frage kann ich nicht beantworten, weil ich noch nicht auf diesem Level angekommen bin.

    Wie lesen sich eure Definitionen?