2016-09-07 10 views
0

Я работаю с ASP.NET MVC около года. Мне очень нравится возможность создавать SPA Особо с помощью следующих инструментов:MVC5 vs Angular JS

  1. Частичный вид на (через html.action() и renderPartial())
  2. Ajax хелперы (Ajax.ActionLink() и Ajax. BeginForm())

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

ответ

2

Вам определенно не хватает некоторых вещей.

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

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

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

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

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

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

+0

Спасибо, Балаз, ваш отзыв очень информативный. Что такое надежный ресурс, чтобы узнать о загрузке контента по требованию с угловым, это то, что я буду изучать! – MCSD

+1

https://angular.io/docs/ts/latest/ –

+0

Спасибо! Большое спасибо – MCSD

3

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

+0

Спасибо, Роберт, это очень проницательно. Можете ли вы предложить какие-либо рекомендации, с точки зрения лучшего ресурса, который я могу использовать, чтобы научиться смешивать углы с .NET MVC? – MCSD

+1

Это зависит от типа проекта, который вы строите. Я думаю, что лучший способ узнать, как их смешивать, - это сделать чистый проект с угловой стороны (например, веб-дизайн с веб-сайтом 2 +), и тогда вы лучше поймете, когда использовать тот или иной. Другой вариант - использовать React.js, а затем React.net, который позволит вам даже рендерить представления на сервере сначала, а затем в браузере. – robert

+0

Angular + web api 2. Отлично! – MCSD

3

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

+0

Спасибо за ваш комментарий Alexandre. Когда смешение углового было. Не из того, что я понимаю, я тогда не смог бы использовать частичные взгляды, но должен был бы перейти к угловым представлениям. Так что .NEt будет обрабатывать только серверную сторону, в то время как угловые обрабатывают клиентскую сторону, правильно ли я понимаю? – MCSD

+2

Нет, не совсем. Вы все равно сможете использовать частичные представления, поскольку они отображаются непосредственно в ответ при первой загрузке страницы. Частицы имеют две цели: обеспечить способ повторного использования фрагментов HTML, а также сделать очистку разметки и отправлять фрагменты html в качестве ответа, когда это необходимо. Другими словами, вы можете запросить частичные части, обработанные MVC, как фрагменты HTML, которые фактически могут быть также угловыми. Это решение, например, позволяет вам контролировать доступность ваших просмотров на основе ролей. Таким образом, вы можете использовать некоторые угловые представления для администраторов, но не для обычных пользователей. –

+2

@ Balázs именно то, на что я бы ответил. В конце концов, HTML - это HTML, у вас есть возможность решить, где и когда он должен быть вычислен и отображен в зависимости от ограничений безопасности и поисковой оптимизации. –