UI5 Ecosystem Showcase

repository·main·Indexed 42 days ago

https://github.com/ui5-community/ui5-ecosystem-showcase

A monorepo showcasing 28 community-maintained UI5 CLI extensions, including tasks and middlewares. It features tools such as cds-plugin-ui5 for SAP CAP integration, dev-approuter for development-time routing, karma-ui5-transpile for TypeScript testing, and ui5-middleware-approuter.

Tokens
72.1K
Snippets
171
Records
321
Agent score
52%

What's inside UI5 Ecosystem Showcase

  1. Overview of ui5-tooling-modules

    main

    The ui5-tooling-modules package is a UI5 CLI extension that allows UI5 applications to consume NPM packages as if they were AMD modules. It automates the conversion of CommonJS and ES6 modules from node_modules into the UI5-compatible AMD format using Rollup during both development and build processes.

    Key Capabilities:

    • Zero Configuration NPM Integration: Import NPM packages directly using sap.ui.define(["npm-package"], ...).
    • Automatic Transformation: Transparently converts ES6/CommonJS to UI5 AMD format.
    • Web Components Support: Automatically generates UI5 control wrappers for Web Components.
    • Performance Optimization: Utilizes caching, bundling, and code splitting for production builds.
  2. Overview of UI5 CLI extensions and showcases

    main

    The ui5-ecosystem-showcase is a monorepo containing 28 community-maintained UI5 CLI extensions (tasks, middlewares, and full extensions) and several showcase applications that demonstrate how to use them.

    Key Capabilities

    • Tasks: Extend the UI5 build process (e.g., ui5-task-zipper, ui5-task-minify-xml).
    • Middlewares: Extend the UI5 development server (e.g., ui5-middleware-livereload, ui5-middleware-simpleproxy).
    • Tooling: Enhance the development experience (e.g., ui5-tooling-transpile, ui5-tooling-modules).

    Repository Structure

    • packages/: Contains the source code for the published UI5 CLI extensions.
    • showcases/: Contains demo applications (e.g., ui5-tsapp, cds-bookshop) that exercise the extensions.
  3. Explore the UI5 bookshop sample application

    main

    The ui5-bookshop application serves as a demonstration of how to consume custom UI5 CLI extensions within a real-world application context.

    To understand the specific configuration and dependencies used in this showcase, you should examine two key files:

    1. ui5.yaml: Contains the UI5 CLI configuration, including the enabled extensions.
    2. package.json: Lists the npm package dependencies and their associated configuration options.
    WARNING

    This sample currently uses a JSONModel to load CAP (Cloud Application Programming Model) data. For production use cases, you should replace this with an ODataModel to properly consume CAP services.

  4. Compare backend connectivity tools for UI5

    main

    This project showcases six different ways to connect a UI5 application to a backend service, catering to different needs ranging from local-only proxying to production deployment on SAP BTP. Use the comparison table below to decide which tool fits your environment (Development vs. Production) and required features (UAA support, BTP destinations, WebSockets, etc.).

    Featurecds-plugin-ui5ui5-middleware-capui5-middleware-approuter@sap/approuterdev-approuterui5-middleware-simpleproxy
    Productive use❌❌❌✅❌❌
    UAA support✅❌✅✅✅❌
    BTP destinations❌❌✅✅✅❌
    WebSockets❌❌✅✅✅✅
    Development use✅✅✅✅✅✅
    Embeds UI5 middlewares✅✅✅❌✅✅
    Embeds CAP server❌✅(✅)¹❌✅(✅)¹
    Mock UAA support✅✅(✅)¹❌✅(✅)¹
    Server processes112 (UI5 + AppRouter)1 + required2 (AppRouter + CAP)1 + required

    ¹ via proxy

  5. Understand the UI5 Bookshop Viewer demo

    main

    The ui5-bookshop-viewer is a standalone sample application designed to demonstrate how to consume a CAP (Cloud Application Programming Model) server, specifically cds-bookshop, within a UI5 server environment. It serves as a practical implementation guide for using the ui5-middleware-cap middleware.

    To understand the specific configuration and dependencies used in this demo, inspect the following files in the repository:

    • ui5.yaml: Contains the UI5 CLI configuration, including middleware setup.
    • package.json: Lists the npm package dependencies and configuration options.
  6. Use the UI5 bookshop viewer to demo `ui5-middleware-cap`

    main

    The cds-bookshop-ui5-viewer is a sample application designed to demonstrate how a UI5 application consumes a CAP (Cloud Application Programming Model) server, specifically showcasing the usage of the ui5-middleware-cap middleware.

    To understand the specific configuration and dependencies used to integrate UI5 with the CAP server, inspect the following files in the repository:

    • ui5.yaml: Contains the UI5 CLI configuration, including middleware setup.
    • package.json: Lists the npm package dependencies and configuration options required for the viewer.
  7. Develop a TypeScript UI5 library

    main

    This showcase provides a complete setup for developing UI5 libraries using TypeScript. It includes a development server, build processes, linting, type checking, JSDoc generation, and Karma-based unit testing.

    To understand the specific UI5 CLI configuration and npm dependencies used in this setup, inspect the ui5.yaml and package.json files in the project root.

  8. Explore the UI5 CLI extensions catalog

    main

    The ui5-ecosystem-showcase monorepo maintains and publishes 28 UI5 CLI extensions to NPM under the ui5-community ownership. These extensions are categorized into Middleware, Task, Tooling, CDS Integration, Test Tooling, and Utility.

    To find the right extension for your needs, you can browse the catalog in this repository or use Best of UI5, which indexes a wider range of community packages including tasks, middlewares, libraries, controls, generators, and more.

  9. Understand the CAP bookshop project structure

    main

    The cds-bookshop application is a SAP Cloud Application Programming Model (CAP) project designed to showcase UI5 development on a CAP server. It follows the standard recommended CAP project layout:

    • app/: Contains all content for UI frontends.
    • db/: Contains domain models and data definitions.
    • srv/: Contains service models and custom service logic.
    • package.json: Contains project metadata and configuration.
  10. Explore the TypeScript-based UI5 application sample

    main

    This sample application demonstrates how to consume custom UI5 CLI extensions within a TypeScript-based UI5 application. To understand the specific configuration and dependencies used, inspect the following files in the repository:

    • ui5.yaml: Contains the UI5 CLI configuration, including the enabled extensions and their settings.
    • package.json: Defines the npm package dependencies and specific configuration options required for the TypeScript environment and extensions.