Visual Studio 2017 и угловая интеграция - PullRequest
0 голосов
/ 18 января 2019

Это фундаментальный вопрос, но я хотел бы понять, как Visual Studio обрабатывает Angular-проекты.

Используя шаблон Angular, предоставляемый в Visual Studio 2017 (C #), не могли бы вы объяснить, как работает приложение Angular?

  • Я считаю, что для среды разработки Visual Studio запускает два сервера: один - IIS для вызовов веб-API, а другой - node.js для проекта Angular (я прав?)

  • Однако в среде разработки приложение использует адрес проекта Web API (например, localhost:5000) вместо адреса приложения Angular, предоставленного node.js (например, localhost:66328). Как это происходит?

  • А как насчет производственной среды? И Web API (C #), и Angular работают в IIS?

  • Как насчет того, чтобы проект Angular разрабатывался вне Visual Studio, например, с использованием Eclipse / Visual Studio Code / Webstorm? Как я могу объединить два проекта для производственных целей?

Я знаю, что это очень простые вопросы, но буду рад, если вы сможете предоставить ответы / ссылки / ссылки.

Ответы [ 2 ]

0 голосов
/ 18 января 2019

Волшебство не делается в Visual Studio. Волшебство сделано в .NET.

Именно поэтому вы можете создавать и разрабатывать проекты ASP.NET Core Angular на Mac с использованием VS Code или даже vim!

Чтобы упростить, ASP.NET Core выполняет следующие действия:

  • В процессе разработки они перенаправляют все URL-адреса на вывод ng serve, но это происходит после добавления всех маршрутов, чтобы URL-адреса, отправляемые на контроллеры, все равно работали
  • В работе они перенаправляют эти URL-адреса в статический обработчик файлов, который просматривает папку dist, в которую добавляется результат ng build.

Код не полностью скрыт от вас.
См. Файл Startup.cs из шаблона проекта , который я использовал в качестве источника выше.

Они также используют службы узлов ASP.NET (взаимодействие узлов .NET <->) для реализации рендеринга на стороне сервера. Это означает, что если вы используете это, вам нужен Node на сервере. Подробнее см. Документы по рендерингу на стороне сервера .

На той же странице документов также указано, как у них есть дополнительный прокси-сервер для разработки на случай, если вы захотите запустить ng serve вручную, который просто проксирует (отправляет) все URL-адреса (после того, как все маршруты проверены на URL-адрес и не совпадают) на сервер разработки Angular.

0 голосов
/ 18 января 2019

Я использую VS Code для всей своей разработки на Angular, поэтому я не могу ответить на первую часть вашего вопроса. Обратитесь к документации Microsoft по шаблону Angular здесь: https://docs.microsoft.com/en-us/aspnet/core/client-side/spa/angular?view=aspnetcore-2.2&tabs=visual-studio

Я могу ответить на последнюю часть вашего вопроса.

Как насчет того, если угловой проект разрабатывается вне визуального Студия такая, используя затмение / визуальный код / ​​веб-шторм? Как я могу интегрировать два проекта для производственных целей?

Вы можете создать свое угловое приложение для производства. Это создает несколько пакетов и других файлов (таких как файл index.html) в папке dist. Затем вы можете взять эти файлы и развернуть их на своем IIS или на любом сервере, который вы используете для производства.

Вы можете найти общую информацию здесь:

https://angular.io/guide/deployment

Хотя это в основном общий и не специфичный для конкретного сервера, он содержит некоторые конкретные инструкции для IIS.

И обязательно следуйте приведенным здесь инструкциям: https://angular.io/guide/deployment#the-base-tag, чтобы установить базовый тег в соответствующую папку IIS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...