Frage

Hintergrund

Ich habe eine Geschäftsidee, von denen eine Komponente beinhaltet einen Client, und von Tausenden von Anwendern über eine Web-Seite installiert werden heruntergeladen würden.

Anwendungsanforderungen

Version 1:

Der Antrag muss:

  • Monitor Internet-Nutzung auf den Desktop des Benutzers mit den folgenden Bereichen überwacht:

    • Browser verwendet,
    • Stunden verwendet
    • Sites zugegriffen
    • berücksichtigt, die Browser-Tab 'aktiv'
    • ist
  • einen Bericht dieser Nutzungs Produce (in CSV oder eine andere leicht exportierbar Format)

  • Es muss vom Anwender leicht überwacht werden (beispielsweise in Windows über ein Symbol in der Taskleiste den Benutzer ermöglicht, das Programm anzuhalten oder zu stoppen).
  • Sie leicht aktualisierbar durch automatische Updates.
  • Anforderungen in Bezug auf die Speichernutzung zu leicht sein.
  • leicht sein muss und schnell installiert,
    • Muss in der Lage sein, vollständig deinstalliert werden.
  • Kann nicht negativ beeinflussen Browser oder Benutzer-Systemleistung Erfahrung
Für Version 2:
  • der Lage sein, grafische Ausgänge (pie & Balkendiagramme)
  • präsentieren
  • sein Multi-Plattform (Version 1 zielt nur Windows)
  • Integrieren Sie eine Online-Komponente

Frage

Diese Anforderungen gegeben, welche technische Umsetzung würden Sie empfehlen, und welche Plattform / Sprache Architektur würden Sie empfehlen? Die wichtigsten Aspekte sind Funktionalitäten und breit definiert geringen Auswirkungen auf die Anwender. ETA oder die Kosten sind weniger kritisch.

War es hilfreich?

Lösung

Ich baute etwas sehr ähnlich zu diesem letzten Jahr. Ich habe C #. Zunächst nutzte er einen Teil des 3,5 Rahmen, aber ich hatte es zurück an den 2.0-Framework maßstab aufgrund von Beschränkungen Installationsgröße. Es überwacht derzeit etwa 13.000 Maschinen. Sammeln und zurück zu einem Berichtsserver um 3 MB Daten pro Minute gesendet werden.

Die Client-Maschinen reichen von Pentium 4 Boxen mit 256 MB RAM XP auf bis zu 2 GB Dual-Core-Maschinen ausgeführt werden.

Die App I gebaut wurde nicht durch den Endverbraucher, berührt werden, so dass es als eine Kombination aus einem Windows-Dienst ausgeführt wird und ein Browser Helper Object Plug in für den Internet Explorer. Das BHO war notwendig, genau zu erfassen, was im Browser vor sich ging.

Die einzigen wirklichen Herausforderungen waren in so dass es unter XP arbeiten und Vista (alle Service Pack-Level) und in IE 6 und 7 XP und Vista haben Auswirkungen unterschiedliche Sicherheit Rechnung zu tragen; IE 6 und 7 haben auch unterschiedliche Zugriffsmodelle.

Schließlich punted wir mit Firefox oder anderen Browsern auf den Umgang, weil der Kunde gerade nicht darum scherte.

UPDATE

Firefox unterstützt nur Javascript, c ++, und xul zu Code-Erweiterungen in; c # wäre eine vollständige PITA sein. Ich würde wahrscheinlich Javascript versuchen, wenn es tun würde, was ich brauchte, nur weil es einfacher ist.

Soweit Chrome, sie erst vor kurzem begonnen Erweiterungen ( March 19,2009 ). Sie haben die Verknüpfung Starteigenschaften ändern, auch sie laufen zu können. Also, würde ich wahrscheinlich diesen Browser überspringen, bis es ein bisschen reift. Ich stelle mir vor es wird eine Menge von Änderungen sein, wie Plugins für sie im nächsten Jahr gebaut werden.

In Bezug auf die Datenmenge pro Minute, das ist ein Gesamtwert. Jeder einzelne Kunde prüft nur in einmal alle 15 Minuten oder so; oder auf das Netzwerk zu verbinden, wenn getrennt arbeiten. So Individualverkehr ist ziemlich niedrig und hat keine Auswirkungen auf die User Experience.

Firewalls

Der Grund, eine Firewall für uns wirklich nicht ist wichtig, dass die Daten zurück zu unserem Berichtsserver über Port übertragen werden 80 Web-Service. Wenn 80 blockiert ist, dann können sie sowieso nicht sehen, so gibt es nichts zu sammeln ... Soweit Bandbreite begrenzen, was Sie sammeln und übertragen wieder aus. XML mit langen beschreibendes Attribut / Wert-Namen sind nicht dein Freund.

Andere Tipps

Klingt wie C # würde Ihre Bedürfnisse anzupassen, solange es auf einem Windows-Client beschränkt ist.

Qt und C ++ sind gut für die plattformübergreifende Kunden - esp. wenn sie brauchen „Speicher frugal“ in einer Art und Weise zu sein, dass keine Lösung in einem Garbage Collection Sprache (das heißt im Grunde alle anderen ;-) gewöhnlich ist.

Wir brauchen mehr Informationen:

Ist-Zeit ein Problem zu entwickeln? Mit C # können Sie eine solche Anwendung schnell entwickeln; aber es wäre nicht notwendigerweise die gleiche niedrige Niveau Leistung wie C ++. Sie könnten bestimmte Teile in C ++ (die speicherintensiven Bits) und andere in C # entwickeln, aber dann würde Ihre Kunden müssen das .NET Framework installiert ist; nicht zu erwähnen sie die C # Teile ziemlich leicht Reverse-Engineering könnte.

Es ist ein Projekt, Dreieck, und wir müssen wissen, welche beiden wichtigsten sind für Sie:

alt text

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top