Два отдельных решения для UI и API - PullRequest
1 голос
/ 05 мая 2020

У меня есть нестандартный вопрос, не технический, чтобы найти какое-то решение.

Я видел во многих местах, что разработчики создают отдельный проект приложения Angular с использованием кода Visual Studio и отдельный проект для приложения. NET Core Web API с использованием Visual Studio 2019 IDE.

Я также видел в некоторых местах, где есть только одно решение для. NET Core, и у нас также есть приложение Angular как один из проектов в том же решении Visual Studio. Одно из преимуществ, которое я понимаю, заключается в том, что легко отлаживать код API из внешнего интерфейса, в то время как код внутреннего интерфейса API продолжает работать.

Однако какой из них является хорошим способом создать решение, когда у нас есть Angular во внешнем интерфейсе и веб-API в серверной части и почему. Извините, я новичок в Angular, поэтому пытаюсь понять эту разницу. Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 05 мая 2020

То, как вы видели (2 отдельных проекта, один в коде VS для angular и один в Visual Studio для. NET CORE) абсолютно верен.

Есть много причин:

1 - Vscode - один из лучших редакторов для фронтенд-разработки, в нем множество angular плагинов

2 - Visual Studio. - лучшая IDE для основных проектов. NET и. NET с красивым intellisense и множеством функций, которые вы не найдете ни в одной другой IDE .. теперь вы можете использовать ее также на MA C (https://visualstudio.microsoft.com/it/vs/mac/) .. но для фронтенда он не годится, как vscode

3 - вы можете работать только с фронтендом или только с бэкендом без необходимости загружать все свои проекты.

4 - если вам нужно работать над обоими и отлаживать весь стек, вы можете сделать это без каких-либо проблем (просто включите CORS на задней панели)

вы можете сделать это, поместив этот код в свой файл startupl.cs в методе configureService введите

services.AddCors(options =>
            {
                options.AddPolicy("AllowAllOrigins",
                    builder =>
                    {
                        //builder.WithOrigins("https://yoursite.com",
                        //    "https://stage.yoursite.com",
                        //     
                        //    "https://www.yoursite.com");
                        builder
                                                .AllowAnyOrigin()
                        .AllowAnyHeader()
                        .AllowCredentials()
                        .WithExposedHeaders("Content-Disposition")
                        .AllowAnyMethod();
                    });
            });

затем в методе Configure

 app.UseCookiePolicy();

            app.UseCors("AllowAllOrigins"); //<-- USE IT
            app.UseAuthentication();

Надеюсь, это вам поможет!

...