2014-04-15 5 views
77

В настоящее время я оцениваю модель программирования для создания будущих веб-приложений в своей компании. Поэтому я буду решать между ASP.NET MVC 5 (с Razor Views) и AngularJS с помощью ASP.NET WebAPI. Каковы преимущества/недостатки этих двух моделей программирования?ASP.NET MVC 5 vs. AngularJS/ASP.NET WebAPI

+4

Ну ... если вы собираетесь привязать AngularJS к ASP.NET ... вы на самом деле не даете ему честного сравнения. Это похоже на то, что вы хотите вывести Javascript из Angular, и это просто не так, как должно было случиться. Угловое предназначено для вашей структуры для клиента и работает лучше всего, когда вы используете очень мало шаблонов на стороне сервера: https://www.simple-talk.com/blogs/2013/10/16/angularjs-on-top-of -Asp-нетто-перемещение-на-Mvc-каркасного из-к-браузера /. Такие вещи, как аутентификация и такие, имеют смысл, но оставляют бритву и просто идут прямо .NET и создают для нее слой API для Angular. –

+3

Я думаю, что вам действительно нужно просто AngularJS с ASP.NET WebAPI. Я думаю, что это лучшее из мира. Я пытался смешивать MVC с AngularJS, и это было не очень приятно, когда я сталкивался с проблемами, поэтому предлагаю не попасть в эту ловушку. Одна вещь, которую я пропустил при таком подходе, - это представления, основанные на устройстве, которые могут предоставить MVC с двигателем Razor. Должен быть способ преодолеть это, но я пока еще недостаточно покарался. – Kiran

+0

Работая с Angular всего за несколько коротких месяцев (хотя это кажется навсегда), я бы никогда не вернулся к Razor. Чем больше вы работаете с Angular, тем больше вы цените это - гибкость и мощь, иногда это похоже на магию. Я должен сказать, что Web API не очень хорошо играет с Angular, по крайней мере, на форме POST, но это можно было бы разработать. Это непростой переход для синтаксиса программиста на C#, поскольку javascript не является строго типизированным языком. Но когда вы преодолеете это препятствие, вы поймете, что Угловая. –

ответ

95

Мои 2 цента. Я лично предпочитаю чистые представления HTML, полностью угловатый интерфейс, а также интерфейс Web API/EF/SQL Server, в основном не Razor. Razor - это абстракция, помогающая программистам визуализировать HTML, в наши дни все приходят к выводу, что удаление этих абстракций - лучшая идея, отсюда эволюция ASP.NET из веб-форм, MVC и т. Д. Разработчикам не сложно захватывает HTML и использует угловой интерфейс, более того, это упрощает работу дизайнеров UI, у них есть чистый HTML и JSON/Javascript, им не нужно разбираться в MVC, Razor, контроллерах и действиях. Мы работали полностью над MVC, в нашем последнем проекте мы перешли на задний конец Web API и угловой интерфейс, и мы заметили, что производительность нашего дизайнера UI значительно улучшилась.

+3

И я хотел бы добавить к этому, с угловатым вы можете динамически обновлять свои шаблоны, что, безусловно, удивительно –

+4

Да, когда дело доходит до разработки более динамичного и отзывчивого интерфейса перед vs стоимость разработки, действительно нет конкуренции. –

+0

@ user189756 как вы доставляете HTML-страницы клиенту при использовании подхода Web API? – Yoav

47

Я считаю, что вы не можете сравнить. AngularJS - это приложение для одиночной страницы (SPA), тогда как ASP.Net MVC использует стандартную модель, в которой перемещаются между страницами. Если вы хотите построить SPA, то решаются такими факторами, как

  • Вы хотите SEO. Какая большая часть этих JS-богатых фреймов имеет ограниченную поддержку.
  • Как вы можете структурировать свое приложение как SPA или несколько SPA.
  • Исходя из типа безопасного языка C# для программирования JavaScript является проблемой.
  • Изучение AngularJS и эффективное использование.

Мы используем стандартный вид бритвы MVC 5 для настройки начальных угловых изображений, чтобы вы могли даже комбинировать их вместе, если это необходимо.

См. Этот ответ Can you use AngularJS with Parse.com?, чтобы получить больше контекста.

+11

«... в то время как ASP.Net MVC использует стандартную модель, где один перемещается между страницами». Это просто неверно. Приложения MVC - с использованием бритвы - могут быть легко разработаны как SPA. – Sam

+6

AngularJS не ограничивается SPA, вы можете очень хорошо построить многостраничный веб-сайт с угловыми и глубокими связями .... –

+2

AngularJS не SPA. Вы можете использовать его как SPA, но это не автоматическое или необходимое. Нужно добавить в ng-маршрут зависимости маршрутизации, чтобы даже иметь маршрутизацию. AngularJS невероятен и может быть отличным SPA, но его просто глупо сказать AngularJS = SPA. –

Смежные вопросы