none
Que choisir WebAPI ou WCF

    Question

  • Je dois mettre en place sous Visual Studio 2013 une solution.

    Ma solution contient :

    un model mappé avec EF6 (mode DataBaseFirst)

    une DAL qui contient les méthodes add, get, getAll, update, delete, save et d'autre méthodes qui permettent l'éxécution de procédures stockées. (Ex : lancement d'import, mise à jour de tables etc...)

    un BLL avec des classes instanciant les classes DAL. les classes comportant des méthodes get, getAll mais aussi des méthodes appelant les méthodes de lancement d'import et mise à jour de tables de la DAL.

    Je dois relier le BLL à une couche Webservice WebAPI ou WCF afin  d'exposer les méthodes du BLL à une UI ou à des services Windows. 

    De plus il se pourrait que le BLL soit relié à un WorkFlow WF (Workflow foundation), les tâches d'exécution de traitement de mise à jour de la base ou d'import de données pouvant étre séquentielles.

    Enfin le WEBAPI ou le WCF doit pouvoir communiqué avec une UI de type ANGULARJS.

    Pouvez-vous me conseiller sur le choix du Webservice (WEBAPI ou WCF) que je dois faire.

    Merci d'avance.

    samedi 21 mai 2016 17:58

Réponses

  • Bonjour,

    Ok la "philosophie" des Web Api, c'est d'exposer des ressources. Mais globalement et personnellement, on s'en fout comme de l'an 40 ;-)

    Je vais rester très pragmatique :

    AngularJS fonctionne très bien avec des trucs qui attendent et renvoient du json.

    Web Api fait cela naturellement.

    WCF, faut le décorer pour que cela fonctionne en Json => travail supplémentaire.

    Prenons un exemple : je veux publier mon site sur un cloud. En WCF, j'aurais une méthode Publish(WebSiteDescription wd). En API REST, je peux avoir une propriété ISPublished d'une ressource WebSiteDesciption que je mets à true.

    Bref, les 2 marchent. Les Web Api sont plus pratiques à manipuler avec AngularJS.

    Perso, je n'hésiterais pas.


    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    dimanche 22 mai 2016 08:30

Toutes les réponses

  • Bonjour,

    Web API est fait pour les applications orientées ressources.Le but étant de ne faire que du CRUD sur tes objets.

    Si tu dois faire plus que juste du CRUD et des fonctions de recherche, je pense que WCF est plus adapté.

    WCF est plus adapté si tu dois faire des traitements un peu plus complexe.

    Je te conseillerai donc WCF.

    samedi 21 mai 2016 20:41
  • Bonjour,

    Ok la "philosophie" des Web Api, c'est d'exposer des ressources. Mais globalement et personnellement, on s'en fout comme de l'an 40 ;-)

    Je vais rester très pragmatique :

    AngularJS fonctionne très bien avec des trucs qui attendent et renvoient du json.

    Web Api fait cela naturellement.

    WCF, faut le décorer pour que cela fonctionne en Json => travail supplémentaire.

    Prenons un exemple : je veux publier mon site sur un cloud. En WCF, j'aurais une méthode Publish(WebSiteDescription wd). En API REST, je peux avoir une propriété ISPublished d'une ressource WebSiteDesciption que je mets à true.

    Bref, les 2 marchent. Les Web Api sont plus pratiques à manipuler avec AngularJS.

    Perso, je n'hésiterais pas.


    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    dimanche 22 mai 2016 08:30