I am sure many of you would like to know what extensibility options SAP Business Application Studio (a.k.a. BAS) has to offer. In this blog, I will tell you about these options and about how they will improve your development experience
The BAS extension framework allows ANYONE to enrich the IDE with features and capabilities in order to make their development activities more efficient.
As you probably already know, BAS is based on an open-source IDE called Eclipse Theia, which embraces the Microsoft Visual Studio Code (i.e. VS Code) experience and APIs.
Beyond the Eclipse Theia IDE, we also endorse other open-source and industry-standard solutions. We leverage the Yeoman framework and the Yeoman generators community as the framework that enables you to easily generate new projects or reusable parts of projects.
These two frameworks make BAS extensible in different levels and in different domains. They allow you to do the following:
- Extend the IDE with tools and capabilities, such as code assist, static code analysis, and code formatting that help you develop faster and more efficiently.
- Enrich the UI with new views, menus, and commands to make it easy to perform various development operations.
- And, of course, add new project and module templates to ease project creation and tailor it to your needs.
Each of these domains is extensible using different components that you can install on your specific dev space. You can enrich your IDE by installing additional VS Code extensions or by installing additional Yeoman generators or global npm packages that will add templates and tools to the IDE.
Furthermore, when you have a set of extension components that you wish to install and use together, or even share them with your team, the BAS extension framework allows you to do so. You can define a BAS extension, a metadata file that references the list of components you wish to install on a dev space. By defining a BAS extension and deploying it, you will be able to reuse it in other dev spaces, and also to share it with your team.
Extending a specific dev space:
There is a large number of VS Code extensions that have already been developed by the community. In order to make it easy to explore and consume these extensions, BAS is now integrated with the Open VSX Registry. This is a vendor-neutral marketplace for VS Code extensions that can be used on any IDE that supports such extensions – such as BAS.
So, are you eager to learn how to do this? Read my blog on how to install Community and third-party extensions in BAS.
The Yeoman generators community is rich and includes thousands of generators. Within the BAS Application wizard, we made it easy for you to install any Yeoman generator from the community on a specific dev space. Follow this blog to see how you can explore and install Yeoman generators that are available on the Yeoman registry.
This integration to the community will allow you to find many VS code extensions and Yeoman generators that can improve your development efficiency. Wouldn’t it be awesome if you could bundle them and share them with your team as a new BAS extension?
Define and share a BAS extension with your team:
The BAS extension framework enables you to deploy a new BAS extension definition file (extension.json) that references extension components, such as VS Code extensions and Yeoman generators. Deploying the BAS extension to your subaccount makes it available on the Dev Space Manager under the Additional Extensions column. You and your teammates can simply enable it when creating a new dev space.
Ready to create your first BAS extension and deploy it to your SAP CP subaccount?
We have created a dedicated BAS extension called SAP Business Application Studio Extension Development.
This extension is available as Additional Extension in the Dev Space Manager, and you can select to add it to your dev space. It installs the business-application-studio-extension-management CLI that enables deploying an extension to your subaccount.
Every extension that you deploy to your subaccount will appear on the Additional Extensions list with a small icon indicating that this is a subaccount-specific extension.
You can update the extension version and the list of extension components within it at any time. All the dev spaces that have this extension enabled will be updated with the new version after a restart.
Read more about it on our official documentation.
When we say we wish to provide developers more control over their development environment… this is what we mean. Try it out, leverage the community components and make your environment the best for you and for your team.