DevOps in OutSystems

DevOps in OutSystems
Proper DevOps capabilities make development and support of applications a lot easier, as it allows developers and operations teams to focus on the true business value and less on the technology itself. OutSystems provides certain tools to allow developers to achieve this during the entire life cycle of an application. So, meet DevOps in OutSystems! There are currently many systems and solutions that provide DevOps capabilities and it’s up to OutSystems to effectively be agile enough to integrate with those systems. Or the other way around, that these systems integrate with OutSystems.

OutSystems accomplishes this through a variety of means

  • Native OutSystems API’s that the platform provides
  • Integrated SOAP/REST web services
  • Variety of community connectors (2400+)
  • Integrations to external systems

The structure of the OutSystems platform that enables DevOps

  As you see, the platform is composed of the following tools:
  • Service studio: core of low-code development
  • Service Center: configuration of your application in each environment as well as providing the tools to troubleshoot
  • LifeTime: manages your application releases (Dev à QA – PROD), Developer User/Groups access control, version control and analytics related to your application/environment.
  • Integration studio: integrates with external systems using .NET. and allows you to use low-code without walls

Versioning in OutSystems

When you click the ‘one-click publish’ button in service studio, you store a new version of your application in Service Center. In addition, you can use Service studio (your development environment) as a tool to compare and merge other versions with the current version of your application.

Application migration using LifeTime

You can create deployment plans for applications and execute it at a later date. LifeTime will automatically check if it’s valid by performing dependencies analysis with other components. If so, the platform makes sure you are also migrating the dependent applications if needed and prevents having errors and problems in your application.

In other words, when the platform is migrating your application, LifeTime will specify the key steps of what's happening while it migrates.

Feedback during the development lifecycle Naturally, it’s important to get quick feedback during the development phase from the business so you can easily incorporate it in your actual application. OutSystems has created built-in application feedback possibilities. It enables users to quickly send feedback while using the application in an easy and user friendly way. After activating it for a specific application, a button appears at the bottom of the screen where the user is able to write their feedback. After clicking the button, the user can select a part of the screen where the feedback is related to. The developers review the feedback that the users send, using an application Outsystems provides. As you check the list of remarks, you select one and swiftly get all the details of the feedback: Operation Systems, browser, resolution but most importantly, you actually get to see the screen as you tester/business user saw it. Moreover, the developer is able to automatically open Service Studio (development tool) directly from the user’s feedback. This can gain you a lot of time.

Use an external system to deploy an OutSystems application (Jenkins)

Of course, OutSystems has also built tools so that it easily integrates with Jenkins. Jenkins enables a 2-part integration:
  • Getting the latest info from the platform (info related to your environments and applications contained in them)
  • Deployment of your applications between multiple environments starts in Jenkins and you can follow up in LifeTime.

Conclusion

With OutSystems you handle the full life cycle of the application by incorporating the core values of DevOps in the platform. No need for a different tool for every step in the Application Life Cycle. You integrate everything in the OutSystems Platform. Would you like to talk about this to one of our experts? Drop us a note! Read more

How to architect for reuse in OutSystems

architect for reuse
If you’ve wondered what you can do with an enterprise-class low-code platform, then this series is for you. OutSystems creates five 29-minute demo's on some of the most useful and functional apps and use cases for a low-code platform. This blogpost is about how to architect for reuse in OutSystems. Everyone knows code reuse is the key to a well-architected portfolio of apps. This session shows how you can discover, reuse, and share UI, data, and logic in OutSystems.

Glenn Michiels, OutSystems developer at Providit, gives his view on the subject.

"Outsystems promotes a component-based architecture, meaning that you compose an app (mobile or web) of a number of independent components. One can compare it a bit with Lego blocks where the components, also called “modules” in OutSystems are the building blocks with which you built your application." This architecture has a number of important advantages. First of all, you only have to develop everything once. If you need a functionality, just reuse it. Second, in case of code changes, you only need to do it in one place since. Third, in a development team with multiple people, each can be responsible for a specific module, thus avoiding conflicts of more than one person working at the same time on the same code base.

But how can we, as developers, get the most of this architecture?

Fortunately, OutSystems has described best practices to follow. Below, I have listed some of those I find most important:
  1. Put the data tables of your application in a separate module. If you need to develop a web and a mobile application, both can, and should, use the same database module
  2. Make use of component libraries whenever possible. If somebody already developed a component you need, just reuse is. The best know component library is the “Forge”.
  3. Make use of web blocks. Web blocks are reusable visual building blocks. If customization is required, try to fit it in into the original component. Otherwise you’ll create as second code base.

Reuse the code

Once we have our modules built based on the above rules, we only need to select the ones we need and reuse the code. This is done by referencing the module and selecting the web blocks, actions, tables you want to use in your application. Now we have created a solid, maintainable architecture for the application. We can now with confidence built the application specific code. If you put in place the right foundations from the start, you’ll benefit from it during the rest of the development. The recording can be found here: https://www.outsystems.com/webinars/architect-reuse-demo-series/ Wanna know more about the Outsystems Platform? Check here! Read more

Can Low-Code Handle Workflow and Complex Logic? You Bet!

Can Low-Code Handle Workflow and Complex Logic? You Bet!
If you’ve wondered what you can do with an enterprise-class low-code platform, then this series is for you. OutSystems create five 29-minute demonstrations on some of the most useful and functional applications and use cases for a low-code platform.

Can Low-Code Handle Workflow and Complex Logic? You Bet!

