Ну могу разобраться с архитектурой Web приложения?
Добрый вечер, помогите разложить все по полочка в моей голове. Хочу освоить web разработку, был очень маленький опыт в работе с Asp.Net MVC, сейчас хочу освоить постепенно full-stack, для этого хочу написать веб приложение, изначально просто блог для себя. Идея такая, я хочу пробовать разные инструменты как со стороны front-end так и со стороны back-end. Правильно ли я понимаю что для этого нужно разбить приложение на части, которые будут крутится на разных серверах.
Допустим я хочу использовать Angular2 и Asp.net core (Web API), я не должен помещать все это в одно приложение? Angular2 должен крутиться на своем сервере(каком ?), а WEB API на другом и тогда я могу спокойно заменить Angular2 на что то другое и так же Asp.net на Python/flask например?
Возможно для простого блога это слишком сложное решение, но это будет просто разработка для освоения новых навыков.
Вы правы - можно запустить отдачу файлов Angular-а на одном порту/доменном имени/ip-адресе/веб-сервере (подойдёт любой веб-сервер, лишь бы умел отдавать статичные файлы: IIS/nginx/Apache/встроенный в nodejs), а ASP.NET WebAPI отдавать на другом порту/веб-сервере (здесь требуется IIS) - получается довольно удобно. А можно разнести по начальным путям - например, api отдавать по URL-ам, начинающимся на "/api/", а файлы Angular-а на всех остальных (настраивается на веб-сервере).
Кроме того, приложение ASP.NET WebAPI можно сделать "self-hosted", т.е. со встроенным в него web-сервером, тогда его можно просто запускать как консольное приложение, и отдельный web-сервер для ASP.NET становится не нужен (но всё ещё нужен для Angular).
Frontend framework`и обычно собираются т. н. сборщиками (Gulp, Webpack). Сборщик выдает набор статичных файлов (html, js, css, images, fonts). Данную статику загружают на сервер и ее выдает сервер-приложение (Apach, Nginx).
Иногда сборку осуществляет backend. Видел gem для Рельсов и решения на PHP.
Чтобы начать разбираться в Angular 2 придется изучить Webpack, Typescript, Javascript, верстку (html+css) и только потом сам Ангуляр.
Можно попробовать с чего попроще, т. к. у Ангуляра 2 высокий порог входа из-за сложности и плохой англоязычной документации.
азы Html/css я знаю. Мне было просто интересно как разработать приложение, части которого можно легко менять. Допустим после Angular я захочу попробовать ReactJS. И чтобы внедрение его было как можно проще
Использовать несколько фреймворков одновременно -- плохая идея.
Процесс перехода от одного подхода к другому называется миграция. Если интересен именно этот вопрос, то гуглите что-то типа "Миграция с X на Y".