Wer wünscht sich nicht bereits bei der Entwicklung auf Inkompatibilitäten der Plattformen hingewiesen zu werden. Der API Analyzer hilft dabei.

.NET Core/Standard kommt häufig zum Einsatz, wenn die Software nicht nur unter Windows, sondern auch unter Linux oder macOS laufen soll. Bei der Entwicklung auf einem Windows-Gerät fällt die Verwendung einer problematischen API jedoch nicht auf. Eine Library hilft uns Entwickler dabei.

Der Platform Compatibility Analyzer lässt sich einfach als NuGet-Paket einbinden und nimmt sofort seine Arbeit auf. Sämtliche gefunden Probleme werden entweder über das Glühbirnen-Symbol dargestellt, oder erscheinen in der Fehlerliste (die Einstufung ob Warning, Error etc. kann in den Einstellungen angepasst werden).

Welche Prüfungen finden statt?

Folgende Plattform-Prüfungen werden aktuell abgedeckt:

  • Prüfung 1: Die verwendete .NET Core oder .NET Standard API wirft eine PlatformNotSupportedException. Dabei wird ersichtlich, auf welcher Plattform dieser API nicht verfügbar ist.
  • Prüfung 2: Laut NuGet implementiert .NET Framework 4.6.1 den .NET Standard 2.0. Dies ist allerdings nicht korrekt. Bei dieser Meldung wird eine API verwendet, die im .NET Framework 4.6.1 nicht unterstützt wird.
  • Prüfung 3: Verwendung einer nicht unterstützten nativen API in einer .NET Standard/UWP-Anwendung.

Zusätzlich wird auf Verwendung von obsoleten API-Aufrufen untersucht. Zum aktuellen Zeitpunkt werden die nachfolgenden Verwendungen markiert:

Sollte ich diesen Analyzer verwenden?

Besteht die Chance, dass die Software auf einer anderen Plattform eingesetzt wird, empfehle ich den Einsatz des API Analyzer unbedingt. So werden bereits zur Entwicklung Problemstellen identifiziert und können sofort behoben werden. Etwaige Inkompatibilitäten erst bei Testläufen zu finden, kann große Umstellungen und somit hohe Kosten bedeuten.

Wer die Plattformprüfung auf spezifische Plattformen einschränken möchte, kann auszulassende Plattformen im Projektfile konfigurieren:

<PropertyGroup>
    <PlatformCompatIgnore>Linux;MacOSX</PlatformCompatIgnore>
</PropertyGroup>

Happy Coding!

Über den Autor

Norbert Eder

Ich bin ein leidenschaftlicher Softwareentwickler und Fotograf. Mein Wissen und meine Gedanken teile ich nicht nur hier im Blog, sondern auch in Fachartikeln und Büchern.

Cookie-Einstellungen
Auf dieser Website werden Cookie verwendet. Diese werden für den Betrieb der Website benötigt oder helfen uns dabei, die Website zu verbessern.
Alle Cookies zulassen
Auswahl speichern
Individuelle Einstellungen
Individuelle Einstellungen
Dies ist eine Übersicht aller Cookies, die auf der Website verwendet werden. Sie haben die Möglichkeit, individuelle Cookie-Einstellungen vorzunehmen. Geben Sie einzelnen Cookies oder ganzen Gruppen Ihre Einwilligung. Essentielle Cookies lassen sich nicht deaktivieren.
Speichern
Abbrechen
Essenziell (1)
Essenzielle Cookies werden für die grundlegende Funktionalität der Website benötigt.
Cookies anzeigen