The technologies Valudio works with and what's behind them
You may have noticed that we work with a whole range of different technologies (if you haven't, take a look at our website’s services page).
We need all of these technologies to build high-quality digital solutions for our clients.
But what's behind all of these tools? And why do we prefer some more than others?
"Almost anything can be implemented with any programming language. Of course, there are programming languages that are better suited for specific applications. Like Python or R for machine learning because many tools and libraries are already available there. Or C/C++ and Rust for hardware-related and high-performance applications.
We are a company that, because of C#, prefers to use tools from the Microsoft ecosystem, such as Azure Devops, Azure Pipelines or Azure Cloud.
The question of why is similar to the question of why someone drives a BMW and not a Mercedes. We have been able to achieve excellent results with tools like ASP.NET or ReactJS. Many of the big companies work with Microsoft, so it makes sense for in-house and external developers (like us) to use the Microsoft Cloud Platform if the customer doesn't use their own infrastructure or cloud provider."
— Mischa Herbrand, Managing Director of Valudio
What is Microsoft Azure?
Microsoft Azure, formerly known as Windows Azure, is Microsoft's public cloud computing platform. It offers a range of cloud services, including compute, analytics, storage and networking, necessary for building and managing apps.
We use Microsoft Azure whenever our clients do not have their own necessary IT resources.
Cloud computing platforms, like Microsoft Azure, are as successful as they are because they’re practical and take a lot of work off of developers' shoulders; special services needed as a basis for work can simply be rented, without having to worry about their maintenance or security.
We used Microsoft Azure for the development of our SaaS solution Lablyze.
What is C#? And what is .NET (formerly .NET Core)?
C# (pronounced c-sharp, by the way) is a programming language that can be used within the free open-source framework .NET. The language, as well as the framework .NET, originate from Microsoft, but can also be executed on cross-platforms (for example: under macOS or Linux).
The .NET Ecosystem provides a specialised framework for each platform:
ASP.NET for web development
WPF for desktop applications
Xamarin for mobile applications
Unity for gaming and 3D applications
.NET and ASP.NET are constantly being developed and improved.
We used C# and ASP.NET Core for the development of Phonio.
What is SignalR?
SignalR is a free .NET library that helps to implement real-time communication via websockets. It’s used, for example, for chat applications in which several participants/applications want to exchange information in real time.
What is the Azure Bot Framework?
The Azure Bot Framework helps to implement chatbot applications. These can be simple applications where you let a bot handle standardised processes, more complex use cases like natural language processing (NLP) or even answering questions. Forwarding requests to a real person can also be easily set up with the Azure Bot Framework.
What is Identity Server?
Identity Server 4.0 is an identity and authentication management server that takes care of centralising authentication processes.
This is helpful when a company has a wide variety of applications in operation and wants to centralise user identities and active sessions. In concrete terms, the advantage is that users who log on to one application, are automatically and smoothly logged on when they switch to another application that is connected to the first one, without repeatedly having to enter their user data. Officially, Identity Server is described as an authentication server (based on .NET) that supports the OpenID Connect (OIDC) and OAuth 2.0 protocols.
What is React.js?
Why is React.js so popular?
React.js and other component-based frameworks such as Angular and Vue were born out of the need for increasingly complex user interfaces.
Components are the building blocks of any React application. Once programmed, such components can be reused within one and the same, but also in other React applications, which again reduces development time. Meanwhile, at Valudio we have also created our own component library.
The virtual DOM, a representation of the HTML structure in memory, reduces the updates and calculations that the browser has to make and thus improves performance.
The predefined structure and the standardised flow of data between the components, make it easier for programmers to find their way around an application and locate errors.
Among other projects, we used React.js for the development of Redsol's customer portal.
What is Next.js?
What’s the difference between ReactJS and Next.JS?
React.js, as mentioned above, is a technology that allows us to programme web-based user interfaces. However, by default the HTML/CSS is always rendered in the browser first (client site rendered = CSR). This is no problem for portals that are visible only after logging in but, if it is a website, a webshop or an application that should be visible in Google search, CSR is rather suboptimal.
Next.js is a framework that can help us in exactly this situation. Next.js is based on React.js. This means that we can continue to programme our web interfaces with React.js. In addition, it allows us to choose between the different rendering options:
Client Site Rendered (CSR) — for applications that can do without Google ranking.
Server Site Rendered (SSR) — for applications with dynamic content, but which should be relevantly indexed by Google.
By the way:
In both cases, the content is rendered anew with every query, i.e. the HTML/CSS is generated anew with every query, which eats up time and resources.
However, time and resources can be saved with a so-called "static site generation" (SSG). SSG is suitable for applications or websites where the content does not change so often.
With the SSG method, the content is rendered once and the finished HTML files are stored on the web server. In contrast to SSR, the performance is further increased because the web page does not have to be rendered with every new request. This also brings loading time advantages and makes websites faster, as the HTML does not have to be generated in advance, but is downloaded directly and can thus be displayed directly by the browser.
Another advantage of SSG is its scalability. Since nothing has to be rendered on the server, you also don't need any computing power and can therefore easily serve thousands of requests at the same time.
What is React Native?
Among other things, we built the Nemi app with React Native.
What is Azure Pipelines?
With Azure Pipelines, Microsoft provides so-called cloud-hosted continuous integration and continuous delivery (CI/CD) pipelines for Linux, macOS and Windows that automate build and deployment processes.
One of our DevOps services is to create and configure build and release pipelines for other companies.
What is the Microsoft SQL Server?
This is a relational database management system and one of the leading database technologies. If we can choose which SQL database we want to work with, we almost always go for the Microsoft SQL Server.
What is Docker?
Docker is a container technology that simplifies and standardises the development and deployment of applications. A Docker image contains the complete configuration of the environment in which an application is executed. This has the advantage of the configuration always being the same — be it during development on the local machine or in the production environment.
You can compare it to a snapshot of a virtual machine. However, Docker offers even more advantages. Virtual machines usually contain complete copies of operating systems, the application to be run, binaries and libraries. With Docker, all of this is brought together in a Docker execution container and can also be isolated from the underlying system.
What is Microsoft Appcenter?
The Microsoft Appcenter is a platform for developing, testing and managing apps for various operating systems.
One of the many advantages of this platform is that once an app is created, it can be sent immediately to the Apple and Google stores. We can also send test versions of an app to our customers via the Appcenter. The Microsoft Appcenter is thus the equivalent of Azure Pipelines for mobile applications.
With the Microsoft Appcenter we have made the Lingoda app possible.
What is Electron?
Desktop applications are mostly needed when things need to communicate with each other that are physically connected to a computer — for example, a barcode scanner with the hardware of a computer.
We used Electron to develop Phonio's web app. Every time the customer support team receives a call, the incoming call is displayed via pop-up in the web app.
What is MongoDB?
MongoDB is a non-SQL database, which means it is document orientated instead of table orientated, and can manage collections of JSON-like documents. We use MongoDB to store data that should not always have the same structure. In general, non-SQL databases have advantages and disadvantages. Whether to use them and when is highly situational.
For the Hitachi web platform, MongoDB was best suited.