Edit (31 / MAY / 2018)
Сегодня я создал шаблон проекта DotNet, который должен облегчить эти шаги для всех.Вы можете попробовать это здесь:
AspNetCore2Ang6 Шаблон: https://github.com/JuanGarciaCarmona/AspNetCore2Ang6Template
END Edit (31 / MAY / 2018)
На второй вопрос:
Каковы плюсы и минусы для каждого подхода, когда целью является создание клиентского приложения, которое будет взаимодействовать с данным API ядра ASP.Net?
ИМХО лучший выбор - иметь оба в одном проекте, потому что вы можете развернуть и обслуживать клиентскую часть (угловую) и API (контроллеры ASP NET Core Web API) из одного проекта, что хорошо на стадии разработки и облегчаетразвертывание.Чтобы достичь этого, лучший выбор - совместить оба механизма, вы можете создать проект dotnet и поместить в него место, в которое также вставил угловой код, добавить и использовать MVC для вашего приложения и обслуживать угловое приложение.
Самый простой рецептсделать это:
- Создать проект dotnet (пустое основное веб-приложение ASP NET) и назвать его XXXXXX, что можно сделать из Visual Studio или из командной строки формы («dotnet new web»)
- Затем из командной строки перейдите в папку prevous и введите ng new XXXXXX, эта команда поместит все необходимое в ранее созданную папку проекта dotnet.
Как только она закончится, перейдитев angular.cli и установите для вывода значение «wwwroot» (вместо «dist / XXXXXX» 4.- Ваш класс запуска должен выглядеть так:
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseMvc();
app.UseDefaultFiles();
app.UseStaticFiles();
}}
И затем вы можете запустить его, используя dotnet run или ng serve, обе команды работают.
Одна вещь, которая, по крайней мере для меня, отсутствует, это то, что живая перезагрузка не работает, как только япочини мнеЯ обновлю этот ответ.
Надеюсь, это поможет,
Хуан
Редактировать (26 мая / 2018)
ОтносительноПерезагрузка в реальном времени не позволила мне достичь этой цели путем отладки из VS или запуска приложения с помощью dotnet, но для проверки стилей и небольшой, но сложной настройки я запустил веб-приложение с «ng serve».
Если вам нужны и клиент, и сервер, работающий и работающий, потому что вам нужно вызывать ваши контроллеры API из вашего клиентского приложения, тогда вы можете поиграть с environment.ts, настраивая ваш базовый URL API и в это время запустить вашбэкэнд от VS и ваш интерфейс с NG служить.надеюсь, это будет решено или исправлено в будущих версиях VS или, как я видел, было запрошено, в более новых шаблонах SPA ядра asp net, подготовленных для Angular 6