Along with the visual point-and-click model for development, OutSystems has all the fundamental constructs to create complex logic and process flows. Didier Leroy, OutSystems developer at Providit, gives his view on the subject:
Having worked a bit with business processes before, I already knew that it was a powerful tool at our disposal. What I didn’t realize was how powerful it actually is. Features like Human activities, automatic email sending, dynamic logic, executing different processes in parallel and lots more really makes you understand “how powerful Outsystems actually is

Business Processes

Now what exactly are business processes? The demo showed an example of what you can use business processes for. They took a workflow in which a manager has to approve certain proposals. This use case was perfect to discover the possibilities of business processes within OutSystems. After a process started, several things can happen. A common one is that the flow is put on hold, awaiting a human interaction. Once the user does his work, the flow is woken up automatically and continues.

Logic

Next to that, we include a certain logic e.g. executing a database query and making our decision based on the output of the query result. Another common used widget in a workflow, is the decisions crossroads. Depending on the condition returning a true or false, the flow goes into a different logic branch.

Conclusion

The conclusion is that its fairly easy to create business flows with Outsystems. They are structured, very powerful and give a great visual view of the current flow. And finally, you find several plugins on the Forge like the Business Activity Monitoring plugin. It includes a number of process and human activity reports such as group and user load, process instance and activity inspection, SLA status, and load trends. Find out more here! Read more

Integrating Javascript libraries into OutSystems Apps

Javascript libraries

On the web, you find a lot of Javascript libraries available nowadays. This makes the life of a developer a lot easier, as it provides him with a set of tools ready to use in his applications. In other words, it prevents him from reinventing the wheel and thus fastens his development process.

Advantages

Since OutSystems is all about speed, Niels explained how to take advantage of those libraries and integrate them into your OutSystems applications. He was able to achieve the same results in only a few minutes!

Data Range Picker

During our Belgian Community OutSystems meetup on January 22, he took a javascript library called ‘Date range picker’ available on http://www.daterangepicker.com/

Integrating with Javascript

Since reusability is one of the biggest strengths of OutSystems, Niels also explained how to turn it into a reusable component and make it available for everyone.

You find the full integrated version on the forge: https://www.outsystems.com/forge/component-overview/2252/daterangepicker

Using websockets in Outsystems

Have you ever heard of a dashboard where the page is automatically updates without the need of user interaction? Or did you ever have a project where real time data was a key functionality?

Then Websockets is the answer here! It allows interaction between server and client at any time without the client even requesting it. Niels explained us how to integrate this technology into the OutSystems platform. He used the firebase components available on the forge.

And of course, he showcased how to send realtime data to a specific user (or a set of users) regardless the platform (web or native mobile)!

In summary, please find the presentations below.

https://www.slideshare.net/Providit/outsystems-community-meetup-jan-2019-javascript-integration

https://www.slideshare.net/Providit/outsystems-community-meetup-january-2019-websockets

So, did we trigger you with our expertise? Contact us for a good chat!

Curious about what we can do besides showing our expertise? Discover it here!

Read more

Mobile app in a day: Tim’s World Cup

Mobile app in a day: Tim’s World Cup
Hi! I am Tim Timperman, Managing Partner at Providit, and we use the OutSystems low-code platform to build all our online applications. Today, I challenged myself to build an app in a day. As the 2018 FIFA World Cup is ongoing, I decided to spend just eight working hours to build a mobile app named ‘Tim’s World Cup’. So, my objective is to build a basic app for all soccer fans. What do you think? Did I succeed? Is it really possible to build an app that fast?

Low-code platform                      

A low-code platform is based on rapid application development. That means that it allows developing high-quality web and mobile apps visually. So that you can basically build an app in a day! Traditional app development requires programmers to write every line of code. Low-code however is a way to design and develop software significantly faster with minimal hand-coding. It enables users to deliver value more quickly and more reliably. Therefore, a low-code platform meets the needs of organizations that want to build and manage apps for their businesses at high speed. You may conclude that low-code gives these organizations the opportunity to create a competitive advantage. In addition, a low-code platform is a viable solution for the shortage of developers in the IT sector.  

My journey

What steps did I take to build and deliver my mobile app ‘Tim’s World Cup’ in just eight hours?

Step 1: Requirements

Building a mobile app in a day starts with listing the app’s requirements. My requirements are clear : a calendar of the 2018 FIFA World Cup matches, an overview of the groups, and the scores in the groups.

Step 2: Data

Is the data for the defined requirements available? Let's check on the internet where it is possible to get the data for my app. At GitHub, I discover free public APIs that open up access to the required data. These APIs give me the chance to easily retrieve and integrate the data in my app in a day. Brilliant!

Step 3: Build

The OutSystems low-code platform provides me an intuitive drag-and-drop editor to quickly build a visual model of the mobile app in a day. Easy as 1-2-3!

Step 4: Test

Before deploying the app in a day, I thoroughly test it with the built-in preview feature. Then, I test it on my smartphone. Does it look intuitive and does it feature all the requirements I listed? Yesss!

Step 5: Deploy

Well, I am very happy with the result of my basic mobile app in a day. Using the OutSystems low-code platform, I automatically deploy the app for Android and iOS. Furthermore, I create a QR code so that all soccer fans with Android devices can download the app. Have fun!

check out Tim’s World Cup below

 

on Android

Online Demo

Are you on iOS or do you want to just preview the app without installing? Then check out the Outsystems app preview feature at https://providit.outsystemscloud.com/PreviewInDevices/?IsMobilePreview=True&DeviceName=Smartphone&URL=/TimsWorldCup/
 

Do you also want to build and deliver apps faster using the OutSystems low-code platform? Contact Providit at info@providit.eu

Read more