We need a cloud application β
Let's assume that you or your company want to implement and sell a commercial product, for example, a cloud business application, which will provide unique business values and on top of that integrates with other SAP systems.
As the SAP BTP, Cloud Foundry runtime lets you develop cloud-native applications and run them. The problem for you may be the lack of a specific path. The solution for on-premise SAP systems the solution is quite obvious: build the app using ABAP with UI5 interface.
Simple.
But now we are in the cloud. Our technical requirements are rising. Companies are already using more than one system, some of them are on-premise, and some of them are already in the cloud. So which stack should you choose to fulfil your requirements, build an application that would be easy to integrate (also with SAP) but also enjoy the implementation?
In this blog, I want to present to you my favorite stack, for building SAP Cloud Applications.
Choises..
Integrated Development Environment π¨βπ»
Currently, there are two standout IDEs to develop SAP Cloud Applications:
- BAS - Business Application Studio
- VSC - Visual Studio Code
If you try to compare them, you will notice that they are almost identical. The reason for this is that the BAS is based on the open-source Eclipse Theia IDE solution, which draws from Visual Studio Code. The SAP BAS extensions are compatible with VS Code, so we are no longer forced to use a specific IDE, but can choose the environment according to our preferences. As most of the manuals available on the Internet are based on SAP BAS it could be a bit simpler to use it. I personally prefer the VS Code.
Infrastructure π
- SAP BTP- Business Technology Platform
- Dokku - An open source PAAS alternative to Heroku
The list could be much longer, but my goal is not to confuse, but to indicate my personal preferences. To use all services provided by SAP (MTA, HDI Containers, etc.), the SAP BTP is the only choice we have. Considering that we want to implement a product aimed at SAP clientele, confirmation that it runs on the platform of this vendor is a necessary choice.
So why did I mention Dokku?
Most of my personal side projects I have hosted on the Heroku platform. Soon Heroku will cut all free hosting options, so I had to find an alternative. Dokku is perfect, free, easy to maintain. Thanks to Dokku I reduced my side project costs by 75%. And additionally, I extended my DevOps skills.
Thank you, Heroku!
π
It's not really dedicated to building SAP apps, but it could be a handy way to host some examples, or product previews for pennies.
Database π
- SAP HANA (Express / Cloud)
- PostgreSQL
Same as above.
SAP = HANA. But plan a bit. Think about the functions you want to use in the project. Maybe PostgreSQL will be enough for you. In many cases, PostgreSQL could be assessed better than HANA.
Check current ranking: https://db-engines.com/en/ranking
Backend π§
- Node.js - Nest.js - TypeScript
Nest.js is my favorite framework for building efficient, reliable and scalable server-side applications. It's not only me, for example, SAP Cloud SDK (in JS version) is also based on this framework. Other tools that we find in the sap materials are Express.js (standalone) or SAP Cloud Application Programming Model frameworks.
But my choice for the backend is Nest.js with a well-designed REST API.
Frontend π
I did a lot of SAPUI5 developments in the past. Currently, it's a mature UI library, but you know..
When you're at a JS meetup or conference and say about UI5, people either don't know what it is or just run away
π
It still could be used as a front-end library. Still, it's the preferred way of building apps by many companies, but it's time to move on.
For React.js there are many available UI libraries and there are even UI5 web components!
https://sap.github.io/ui5-webcomponents-react/ Combining it with some other popular UI libraries looks like a good compromise of having an app that feels like Fiori applications and having a collection of advanced user interface elements.
Did I surprise you? Hope so!
Let me know in the comments your favorite approach for building apps nowadays!
Cheers
Michal
If the topic interests you, please check my challenge! In 30 MD, I want to build a product - an application using SAP technologies, and then sell it to companies or other SAP developers. I plan to use the above-described stack.
If you want to be part of this - check this
post.