.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