ASP.NET MVC 5 vs AngularJS / ASP.NET WebAPI [fermé]

86

J'évalue actuellement le modèle de programmation pour la création de futures applications Web dans mon entreprise. Je vais donc choisir entre ASP.NET MVC 5 (avec Razor Views) et AngularJS avec ASP.NET WebAPI. Quels sont les avantages / inconvénients de ces deux modèles de programmation?

Bitmuggler
la source
4
Eh bien ... si vous allez ancrer AngularJS à ASP.NET ... vous ne lui donnez pas vraiment une comparaison équitable. C'est comme si vous cherchiez à supprimer le Javascript d'Angular, et ce n'est tout simplement pas la façon dont cela est censé se produire. Angular est censé être votre framework pour le client, et fonctionne mieux lorsque vous utilisez très peu de modèles côté serveur: simple-talk.com/blogs/2013/10/16/… . Des choses comme l'authentification et autres ont du sens, mais laissez le rasoir de côté, et allez simplement .NET et créez une couche API pour Angular avec.
Brian Vanderbusch
3
Je pense que ce dont vous avez vraiment besoin, c'est simplement AngularJS avec ASP.NET WebAPI. Je pense qu'il a le meilleur des deux mondes. J'ai essayé de mélanger MVC avec AngularJS et ce n'était pas une très bonne expérience lorsque j'ai rencontré des problèmes, alors je suggérerais de ne pas tomber dans ce piège. Une chose qui me manque avec cette approche, ce sont les vues basées sur les appareils que MVC avec le moteur Razor peut fournir. Il doit y avoir un moyen de surmonter cela, mais je n'ai pas encore assez exprimé.
Kiran
Ayant travaillé avec Angular pendant quelques mois seulement (même si cela semble être une éternité), je ne retournerais jamais chez Razor. Plus vous travaillez avec Angular, plus vous l'appréciez - flexibilité et puissance, parfois cela ressemble à de la magie. Je dois dire que l'API Web ne joue pas bien avec Angular, du moins sous la forme POST, mais cela pourrait être réglé. Ce n'est pas une transition facile pour un programmeur C # en termes de syntaxe, car javascript n'est pas un langage fortement typé. Mais en surmontant cet obstacle, vous apprécierez Angular.
Florida G.
Le rasoir est une chose horrible, même parmi les moteurs de modélisation. Vous remarquerez une augmentation drastique de la productivité lors de l'utilisation d'angular sur n'importe quel moteur de modélisation (Jade, guidon, rasoir, etc.). Utilisez un backend qui sert des JSON (peut être web-api, node-express ou PHP) et un frontal angulaire. Et juste pour noter, KO n'est pas aussi bon que anguleux ... Tous les meilleurs ...
Giridhar Karnik
1
@BrianVanderbusch Je ne sais pas vraiment de quoi vous parlez. Le backend n'a pas du tout d'importance. Ça pourrait être n'importe quoi. Il dit qu'il utilisera ASP.NET comme backend et angulaire comme frontal côté client. Angular doit encore appeler le serveur pour obtenir des données. Cela n'a rien à voir avec le fait de ne pas donner à Angular une comparaison équitable.
user441521

Réponses:

103

Mes 2 cents. Personnellement, je préfère les vues HTML pures, une interface entièrement angulaire avec une interface Web API / EF / SQL Server, essentiellement pas de Razor. Razor est une abstraction pour aider les programmeurs à rendre HTML, de nos jours, tout le monde arrive à la conclusion que la suppression de ces abstractions est une meilleure idée, d'où l'évolution d'ASP.NET des formulaires Web vers MVC, etc. Ce n'est pas vraiment difficile pour les développeurs d'y accéder maîtrise le HTML et utilise un frontal angulaire, de plus, cela facilite le travail des concepteurs d'interface utilisateur, ils ont du HTML pur et JSON / Javascript, ils n'ont pas besoin de comprendre MVC, Razor, les contrôleurs et les actions. Nous travaillions entièrement sur MVC, dans notre dernier projet, nous sommes passés à un back-end d'API Web et un front-end angulaire, et nous avons remarqué que la productivité de notre concepteur d'interface utilisateur s'est considérablement améliorée.

Mohammad Sepahvand
la source
3
Et j'aimerais ajouter à cela, avec angular, vous pouvez mettre à jour vos modèles de manière dynamique, ce qui est évidemment génial
Willem D'Haeseleer
4
Oui, quand il s'agit de développer un front-end plus dynamique et réactif par rapport au coût de développement, il n'y a vraiment pas de concurrence.
Mohammad Sepahvand
@ user189756 Comment livrez-vous les pages HTML au client lorsque vous utilisez l'approche API Web?
Yoav
@Yoav C'est une vieille réponse, mais à l'époque c'était un hôte MVC avec un contrôleur unique.
Mohammad Sepahvand
1
@Yoav Précisément. Mais j'ajouterai que l'autre réponse est également excellente, en particulier en tenant compte de choses comme le référencement.
Mohammad Sepahvand
53

Je pense que vous ne pouvez pas comparer. AngularJS est un framework SPA (Single Page Application) alors qu'ASP.Net MVC utilise le modèle standard où l'on navigue entre les pages. La décision de construire un SPA dépend de facteurs tels que

  • Voulez-vous du référencement. Lequel la plupart de ces frameworks JS riches ont un support limité.
  • Comment pouvez-vous structurer votre application en SPA ou en plusieurs SPA.
  • Passer d'un langage C # de type sécurisé à la programmation JavaScript est un défi.
  • Apprendre AngularJS et l'utiliser efficacement.

Nous utilisons la vue rasoir MVC 5 standard pour configurer les vues AngularJS initiales afin que vous puissiez même les combiner si nécessaire.

Voir cette réponse Pouvez-vous utiliser AngularJS avec Parse.com? pour dériver plus de contexte.

Chandermani
la source
12
"... alors qu'ASP.Net MVC utilise le modèle standard où l'on navigue entre les pages." C'est tout simplement faux. Les applications MVC - utilisant un rasoir - peuvent être conçues très facilement comme des SPA.
Sam
7
AngularJS n'est pas limité aux SPA, vous pouvez très bien créer un site Web de plusieurs pages avec des liens angulaires et des liens profonds ....
Giridhar Karnik
3
AngularJS n'est pas un SPA. Vous pouvez l'utiliser comme un SPA, mais ce n'est ni automatique ni nécessaire. Avoir à ajouter la dépendance de routage ng-route afin d'avoir même le routage. AngularJS est incroyable et peut être un excellent SPA, mais c'est juste idiot de dire AngularJS = SPA.
Tom Stickel
5
TypeScript est une bonne option pour le type safe js.
Kyle JV
9
AngularJS a été créé par Google. S'il manque de référencement, ils font quelque chose de mal.
Worthy7