vawsan
@vawsan
Frontend Developer

Реализация frontend'а для ASP.NET MVC?

Приветствую всех.
В данный момент предстоит создание очень большого web-сервиса, высоконагруженного и оперирующего с большим количеством разных данных.

Что точно будет:
  1. Множество пользователей разных статусов(админы, диспетчеры, супервизоры)
  2. Работа с Яндекс.Картами
  3. Интеграция с телефонией
  4. Множество всплывающих окон, деревьев, гридов
  5. Интерфейс должен быть очень быстрым и работать в реалтайме
  6. SPA или нет - не принципиально


В качестве веб-сервиса видится либо ASP.NET MVC либо WEB API.
А вот с фронтендом беда.
Если взять простой razor - то даже с таблицей уже затык, т.к. ее придется все равно наращивать, стилизовать и докручивать.
Если взять razor + набор контролов( типа jqGrid и кучу других плагинов для попапов, деревьев), то в фактически каждый плагин придется посылать jsonResult на каждое событие, что аналогично использованию angular.
Если взять angular, то спект его UI-контролов тоже не сказать чтоб богат и красив, да поучить его придется изрядно.

Вопрос: какой из этих вариантов оптимальнее по скорости/просто разработки + эффективности работы/нагрузки? Может есть какая нибудь еще хорошая связка? Да и вообще, на каком фронтенде делаются серьезные веб-приложения на базе ASP.NET MVC?
  • Вопрос задан
  • 6115 просмотров
Пригласить эксперта
Ответы на вопрос 2
Valeriy1991
@Valeriy1991
Разработчик .NET C# (ASP.NET MVC) в Alfa-B, Moscow
Добрый день!

Учитывая объем задач и наверняка не очень большие сроки их реализации, возможно, имеет смысл отдать front-end профессионалу. Но если таковой возможности нет, то я отдал бы предпочтение обычному Razor.

Постараюсь объяснить - почему.

1. AngularJS (и ему подобные) мне, увы, не знаком. Следовательно, нужно потратить достаточно много времени на его изучение и решение проблем в ходе использования в проекте. А это в свою очередь может сильно сказаться на сроках проекта.
2. Использовать какие-либо готовые контролы (аля гриды jQueryUI и т.п.) - тут я бы не стал торопиться. Как ни крути, настает такой момент, когда нужно, чтобы эти контролы могли делать то, что от них хотят, но то, для чего они не приспособлены. Как следствие - код обрастает дикими костылями. К тому же, на мой взгляд, внешний вид оставляет желать лучшего... Если наступает понимание, что этот контрол сможет решить задачу - то тогда его можно применить.
3. Взял бы в качестве основы front-end'а какой-нибудь нормальный frontend-framework (Bootstrap, FlatUI, Pure). Возможно - даже несколько (сам отдаю предпочтение Pure Grid + FlatUI). Проблем со стилизацией будет гораздо меньше, чем если всё самому с нуля писать.
4. Razor вполне прост, если его правильно применять (имею в виду правильное разделение на Layout, Partial View, View, при необходимости кеширование вывода) - непонимаю, чем он Вас так пугает.
5. Насчет всяких всплывающих окон, деревьев, гридов - отдал бы предпочтение специальным плагинам (отдельный плагин под окна, отдельный - под деревья, отдельный - под гриды). Как правило, можно найти очень удобные, простые и кастомизируемые решения. На мой взгляд, лучше использовать какие-то специализированные инструменты (которые решают только 1 задачу), чем унифицированные (которые могут решать целую кучу задач).

Было бы здорово, если бы другие специалисты привели свою точку зрения. Интересно узнать, как люди решают подобные задачи...
Ответ написан
@dmitryKovalskiy
программист средней руки
Ну во-первых если у вас будет большое приложение под нагрузкой - узких мест и без backend-а будет с горкой. БД например. ИМХО - оптимальным решением было бы БД - WEB API для отдачи данных(пригодится если будет что-то помимо веб-морды) - Angular .
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы