ASP.NET MVC 5 проти AngularJS / ASP.NET WebAPI [закрито]


86

Зараз я оцінюю модель програмування для створення майбутніх веб-застосувань у моїй компанії. Тож я прийму рішення між ASP.NET MVC 5 (з Razor Views) та AngularJS з ASP.NET WebAPI. Які переваги / недоліки цих двох моделей програмування?


4
Ну ... якщо ви збираєтеся прив'язати AngularJS до ASP.NET ... ви насправді не даєте йому справедливого порівняння. Це наче ви хочете витягти Javascript з Angular, і це просто не так, як це мало відбутися. Angular призначений вашим фреймворком для клієнта, і найкраще працює, коли ви використовуєте дуже мало шаблонів на стороні сервера: simple-talk.com/blogs/2013/10/16/… . Такі речі, як автентифікація та інші подібні, мають сенс, але залиште бритву і просто перейдіть прямо .NET і створіть за допомогою неї рівень API для Angular.
Брайан Вандербуш

3
Я думаю, що вам насправді потрібен лише AngularJS з ASP.NET WebAPI. Я думаю, що в ньому найкраще з обох країн. Я спробував змішати MVC з AngularJS, і це не дуже приємний досвід, коли я зіткнувся з проблемами, тому пропонував би не потрапляти в цю пастку. Одне, що мені не вистачає при такому підході, - це подання на основі пристрою, які може надати MVC із двигуном Razor. Має бути спосіб подолати це, але я ще не виклав достатньо.
Кіран

Працюючи з Angular лише кілька коротких місяців (хоча, здається, це назавжди), я ніколи не повернуся до Razor. Чим більше ви працюєте з Angular, тим більше ви це оцінюєте - гнучкість та потужність, іноді це здається магією. Слід сказати, що веб-API погано грає з Angular, принаймні у формі POST, але це можна було б розробити. Для синтаксису програміста C # це непростий перехід, оскільки javascript не є сильно набраною мовою. Але, подолавши цю перешкоду, ви оціните Angular.
Florida G.

Бритва - це жахлива річ навіть серед шаблонів двигунів. Ви помітите різке збільшення продуктивності при використанні кутового на будь-якому шаблоніруючому двигуні (нефрит, кермо, бритва тощо). Використовуйте серверну систему, яка обслуговує JSON (може бути web-api, node-express або PHP) та кутовий інтерфейс. І лише зауважимо, нокаут не такий хороший, як кутовий .... Все найкраще ...
Гірідхар Карнік

1
@BrianVanderbusch Не дуже впевнений, про що ти говориш. Бекенд взагалі не має значення. Це може бути що завгодно. Він каже, що використовуватиме ASP.NET як серверну систему, а angular - як інтерфейс клієнтської сторони. Angular все ще повинен здійснювати дзвінки на сервер для отримання даних. Це не має нічого спільного з тим, що Angular не дає справедливого порівняння.
user441521

Відповіді:


103

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


3
І я хотів би додати до цього, завдяки angular ви отримуєте можливість динамічно оновлювати свої шаблони, що, очевидно, чудово
Віллем Д'Хезелер

4
Так, коли справа доходить до розробки більш динамічного та гнучкого інтерфейсу порівняно з вартістю розробки, конкуренції насправді немає.
Мохаммед Сепахванд

@ user189756 як ви доставляєте HTML-сторінки клієнту під час використання підходу Web API?
Йоав,

@Yoav Це стара відповідь, але на той час це був хост MVC з одним контролером.
Мохаммад Сепахванд

1
@Yoav Точно. Але я додаю, що інша відповідь також відмінна, особливо з урахуванням таких речей, як SEO.
Мохаммад Сепахванд

53

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

  • Хочете SEO. Які більшість із цих багатих фреймворків мають обмежену підтримку.
  • Як ви можете структурувати свій додаток як SPA або кілька SPA.
  • Перехід від безпечної мови типу C # до програмування на JavaScript є проблемою.
  • Вивчення AngularJS та його ефективне використання.

Ми використовуємо стандартний вигляд бритви MVC 5, щоб налаштувати початкові подання AngularJS, щоб ви могли навіть комбінувати їх, якщо потрібно.

Перегляньте цю відповідь Чи можете ви використовувати AngularJS з Parse.com? щоб отримати більше контексту.


12
"... тоді як ASP.Net MVC використовує стандартну модель, коли здійснюється навігація між сторінками." Це просто хибно. Програми MVC - за допомогою бритви - можна дуже легко розробити як SPA.
Сем

7
AngularJS не обмежується SPA, ви можете дуже добре створити багатосторінковий веб-сайт з кутовим поряд із глибокими посиланнями ....
Гірідхар Карнік

3
AngularJS - це не SPA. Ви можете використовувати його як SPA, але це не автоматично або не потрібно. Доведеться додати в залежність маршрутизації ng-route, щоб навіть мати маршрутизацію. AngularJS неймовірний і може бути чудовим SPA, але просто дурно говорити AngularJS = SPA.
Tom Stickel

5
TypeScript є хорошим варіантом для безпечного типу js.
Kyle JV

9
AngularJS створено Google. Якщо цього не вистачає в SEO, вони роблять щось не так.
Worthy7,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.