Tutorial: Membuat aplikasi ASP.NET Core dengan Angular di Visual Studio
Dalam artikel ini, Anda mempelajari cara membuat proyek ASP.NET Core untuk bertindak sebagai backend API dan proyek Angular untuk bertindak sebagai UI.
Visual Studio menyertakan templat Aplikasi Halaman Tunggal Inti (SPA) ASP.NET yang mendukung Angular dan React. Templat menyediakan folder Aplikasi Klien bawaan di proyek ASP.NET Core Anda yang berisi file dasar dan folder dari setiap kerangka kerja.
Anda dapat menggunakan metode yang dijelaskan dalam artikel ini untuk membuat Aplikasi Halaman Tunggal Inti ASP.NET yang:
- Meletakkan aplikasi klien dalam proyek terpisah, di luar proyek ASP.NET Core
- Membuat proyek klien berdasarkan kerangka kerja CLI yang terpasang di komputer Anda
Catatan
Artikel ini menjelaskan proses pembuatan proyek menggunakan templat yang diperbarui di Visual Studio 2022 versi 17.8.
Prasyarat
Pastikan untuk menginstal hal berikut:
- Visual Studio 2022 versi 17.8 atau yang lebih baru dengan beban kerja ASP.NET dan pengembangan web terinstal. Buka halaman unduhan Visual Studio untuk menginstalnya secara gratis. Jika Anda perlu memasang beban kerja dan sudah memiliki Visual Studio, buka Alat>Dapatkan Alat dan Fitur..., yang akan membuka alat penginstal Visual Studio. Pilih beban kerja ASP.NET dan pengembangan web, lalu pilih Ubah.
- npm (https://www.npmjs.com/), yang disertakan dengan Node.js
- Angular CLI (https://angular.io/cli) Ini bisa menjadi versi pilihan Anda
Membuat aplikasi frontend
Di jendela Mulai (pilih Jendela Mulai File>untuk dibuka), pilih Buat proyek baru.
Cari Angular di bilah pencarian di bagian atas lalu pilih Angular dan ASP.NET Core (Pratinjau).
Beri nama proyek AngularWithASP lalu pilih Buat.
Penjelajah Solusi memperlihatkan hal berikut::
Dibandingkan dengan templat Angular mandiri, Anda melihat beberapa file baru dan yang dimodifikasi untuk integrasi dengan ASP.NET Core:
- aspnetcore-https.js
- proxy.conf.js
- package.json(modified)
- angular.json(modified)
- app.components.ts
- app.module.ts
Mengatur properti proyek
Di Penjelajah Solusi, klik kanan proyek AngularWithASP.Server dan pilih Properti.
Di halaman Properti, buka tab Debug dan pilih opsi Buka antarmuka pengguna profil peluncuran debug. Hapus centang opsi Luncurkan Browser untuk profil bernama sesuai proyek ASP.NET Core (atau https, jika ada).
Nilai ini mencegah pembukaan halaman web dengan data cuaca sumber.
Catatan
Di Visual Studio, launch.json menyimpan pengaturan startup yang terkait dengan tombol Mulai di toolbar Debug. launch.json harus terletak di bawah folder .vscode .
Memulai proyek
Tekan F5 atau pilih tombol Mulai di bagian atas jendela untuk memulai aplikasi. Dua perintah muncul:
- Proyek API ASP.NET Core sedang berjalan
- CLI Angular menjalankan perintah mulai ng
Catatan
Periksa output konsol untuk pesan. Misalnya mungkin ada pesan untuk memperbarui Node.js.
Aplikasi Angular muncul dan diisi melalui API. Jika Anda tidak melihat aplikasi, lihat Pemecahan Masalah.
Menerbitkan proyek
Mulai dari Visual Studio 2022 versi 17.3, Anda dapat menerbitkan solusi terintegrasi menggunakan alat Visual Studio Publish.
Catatan
Untuk menggunakan publikasi, buat proyek JavaScript Anda menggunakan Visual Studio 2022 versi 17.3 atau yang lebih baru.
Di Penjelajah Solusi, klik kanan proyek AngularWithASP.Server dan pilih Tambahkan>Referensi Proyek.
Pastikan proyek angularwithasp.client dipilih.
Pilih OK.
Klik kanan proyek ASP.NET Core lagi dan pilih Edit File Proyek.
Ini membuka file .csproj untuk proyek.
Dalam file .csproj, pastikan referensi proyek menyertakan
<ReferenceOutputAssembly>
elemen dengan nilai yang diatur kefalse
.Referensi ini akan terlihat seperti berikut ini.
<ProjectReference Include="..\angularwithasp.client\angularwithasp.client.esproj"> <ReferenceOutputAssembly>false</ReferenceOutputAssembly> </ProjectReference>
Klik kanan proyek ASP.NET Core dan pilih Muat Ulang Proyek jika opsi tersebut tersedia.
Di Program.cs, pastikan kode berikut ada.
app.UseDefaultFiles(); app.UseStaticFiles(); // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(); }
Untuk menerbitkan, klik kanan proyek ASP.NET Core, pilih Terbitkan, dan pilih opsi untuk mencocokkan skenario penerbitan yang Anda inginkan, seperti Azure, terbitkan ke folder, dll.
Proses penerbitan membutuhkan lebih banyak waktu daripada hanya untuk proyek ASP.NET Core, karena
npm run build
perintah dipanggil saat menerbitkan. BuildCommand berjalannpm run build
secara default.
Pemecahan Masalah
Kesalahan proksi
Anda mungkin melihat kesalahan berikut:
[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)
Jika Anda melihat masalah ini, kemungkinan besar frontend dimulai sebelum backend. Setelah Anda melihat perintah backend aktif dan berjalan, cukup refresh aplikasi Angular di browser.
Verifikasi port
Jika data cuaca tidak dimuat dengan benar, Anda mungkin juga perlu memverifikasi bahwa port Anda sudah benar.
Buka file launchSettings.json di proyek ASP.NET Core Anda (di folder Properti). Dapatkan nomor port dari properti
applicationUrl
.Jika ada beberapa properti
applicationUrl
, cari properti menggunakan titik akhirhttps
. Nilainya akan terlihat mirip denganhttps://localhost:7049
.Kemudian, buka file proxy.conf.js untuk proyek Angular Anda (lihat di folder src). Perbarui properti target agar sesuai dengan properti
applicationUrl
di launchSettings.json. Saat Anda memperbaruinya, nilai tersebut akan terlihat mirip dengan:target: 'https://localhost:7049',
Langkah berikutnya
Untuk informasi selengkapnya tentang aplikasi SPA di ASP.NET Core, lihat bagian Angular di bawah Mengembangkan Aplikasi Halaman Tunggal. Artikel tertaut menyediakan konteks tambahan untuk file proyek seperti aspnetcore-https.js dan proxy.conf.js, meskipun detail implementasi berbeda karena perbedaan templat proyek. Misalnya, alih-alih folder ClientApp, file Angular terkandung dalam proyek terpisah.
Untuk informasi MSBuild khusus untuk proyek klien, lihat Properti MSBuild untuk JSPS.