.Net Core Migrations-Leitfaden

Das pdfEngine SDK v12 enthält die neue callas .Net Core Sprachbindung, welche die bestehende callas .Net Framework Sprachbindung ersetzt. Sie ist verfügbar für mehrere Platformen (Windows, Linux, MacOS).

Dieser Migrations-Leitfaden soll Kunden unterstützen, die bereits vorhandene Anwendungen benutzen, entwickelt mit dem nun obsolete gewordene callas .Net Framework.

Die callas .Net Core Sprachbindung ist nicht kompatiblel mit der callas .Net Framework Sprachbindung.

callas .Net Framework Sprachbindung

Das callas .Net Framework Sprachbindungs-Assembly ist weiterhin verfügbar innerhalb des var/legacy Unterverzeichnisses vom Engine SDK. Doch wird es nicht weiter gepflegt  und enthält eine Altschnittstelle.

Assembly

  • pdfEngineDotNet.dll

Für vorhandene .Net Framework Anwendungen muss die var/legacy/pdfEngineDotNet.dll Assembly in das oberste Hauptverzeichnis kopiert werden.

Die folgenden Beispielprogramme wurden entfernt:

  • pdfaPilotDotNetSample.exe

  • pdfaPilotDotNetSampleThreadSafe.exe

  • pdfToolboxDotNetSample.exe

  • pdfToolboxDotNetSampleThreadSafe.exe

  • sample-DotNet  (dieses Verzeichnis enthält den Beispiel-Quellcode)

callas .Net Core Sprachbindung

Assembly

  • EngineDotNetCore.dll
  • EngineDotNetCore.deps.json
  • EngineDotNetCore.xml

Dieses Assembly (und seine weiteren Dateien) verbleiben im obersten Hauptverzeichnis (unter Windows und MacOS) oder in dem lib Unverzeichnis (auf Linux).

Die folgenden Beispielprogramme wurden hinzugefügt:

  • sample-DotNetCore/pdfToolboxSampleDotNetCore

  • sample-DotNetCore/pdfaPilotSampleDotNetCore

  • sample-DotNetCore/src (the directory containing the sample source code)

Zusätzlich gibt es eine sample-DotNetCore/Readme.txt welche weitere Informationen zur Verwendung und Bauanleitungen enthält.

Hauptunterschiede

Namespace

Der Namespace hat sich geändert von CallasSoftware.PDFEngine nach CallasSoftware.PDFEngineCore.

Namenskonventionen

Das PTB_ prefix wurde entfernt von allen API-Funktionen, Strukturen und Enum-Typen. Zusätzlich wurden einige API-Funktionen umbenannt, z.B. PTB_LanguageEnum nach EnumerateLanguages.

Im Allgemeinen folgen die neuen API-Funktionen einem Verb<Etwas> Muster.

Callbacks

API-Funktionen mit Callbacks haben keinen entsprechenden userData-Parameter mehr. Alle Benutzerdaten müssen mit Lambdas übergeben werden

Migrations-Beispiel

Als Beispiel wird der ursprungliche PTB_ListLanguages API call verwendet um zu demontrieren wie es migriert werden kann zum Neuen EnumerateLanguages API call.

.Net Framework

        public static Boolean listLangCB (TStringID idLang, IntPtr userData) {
            Console.WriteLine ("Lang: " + getString (idLang));
            return true;
        }


        private static CError.PTB_EError doEnumerateLanguages () {
            CLib.PTB_LanguageCB_Net cbLang = new CLib.PTB_LanguageCB_Net (listLangCB);
            CLib.PTB_LanguageEnum (cbLang, IntPtr.Zero);
            return CError.PTB_EError.PTB_eerrNone;
        }

.Net Core

        EError DoEnumerateLanguages()
        {
            LanguageCB cb = (StringID id) =>
            {
                Console.WriteLine("Lang: " + GetString(id));
                return true;
            };
            EnumerateLanguages(cb);
            return EError.None;
        }

IDE-Benutzer

Die callas .Net Core Sprachbindung ist nicht weiter kompatibel mit Visual Studio 2017. Mindestens Visual Studio 2019 (oder höher) wird daher vorausgesetzt zum Entwickeln unter Visual Studio.

Eine weitere mögliche Alternative ist das OpenSource Visual Studio Code IDE.

Zusammenfassung

Da die .Net Framework Sprachbindung Assembly weiterhin enthalten ist im Installationspackage existieren zwei alternative Upgrade Pfade für vorhandene .Net Framework Anwendungen beim Benutzen von pdfEngine SDK v12:

  • migrieren zur neuen API (empfohlen)

  • weiterhin verwenden der legacy API