Monthly Archive 12 December 2019

ByPatrick

Nos standards high level pour une application moderne :

Niveau 1

  • Aucun paramètre important ne doit être hardcodé, ils doivent se retrouver dans un fichier de config ou dans la base de registre (emplacement des fichiers, login, psw, connection string, url..)
  • Logging d’erreurs doit être présent, en cas de crash, on doit avoir des try catch aux bons endroits
  • Ça doit être en service, ou webservice on doit pouvoir redémarrer le serveur sans que ça n’interrompe définitivement le bon fonctionnement de l’application

Niveau 2

  • Multi users : 
    • Securité via ldap et sso 
    • ou locale
  • Logging centralisé
  • l’application doit être hautement disponible
    • Load balance
    • Windows cluster

Niveau 3

  • Test unitaire
  • Test de charge
  • Multithread
  • Get configuration via un webservice
  • Si l’application se connecte à internet, permettre de se connecter à internet via un proxy

Niveau 4

  • Logging : 
  • Différents niveaux  : permettre de mettre un mode debug avec plus de détails ou simple
  • Dfférentes destinations
    • Event viewer
    • Fichiers plats
    • syslog
    • Graylog

Accès à une DB

  • Réinclure les méthodes pour permettre une mise à jour facile (penser à Mysql qui a changé en Mysqli)
  • multi DB (MsSql, Mysql, Oracle..)
  • Syncho DB locale  : permettre à l’application d’avoir une copie local d’une partie de la DB pour mode offline
  • Toutes les requêtes SQL doivent être optimisée (moins d’une seconde), vérifier nhibernate
  • l’archivage des données moins utiles

Niveau 5

  • Audit de code pour performance
  • Audit de code pour sécurité
  • Https avec certificate pinin
  • Multi langue : Traduction facile / changer de langue / ajouter une langue

Comment gérer les licenses

Code unique à taper et validation locale

Code unique à taper et activation en ligne et blocage si > X  et lier au matériel

Code unique à taper et activation en ligne et blocage si date > X  et lier au matériel

Par user avec un portail

Utilisateurs concurrents (dès que l’application se lance, elle va se connecter à un serveur de licence et bloquer une licence pendant X heures

  •   Multi interface / design
  •   Webservice attaqués via 
    • Page web (ergonomique, réactives)
    •  Interface lourde
    • Appx ou apk (s’adapte et testé par device client)

Contraintes d’intégrités et workflow

Déploiement:

  • Pouvoir déployer facilement et recréer des environnements à la demande (Cloud, Infrastructure as code,

Swagger et health