The OutSystems platform has environments, tools and components that cover the full application lifecycle management process.
The OutSystems development and deployment environments are:
Visual development environment. This is the environment for creating all the parts of the application stack: the data model, application logic, UI, business process flows, integrations, and security policies.
Integration environment: This is the environment for creating components to extend the OutSystems platform and to integrate with third-party systems and microservices.
OutSystems Now: This native iOS, Android, and Windows application enables users to reach their apps from a single point of access. It supports in-context feedback, making it great for debugging and quality assurance.
Platform Server: This server component is the core of the OutSystems platform. It generates, optimizes, compiles and deploys applications to a standard web application server. It also manages scheduled batch jobs and application logs.
The OutSystems management consoles are:
Operational management console: This console manages the operational aspects of an environment, such as connection strings, web service end-points and application properties.
Deployment and environment management console: This console enables centralized management of all development, QA and production environments - from staging apps between environments and monitoring their performance to managing IT team permissions.
Forge: This repository houses open-source modules, connectors and components that can be leveraged in projects.
Development and deployment environments
OutSystems development environments are designed to make it as easy as possible to create beautiful applications, integrate them and more.
Visual development environment
In this environment, designers drag and drop visual elements to create a UI, business processes, business logic and data models for their applications. Applications also consume and expose SOAP and REST web services in this environment.
All application layers have hook points, so that developers can extend all layers with their own code if they need to work outside the development environment.
This environment has a full reference-checking and self-healing engine that works behind the scenes to ensure applications are error-free, and that changes won't impact existing applications. It is designed to be lightweight, and most of the post-design work goes to Platform Server, the server component of the OutSystems platform.
In this environment, components can be created to integrate with existing third-party systems, microservices, and databases or developers can use it to extend OutSystems with their own code.
These components are deployed once, and can be reused by all applications built with OutSystems. Developers use Visual Studio to code integration components and can take advantage of existing .NET libraries
When publishing a component, the development environment compiles it with a standard .NET compiler. The generated DLLs are sent to the Platform Server.
This native iOS, Android and Windows app allows users to access applications from a single point of access. Applications running inside OutSystems Now can use the device native functionalities like contacts, calendar, camera and GPS, offering users a native-like experience.
When changes are made to an application, they are instantly available in OutSystems Now. There is no need to go through the complex app store approval process.
OutSystems Now is also great for debugging and doing quality assurance because it has an integrated feedback mechanism that enables people to provide in-context feedback to the development team. To submit feedback, they just draw on the screen, add voice notes, or type a comment. Everything they see and annotate is sent to the development team, together with the device specifications.
And because OutSystems Now is open source, customers can customize it to their brand, and even add new features to it.
This server component is the core of the OutSystems platform. It takes care of all the steps required to generate, build, package, and deploy applications.
The Platform Server has a set of specialized services:
Code generator: This takes the application modeled in the IDE and generates native .NET code. This allows the generation of applications that are optimized for performance, are secure and run on top of standard technologies.
Deployment services: These services deploy the generated .NET application to a standard web application server. It ensures an application is consistently installed on each front-end of the server farm.
Application services: These services manage the execution of scheduled batch jobs, and provides asynchronous logging services to store events like errors, audits, and performance metrics.
So when deploying an application, the environment validates the application model that was created, and sends the application model to the Platform Server. Once in the server, the application model:
Is versioned using the built-in version control system
Compiled into native .NET, and optimized for performance and security;
Deployed to all front-end servers in your server farm.
During the deployment process, Platform Server also performs a dependency analysis and notifies the team if any other application was affected by the changes.
These OutSystems consoles enable centralized management of environments and easier reuse of application modules.
Operations management console
This web console allows the management of the operational aspects of an environment.
In this console the environment-wide configurations like database connections are managed, along with application-specific configurations like:
Taking applications offline and online
Reverting to a previous version of the application
Configuring application properties, web service end-point and batch jobs scheduling
These are just a few examples.
Deployment and environment management console
This web console automates DevOps processes, so individuals and teams can stage applications from development all the way to production. It can manage all environments, no matter if they're on the cloud, on-premises, or in an hybrid configuration.
This management console supports:
Staging applications across environments. When staging an application, LifeTime performs a dependency analysis across environments to be sure the staging can be done without impact to the applications running on the destination environment. After the deployment, all applications impacted by the changes are automatically updated to use the latest code, versions and more.
Monitoring the performance of applications. All applications built with OutSystems are automatically instrumented to collect runtime monitoring information. With LifeTime, it is possible to monitor the performance of apps, and take action even before users notice an application is slow.
Managing IT team permissions. An organization's preferred authentication is set up and the permission levels each IT user has on each environment and application are managed.
This repository of UI components, libraries and connectors speeds delivery by providing existing modules that can be reused in applications. Our visual development environment is highly integrated with Forge, so developers and others can get and adapt community-driven components in no time.
To learn how software is licensed in the Forge, read the “How is software in the Forge licensed” article.
Some connectors available in Forge:
Some UI widgets available in Forge: