Ответ 1
Должен ли я по-прежнему рассматривать структуру приложений с одной страницей, зная, что это будет приложение среднего масштаба со множеством страниц и сложной логикой/алгоритмами.
У меня нет большого опыта в SPA. MVC на самом деле не предназначен для решения проблемы, но AngularJS будет очень хорошо работать с этим подходом. Здесь у вас не будет никаких трудностей.
Я слышал, как люди говорили о замене ASP.NET MVC + jQuery полностью на ASP.NET Web API + Angularjs. Это действительно лучший выбор для средних или крупных веб-приложений со сложной логикой. Если да, то что является альтернативой сеансу, аутентификацией и т.д.
Замените jQuery на AngularJS, за исключением тех редких случаев, когда jQuery делает то, что Angular не может. По моему опыту я использую только jQuery для редких ситуаций выбора DOM.
Angular JS очень хорошо разбирается в проблемах, привязывает данные, обновляет пользовательский интерфейс и поощряет хорошие методы программирования, такие как IOC/инъекции зависимостей и SOLID.
WebApi не заменяет MVC как таковой; но то, что вы должны делать, это использовать WebApi, где это имеет смысл. То есть, всякий раз, когда вы вызываете асинхронные вызовы (AJAX) с помощью Angular, он должен взаимодействовать с базовым интерфейсом WebApi. Простые материалы Get/Post.
Было бы разумным решением использовать ASP.NET Web API, ASP.NET MVC и Angularjs вместе.
Совершенно верно. Я рекомендую это.
Какова совместимость последних версий jQuery, Bootstrap и Angularjs.
Bootstrap зависит от jQuery. Angular нет. Все они работают безупречно друг с другом. Я использую их все (но я не очень часто взаимодействую с jQuery).
Увеличится ли время разработки/стоимость использования с помощью Angularjs + SPA вместо ASP.NET MVC + jQuery (Non-SPA).
AngularJs имеет кривую обучения и не так прост, как jQuery. То есть, это не совсем так, как pick-up-and-go как jQuery.
В первую очередь это занимает много времени, но со временем я считаю, что легкость отладки, принудительное разделение кода и лучшие практики означают, что Angular более надежный, более гибкий, меньше кода, повторное использование кода и т.д.
Обратите внимание, что, хотя я поклонник AngularJS, другие фреймворки javascript, такие как Ember, Backbone, Knockout и так далее, Я уверен, так же отлично. Индивидуальные предпочтения/опыт.