MVC5 против Angular JS

0

Я работаю с ASP.NET MVC около года. Мне нравится создавать SPA, особенно используя следующие инструменты:

  1. Частичные представления (через html.action() и renderPartial())
  2. Помощники Ajax (Ajax.Actionlink() и Ajax.beginform())

Мой вопрос: безопасно ли просто продолжать работу без фреймворков JavaScript или я серьезно упускаю что-то, не используя структуру Javascript framework такую как Angular JS.

Теги:
asp.net-mvc
asp.net-mvc-5

3 ответа

2
Лучший ответ

Вы определенно пропустили некоторые вещи.

Цель таких фреймворков, как угловое, состоит не только в том, чтобы обрабатывать переключатели вкладки бутстрапа или что угодно, чтобы отображать только части пользовательского интерфейса, а не все. Конечно, вы можете создавать небольшие и простые SPA-системы, используя такую логику, но как только вы приступите к созданию приложений реального мира, которые подходят, станет непригодным. Причины этого:

  • Ваш сайт будет очень незаметным
  • Рамки, такие как угловые, обеспечивают гораздо больше, чем просто шаблоны (подробнее об этом в один момент), но такие функции, как маршрутизация, которая позволяет загружать контент по требованию. То есть вместо того, чтобы отправить всю страницу клиенту, большая часть из которых (он), возможно, даже не рассмотрит, вы можете загружать фрагменты HTML по запросу, что снижает использование сети. Представьте, что вам нужно было скачать все (сообщения, изображения, видео, сообщения чата и т.д.) На Facebook и скрыть их, пока вы на самом деле не захотите их увидеть.

Вернемся к шаблонам, это очень мощная функция. Опять же, в случае простых приложений вы можете использовать собственный JS-код, то есть объединить строки для создания фрагментов HTML и затем вставить их в DOM. Но даже с простыми приложениями это вонючая вещь. Представьте, что вам приходилось писать пользовательские JS, чтобы объединить ваши сообщения чата в приложении, например Facebook, и вставить их в DOM. Например, с угловым2 вы можете сделать что-то вроде этого:

<ul>
  <li *ngFor="let msg of messages">{{msg.Sender}} said: {{msg.Content}}</li>
</ul>

Таким образом, Angular2 будет выполнять все синтаксические разборки и обработку DOM. То есть вы пишете декларативную разметку, а не императивную логику для того, что вы хотите отобразить.

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

  • 0
    Спасибо Balazs, Ваш ответ очень информативен. Что такое надежный ресурс, чтобы узнать о загрузке контента по требованию с angular, это то, что я хотел бы изучить!
  • 1
    angular.io/docs/ts/latest
Показать ещё 1 комментарий
3

Поскольку ASP.NET представляет собой серверную структуру, она может работать только в том случае, если она включена в AJAX. Угловая JS - это клиентская платформа, предназначенная для SPA. Если вы идете на легкий SPA, ASP.NET будет хорошо, но я думаю, вы должны использовать правильные инструменты для правильной работы. Не стесняйтесь смешивать их, чтобы найти нужное место между рендерингом на стороне сервера и динамикой на стороне клиента.

  • 0
    Спасибо за ваш комментарий Александр. Когда смешивание угловое было .NE Исходя из того, что я понимаю, я не смог бы использовать частичные виды, но пришлось бы это для угловых видов. Так что .NEt будет работать только на стороне сервера, а angular - на стороне клиента, верно ли мое понимание?
  • 2
    Нет не совсем Вы по-прежнему сможете использовать частичные представления, поскольку они отображаются непосредственно в ответе при первой загрузке страницы. Частичные задачи имеют две цели: предоставить возможность повторно использовать фрагменты HTML, а также сделать вашу разметку более чистой и при необходимости отправлять фрагменты HTML в качестве ответа. Другими словами, вы можете запросить MVC-обслуживаемые части как фрагменты HTML, которые на самом деле могут быть также угловыми представлениями. Это решение, например, позволяет вам контролировать доступность ваших представлений на основе ролей. Таким образом, вы можете предоставить некоторый угловой вид администраторам, но не обычным пользователям.
Показать ещё 2 комментария
3

Это зависит от того, какой тип приложения вы создаете, но в целом вам необязательно выбирать между ASP.NET MVC и Angular, вы можете использовать оба проекта. Например, если у вас есть страница с сеткой, где пользователь будет добавлять строки, и вам нужно рассчитать суммы и т.д., Вы можете использовать угловое значение на этой странице (и это ускорит процесс разработки). Но если у вас есть страницы со статическим содержимым, вы можете просто использовать html файл там, используя ASP.NET MVC. И вы можете использовать их оба. Для чего-то вроде сообщения в блоге, вы можете использовать статический html файл для содержимого сообщения, а затем реализовать комментарии с угловыми.

  • 0
    Спасибо Роберт, это очень проницательно. Можете ли вы предложить какое-либо руководство с точки зрения лучшего ресурса, который я могу использовать, чтобы научиться смешивать angular с .NET MVC?
  • 1
    Это во многом зависит от типа проекта, который вы строите. Я думаю, что лучший способ научиться их смешивать - это сделать чисто угловой проект (например, WEB API 2 + угловой проект), и тогда вы лучше поймете, когда использовать тот или иной. Другой вариант - использовать React.js, а затем React.net, что позволит вам даже отображать представления сначала на сервере, а затем в браузере.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню