Laden...

Kommunikation zwischen dienst und Interface

Erstellt von Grimmbizkit vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.153 Views
G
Grimmbizkit Themenstarter:in
308 Beiträge seit 2006
vor 15 Jahren
Kommunikation zwischen dienst und Interface

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

3.971 Beiträge seit 2006
vor 15 Jahren

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...

G
Grimmbizkit Themenstarter:in
308 Beiträge seit 2006
vor 15 Jahren

Was ist WCF und Remoting?

es handel nur um eine reine Status abfrage, also keine Sicherheitsrelevanten daten

Gelöschter Account
vor 15 Jahren

dann nimm remoting, da das mit nur wenigen zeilen code und recht schnell geht.

wie das geht erfährst du auf der msdn seite oder über google. da findet man ausreichend beispiele und tutorials. wenn dann ncoh ein konkretes problem auftritt kannst du gerne fragen.

G
Grimmbizkit Themenstarter:in
308 Beiträge seit 2006
vor 15 Jahren

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.

Gelöschter Account
vor 15 Jahren

ja, wobei dann eventuell doch wcf das bessere wäre, da es bei remoting etwas umständlicher ist, clients zu benachrichtigen, das sie neue daten haben.

G
Grimmbizkit Themenstarter:in
308 Beiträge seit 2006
vor 15 Jahren

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

2.187 Beiträge seit 2005
vor 15 Jahren

Hi,

Deine Beschreibung hört sich nach folgender Komponente an:
Remoting-Helfer

Gruß
Juy Juka

Gelöschter Account
vor 15 Jahren

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 ^^

G
Grimmbizkit Themenstarter:in
308 Beiträge seit 2006
vor 15 Jahren

Aber dort ist der Server der jenige, der die Daten empfängt, ich brauche das aber anders herum. oder geht das damit auch?

Gelöschter Account
vor 15 Jahren

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.

G
Grimmbizkit Themenstarter:in
308 Beiträge seit 2006
vor 15 Jahren

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

1.200 Beiträge seit 2007
vor 15 Jahren

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!

3.971 Beiträge seit 2006
vor 15 Jahren

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...