Змішування Angular та ASP.NET MVC / Web api?


40

Я походить від використання ASP.NET MVC / Web API, і тепер я починаю використовувати Angular, але мені не зрозуміло правильний спосіб їх змішування.

Як тільки я використовую Angular, чи надають поняття на стороні сервера MVC якісь значення? Або я повинен суворо використовувати Web API, щоб отримати дані для кутових HTTP-дзвінків?

Чи може бути більш збитий початковий пункт, який я повинен використовувати, якщо шаблон VS додає багато речей, які мені не потрібні?

Мені подобається ідея суворого поділу на стороні сервера = чисті дані та клієнтська сторона = чиста обробка HTML.


Відповіді:


17

Найпростіший спосіб подумати про це - сервер обслуговує стан. Angular може керувати збором оновлень до цього стану та надсилати їх до веб / api на сервері. Якщо ви хочете отримати більше додатків на одній сторінці, то код на стороні сервера був би лише початковим станом вашої програми.

Веб-API - це прекрасне місце для запуску ваших даних у додаток. Ви подій оновлюватимете типові маршрути, щоб відповідати вашим вимогам до дизайну оточуючих середовищ, і, якщо хочете, бути суворо сповненим.

Існує кілька бібліотек, які ASP4 включили за замовчуванням, і вони також були включені в шаблони MVC4. На сторінці дійсно багато речей, які не потрібні, а також свердловини, включені до проекту, і навіть не посилаються на їх сторінки за замовчуванням. Ви повинні безпечно видаляти все, крім jQuery, і я навіть забираю jQueryUI. Багато за замовчуванням означають добре, але як тільки ви почнете заповнювати свої знання про домен, ви скористаєтеся libs, що відповідає вашим конкретним потребам.

Навіть при суворому розділенні ви знайдете, що mvc сторона сервера все ще є дуже чистою підкладкою до програми для однієї сторінки. Ефективна маршрутизація в наданні вашої сторінки та api-дзвінків - це найкращий приклад. Ще одна корисна особливість - це контролери, які повертають представлення даних, які не використовують головну сторінку або є лише частковим поданням. Кутовий має "вигляд", який він може заповнити шаблоном, який може бути статичним файлом або частковим з одного з ваших маршрутів.

Я читав, що ви коментували раніше сьогодні, і збирав демонстраційне рішення, щоб показати те, що я спочатку згадував. Рішення також має частину оригіналу "пух" видалено, хоча додаючи Angular і Bootstrap, ви отримуєте основні бібліотеки та кожне виведення там. Це компроміс використання NuGet.

Перевірте це: https://github.com/QueueHammer/AngularWithPartialViewViews

В навчанні Angular я знайшов програму Angular-Seed досить корисною. Особливо після того, як я спробував демонстрації на їхньому сайті. Зразок проекту просто настільки різний, що допомагає вам навчитися. Після цього я подивився на Angular-Require-Seed, але це вже інший пост. Кутовий крок за кроком http://docs.angularjs.org/tutorial Кутове насіння: https://github.com/angular/angular-seed


Тому було б доцільно мати декілька подань на стороні сервера, тобто MVC зазвичай працює .. і тоді для кожного з цих представлень буде кілька кутових поглядів на стороні клієнта (можливо, створення / деталі / редагування для певної сутності) .. Якщо так, то я б хотів знайти такий шаблон, який би став на хороший шлях до використання MVC та кутових разом
punkouter

Додано посилання на демонстраційний проект, і там, де я вперше почав шукати Angular. Я збираюся вести блог про SPA-центри в цілому та деякі кращі моделі / бібліотеки, які вирішують їх архітектурні завдання протягом наступних двох місяців. Я оновлю свою посаду, коли це зробити.
QueueHammer

тільки що отримав ваше посилання .. подивився демонстрацію. добре виглядає .. Перше питання - це так .. Ви зберігаєте функціональність ASP.NET MVC як основну сторінку, з якої ви починаєте .. поза цією сторінкою все інше - це кутові часткові перегляди. NET MVC перегляди? Іншими словами .. вид ASP.NET MVC є батьківським кутовим частковим переглядом .. наприклад .. Можливо, я не хочу ВСІХ часткових переглядів під одним переглядом ASP.NET .. це має сенс? Не могли б ви мені це показати? Я вважаю, що те, що ставить мене в хороше місце для початкової точки, а може, те, що я говорю, не має сенсу?
пунктур

і в чому сенс partialsController.cs, оскільки він ніколи не називає жодного з них?
пунктур

Можна помістити частки майже в будь-яке місце. Ви можете зробити більше контролерів із дією на перегляд, я використав один "partialsController.cs", що в проекті збігаються з представленнями, визначеними в кутовому модулі програми. Отже, частковий / view1 викликає контролер partials та отримує viewOne дії, який потім отримує view ViewOne. У діях можна викликати View (); за допомогою рядкового параметра передайте місцезнаходження вашого перегляду. Таким чином, у вас є гнучкість організувати її практично будь-яким способом.
QueueHammer

18

Чи може бути більш збитий початковий пункт, який я повинен використовувати, якщо шаблон VS додає багато речей, які мені не потрібні?

Ці шаблони VS добре спочатку зменшити початкові налаштування та криву навчання, однак вам потрібно буде налаштувати їх під реальні потреби проекту.

Наприклад, на цьому веб-сайті http://www.reviewstoshare.com мій друг, який використовує AngularJSразом із ASP.NET MVC. Майте на увазі, що цей веб-сайт уже створений за допомогою ASP.MVC + Jquery для взаємодії зі сторінками за потреби.

З іншого боку, на сайті все ще є деякий характер "Ajaxy", як коментарі, голосування, позначення тощо. Не надто відрізняється від самого Stackoverflow. До AngularJS це було безладдям плагінів і функцій Jquery в межах $(document).ready()зворотного виклику, не кажучи вже про код JS, він не був дуже перевірений.

В цілому наявність належного поєднання обох робить ваш сайт гладким та функціональним.

введіть тут опис зображення

Деякі хороші посилання, на які слід звернути увагу:


Або якщо під колекцією кутових часткових сторінок є кілька регулярних переглядів MVC, це не допоможе (як я вже згадував у своєму коментарі вище)
punkouter

Це правда, проблеми з SEO були вирішені новими оновленнями.
Е.Л. Юсубов

3
Отже, не критикувати, але хіба негативні твердження на діаграмі насправді не опиняться нижче осі x? Це зробило б графік схожим на постійно зростаючу хвилю гріха. Я знаю, це не ваша діаграма, а її погана наука.
QueueHammer

12
QueueHammer Ви повинні бути справжніми задоволеннями на вечірках. :-)
Thomas Stock

1
Я повністю застряг у двох нижчих точках хвилі з обох боків "Дуже круто!" міхур, як одне поєднане лайно кутового пекла.
MetaGuru
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.