Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
UDP Messenger.NET 1.1
MacReeg
myCSharp.de - Member



Dabei seit:
Beiträge: 50

Themenstarter:

UDP Messenger.NET 1.1

beantworten | zitieren | melden

Hallo zusammen !

Hier ein kleines Helferlein im täglichen Büroalltag : UDP Messenger.NET 1.1

Dieses Tool ermöglicht das einfache Versenden von (verschlüsselten) Textnachrichten innerhalb eines Netzwerkes mit gleichem IP-Adressraum (Intranet/Privates Heimnetzwerk) ohne Verwendung einer speziellen Serversoftware.

Screenshot, Demoversion und Installationshinweis unter folgender URL :

http://www.inc-x.de/Downloads.aspx

Für ein paar Feedbacks wäre ich sehr dankbar !

Gruß Ernst
E-Mail : [email protected]
Website : www.inc-x.de
private Nachricht | Beiträge des Benutzers
MacReeg
myCSharp.de - Member



Dabei seit:
Beiträge: 50

Themenstarter:

beantworten | zitieren | melden

Hallo zusammen !

Der UDP Messenger.NET 1.1 hat eine 'klitzekleine' Erweiterung bekommen. So ist es jetzt möglich das Ausgabefenster in seinem Darstellungsverlauf per Mausklick anzuhalten bzw. weiterlaufen zu lassen. Somit kann man nun in aller Ruhe eine längere Message lesen, ohne gleich in Schweiß zu geraten ;-)

Gruß Ernst
E-Mail : [email protected]
Website : www.inc-x.de
private Nachricht | Beiträge des Benutzers
MacReeg
myCSharp.de - Member



Dabei seit:
Beiträge: 50

Themenstarter:

beantworten | zitieren | melden

Hallo zusammen !

Leider habe ich bisher keinen Feedback (positiven wie negativen sind willkommen!) für mein Tool bekommen. Leider ist eine Verbesserung des Programms nur dann möglich, wenn es auch jemanden gibt der es testet und unabhängig vom Programmiererauge Stärken oder Schwächen des Programms aufzeigen kann. Also seid kritisch !!!

Gruß Ernst
E-Mail : [email protected]
Website : www.inc-x.de
private Nachricht | Beiträge des Benutzers
Borg
myCSharp.de - Member



Dabei seit:
Beiträge: 1548
Herkunft: Berlin, Germany

beantworten | zitieren | melden

Sieht ganz nett aus.
Allerdings gibt es mehrere Sachen, die mir aufgefallen sind.

(1)
Auf deiner Website steht:
Zitat
Wenn Sie möchten, dass alle Benutzer Ihres Computers mit einer einzigen User-Liste arbeiten können, dann kopieren Sie den entpackten Ordner 'UDP_Messenger.NET' in das Programmverzeichnis.
...
Möchten Sie für jeden einzelnen Benutzer getrennte User-Listen benutzen, dann sollten Sie den entpackten Ordner in 'Eigene Dateien' des jeweiligen Benutzers kopieren.
Daraus schließe ich, dass dein Programm nicht für mehrere Benutzer und schon gar nicht für das Arbeiten ohne Admin-Rechte programmiert wurde.
Das Programm gehört in den Ordner System.Environment.GetFolderPath( System.Environment.SpecialFolder.ProgramFiles ) + @"\UDP Messenger.NET". In den "Eigenen Dateien" haben keine Programmdateien etwas zu suchen.
Zusätzlich sollte man beim Hinzufügen eines User wählen können, ob diese für alle Benutzer gültig ist (evtl. nur als Admin [bzw. Mitglied einer eigenen Gruppe] zulässig), dann verschlüsselt in System.Environment.GetFolderPath( System.Environment.SpecialFolder.CommonApplicationData ) + @"\UDP Messenger.NET\" speichern, oder nur für den aktuellen Benutzer (speichern in System.Environment.GetFolderPath( System.Environment.SpecialFolder.ApplicationData ) + @"\UDP Messenger.NET\"). Auf keinen Fall jedoch im Programmverzeichnis.
Dann kommt das Programm erstmal mit eingeschränkten Benutzerrechten sowie überhaupt richtig mit mehreren Benutzern klar (ist für mich ein KO-Kriterium).

(2a)
Zur sinnvollen Nutzung des Programmes halte ich es noch für nötig, dass jedes Programm eine verschlüsselte Datei mit allen bislang angetroffenen Usern (mitsamt letzter IP, letztem Port und Passwort) speichert. Jeder User sollte ein Passwort angeben müssen (Authentifikation), so dass man verschiedene Benutzer überhaupt erkennt (Identifikation). Jetzt sollte ein Programm Nachrichten nur dann anzeigen, wenn Benutzername und Passwort übereinstimmen (falls in DB gefunden [IP und Port aktualisieren]) oder beim Benutzer nachfragen, ob der Nutzer aufgenommen werden soll.

