Smart Controls (sap.ui.comp)
Smart Controls sind für OData V2 konzipiert und ermöglichen es, UI-Elemente automatisch zu generieren. Sie sind insbesondere in älteren Fiori-Anwendungen verbreitet und bieten eine einfache Möglichkeit, datengetriebene Oberflächen ohne manuelle UI-Definition zu erstellen. Sie überzeugen durch eine bewährte und stabile Integration in bestehende OData V2-Models, wodurch sie sich besonders für bereits etablierte Anwendungen eignen. Zudem bietet ihre API-Dokumentation eine umfassende Beschreibung aller unterstützten Annotationen was die Implementierung erleichtert. Besonders vorteilhaft sind sie bei älteren UI5-Versionen.
MDC-Controls (sap.ui.mdc)
MDC (Metadata-Driven Controls) sind der Nachfolger der Smart Controls. Sie bieten eine bessere Flexibilität und Modularität und wurden entwickelt, um vielseitig in UI5-Anwendungen eingesetzt zu werden. Darüber hinaus können MDC-Komponenten im Gegensatz zu Smart Controls auch in OpenUI5 verwendet werden. MDC-Komponenten sind die bevorzugte Wahl, wenn man UI-Elemente in Freestyle UI5-Apps nutzen möchte.
Macros (sap.fe.macros)
Macros wurden für die Building Blocks im Flexible Programming Model von Fiori Elements entwickelt, um eine effiziente und standardisierte UI-Erstellung zu ermöglichen. Im Gegensatz zu Smart Controls oder MDC-Controls sind Macros für den Einsatz in standardisierten Fiori Elements Anwendungen gedacht und erleichtern die Entwicklung und Erweiterung komplexer Anwendungen mit wenig bis gar keinem Custom Coding. Sie passen sich nahtlos in das Framework an, und übernehmen das Verhalten der Fiori Elements App, wie z.B. Draft-Handling oder auch Side Effects.
Die Wahl zwischen Smart Controls, MDC-Controls und Macros hängt stark vom Anwendungsfall ab. Während Smart Controls eine ältere, auf OData V2 beschränkte Lösung sind, bietet MDC eine moderne Alternative mit Unterstützung für OData V4. Macros hingegen sind die beste Wahl für den Einsatz in Fiori Elements, da sie die Erweiterungs-Entwicklung mit dem Flexible Programming Model optimal unterstützen. Der Blog beschreibt die jeweiligen möglichen Einsatz Szenarien der unterschiedlichen Controls, sodass je nach Projektanforderung die passende Technologie ausgewählt werden kann.