Disclaimer: Although I know personally members of the AppNow team, I don’t have any relationship with the company and with the products it develops.
TL; DR The creators of the Radarc tool have just launched a free preview of AppNow, an online cloud based service that allows us to generate a MEAN backend for our apps. In this article we will see how to create our solution, the generated result, and finally some notes about what can we find under the hood.
If you don’t know what is Icinetic, it is a company based in Seville, Spain dedicated to the development of products and mobile applications. Its flagship product, Radarc, is a solution that generate native mobile and web applications from a class based model (model-driven design).
This operation is carried out through various modules called formulas and is integrated into Visual Studio through an extension. I could see it in action a few months ago and I was very impressed with the quality of the generated code.
In the last /Build event, they announced Radarc Online, which is independent from Visual Studio, and today have gone one step further with AppNow, a tool to create and deploy custom backends in the cloud.
Technical features and limitations
The beta version is limited to a MEAN stack:
- Cloud server: Heroku
- Database: MongoDB
- Backend: Node.js + Express.js
- Frontend: Angular.js
When we reach the web the first thing we can do is login by using our favourite social network account:
The next step is configuring our data model, for this example I opted to load the default sample set:
Once configured the data model, we continue with our Heroku credentials. At this point, it is very important that our Heroku account is validated (read more…) and that we have added our SSH key to Heroku to continue.
If all goes well you will see a screen like the one shown, that it will be updating while the solution is generating.
Thus we have generated code from our class model, and we have deployed it in the cloud with a single step. The result of this deployment is this site:
From here we can list created models, as well as add, edit and delete them.
Under the hood
In the list of files we can see different views, drivers and services that are part of an angular application inside the public directory, and on the other hand we can see the backend on the app directory.
If we take a look at the code we can see some details:
- Access to MongoDB occurs by mongoose, which is an ORM that gives us validation and strict data types for working with MongoDB.
- The API (Generated using Express.js) is compatible with swagger, which if you don’t know it, is a tool that allows us to generate documentation as well as static and dynamic clients automatically from the API comments and endpoints.
- Angular app is a SPA, with a controller for each entity we have specified at the beginning, and different actions for adding, editing and deleting each entity.
- Supports, in addition, authentication and session services for Angular.
An interesting point here is that it offers the full package, not only the generation of code but it also deployment. Being based on git means that we can, from that moment, gain control of the code and continue to develop. It is a simple and elegant way of creating a service backend, which once generated, does not have any additional dependency to Radarc services.
Although it is only a demo, it is an interesting test of the power behind this tool. It generates clean, well commented code so we can continue developing it (nothing to do with the generated code that we have seen in some tools). My recommendation is to try it with patience, and tell the guys from Icinetic if you find something wrong. Without a doubt, a project to follow closely!