Turbulences Admin
Turbulences Admin
Agile
29 December 2013

Passage à ASP.Net Web API

Lorsque j’ai débuté le développement de l’application de feuille de temps en ligne chez novIQ, l’idée était d’expérimenter des aspects du développement qu’on n’a pas la chance de faire en clientèle, en plus bien sûr de passer au 21ème siècle et de ne plus avoir à transmettre un chiffrier Excel par courriel.  Les technologies que je voulais explorer étaient donc Entity Framework, Azure et ASP.NET MVC.  J’ai fait plusieurs versions de l’application au fur et à mesure de l’exploration des thèmes tel que le “progressive enhancement” et le “responsive design” mais j’en suit rapidement venu à la conclusion qu’en fait, l’application de feuille de temps était la candidate parfaite pour une SPA.  J’ai donc gardé mon projet ASP.NET MVC mais en fait, il ne restait qu’une seule vue et un seul contrôleur pour la présentation.  J’ai utilisé Knockout.js pour implémenter facilement un modèle MVVM à l’intérieur de la vue.  La logique d’affaire était implantée directement dans les contrôleurs de l’application MVC qui étaient maintenant adressés par le biais de requêtes AJAX.  Les accès à l’application sont sécurisés par le biais d’une authentification avec l’AD Azure de novIQ.

Dernièrement, mon collègue Paul Deschênes s’est joint à moi pour qu’on transporte les logiques d’affaire implémentées dans les contrôleurs de l’application MVC vers un projet de type ASP.NET Web API. Il a donc exploré ce modèle permettant d’exposer de la logique sous forme de service basé sur l’architecture REST.  Il a déplacé la logique des contrôleurs MVC vers le projet Web API et adapté le tout (ces deux technologies sont très près l’une de l’autre en terme d’implémentation).  Il a sécurisé l’accès à l’aide de l’AD Azure de novIQ également, l’application MVC doit donc obtenir un token de l’AD et le passer à chaque appel de service par le biais du header Authorization.

Ceux qui me connaissent savent que je n’ai aucun talent ni intérêt pour tout ce qui touche le design des applications.  L’application de saisie des feuilles de temps ne fait pas exception, le visuel était pour le moins très ordinaire (le terme approprié ne peut être cité sur ce blogue).  Paul a donc fait l’exercice de faire une interface HTML basée sur la dernière version de Bootstrap.  J’ai par la suite adapté la vue du projet MVC pour rendre ce nouveau design et j’ai “replogué” le tout avec Knockout.  Comme le design était un peu différent, j’ai dû ajouter quelques méthodes dans le ViewModel et adapter les méthodes existantes pour passer vers les services REST.  Résultat, une toute nouvelle interface plus belle et conviviale, totalement responsive et basée sur les toutes dernières technologies.  Et le fait d’offrir la logique par le biais d’une architecture REST nous place en bonne position pour débuter le développement d’une app mobile pour la saisie du temps qui réutilisera la même logique.  Go mon Paul!!  Je vais superviser……  Ben quoi?  Je code pu, je fais du Word pis du Powerpoint!  Et des billets dans le blogue novIQ!