Skip to main content

Universal Code Compliance-Erklärung

Für Microsoft Dynamics 365 Business Central Partner, die DEXPRO Apps vertreiben

Dokumentversion: 1.01 · Stand der letzten Prüfung: 29.30. Juli 2026 · Herausgeber: DEXPRO Solutions GmbH


1. Zusammenfassung

Alle sechs DEXPRO Apps für Microsoft Dynamics 365 Business Central sinderfüllen die Definition von vollständig konform mit der Microsoft Universal Code Initiative.nach Microsoft: Jede App ist als cloud-optimierte Erweiterungwird mit "target": "Cloud" entwickeltkompiliert, und enthältkeine App verändert die Basisanwendung. Nachgewiesen wurde dies durch Kompilierung jeder App gegen das Cloud-Target — siehe Abschnitt 5.

Bitte lesen Sie Abschnitt 6, bevor Sie einem Kunden Zusagen machen. Microsoft bewertet die Universal-Code-Konformität über den gesamten Code der Business Central Lizenz des Kunden hinweg, nicht pro App. Die Konformität von DEXPRO bedeutet, dass keine DEXPRO App eine Lizenzpflicht für nicht-Universal-Code auslöst. Sie garantiert jedoch nicht von sich aus, dass für einen konkreten Kunden keine Gebühren anfallen — dessen eigene Per-Tenant-Extensions und Apps anderer Hersteller werden ebenfalls bewertet.


2. Was Universal Code bedeutet (Definition von Microsoft)

Die FAQ von Microsoft zur Business Central Universal Code Initiative definiert die Begriffe wörtlich wie folgt (englisches Original):

Universal Code: Extensions which are compiled with "target": "Cloud" in the app.json.

Non-Universal Code: Extensions which are compiled with target other than "target": "Cloud" in the app.json, and any solutions/customizations which modify the base application.

Übersetzt: Universal Code sind Erweiterungen, die mit "target": "Cloud" in der app.json kompiliert werden. Nicht-Universal-Code sind Erweiterungen, die mit einem anderen Target kompiliert werden, sowie alle Lösungen und Anpassungen, die die Basisanwendung verändern.

Die gleiche FAQ beschreibt den Zweck allgemeiner: „Universal Code refers to partner code isolated in cloud-optimized extensions for Dynamics 365 Business Central so it can be implemented on-premises or online."

Daraus folgen zwei für DEXPRO maßgebliche Punkte:

  1. Technisch entscheidend ist die Eigenschaft target, durchgesetzt durch den AL-Compiler. Mit "target": "Cloud" weist der Compiler .NET-Interoperabilität, keineScope('OnPrem')-Member, VerwendungOnPrem-beschränkte Tabellen und jede weitere API außerhalb der cloud-unterstützten Oberfläche ab.
  2. Eine Veränderung der Basisanwendung ist unabhängig vom Target disqualifizierend. DEXPRO liefert ausschließlich AL-Erweiterungsobjekte aus und kann die Basisanwendung daher nicht verändern.

Microsoft bestätigt außerdem: „When you have successfully published your app on AppSource, your code is already Universal Code." Eine AppSource-Veröffentlichung ist jedoch nicht erforderlich, um Universal Code zu sein: „As long as all apps used by a customer are implemented as Universal Code (cloud-optimized extensions), these modules and associated fees are not required."

Geltungsbereich von OnPrem-beschränktenUniversal APIsCode

und keine sonstigen Konstrukte, die den

Universal Code alsist „nichtein cloud-optimiert" einstufen würden.

Was dasLizenzkonstrukt für Sie als Partner bedeutet:On-Premises-Installationen Der Einsatz von DEXPROBusiness AppsCentral. — sowohl inIn Business Central online (SaaS) alsstellt auchsich On-Premisesdie Frage löstnicht: nichtSaaS dasakzeptiert kostenpflichtigeausschließlich Microsoft-Lizenzmodulcloud-optimierte „ImplementierterErweiterungen, sodass jede in SaaS installierbare App per Definition Universal Code istist. nichtDie cloud-optimiert"in aus.Abschnitt Für7 Ihrebeschriebenen Kundenkostenpflichtigen entstehenModule durchexistieren keineausschließlich DEXPROfür App Universal-Code-Zusatzkosten.On-Premises-Lizenzen.


2.3. Prüfungsumfang

App Geprüfte Version App-ID
DEXPRO Core 3.11.0.0 9762f101-ae8a-4a0e-be42-66ec871d1ca0
DEXPRO SQUEEZE 2.49.0.0 368db399-65f5-4250-9afd-b2a67a49e809
DEXPRO Breeze Interface 1.30.0.0 7c431886-108e-44c3-9328-30e2b93edfa6
DEXPRO Advanced Workflow 1.12.0.0 11a79c49-1645-4cf9-9b27-3d2eaafcf9f4
DEXPRO Freeze 1.29.0.0 b9c8c9cc-8cd1-41cc-bf86-7da37ac74c71
DEXPRO eInvoice Sender 2.0.1.0 37f06ebc-53f0-4d9c-9572-7229113363f9

DEXPRO Core ist eine erforderliche Abhängigkeit der übrigen fünf Apps. Es bestehen keine Abhängigkeiten zu Drittanbieter-Apps — der Abhängigkeitsgraph umfasst ausschließlich Microsoft Base-/System-Applications und DEXPRO Core. Somit kann über eine DEXPRO App keine externe Komponente eine Non-Compliance in Ihre Installation einbringen.


3. Anforderungen der Universal Code Initiative

Die Universal Code Initiative gilt seit Business Central 2022 Release Wave 2 (Oktober 2022). Sie verlangt, dass Anpassungen als Erweiterungen (Extensions) ausgeliefert werden und der Erweiterungscode cloud-optimiert ist, d. h. derselbe Code läuft unverändert in Business Central online und On-Premises. Änderungen an der Microsoft-Basisanwendung sind nicht zulässig.

Technisch maßgeblich ist die Eigenschaft target in der app.json. Mit "target": "Cloud" weist der AL-Compiler alles ab, was außerhalb der cloud-unterstützten API-Oberfläche liegt. Code, der nur mit "target": "OnPrem" kompilierbar ist, verpflichtet den Kunden zur Lizenzierung des kostenpflichtigen Moduls „Implementierter Code ist nicht cloud-optimiert".


4. Prüfmethodik

Die Konformität wurde nicht allein anhand der Manifest-Dateien beurteilt.beurteilt:

  1. Kompilierung gegen das Cloud-Target. Jede App wurde mit dem AL-Compiler (alc.exe, AL Language Extension 17.0) gegen dasihr deklariertes Cloud-Target kompiliert,kompiliert, einschließlichmit aktiviertem AppSourceCop-Analyzer und dem jeweiligen Ruleset des AppSourceCop-Analyzers, unter Verwendung der Business Central Plattform-Pakete 28.3.Repositories. Der Compiler ist die maßgebliche Instanz für die Universal-Code-Konformität:Instanz: Jedes ausschließlich OnPrem verfügbare Konstrukt führt unter "target": "Cloud" zu einem harten Kompilierfehler.

    ZusätzlichAlle sechs Builds erzeugten ein gültiges .app-Artefakt, was bestätigt, dass die Builds vollständig durchliefen und nicht vorzeitig abbrachen.

  2. Prüfung des kompilierten Artefakts. Das im erzeugten .app-Paket eingebettete Manifest wurde zurückgelesen. Alle sechs Pakete tragen im ausgelieferten Binärartefakt Target="Cloud"Runtime="14.0"Application="25.0.0.0" und ShowMyCode="False" — ein Nachweis am Auslieferungsgegenstand selbst, nicht an der Quellkonfiguration.
  3. Quellcode-Prüfung. Der gesamte AL-Quellcode aller sechs Apps (887 QuelldateienDateien unter app/) wurde auf die in Abschnitt 55.2 aufgeführtengenannten disqualifizierenden Muster hinKonstrukte untersucht.

Die Apps deklarieren eine Mindest-Application-Version von 25.0.0.0. Die zum Prüfzeitpunkt in den Repositories verfügbaren Symbolpakete reichten je Repository von Business Central 27.3 bis 28.3; damit ist zusätzlich belegt, dass die Apps gegen aktuelle BC-Symbole kompilieren.


5. Ergebnisse

5.1 Kompilierung gegen das Cloud-Target

App target Cloud-Kompilierung Target im ArtefaktBlockierende Feststellungen
DEXPRO Core Cloud 0 Fehler Cloudkeine
DEXPRO SQUEEZE Cloud 0 FehlerCloud keine
DEXPRO Breeze Interface Cloud 0 Fehler Cloudkeine
DEXPRO Advanced Workflow Cloud 0 FehlerCloud keine
DEXPRO Freeze Cloud 0 Fehler Cloudkeine
DEXPRO eInvoice Sender Cloud 0 FehlerCloud keine

5.2 Quellcode-Prüfung auf nicht-cloudfähige Konstrukte

Über alle 887 AL-Dateien hinweg sind die folgenden Werte in jeder App gleich null:

Disqualifizierendes Konstrukt Vorkommen
dotnet-Blöcke / Assembly-Referenzen 0
Codeunit … Subtype = DotNet 0
[Scope('OnPrem')]-Attribute 0
Tabellen oder Methoden mit Scope = OnPrem 0
COM- / Automation-Variablen 0
SHELL() / Aufruf externer Prozesse 0
Direkter Dateisystemzugriff (Datentyp File) 0
.dll-Assemblies oder .netpackages im Repository0
Änderungen an der Basisanwendung0 (strukturell unmöglich — nur Erweiterungsobjekte)
Abhängigkeiten zu Drittanbieter-Apps 0

5.3 Cloud-konforme Implementierungsmuster

Die Apps verwenden durchgängig die cloud-zulässigen AL-Alternativen:

  • Ausgehende HTTP-Aufrufe nutzen die AL-eigenen Typen HttpClient / HttpRequestMessage, (nichtniemals .NET WebRequest). AlleDies Webservice-Aufrufe inbetrifft Core (WebRequestMgtOAuth2MgtOpenIDMgt), SQUEEZE, Freeze, Advanced Workflow und eInvoice Sender folgen diesem Muster.Sender.
  • Umgang mit Geheimnissen erfolgt über IsolatedStorage für Token und Zugangsdaten (Core, SQUEEZE) — nie über Klartext-Tabellenfelder oder Dateien.
  • Dateiverarbeitung nutzt die Microsoft-Standard-Codeunit "File Management" (BLOBExportGetExtensionGetFileNameMimeType) in Verbindung mit TempBlob / InStream / OutStream. — diesDies ist die cloud-unterstützte API, kein OnPrem-Dateizugriff.
  • UI-Erweiterbarkeit erfolgt über JavaScript/HTML Control Add-ins (Dokumentenviewer, Drag & Drop, Workflow-Visualisierung). Alle der11 cloud-unterstützteControl Erweiterungsweg.Add-ins sind skriptbasiert; keines referenziert eine .NET-Assembly.
  • Authentifizierung erfolgt über OAuth2 / OpenID Connect auf Basis der Standardplattform.

5.4 Weitere Plattform- und Marketplace-Merkmale

Merkmal Status in allen sechs Apps
Runtime-Version 14.0
Application (Mindest-BC-Version) 25.0.0.0
target Cloud
resourceExposurePolicy allowDebugging: falseallowDownloadingSource: false
propagateDependencies true
Features TranslationFileNoImplicitWith
Objekt-Präfix (AppSourceCop-Affix) DXP (reserviert)
Unterstützte Sprachen de-DE, en-US
Datenschutzerklärung / EULA / Hilfe-URLs vorhanden
Telemetrie Application Insights (partnerseitig konfigurierbar)

Jede App liefert eigene Berechtigungssätze für die rollenbasierte Zugriffssteuerung, beispielsweise DXP CORE Admin / DXP CORE UserDXP SQUEEZE Admin / DXP SQUEEZE UserDXP Breeze IF Admin / DXP Breeze IF UserDXP AWF Admin / DXP AWF UserDXP Freeze Admin / DXP Freeze User sowie DXP eInvoice Admin / DXP eInvoice Support / DXP eInvoice User.


6. HinweiseWas diese Erklärung abdeckt — und was nicht

Abgedeckt. Jede in Abschnitt 3 genannte DEXPRO App ist in der genannten Version Universal Code. Keine DEXPRO App löst für Ihren Kunden eine Lizenzpflicht für nicht-Universal-Code aus.

Nicht abgedeckt. Microsoft bewertet die Installation des Kunden als Ganzes. Die FAQ beantwortet die Frage „How can a customer avoid the fees?" mit: „Ensure that all code implemented on license [is] cloud-optimized extensions." Die Gebühr „applies to code modifications associated with both repeatable solutions (ISV apps) and individual customer modifications (PTEs)."

Ein Kunde, der DEXPRO Apps einsetzt, kann daher weiterhin die kostenpflichtigen Module benötigen, wenn irgendein anderer Bestandteil seiner Installation nicht Universal Code ist, zum RolloutBeispiel:

  • eine für diesen Kunden erstellte Per-Tenant-Extension (PTE) mit "target": "OnPrem",
  • eine nicht cloud-optimierte App eines anderen Herstellers,
  • eine noch vorhandene Änderung an der Basisanwendung.

Prüfen Sie bei der Kundenberatung jede App und Anpassung auf der Lizenz des Kunden. Diese Erklärung deckt ausschließlich die DEXPRO Komponenten ab.


7. Lizenzrechtliche Folgen und Rollout-Hinweise

Lizenzrechtlicher Hintergrund (On-Premises)

Für Kunden mit einer On-Premises-Lizenz von Business Central erfordert nicht-Universal-Code eines oder beide der folgenden kostenpflichtigen Module:

ModulErforderlich, wenn
Implemented code is not in extensionsDie Basisanwendung verändert wird
Implemented code is not cloud-optimizedDer gesamte Code liegt in Erweiterungen, aber mindestens eine Erweiterung ist nicht cloudfähig

Gemäß der Microsoft-FAQ gilt:

  • Ausnahme nach Datum. On-Premises-Installationen von Business Central mit einem First Registration Date vor dem 3. Oktober 2022 im PartnerSource Business Center benötigen diese Module und Gebühren nicht. Kunden, die BC On-Premises am oder nach diesem Datum lizenzieren — einschließlich über einen Transition-Auftrag aus NAV/GP/SL — benötigen sie, sofern nicht-Universal-Code eingesetzt wird.
  • Gebührenbasis. Die Module müssen „at a quantity equal to the number of full users (Premium or Essentials) in the Business Central on-premises license" lizenziert werden; die Gebühren sind proportional zur Anzahl der Full User. Bei perpetuellen Lizenzen erscheinen sie im Angebot zur Verlängerung des Enhancement Plans und werden zum Jahrestag des Enhancement Plans abgerechnet; bei Subscription-Lizenzen werden sie monatlich dem Partner of Record in Rechnung gestellt.
  • Technische Durchsetzung. Die Durchsetzung ist nicht nur vertraglich. Microsoft führt aus: „For Business Central on-premises customer licenses registered after October 3, 2022, you will be unable to start sessions running code that modifies the base application or is targeted for on-premises without licenses for the required modules." Da alle DEXPRO Apps Universal Code sind, verursachen sie keine solche Sitzungsblockade.

Die aktuellen Modulpreise werden hier nicht wiedergegeben; bitte entnehmen Sie diese dem PartnerSource Business Center oder Ihrem Microsoft Regional Operations Center, da sich Gebührenmodelle ändern.

Rollout-Hinweise

  • Business Central online (SaaS): Alle Apps lassen sich ohne Universal-Code-EinschränkungImplikationen installieren.
  • On-Premises / Hybrid: Alle Apps werden als cloud-optimierte Erweiterungen installiert.installiert Fürund keineerfordern DEXPROaus Appeigenem istAnlass einkein kostenpflichtiges Modul für nicht cloud-optimierten Code erforderlich.Code. Zu beachten ist, dass ausgehende HTTP-Aufrufe von Erweiterungen in der On-Premises- Serverkonfiguration freigegeben sein müssen (Allow HttpClient Requests an der Erweiterung). Dies ist eine übliche administrative Einstellung und kein Compliance-Thema.
  • Upgrade-Sicherheit: DEXPRO verfolgt eine strikte Obsoletion-Richtlinie. Öffentliche Prozeduren, Tabellenfelder, Enum-Werte, Events und Interface-Methoden werden mit ObsoleteState = Pending, einer benannten Ersatzlösung und einem Versions-Tag gekennzeichnet —gekennzeichnet; sie werden nie ohne Vorankündigung entfernt. Im Build-Log sichtbare Deprecation-Warnungen sind beabsichtigt und stellen keinenkeine KonformitätsmangelKonformitätsmängel dar.
  • Mindestplattform: Business Central 25.0 oder höher ist erforderlich.höher.

7.8. Pflege dieser Erklärung

Die Universal-Code-Konformität wird imbei Rahmenjedem desRelease DEXPROder Build-ProzessesApp-Familie geprüft;erneut geprüft, indem jede App wird mit aktiviertem AppSourceCop-Analyzer gegen das Cloud-Target kompiliert.kompiliert wird. Die Empfehlung von Microsoft an Partner lautet, „set the "target": "Cloud" in the app.json, and enable PerTenantExtensionCop and/or AppSourceCop" — DEXPRO folgt dieser Praxis.

Diese Erklärung wirdbezieht beisich jedemauf Majordie Releasein derAbschnitt 3 genannten App-FamilieVersionen. überprüft.Fordern Sie eine aktualisierte Erklärung an, wenn Sie neuere Versionen vertreiben.

Bei technischen Fragen zu dieser Erklärung wenden Sie sich bitte an die DEXPRO Solutions GmbH unter https://www.dexpro.de/.


8.9. Quellen

Die oben zitierten technischen Definitionen und lizenzrechtlichen Mechanismen stammen aus Business Central Universal Code Initiative — Frequently asked questions (Microsoft Partnerdokumentation, erreichbar über https://aka.ms/BCUniversalCode). Die für diese Prüfung herangezogene Fassung ist vom 27. September 2022 und als Pre-Release gekennzeichnet; lizenzrechtliche Einzelheiten wie Preise sollten gegen aktuelle Microsoft-Lizenzunterlagen und das PartnerSource Business Center abgeglichen werden.