(2b)
Ähnlich wie in einem P2P Netzwerk können die Clients ja auch automatisch die ihnen bekannten User austauschen. Dann solltest du die User aber nicht mehr über den Namen identifizieren (GUID). Zusätzlich muss dann halt in der Datei noch gespeichert werden, wie der User zur aktuellen Instanz steht: unbekannt, bekannt, gebannt oder gebannt worden.
Mit ein paar zusätzlichen Informationen im Profil des Users kann man sicherlich auch eine sinnvolle Suche über den Usern implementieren. Diese kann man ja evtl. an bekannte Clients weitergeben.

(3a)
Schön wäre es, wenn zumindest die Trennung in Empfänger und Sender aufgehoben werden könnte. Das kann man doch sicherlich alles in eine Tray-App packen. Gerade in Anbetracht dessen, dass man den Empfänger nur über den Taskmanager beenden kann...

(3b)
Noch dazu, wenn ich sehe, dass die UDP_Library.dll nicht die Sende- und Empfangsfunktionalität kapselt, sondern eine Form beinhaltet, in einer Schleife in einem extra Thread ausschließlich empfängt und mehr Aufwand für die beiden Variablen für die Demo-Version (willst du dein Programm etwas verkaufen?) als für die Absicherung gegen Exceptions betreibt...

(4)
Die Lösung mit den Kommandozeilenargumenten überzeugt mich nicht wirklich. Da kann man dem Programm doch sicherlich einen Optionen-Dialog spendieren. Einen mit den Netzwerkeinstellungen und Autostart-Optionen nur für Benutzer mit Admin-Rechten, einer für benutzerspezifische Einstellungen (Farbe, Passwort, Art und Ort des Popups, evtl. Sound etc.)

(5)
Eine Möglichkeiten, verschiedene Empfangszustände anzugeben, wäre auch sehr praktisch. So gibt es durchaus Szenarien, in denen ich zwar noch Nachrichten empfangen, diese jedoch nicht sofort angezeigt bekommen will, oder ein Störung absolut tabu ist...

(6)
Wenn du UDP verwendest, solltest du dir auch Gedanken über die Übertragungssicherheit machen (Empfangsbestätigung).

(7)
Zusammenfassend muss ich leider sagen, dass dein Programm in der derzeitigen Form für mich nicht verwendbar (oder empfehlbar) ist.
Es weist gravierende Schwächen in der Unterstützung mehrerer Benutzer (noch dazu eingeschränkte), der Sicherheit (Benutzerauthentifikation und -identifikation), dem Klassendesign sowie der Fehlerbehandlung auf.

(8) Solltest du alle Hinweise berücksichtigen und implementieren (insbesondere 2b), dann hast du einen echten P2P IM, der es - wenn jetzt noch die Fähigkeit zum Tunneln von NAT hinzugefügt wird - richtig zu etwas bringen kann.
private Nachricht | Beiträge des Benutzers
MacReeg
myCSharp.de - Member



Dabei seit:
Beiträge: 50

Themenstarter:

beantworten | zitieren | melden

Hallo Borg !

Danke für das sehr umfangreiche und professionelle Feedback. Die Unmengen von Kritikpunkten haben mich anfangs fast 'erschlagen', aber mal sehen was sich machen läßt ! Gerade in der Benutzerverwaltung ist noch einiges geradezurücken. Auch ein anständiges Setup ist natürlich Pflichtprogramm. Danke nochmals für Deinen ausführlichen Test !!!

Gruß Ernst
E-Mail : [email protected]
Website : www.inc-x.de
private Nachricht | Beiträge des Benutzers
VizOne
myCSharp.de - Member

Avatar #avatar-1563.gif


Dabei seit:
Beiträge: 1551

beantworten | zitieren | melden

Hallo,


Ich kann mich den Kritikpunkten von Borg anschließen. Als Entwickler interessieren mich natürlich vor allem auch Interna und das Klassen-Design des Programmes. Und da hat Borg schon Recht - das ist nicht das Wahre. Mein erster Eindruck war: ah, eine UDP_Library.dll, anscheinend hat er das System in sinnvolle Komponenten unterteilt. Allerdings täuschte der erste Eindruck, da in besagter Bibliothek von allem ein bisschen war: ein bisschen Logik, ein bisschen User-Interface. Dafür war die Sende-Logik in UDP_Console.exe. Alles in allem eine wenig nachzuvollziehende Einteilung. Am besten, du setzt dich noch mal an den Zeichenblock (lies: ein UML-Tool o.ä.) und designste das ganze noch mal neu. Die Logik zum Senden und empfangen der Nachrichten sollte vollkommen isoliert vom User-Interface sein.

Deine Idee ist gar nicht so schlecht, da kann man was draus machen. Immer weiter machen

Viele Grüße,
Andre
private Nachricht | Beiträge des Benutzers