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
Eigene Application aus Fremdapplication ansteuern
thomas.at
myCSharp.de - Member



Dabei seit:
Beiträge: 102
Herkunft: Österreich / Wien

Themenstarter:

Eigene Application aus Fremdapplication ansteuern

beantworten | zitieren | melden

Hallo

Ich bräuchte mal einen Denkanstoß. Ich habe eine WPF-Applikation die jetzt mit einer Fremdapplikation via einer API-DLL angesprochen werden soll. Es sollen Daten in meine Applikation übergeben, dort verarbeitet und das Ergebnis wieder zurück geliefert werden. Ich habe jetzt probiert, über WCF aus der API-DLL mit meiner Anwendung zu kommunizieren (diese ist dann der WCF-Host). Hier habe ich aber zwei Probleme :
1. Wenn meine Anwendung nicht gestartet ist funktioniert das natürlich nicht. Die Anwendung kann ich natürlich über einen Prozess starten, aber wie teile ich dann der API-DLL mit, das der Host bereit ist?
2. Wenn die Anwendung läuft, funktioniert die Kommunikation erst mal. Schließe ich die Fremdanwendung aber und starte sie neu, dann kommt in meiner Anwendung nichts mehr an.

Ist hier WCF überhaupt das richtige Mittel oder würdet Ihr das anders lösen? Wenn WCF richtig ist, dann kann ich ja relevante Teile hier posten und auf Eure Hilfe bezüglich der Probleme hoffen.

mfG
Thomas
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15827
Herkunft: BW

beantworten | zitieren | melden

Ich würde hier WCF aus dem Spiel lassen und in Deiner Anwendung lieber eine REST-API anbieten. WCF ist ohnehin obsolete und ist von nicht-.NET Anwendungen nur aufwändig zu verwenden.
Dann fällt auch das Problem mit der offenen Verbindung / dem offenen WCF Kanal weg, da alles über ein verbindungsloses (HTTP) Protokoll ausgetauscht wird.

Dass die API Bereit ist kannst Du in der Form gar nicht mitteilen, wenn es nicht schon einen anderen Mitteilungskanal gibt.
Alternative wäre nur ein Windows-Service, der quasi als Proxy fungiert.
Aber auf der Consumer Seite müsste man ein Timeout / NoResponse ohnehin abfangen - das wäre mir persönlich für den Zweck zuviel Aufwand, der sich eher ned lohnt ;-)
private Nachricht | Beiträge des Benutzers
thomas.at
myCSharp.de - Member



Dabei seit:
Beiträge: 102
Herkunft: Österreich / Wien

Themenstarter:

beantworten | zitieren | melden

Hallo

Danke für die Infos, werde mich mal mit REST beschäftigen.

mfG
Thomas
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15827
Herkunft: BW

beantworten | zitieren | melden

ASP.NET WebAPI ist der REST-Nachfolger für WCF.
WebAPI (oder NancyFX) können auch via Self Hosted in Deiner WPF Anwendung laufen.

Tu nur leuten einen Gefallen und lass den SelfHost nicht auf localhost:80 laufen.
private Nachricht | Beiträge des Benutzers
Coffeebean
myCSharp.de - Team

Avatar #avatar-3295.gif


Dabei seit:
Beiträge: 2459
Herkunft: Deutschland/Schweiz

beantworten | zitieren | melden

Zitat von Abt
Tu nur leuten einen Gefallen und lass den SelfHost nicht auf localhost:80 laufen.

:D
private Nachricht | Beiträge des Benutzers
MarsStein
myCSharp.de - Experte

Avatar #avatar-3191.gif


Dabei seit:
Beiträge: 3430
Herkunft: Trier -> München

beantworten | zitieren | melden

Hallo,

in dem Zusammenhang auch interessant: WCF and ASP.NET Web API

Gruß, MarsStein
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15827
Herkunft: BW

beantworten | zitieren | melden

Da ich nun drei PNs bekommen hab, die sich darauf bezogen, wieso ich WCF obsolete nenne:

WCF in der heutigen Form hat keine Basis mehr, die für die Zukunft geeignet ist.
Warum ist sie das nicht: alle Microsoft-Technologien fokussieren sich Richtung x-plat (Windows, Linux, Mac) - und das geht mit WCF in der heutigen Form nicht.
Von der sehr komplexen Konfiguration mal ganz zu schweigen.

Zudem haben einige Technologien (WCF ist ein superset) von WCF bereits bessere Alternativen gefunden;zB die WebAPI für REST.
Andere Dinge - wie bi-direktionale Kommunikation mit zB. MTOM Encoding - ist WCF aktuell noch sehr alleine da.

Meine persönliche Vermutung - und ich habe hier keine näheren Informationen - ist, dass WCF ein Nachfolger bekommen wird. Wenn wir Glück haben, dann wie KESTREL basierend auf libuv.
Ob dieser WCF heisst, WCF Core 1 oder einen völlig anderen Namen bekommt: keine Ahnung. Ob es ihn wirklich geben wird: auch keine Ahnung.
Ich will hier auch keine Spekulation starten aber rein technologisch ist WCF einfach alt und *braucht* dringend einen Nachfolger / Alternativen.

Wenn man aber nicht unbedingt irgendwelchen exklusiven WCF Features braucht; mein Rat: sucht Alternativen. Nehmt Alternativen.
Für REST eben die WebAPI oder NancyFX.

WCF wird in meiner Begrifflichkeit jedoch weiterhin als obsolete betitelt - als "tot" werde ich WCF aber solange nicht nennen, bis dieser Zustand auch dann wirklich eingetreten ist.
private Nachricht | Beiträge des Benutzers