Öğretici: Visual Studio'da Angular ile ASP.NET Core uygulaması oluşturma

Bu makalede, API arka ucu olarak hareket etmek için bir ASP.NET Core projesi ve kullanıcı arabirimi olarak davranacak bir Angular projesi oluşturmayı öğreneceksiniz.

Visual Studio, Angular ve React'i destekleyen ASP.NET Core Tek Sayfalı Uygulama (SPA) şablonları içerir. Şablonlar, ASP.NET Core projelerinizde her çerçevenin temel dosyalarını ve klasörlerini içeren yerleşik bir İstemci Uygulaması klasörü sağlar.

Aşağıdaki ASP.NET Temel Tek Sayfalı Uygulamalar oluşturmak için bu makalede açıklanan yöntemi kullanabilirsiniz:

  • İstemci uygulamasını ASP.NET Core projesinin dışında ayrı bir projeye yerleştirme
  • Bilgisayarınızda yüklü çerçeve CLI'sini temel alarak istemci projesini oluşturma

Not

Bu makalede, Visual Studio 2022 sürüm 17.8'de güncelleştirilmiş şablon kullanılarak proje oluşturma işlemi açıklanır.

Önkoşullar

Aşağıdakileri yüklediğinizden emin olun:

  • ASP.NET ve web geliştirme iş yükü yüklü visual studio 2022 sürüm 17.8 veya üzeri. Ücretsiz yüklemek için Visual Studio indirmeleri sayfasına gidin. İş yükünü yüklemeniz gerekiyorsa ve zaten Visual Studio'nuz varsa Araçlar>Araçları ve Özellikleri Al...'e gidin ve bu da Visual Studio Yükleyicisi açar. ASP.NET ve web geliştirme iş yükünü ve ardından Değiştir'i seçin.
  • node.js ile birlikte gelen npm (https://www.npmjs.com/ )
  • Angular CLI (https://angular.io/cli) Bu, istediğiniz sürüm olabilir

Ön uç uygulamasını oluşturma

  1. Başlangıç penceresinde (açmak için Dosya>Başlangıç Penceresi'ni seçin), Yeni proje oluştur'u seçin.

    Screenshot showing Create a new project

  2. Üstteki arama çubuğunda Angular'ı arayın ve ardından Angular ve ASP.NET Core (Önizleme) öğesini seçin.

    Screenshot showing choosing a template.

  3. Projeye AngularWithASP adını verin ve Oluştur'u seçin.

    Çözüm Gezgini aşağıdakileri gösterir:

    Screenshot showing Solution Explorer.

    Tek başına Angular şablonuyla karşılaştırıldığında, ASP.NET Core ile tümleştirme için bazı yeni ve değiştirilmiş dosyalar görürsünüz:

    • aspnetcore-https.js
    • proxy.conf.js
    • package.json(değiştirildi)
    • angular.json(değiştirilmiş)
    • app.components.ts
    • app.module.ts

Proje özelliklerini ayarlama

  1. Çözüm Gezgini'da AngularWithASP.Server projesine sağ tıklayın ve Özellikler'i seçin.

    Screenshot showing Open project properties.

  2. Özellikler sayfasında Hata Ayıkla sekmesini açın ve Hata ayıklama başlatma profilleri kullanıcı arabirimini aç seçeneğini belirleyin. ASP.NET Core projesinden (veya varsa https) sonra adlandırılan profil için Tarayıcıyı Başlat seçeneğinin işaretini kaldırın.

    Screenshot showing Debug launch profiles UI.

    Bu değer, kaynak hava durumu verileriyle web sayfasının açılmasını engeller.

    Not

    Visual Studio'da launch.json, Başlat düğmesiyle ilişkilendirilmiş başlangıç ayarlarını Hata Ayıklama araç çubuğunda depolar. launch.json dosyasının .vscode klasörünün altında bulunması gerekir.

Projeyi başlatma

Uygulamayı başlatmak için F5 tuşuna basın veya pencerenin üst kısmındaki Başlangıç düğmesini seçin. İki komut istemi görüntülenir:

  • çalışan ASP.NET Core API projesi
  • ng start komutunu çalıştıran Angular CLI

Not

İletiler için konsol çıkışını denetleyin. Örneğin Node.js dosyasını güncelleştirmek için bir ileti olabilir.

Angular uygulaması görünür ve API aracılığıyla doldurulur. Uygulamayı görmüyorsanız bkz . Sorun giderme.

Projeyi yayımlama

Visual Studio 2022 sürüm 17.3'den başlayarak, Visual Studio Yayımlama aracını kullanarak tümleşik çözümü yayımlayabilirsiniz.

Not

Yayımlama özelliğini kullanmak için Visual Studio 2022 sürüm 17.3 veya üzerini kullanarak JavaScript projenizi oluşturun.

  1. Çözüm Gezgini'da AngularWithASP.Server projesine sağ tıklayın ve Proje Başvurusu Ekle'yi>seçin.

    angularwithasp.client projesinin seçili olduğundan emin olun.

  2. Tamam'ı seçin.

  3. ASP.NET Core projesine yeniden sağ tıklayın ve Proje Dosyasını Düzenle'yi seçin.

    Bu işlem , projenin .csproj dosyasını açar.

  4. .csproj dosyasında, proje başvurusunun değerine ayarlanmış falsebir <ReferenceOutputAssembly> öğe içerdiğinden emin olun.

    Bu başvuru aşağıdaki gibi görünmelidir.

     <ProjectReference Include="..\angularwithasp.client\angularwithasp.client.esproj">
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
    
  5. ASP.NET Core projesine sağ tıklayın ve bu seçenek varsa Projeyi Yeniden Yükle'yi seçin.

  6. Program.cs dosyasında aşağıdaki kodun mevcut olduğundan emin olun.

    app.UseDefaultFiles();
    app.UseStaticFiles();
    
    // Configure the HTTP request pipeline.
    if (app.Environment.IsDevelopment())
    {
       app.UseSwagger();
       app.UseSwaggerUI();
    }
    
  7. Yayımlamak için ASP.NET Core projesine sağ tıklayın, Yayımla'yı seçin ve azure gibi istediğiniz yayımlama senaryosuyla eşleşecek seçenekleri belirtin( örneğin, bir klasörde yayımla vb.).

    Yayımlama işlemi yalnızca bir ASP.NET Core projesi için olduğundan daha fazla zaman alır çünkü npm run build yayımlama sırasında komut çağrılır. BuildCommand varsayılan olarak çalışırnpm run build.

Sorun giderme

Ara sunucu hatası

Aşağıdaki hatayı görebilirsiniz:

[HPM] Error occurred while trying to proxy request /weatherforecast from localhost:4200 to https://localhost:5001 (ECONNREFUSED) (https://nodejs.org/api/errors.html#errors_common_system_errors)

Bu sorunu görürseniz, büyük olasılıkla ön uç arka uçtan önce başladı. Arka uç komut isteminin çalışır durumda olduğunu gördüğünüzde, tarayıcıda Angular Uygulamasını yenilemeniz yeter.

Bağlantı noktasını doğrulama

Hava durumu verileri doğru yüklenmiyorsa bağlantı noktalarınızın doğru olduğunu da doğrulamanız gerekebilir.

  1. ASP.NET Core projenizde (Özellikler klasöründe) launch Ayarlar.json dosyasına gidin. Özelliğinden applicationUrl bağlantı noktası numarasını alın.

    Birden çok applicationUrl özellik varsa uç nokta kullanan bir https özellik arayın. gibi https://localhost:7049görünmelidir.

  2. Ardından Angular projenizin proxy.conf.js dosyasına gidin (src klasörüne bakın). Target özelliğini launch Ayarlar.json dosyasındaki özelliğiyle applicationUrl eşleşecek şekilde güncelleştirin. Güncelleştirdiğinizde, bu değer şuna benzer görünmelidir:

    target: 'https://localhost:7049',
    

Sonraki adımlar

ASP.NET Core'daki SPA uygulamaları hakkında daha fazla bilgi için Tek Sayfalı Uygulamalar Geliştirme altındaki Angular bölümüne bakın. Bağlı makale aspnetcore-https.js ve proxy.conf.js gibi proje dosyaları için ek bağlam sağlar, ancak uygulama ayrıntıları proje şablonu farklılıkları nedeniyle farklıdır. Örneğin, ClientApp klasörü yerine Angular dosyaları ayrı bir projede yer alır.

İstemci projesine özgü MSBuild bilgileri için bkz . JSPS için MSBuild özellikleri.