Universal Code Compliance-Erklärung
Für Microsoft Dynamics 365 Business Central Partner, die DEXPRO Apps vertreiben
Dokumentversion: 1.0 · Stand der letzten Prüfung: 29. Juli 2026 · Herausgeber: DEXPRO Solutions GmbH
1. Zusammenfassung
Alle sechs DEXPRO Apps für Microsoft Dynamics 365 Business Central sind vollständig konform mit der Microsoft Universal Code Initiative. Jede App ist als cloud-optimierte Erweiterung mit "target": "Cloud" entwickelt und enthält keine .NET-Interoperabilität, keine Verwendung von OnPrem-beschränkten APIs und keine sonstigen Konstrukte, die den Code als „nicht cloud-optimiert" einstufen würden.
Was das für Sie als Partner bedeutet: Der Einsatz von DEXPRO Apps — sowohl in Business Central online (SaaS) als auch On-Premises — löst nicht das kostenpflichtige Microsoft-Lizenzmodul „Implementierter Code ist nicht cloud-optimiert" aus. Für Ihre Kunden entstehen durch keine DEXPRO App Universal-Code-Zusatzkosten.
2. 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 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. Jede App wurde mit dem AL-Compiler (alc.exe, AL Language 17.0) gegen das Cloud-Target kompiliert, einschließlich des AppSourceCop-Analyzers, unter Verwendung der Business Central Plattform-Pakete 28.3. Der Compiler ist die maßgebliche Instanz für die Universal-Code-Konformität: Jedes ausschließlich OnPrem verfügbare Konstrukt führt unter "target": "Cloud" zu einem harten Kompilierfehler.
Zusätzlich wurde der gesamte AL-Quellcode aller sechs Apps (887 Quelldateien) auf die in Abschnitt 5 aufgeführten disqualifizierenden Muster hin untersucht.
5. Ergebnisse
5.1 Kompilierung gegen das Cloud-Target
| App | target |
Cloud-Kompilierung | Blockierende Feststellungen |
|---|---|---|---|
| DEXPRO Core | Cloud | 0 Fehler | keine |
| DEXPRO SQUEEZE | Cloud | 0 Fehler | keine |
| DEXPRO Breeze Interface | Cloud | 0 Fehler | keine |
| DEXPRO Advanced Workflow | Cloud | 0 Fehler | keine |
| DEXPRO Freeze | Cloud | 0 Fehler | keine |
| DEXPRO eInvoice Sender | Cloud | 0 Fehler | 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 |
| 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(nicht .NETWebRequest). Alle Webservice-Aufrufe in Core (WebRequestMgt,OAuth2Mgt,OpenIDMgt), SQUEEZE, Freeze, Advanced Workflow und eInvoice Sender folgen diesem Muster. - Umgang mit Geheimnissen erfolgt über
IsolatedStoragefür Token und Zugangsdaten (Core, SQUEEZE) — nie über Klartext-Tabellenfelder oder Dateien. - Dateiverarbeitung nutzt die Microsoft-Standard-Codeunit
"File Management"(BLOBExport,GetExtension,GetFileNameMimeType) in Verbindung mitTempBlob/InStream/OutStream— dies ist die cloud-unterstützte API, kein OnPrem-Dateizugriff. - UI-Erweiterbarkeit erfolgt über JavaScript/HTML Control Add-ins (Dokumentenviewer, Drag & Drop, Workflow-Visualisierung) — der cloud-unterstützte Erweiterungsweg.
- 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: false, allowDownloadingSource: false |
propagateDependencies |
true |
| Features | TranslationFile, NoImplicitWith |
| 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 User, DXP SQUEEZE Admin / DXP SQUEEZE User, DXP Breeze IF Admin / DXP Breeze IF User, DXP AWF Admin / DXP AWF User, DXP Freeze Admin / DXP Freeze User sowie DXP eInvoice Admin / DXP eInvoice Support / DXP eInvoice User.
6. Hinweise zum Rollout für Partner
- Business Central online (SaaS): Alle Apps lassen sich ohne Universal-Code-Einschränkung installieren.
- On-Premises / Hybrid: Alle Apps werden als cloud-optimierte Erweiterungen installiert. Für keine DEXPRO App ist ein kostenpflichtiges Modul für nicht cloud-optimierten Code erforderlich. Zu beachten ist, dass ausgehende HTTP-Aufrufe von Erweiterungen in der On-Premises- Serverkonfiguration freigegeben sein müssen (
Allow HttpClient Requestsan 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 — sie werden nie ohne Vorankündigung entfernt. Im Build-Log sichtbare Deprecation-Warnungen sind beabsichtigt und stellen keinen Konformitätsmangel dar. - Mindestplattform: Business Central 25.0 oder höher ist erforderlich.
7. Pflege dieser Erklärung
Die Universal-Code-Konformität wird im Rahmen des DEXPRO Build-Prozesses geprüft; jede App wird mit aktiviertem AppSourceCop-Analyzer gegen das Cloud-Target kompiliert. Diese Erklärung wird bei jedem Major Release der App-Familie überprüft.
Bei technischen Fragen zu dieser Erklärung wenden Sie sich bitte an die DEXPRO Solutions GmbH unter https://www.dexpro.de/.
No comments to display
No comments to display