Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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
Uyarı
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:
- Visual Studio 2022 sürüm 17.8 veya üzeri ile ASP.NET ve web geliştirme iş yükü yüklü. Visual Studio'yu ücretsiz yüklemek için Visual Studio indirmeleri sayfasına gidin. İş yükünü yüklemeniz gerekiyorsa ve Visual Studio'yu zaten yüklediyseniz, Visual Studio Yükleyicisi'ni açan Araçlar>Araç ve Özellikleri Al...gidin. ASP.NET ve web geliştirme iş yükünü seçin, ardından değiştir'iseçin.
- npm (
https://www.npmjs.com/
), Node.js ile birlikte gelen - Angular CLI (
https://angular.dev/tools/cli
), seçtiğiniz sürüm olabilir. Ön uç projesi, yerel makinenize yüklediğiniz çerçeve CLI araçları kullanılarak oluşturulur, bu nedenle şablonda kullanılan Angular sürümünü belirler.
Uygulamayı oluşturma
Başlangıç penceresini açmak için Dosya>Başlangıç Penceresi seçin, ardından Yeni bir proje oluşturseçin.
gösteren ekran görüntüsü
Üstteki arama çubuğunda Angular'ı arayın ve ardından Angular ve ASP.NET Coreöğesini seçin.
Projeyi AngularWithASP adlandırın ve Sonrakiseçin.
Ek Bilgi iletişim kutusunda HTTPS için yapılandır seçeneğinin etkin olduğundan emin olun. Çoğu senaryoda, diğer ayarları varsayılan değerlerde bırakın.
Oluştur'uSeçin.
Çözüm Gezgini aşağıdakileri gösterir:
çözüm gezginini gösteren ekran görüntüsü
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ştirildi)
- app.components.ts
- app.module.ts
Bu proje dosyalarından bazıları hakkında daha fazla bilgi için bkz. Sonraki adımlar.
Proje özelliklerini ayarlama
Çözüm Gezgini'nde AngularWithASP.Server projesine sağ tıklayın ve Özellikleröğesini seçin.
Özellikler sayfasında hata ayıklama sekmesini açın ve Hata ayıklama başlatma profilleri kullanıcı arabirimini aç seçeneğini seçin. Tarayıcıyı Başlat seçeneğinin işaretini, varsa, https profili veya ASP.NET Core projesinin adını taşıyan profil için kaldırın.
Bu değer, kaynak hava durumu verileriyle web sayfasının açılmasını engeller.
Uyarı
Visual Studio'da
launch.json
, hata ayıklama araç çubuğundaki Başlangıç düğmesiyle ilişkili başlangıç ayarlarını depolar.launch.json
.vscode
klasörünün altında bulunmalıdır.Çözüm Gezgini'nde çözüme sağ tıklayın ve Özellikleröğesini seçin. Başlangıç projesi ayarlarının Birden çok projeolarak ayarlandığını ve her iki proje için Eylem'in Başlatolarak ayarlandığını doğrulayın.
Projeyi başlatma
Uygulamayı başlatmak için F5 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
- Angular CLI'nin 'ng start' komutunu çalıştırması
Uyarı
İletiler için konsol çıkışını denetleyin. Örneğin, Node.jsgüncelleştirilmesi için bir ileti olabilir.
Angular uygulaması görünür ve API aracılığıyla doldurulur (localhost bağlantı noktası ekran görüntüsünden farklı olabilir).
Hava durumu tahmin verilerini tarayıcıda 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.
Uyarı
Yayımlama özelliğini kullanmak için Visual Studio 2022 sürüm 17.3 veya üzerini kullanarak JavaScript projenizi oluşturun.
Çözüm Gezgini'nde AngularWithASP.Server projesine sağ tıklayın ve >Proje Referansı Ekleseçin.
angularwithasp.client projesi'nın seçili olduğundan emin olun.
Tamam'ı seçin.
ASP.NET Core projesine yeniden sağ tıklayın ve proje dosyasını düzenle seçin.
Bu işlem, projenin
.csproj
dosyasını açar..csproj
dosyasında, proje referansının değerinin<ReferenceOutputAssembly>
olarak ayarlandığı birfalse
öğesi içerdiğinden emin olmalısınız.Bu referans aşağıdaki gibi görünmelidir:
<ProjectReference Include="..\angularwithasp.client\angularwithasp.client.esproj"> <ReferenceOutputAssembly>false</ReferenceOutputAssembly> </ProjectReference>
ASP.NET Core projesine sağ tıklayın ve bu seçenek varsa Projeyi Yeniden Yükle seçin.
Program.csiçinde 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(); }
Yayımlamak için ASP.NET Core projesine sağ tıklayın, Yayımla'ı seçin ve azure gibi istediğiniz yayımlama senaryosuyla eşleşecek seçenekleri belirleyin( ö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ü yayımlama sırasında
npm run build
komutu çağrılır. BuildCommand varsayılan olaraknpm run build
çalıştırır.Bir klasörde yayımlarsanız, yayımlama klasörüne eklenen dosyalar hakkında daha fazla bilgi için bkz. ASP.NET Core dizin yapısı.
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)
Eğer bu sorunu görüyorsanız, büyük olasılıkla frontend, backend'den önce başlamıştır.
- Arka uç komut isteminin çalışır durumda olduğunu gördüğünüzde, tarayıcıda Angular uygulamasını yenilemeniz gerekir.
- Ayrıca, arka ucun ön uç öncesinde başlatacak şekilde yapılandırıldığını doğrulayın. Doğrulamak için Çözüm Gezgini'nde çözümü seçin, Proje menüsünden Özellikler seçin. Ardından başlangıç projelerini yapılandırma seçin ve arka uç ASP.NET Core projesinin listede ilk sırada olduğundan emin olun. İlk değilse projeyi seçin ve Yukarı ok düğmesini kullanarak projeyi başlatma listesindeki ilk proje yapın.
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.
ASP.NET Core projenizde (
launchSettings.json
klasöründe) dosyasına gidin.applicationUrl
özelliğinden bağlantı noktası numarasını alın.Birden çok
applicationUrl
özelliği varsa,https
uç noktası kullanan bir özellik arayın.https://localhost:7049
'e benzemelidir.Ardından Angular projenizin
proxy.conf.js
dosyasına gidin (src klasörüne bakın). hedef özelliğiniapplicationUrl
özelliğiyle eşleşecek şekilde güncelleştirin. Güncelleştirdiğinizde, bu değer şuna benzer görünmelidir:target: 'https://localhost:7049',
Docker
Projeyi Docker desteği etkin olarak oluşturursanız aşağıdaki adımları izleyin:
Uygulama yükledikten sonra Visual Studio'da Kapsayıcıları penceresini kullanarak Docker HTTPS bağlantı noktasını alın. Ortamı veya Bağlantı Noktaları sekmesini denetleyin.
docker kapsayıcısı bağlantı noktalarını gösteren ekran görüntüsü
Angular projesi için
proxy.conf.js
dosyasını açın.target
değişkenini Kapsayıcılar penceresindeki HTTPS bağlantı noktasıyla eşleşecek şekilde güncelleştirin. Örneğin, aşağıdaki kodda:const target = env.ASPNETCORE_HTTPS_PORT ? `https://localhost:${env.ASPNETCORE_HTTPS_PORT}` : env.ASPNETCORE_URLS ? env.ASPNETCORE_URLS.split(';')[0] : 'https://localhost:7209';
https://localhost:7209
eşleşen HTTPS bağlantı noktasıyla değiştirin (bu örnektehttps://localhost:62958
).Uyarı
Kapsayıcılar penceresinde HTTPS bağlantı noktası eksikse, bağlantı noktasını eklemek için launchSettings.json dosyasını kullanabilirsiniz. bölümünde
Container (Dockerfile)
ve girdiden"useSSL": true
sonra ekleyin"sslPort": <any port>
. Bu örnekte, aşağıdakileri kullanın:"sslPort": 62958
.Uygulamayı yeniden başlatın.
Sonraki adımlar
ASP.NET Core'daki SPA uygulamaları hakkında daha fazla bilgi için Tek Sayfalı Uygulamalar Geliştirmealtındaki Angular bölümüne bakın. Bağlantılı makale, aspnetcore-https.js ve proxy.conf.jsgibi 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.