Ich versuche eine sehr einfache WCF-Anwendung zu entwickeln. Der WCF-Server befindet sich auf einem Windows 10-Computer, und ich möchte diesen Dienst mit einer WPF-Anwendung auf einem Windows 10-Computer nutzen. Außerdem möchte ich eine andere Anwendung für Android mit Xamarin haben.

In Visual Studio sehe ich, dass ich eine Net Core-Bibliothek erstellen kann und dass Net Core mit WCF kompatibel ist. Ich kann in diesem Web sehen.

Ich weiß auch, dass Net Core unter Windows, Linux und Mac ausgeführt werden kann. Ich frage mich also, ob ich eine Net Core Library entwickeln könnte, um den Client zu entwickeln, damit ich sie in meinen WPF- und Android-Anwendungen verwenden kann.

Ich bezweifle, dass beim Hinzufügen einer Referenz in meiner WPF-Anwendung zum Net Core-Bibliotheksprojekt ein gelbes Dreieck und eine Warnung angezeigt werden. Daher kann WPF die Net Core-Bibliothek vermutlich nicht verwenden.

Daher dachte ich, dass ich für die WCF-Ebene möglicherweise ein Net Standard-Projekt erstellen müsste, das von der WPF-Anwendung und der Android-Anwendung verwendet werden kann. Ich würde jedoch gerne wissen, ob dies der einzigartige Weg ist oder ob es eine Möglichkeit gibt, dass eine WPF-Anwendung eine Net Core-Bibliothek verwenden kann, ohne ein mittleres Projekt wie Net Standard verwenden zu müssen.

Für den Server habe ich überlegt, auch Net Core zu verwenden, da dieses Projekt von keinem anderen Projekt referenziert wird und Net Core in Windows verwendet werden kann.

1
Álvaro García 20 Jän. 2019 im 19:25

3 Antworten

Beste Antwort

Nun, Sie sollten eine .Net-Standardklassenbibliothek erstellen (also nicht .Net Core), dort Ihren clientseitigen WCF-Code eingeben und auf ihn aus einem .Net Core- oder .Net Full-Projekt verweisen . Eine .Net Standard Class Library bietet Ihnen die größte Flexibilität, sodass dies der empfohlene Projekttyp für gemeinsam genutzte Bibliotheken ist.

Gemäß den Dokumenten, siehe letzte Zeile müssen Sie .Net Full für die Serverseite verwenden:

WCF-Dienstanwendungen sollten weiterhin mit der vollständigen .NET Framework-Version erstellt werden.

4
Peter Bons 20 Jän. 2019 im 21:26

Ich würde jedoch gerne wissen, ob dies der einzigartige Weg ist oder ob es eine Möglichkeit gibt, dass eine WPF-Anwendung eine Net Core-Bibliothek verwenden kann, ohne ein mittleres Projekt wie Net Standard verwenden zu müssen.

Nein. Eine WPF-Anwendung, die auf .NET Framework abzielt, kann nicht auf ein .NET Core-Projekt verweisen.

.NET Core 3, das sich derzeit in Vorschau befindet, unterstützt jedoch WPF, das bedeutet, dass Sie in einer WPF-Anwendung, die auf .NET Core abzielt, auf ein .NET Core-Projekt verweisen können. Eine Anwendung, die auf .NET Framework abzielt, kann jedoch nicht auf eine Bibliothek verweisen, die auf .NET Core abzielt und umgekehrt.

Sie sollten es vorziehen, .NET Standard in Ihren Klassenbibliotheksprojekten als Ziel festzulegen, da diese dann von Anwendungen verwendet werden können, die entweder auf .NET Framework oder .NET Core abzielen.

2
mm8 21 Jän. 2019 im 10:37

WPF / Winforms-Anwendungen werden auf der .Net Core-Plattform noch nicht unterstützt.

Anwesend:

Mit noch meine ich .Net Core 2.x-Versionen.

Wenn Ihre Anwendung NICHT auf dem 2.x-Standard des .net-Kerns basiert, können Sie NICHT auf die .net-Kernbaugruppe verweisen.

Zukunft:

. Net Core 3-Vorschau ist verfügbar und Winforms / WPF-Anwendungen sind jetzt auf der .Net Core-Plattform verfügbar.

Hoffe das hilft.

0
Manoj Choudhari 20 Jän. 2019 im 22:45