Morgen zusammen,
ich habe mal eine kleine Frage (Umfrage).
Wie kann ich am besten ein kommunikation zwischen einem Dienst und einer Anwendung machen?
Ich habe einen Dienst programmiert, und jetzt möchte ich für den bediener (auch mehrere) eine Oberfläche schaffen, mit der sie den aktuellen Status des dienstes beobachten können, oder eventuelle Fehler (Exceptions) sehen können.
Hatte zwar schon mal an Socket gedacht, doch finde ich das etwas zu umständlich für so eine "kleine" Sache.
Gruß Simon
Es gibt 3 Möglichkeiten:*native Socketverbindung *WCF *Remoting
Die Wahl sollte aber zwischen WCF und Remoting tendieren. Remoting funktioniert nur im lokalen privaten Netz und sollte nicht in sicherheitskritischen Bereichen eingesetzt werden
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...
Was ist WCF und Remoting?
es handel nur um eine reine Status abfrage, also keine Sicherheitsrelevanten daten
Kann ich denn auch mit dem Remoting das so realisieren, das ich einen Server (versendet Daten) habe und mehrere Clients (sagen wir mal 5) die dann alle gleichzeitig die Daten empfangen, aber nur die aktuellen, es sollen keine Daten gespeichert werden etc. Nur wenn der Client verbunden ist, dann sollen daten empfangen werden.
Habe mal im Internet ein bischen nach WCF gesucht, das ist so wie ich das gesehen habe nur für Net 3.0. Will das aber mit 2.0 machen.
Zudem muss ich, wie ich das in den Beispielen gesehen habe, dann immer so eine Konfig DAtei anlegen. Das möchte ich aber nicht.
Ich will mit im Grunde eine DLL bauen, mit den beiden KLassen für Client und Server.
In meinen Programm erstelle ich dann ein neues Objekt davon (je nachdem welches ich brauche) und gebe nur noch IP und Port an.
Gruß Simon
dann nimm remoting. das geht unter 2.0
und das kann man auch komplett ohne config datei parametrisieren. evtl wäre da Remoting-Helfer für dich interessant. zumindest vom quellcode her auf jeden fall.
edit: da war wer schneller ^^
Aber dort ist der Server der jenige, der die Daten empfängt, ich brauche das aber anders herum. oder geht das damit auch?
ja das wird jetzt komplizierter. deswegen habe ich dir erstmal wcf empfohlen.
also:
du kannst spezielle events erstllen, damit die clients bescheid bekommen, das auf dem server neue daten liegen. aber das anze ist ein wenig .. ungewöhnlich. du musst das mit serverseitigen objekten lösen.
Glaube dann mache ich das Ganze doch per Socket programmierung.
Habe dazu ein beispiel gefunden, wo der Server jede Sekunde eine Uhrzeit an jeden Client schickt.
Das ist glaube ich einfacher als das WCF und Remoting
Dann nimm aber die Framework-Klassen TCPListener und TCPClient.
Shift to the left, shift to the right!
Pop up, push down, byte, byte, byte!
YARRRRRR!
Ich würde dennoch dir WCF empfehlen, da es einfach eine tolle leicht zu implementierende Sache ist. Bei WCF findest du auch mittlerweile viele tolle Beispiele.
Native Socketprogrammierung ist hingegen immer sehr fehleranfällig und dauert länger als das Entwerfen der Contracts bei WCF
Als gute Beispiele wären wohl (immernoch) noch die Chat-Anwendungen zu nennen: http://msdn.microsoft.com/de-de/library/bb690929.aspx oder http://www.codeproject.com/KB/WCF/WCFWPFChat.aspx
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...