En interne, nous fournissons des fonctionnalités prêtes à l'emploi sous forme de packages (NuGet et npm). Nous les concevons pour qu’ils soient faciles à entretenir, à développer et à personnaliser. Nous fournissons également une compatibilité ascendante, de sorte que leur mise à jour dans des solutions plus anciennes offre de nouvelles fonctionnalités, une meilleure sécurité et des performances optimisées.
Nous avons beaucoup de code que nous partageons entre les projets. Extensions de framework, algorithmes, modèles de conception, architecture multicouche. Nous mettons à disposition tout ce qui peut être réutilisé en interne. Lors du développement d’un tel code, nous maintenons des normes internes élevées et le documentons, puis formons toute l’équipe sur la façon de l’utiliser.
Les composants fournissent des fonctionnalités complètes avec une interface utilisateur. Nous disposons également de notre propre modèle par défaut qui vous permet de fournir une solution commerciale prête à l'emploi en quelques jours. Ceci peut être réalisé, par exemple, grâce à des formulaires génériques (les formulaires sont générés automatiquement sur la base des métadonnées du modèle) et à des grilles prenant entièrement en charge le tri, le filtrage, la pagination et bien d'autres fonctionnalités. Cela nous permet de nous concentrer sur la logique et le flux métier réels.
Nous avons créé un flux de code unique du développeur à l'environnement de production. À l'aide de GIT, nous avons créé un outil avec une vérification du code en deux étapes et divers environnements de développement et de production.
Pour chaque projet, nous créons des mécanismes entièrement automatisés pour une intégration continue et une mise en œuvre continue (en utilisant, entre autres, Azure Pipelines et Azure Artifacts). Depuis 2019, nous implémentons toutes nos solutions en utilisant des conteneurs compatibles avec Docker et Kubernetes.