86 votes

Mélange angulaire et api ASP.NET MVC/Web ?

Je viens à l’aide d’ASP.NET MVC/Web API et maintenant je commence à utiliser angulaire, mais je ne suis pas clair sur la bonne façon de les mélanger.

Une fois que j’utilise angulaire le MVC rompt côté concepts encore fournissent n’importe quelle valeur ? Ou dois-je strictement utiliser API Web uniquement pour obtenir des données pour les appels HTTP angulaires ?

Des conseils, que vous avez pour un gars de ASP.NET MVC transition vers angulaire serait utiles

112voto

null Points 2511

Pure Web API

Je l'habitude d'être assez hardcore avec ASP.NET MVC, mais depuis que j'ai rencontré Angulaire je n'en vois pas la raison pourquoi je voudrais utiliser tout serveur côté de la production du contenu du cadre. Pure Angulaire RESTE(WebApi) donne un son plus riche et plus lisse résultat. C'est beaucoup plus rapide et permet de construire des sites qui sont très proches pour les applications de bureau, sans aucun funky hacks.

Angulaire a un peu de courbe d'apprentissage, mais une fois que votre équipe a maîtrisé cela, vous allez construire beaucoup mieux les sites web en moins de temps. Surtout que cela a à voir avec le fait que vous n'avez pas tous ces état(moins) les questions de plus.

Par exemple, imaginez un assistant formulaire avec n'importe quel serveur traditionnel côté du cadre. Chaque page doit être validé et présenté séparément. Peut-être que le contenu de la page dépend de valeurs à partir d'une page précédente. Peut-être que l'utilisateur a appuyé sur le bouton de retour et est re-soumission d'une forme antérieure. Où en est-on stocker l'état de la client? Toutes ces complications n'existent pas lors de l'utilisation Angulaire et de REPOS.

Donc ... venir du côté obscur ... nous avons des cookies.

Question similaire

43voto

HackedByChinese Points 18294

AngularJS est plus associé avec le single page application paradigme, et en tant que tel, n'a pas grand chose à tirer de technologies côté serveur qui rendent le balisage. Il n'y a pas de raison technique qui s'oppose à vous de les utiliser ensemble, mais dans un sens pratique, pourquoi le feriez-vous?

Un SPA récupère les biens dont il a besoin (JS, CSS, HTML et points de vue) et fonctionne sur son propre, à informer les services pour envoyer ou récupérer des données. Ainsi, une technologie côté serveur est toujours nécessaire pour la prestation de ces services (ainsi que d'autres moyens tels que l'authentification et l'aime), mais le rendu des pièces sont largement hors de propos et n'est pas particulièrement utile, car il est une duplication des efforts, à l'exception MVC fait sur le côté serveur et Angulaire t-il sur le client. Si vous utilisez Angulaire, vous souhaitez sur le client pour obtenir de meilleurs résultats. Vous pouvez faire Angulaire de la poste des formulaires HTML et de récupérer des vues partielles de MVC actions, mais vous pourriez être absent dehors sur les plus simples et les plus caractéristiques de l'Angulaire et de rendre votre vie plus difficile.

MVC est assez flexible et vous pouvez l'utiliser pour les appels de service à partir d'un SPA. Cependant, WebAPI est plus fine et un peu plus facile à utiliser pour de tels services.

J'ai écrit un certain nombre d'applications AngularJS, y compris un couple qui ont migré à partir des WebForms et MVC applications, et la ASP.NET aspect évolue vers une plate-forme pour la prestation de l'application AngularJS que le client réel, et pour l'hébergement de la couche d'application, le client communique à la via de REPOS (à l'aide de WebAPI). MVC est un beau cadre, mais il se retrouve sans emploi dans ces sortes d'applications.

L'ASP.NET l'application devient une autre couche de l'infrastructure, où ses responsabilités sont limitées à:

  • L'hôte de la dépendance conteneur.
  • Le fil de la logique de gestion des implémentations dans le récipient.
  • Ensemble des actifs faisceaux pour JS et CSS.
  • Accueil WebAPI services.
  • Mettre en œuvre la sécurité, effectuer la journalisation et les diagnostics.
  • L'interfaçage avec l'application des caches pour la performance.

Une autre grande chose au sujet d'un SPA, il peut augmenter la bande passante de votre équipe. Un groupe peut faire sauter sur les services, tandis que l'autre réside dans l'application cliente. Puisque vous pouvez facilement stub ou se moquer des services REST, vous pourriez avoir un travail entièrement client application sur maquette de services et d'échanger pour les vrais quand ils ont terminé.

Vous avez à investir directement sur Angulaire, mais il paye de gros. Puisque vous êtes déjà familier avec MVC, vous avez une longueur d'avance sur certains des concepts de base.

6voto

Braulio Points 876

Cela dépend du projet sur lequel vous travaillez.

Si angularJS est quelque chose de nouveau pour vous, je voudrais plutôt choisir un petit faible risque de pression/projet de commencer et de vous assurer que vous apprendre à faire les choses dans le droit chemin (je l'ai vu dans beaucoup de projet à une mauvaise utilisation d'Angularjs parce que de la pression, les délais... manque de temps pour l'apprendre d'une manière appropriée, par exemple à l'aide de JQuery ou de l'accès aux DOM à l'intérieur de l'contrôleurs, etc...).

Si le projet est un champ vert, et vous avez acquis une certaine expérience sur AngularJS, il est logique d'abandonner ASP .net MVC et dans le côté serveur aller pour un pur REPOS/WebAPI.

Si c'est un projet existant, vous pouvez ramasser un complexe sous-ensemble de fonctionnalités et à bâtir une page séparée, angularJS application (par exemple, votre application est composée d'un gros bouquet de standard simple / moyen complexité de Rasoir en fonction des pages, mais vous avez besoin et éditeur avancé / page, qui pourraient être la cible morceau de construire avec AngularJS).

0voto

Zack Yang Points 236

Vous pouvez consulter mon projet sur mon GitHub, ce sont les utilisation AngularJS + ASP.NET WEB API (API de base RESTfull) et ils sont bien travailler ensemble. N’importe quelle question, il suffit de me contacter.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X