docs

Modernization Guide

This guide helps you modernize your OpenUI5 applications by providing a consolidated overview of all deprecated APIs, controls, themes, libraries, and patterns, along with their modern replacements.

Each of the following sections groups topics by library, listing the deprecated API, its modern replacement, and guidance on how to modernize your code. For detailed steps, follow the links to the dedicated pages.

Tip:

Use UI5 linter to detect deprecated API usage in your projects. UI5 linter is a static code analysis tool that checks your JavaScript, TypeScript, XML, and JSON files for issues. UI5 linter also provides autofixes for a selected number of issues. For more information, see Scope of Autofix.

For practical, hands-on guidance on migrating your OpenUI5 application to modern APIs, check out this SAP Community blog post, which covers step-by-step migration workflows and how UI5 linter can help automate parts of the process.

On this page:


Deprecated Themes

All deprecated themes have been removed as of OpenUI5 1.136 or earlier. The recommended target theme is sap_horizon.

Deprecated Theme Deprecated as of Removed as of Replacement
`sap_belize` 1.120 1.136 `sap_horizon`
`sap_hcb` 1.46 1.136 `sap_horizon_hcb`
`sap_bluecrystal` 1.40 1.136 `sap_horizon`
`sap_ux` 1.40 1.48 `sap_horizon`
`sap_platinum` 1.40 1.48 `sap_horizon`
`sap_goldreflection` 1.40 1.48 `sap_horizon`

Deprecated Libraries

The following libraries have been deprecated and/or removed entirely:

Library Deprecated as of Replacement
`sap.ui.webc.common` `sap.ui.webc.fiori` `sap.ui.webc.main` 1.120 No direct replacement. Removed as of 1.147. For native web component usage in OpenUI5, see [Using Web Components](/docs/04_Essentials/using-web-components-1c80793.html). See also the removal [blog post](https://community.sap.com/t5/frontend-ui5-sap-fiori-blog-posts/removal-of-legacy-sap-ui-webc-web-component-ui-libraries-from-sapui5/ba-p/14358564).
`sap.ui.suite` 1.108 No replacement
`sap.ui.commons` 1.38 Replaced by `sap.m`, `sap.ui.unified`, and `sap.tnt` controls
`sap.ui.ux3` 1.38 Replaced by `sap.uxap` and `sap.ui.layout` controls

Core Framework API Migration (sap.ui.core)

The central sap.ui.getCore() singleton and the sap.ui.core.Configuration class have been deprecated and replaced by focused, modular facades. The following key pattern applies:


Core Facade (sap.ui.core.Core)

The sap.ui.core.Core API facade has been deprecated as of OpenUI5 version 1.119. Most of its 52 methods have been replaced by standalone modules. For the complete list of all 52 deprecated Core methods and their replacements, see Deprecated Core API.


Configuration API (sap.ui.core.Configuration)

The sap.ui.core.Configuration class and its FormatSettings have been deprecated as of OpenUI5 version 1.120. The 55 methods have been replaced by focused modules. For the complete mapping of all 55 methods, see Deprecated Configuration API.

For deprecated bootstrap configuration options (e.g. animation, binding-syntax, manifest-first, preload), see Deprecated Configuration Options.


Synchronous Factory Functions

All legacy synchronous global view-, fragment-, controller- and component-factory functions have been deprecated. The modern replacements are asynchronous and return Promises. For the complete list, see Deprecated Factories Replacement.


jQuery.sap Module Migration

The jQuery.sap.* API namespace has been deprecated. All utilities have been moved to dedicated ES modules under sap/base/* and sap/ui/*. For the complete mapping of all ~110 deprecated jQuery APIs, see Replacement of Deprecated jQuery APIs.


jQuery Compatibility

Future OpenUI5 versions will not support jQuery 2. Only jQuery 3 and above will be supported.

Additionally, the OpenUI5-jQuery migration compatibility layer (previously shipping as a customized jquery-migrate integration) will be removed in future OpenUI5 versions. Any JQMIGRATE log warnings that appear at runtime are indicators of jQuery 2-to-3 incompatibilities that must now be resolved. For migration instructions, see the official jQuery upgrade guide.


Deprecated View Types and Patterns

As of OpenUI5 version 1.120, XML View and Typed View are the only recommended view types. All other view types and related patterns are deprecated. Refer to the table below for recommendations when to use which replacement view type.

Deprecated Pattern Deprecated as of Replacement Details
**JSON View** \(`sap.ui.core.mvc.JSONView`\) 1.120 [XML View](/docs/04_Essentials/xml-view-91f2928.html) [JSON View \(deprecated\)](/docs/04_Essentials/json-view-deprecated-91f2852.html)
**Declarative Support** \(`sap.ui.core.plugin.DeclarativeSupport`\) 1.120 [XML View](/docs/04_Essentials/xml-view-91f2928.html) [Declarative Support \(deprecated\)](/docs/04_Essentials/declarative-support-deprecated-91f1301.html)
**View Cloning** 1.120 Call the view factory function again [View Cloning \(deprecated\)](/docs/04_Essentials/view-cloning-deprecated-a575619.html)
**Native HTML in XML Views** 1.120 `sap.ui.core.HTML` control or custom control [Using Native HTML in XML Views \(deprecated\)](/docs/04_Essentials/using-native-html-in-xml-views-deprecated-be54950.html)
**CSS in XML Views** 1.120 External CSS file [Using CSS Style Sheets in XML Views \(deprecated\)](/docs/04_Essentials/using-css-style-sheets-in-xml-views-deprecated-b564935.html)
**HTML View** \(`sap.ui.core.mvc.HTMLView`\) 1.108 [XML View](/docs/04_Essentials/xml-view-91f2928.html) No more known usages as HTML syntax brings no advantages over XML
**JS View** \(`sap.ui.core.mvc.JSView`\) 1.90 [Typed View](/docs/04_Essentials/typed-view-e6bb33d.html) via `View.extend()` Define view class in JavaScript using `sap.ui.core.mvc.View.extend()`
**XML Composite Controls** \(`sap.ui.core.XMLComposite`\) 1.88 [Standard Composite Controls](/docs/07_Developing_Controls/standard-composite-controls-c1512f6.html) [XML Composite Controls (deprecated)](https://help.sap.com/viewer/c442e2a74263451f845549bdbcdebe7b/1.149_SAPUI5_Internal/en-US/b83a4dcb7d0e46969027345b8d32fd44.html "An XML composite control allows you to define a composite control that clearly separates the behavior of the control from the visual part.") :arrow_upper_right:
**Template View** \(`sap.ui.core.mvc.TemplateView`\) 1.56 [XML View](/docs/04_Essentials/xml-view-91f2928.html) or [Typed View](/docs/04_Essentials/typed-view-e6bb33d.html) Include Handlebars template support

Deprecated Controls by Supported Library

This section lists high-impact control deprecations that must be replaced. The containing libraries are not deprecated.


Library: sap.m

Deprecated Control Deprecated as of Replacement Details
`sap.m.upload.UploadSet`, `UploadSetItem`, `UploadSetToolbarPlaceholder`, `Uploader` 1.129 `sap.m.plugins.UploadSetwithTable`, `sap.m.upload.UploadItem`, `sap.m.upload.ActionsPlaceholder`, `sap.m.upload.UploaderTableItem` Intermediate replacement between `UploadCollection` \(1.88\) and `UploadSetwithTable`
`sap.m.P13nFilterPanel`, `sap.m.P13nConditionPanel` 1.124 `sap.m.p13n` artifacts All remaining `sap.m.P13n*` items, helpers, and panels deprecated since 1.120-1.124 \(16+ P13n classes in total\)
`sap.m.MultiEditField` 1.120 No replacement  
`sap.m.TablePersoController`, `sap.m.TablePersoDialog`, `sap.m.TablePersoProvider` 1.115 `sap.m.p13n.Engine`, `sap.m.p13n.Popup` [Table Personalization \(deprecated\)](/docs/08_More_About_Controls/table-personalization-deprecated-1c60212.html)
`sap.m.MessagePage` 1.112 `sap.m.IllustratedMessage`  
`sap.m.ActionSelect` 1.111 No replacement \(concept discarded\)  
`sap.m.P13nDialog` 1.98 `sap.m.p13n.Popup` Part of the old P13n framework; the entire `sap.m.P13n*` class family is deprecated
`sap.m.P13nColumnsPanel` 1.98 `sap.m.p13n.SelectionPanel`  
`sap.m.P13nSortPanel` 1.98 `sap.m.p13n.SortPanel`  
`sap.m.P13nGroupPanel` 1.98 `sap.m.p13n.GroupPanel`  
`sap.m.UploadCollection` 1.88 `sap.m.plugins.UploadSetwithTable` [Upload Collection \(deprecated\)](/docs/08_More_About_Controls/upload-collection-deprecated-124ee13.html). The original replacement `sap.m.upload.UploadSet` is itself deprecated since 1.129; use `sap.m.plugins.UploadSetwithTable` directly.
`sap.m.Tile`, `sap.m.StandardTile`, `sap.m.CustomTile`, `sap.m.TileContainer` 1.50 `sap.m.GenericTile`  
`sap.m.routing.RouteMatchedHandler` 1.28 `sap.m.routing.Router` or `sap.m.routing.Targets` Functionality is built into the router itself

Library: sap.f

Deprecated Control Deprecated as of Replacement
`sap.f.IllustratedMessage` 1.98 `sap.m.IllustratedMessage`
`sap.f.Illustration` 1.98 `sap.m.Illustration`
`sap.f.Avatar` 1.73 `sap.m.Avatar`

Library: sap.ui.table

Deprecated Control Deprecated as of Replacement
`sap.ui.table.Table` row-mode properties \(`visibleRowCount`, `visibleRowCountMode`, `fixedRowCount`, `fixedBottomRowCount`, `minAutoRowCount`, `rowHeight`\) and enum `VisibleRowCountMode` 1.119 `rowMode` aggregation with `sap.ui.table.rowmodes.Auto`, `.Fixed`, `.Interactive`
`sap.ui.table.ColumnMenu` 1.117 `sap.m.table.columnmenu.Menu`
`sap.ui.table.AnalyticalColumnMenu` 1.117 `sap.m.table.columnmenu.Menu`
`sap.ui.table.TablePersoController` 1.115 `sap.m.p13n.Engine`

Library: sap.ui.unified

Deprecated Control Deprecated as of Replacement
`sap.ui.unified.Shell`, `ShellLayout`, `ShellOverlay`, `ShellHeadItem`, `ShellHeadUserItem` 1.44 No replacement \(concept discarded\). Use `sap.f.ShellBar` or `sap.tnt.ToolPage` for app shell patterns.
`sap.ui.unified.ContentSwitcher` 1.44 No replacement
`sap.ui.unified.SplitContainer` 1.44 No replacement

Library: sap.ui.layout

Deprecated Control Deprecated as of Replacement
`sap.ui.layout.form.ResponsiveLayout` 1.93 `sap.ui.layout.form.ColumnLayout` or `sap.ui.layout.form.ResponsiveGridLayout`
`sap.ui.layout.form.GridLayout`, `GridContainerData`, `GridElementData` 1.67 `sap.ui.layout.form.ColumnLayout` or `sap.ui.layout.form.ResponsiveGridLayout`

Library: sap.ui.mdc

Deprecated Deprecated as of Replacement
`sap.ui.mdc.filterbar.aligned.FilterContainer` 1.144 `sap.ui.mdc.filterbar.FilterContainer`
`sap.ui.mdc.filterbar.vh.FilterBar` 1.124 `sap.ui.mdc.valuehelp.FilterBar`
`sap.ui.mdc.filterbar.vh.CollectiveSearchSelect` 1.124 `sap.ui.mdc.valuehelp.CollectiveSearchSelect`
`sap.ui.mdc.flp.FlpLinkDelegate` 1.120 `sap/ui/mdc/ushell/LinkDelegate`
`sap.ui.mdc.link.SemanticObjectMapping` 1.120 `sap.ui.mdc.ushell.SemanticObjectMapping`
`sap.ui.mdc.link.SemanticObjectMappingItem` 1.120 `sap.ui.mdc.ushell.SemanticObjectMappingItem`
`sap.ui.mdc.link.SemanticObjectUnavailableAction` 1.120 `sap.ui.mdc.ushell.SemanticObjectUnavailableAction`
`sap.ui.mdc.enum.*` \(14 enums\) 1.115 `sap.ui.mdc.enums.*` \(renamed namespace\)

Deprecated Core Classes

The following sap.ui.core classes have been deprecated entirely:

Deprecated Class Deprecated as of Replacement
`sap.ui.core.Message` 1.120 `sap.ui.core.message.Message`
`sap.ui.core.search.SearchProvider`, `OpenSearchProvider` 1.120 No replacement
`sap.ui.core.LocalBusyIndicator` 1.120 No replacement. Superseded by `sap.ui.core.Control` native busy indication \(refer to `Control#setBusy`\).
`sap.ui.core.CalendarType` 1.120 `sap/base/i18n/date/CalendarType`
`sap.ui.core.date.CalendarWeekNumbering` 1.120 `sap/base/i18n/date/CalendarWeekNumbering`
`sap.ui.core.MessageType` 1.120 `sap/ui/core/message/MessageType`
`sap.ui.core.message.MessageManager` 1.118 `sap/ui/core/Messaging`
`sap.ui.core.format.DateFormatTimezoneDisplay` 1.101 `DateFormat.getDateTimeWithTimezoneInstance()` with `showDate`, `showTime`, `showTimezone` options
`sap.ui.core.util.Export`, `ExportCell`, `ExportColumn`, `ExportRow`, `ExportType`, `ExportTypeCSV` 1.73 No replacement. Migrate to a third-party export solution.
`sap.ui.core.tmpl.Template`, `HandlebarsTemplate`, `DOMElement`, `DOMAttribute`, `TemplateControl` 1.56 XML View or Typed View. Refer to [Deprecated View Types and Patterns](/docs/04_Essentials/deprecated-view-types-and-patterns-ea87c42.html).
`sap.ui.core.ScrollBar` 1.56 No replacement

Deprecated OData Model Patterns

Deprecated Pattern Deprecated as of Replacement
Consuming OData V2 Services with the OData V4 Model 1.143 Migrate to a native OData V4 service
`sap.ui.model.analytics.AnalyticalBinding`, `AnalyticalTreeBindingAdapter`, `ODataModelAdapter`, `odata4analytics`, `BatchResponseCollector` 1.138 No direct replacement within OData V2. Migrate the back-end service to OData V4 first, then use the OData V4 Model's data aggregation feature. See [Transition from OData V2 to OData V4](/docs/04_Essentials/upgrading-your-odata-model-cda632b.html#loiocda632b01c1e4a988ccecab759d19380__section_OD2OD4) and [Data Aggregation](/docs/04_Essentials/data-aggregation-and-recursive-hierarchy-7d91431.html).
`sap.ui.model.odata.ODataTreeBindingAdapter` 1.138 No direct replacement within OData V2. Migrate the back-end service to OData V4 first, then use the OData V4 Model's recursive hierarchy feature. See [Transition from OData V2 to OData V4](/docs/04_Essentials/upgrading-your-odata-model-cda632b.html#loiocda632b01c1e4a988ccecab759d19380__section_OD2OD4) and [Recursive Hierarchy](/docs/04_Essentials/data-aggregation-and-recursive-hierarchy-7d91431.html#loio7d914317c0b64c23824bf932cc8a4ae1__section_RCH).
`sap.ui.model.odata.ODataModel` 1.48 `sap.ui.model.odata.v2.ODataModel`. For a full modernization, migrate the back-end service to OData V4 and use the `sap.ui.model.odata.v4.ODataModel`. See [Transition from OData V2 to OData V4](/docs/04_Essentials/upgrading-your-odata-model-cda632b.html#loiocda632b01c1e4a988ccecab759d19380__section_OD2OD4).
`sap.ui.model.odata.Filter` 1.22 `sap.ui.model.Filter`

Manifest and Component Metadata Migration

Topic Description Details
Component metadata to manifest Migrate legacy `Component.js` metadata properties \(version, config, dependencies, customizing, includes, rootView, routing\) to their `manifest.json` equivalents. [Migrating from Component Metadata to Manifest](/docs/04_Essentials/migrating-from-component-metadata-to-manifest-e282db2.html)
Manifest file upgrade Upgrade `manifest.json` to the latest version format. Manifest V2.0.0 \(OpenUI5 1.136\) introduces breaking changes to the routing configuration: `viewName` → `name`, `viewId` → `id`, `viewPath` → `path`, `viewLevel` → `level`. [Migration Information for Upgrading the Manifest File](/docs/04_Essentials/migration-information-for-upgrading-the-manifest-file-a110f76.html)

Version-Specific Upgrade Notes

The following guides cover breaking changes that require attention when upgrading across specific version boundaries:

Version Boundary Key Changes Details
Below 1.89 IE11 polyfill removal, jQuery upgrade to 3.6.0 [Upgrading from a Version Below 1.89](/docs/02_Read-Me-First/upgrading-from-a-version-below-1-89-89b14ce.html)
Below 1.82 jQuery upgrade from 2.x to 3.5.1 with compatibility layer [Upgrading from a Version Below 1.82](/docs/02_Read-Me-First/upgrading-from-a-version-below-1-82-147eef9.html)
Below 1.40 Only one jQuery version bundled \(2.2.3\) [Upgrading from a Version Below 1.40](/docs/02_Read-Me-First/upgrading-from-a-version-below-1-40-278a8e5.html)
Below 1.38 jQuery upgrade from 1.x to 2.2.3, manifest descriptor introduction [Upgrading from a Version Below 1.38](/docs/02_Read-Me-First/upgrading-from-a-version-below-1-38-c1025c2.html)

For general upgrade guidance, see Upgrading.


Hybrid Web Container

The hybrid web container approach for mobile applications has been deprecated as of OpenUI5 version 1.147. It relies on Apache Cordova/PhoneGap, which is no longer maintained. For more information, see Development for Hybrid Web Containers (deprecated).

Related Information

API Reference: deprecated

Compatibility Rules

Don’t Use Deprecated or Experimental Features

Upgrading

Deprecated Themes and Libraries