Contoh aplikasi eShop telah diperbarui dan dipindahkan ke https://github.com/dotnet/eShop. Pembangunan aktif akan berlanjut di sana. Kami juga merekomendasikan panduan pola Aplikasi Web yang Andal untuk membuat aplikasi web dengan pola aplikasi perusahaan.
Contoh aplikasi referensi ASP.NET Core, didukung oleh Microsoft, menunjukkan arsitektur aplikasi dan model penerapan proses tunggal (monolitik). Jika Anda baru mengenal pengembangan .NET, baca panduan Memulai untuk Pemula.
Daftar Pertanyaan Umum tentang repositori ini dapat ditemukan di sini.
Steve "ardalis" Smith merekam streaming langsung yang memberikan ikhtisar aplikasi referensi eShopOnWeb pada Oktober 2020.
Aplikasi referensi ini dimaksudkan untuk mendukung ebook unduhan .PDF gratis: Merancang Aplikasi Web Modern dengan ASP.NET Core dan Azure, diperbarui ke ASP.NET Core 8.0 . Juga tersedia dalam format ePub/mobi.
Anda juga dapat membaca buku di halaman online di dokumen .NET di sini: https://docs.microsoft.com/dotnet/architecture/modern-web-apps-azure/
Sampel eShopOnWeb terkait dengan aplikasi sampel eShopOnContainers yang, dalam hal ini, berfokus pada arsitektur aplikasi berbasis layanan mikro/kontainer. Namun, eShopOnWeb jauh lebih sederhana dalam hal fungsionalitasnya saat ini dan berfokus pada Pengembangan Aplikasi Web tradisional dengan satu penerapan.
Tujuan dari sampel ini adalah untuk menunjukkan beberapa prinsip dan pola yang dijelaskan dalam eBook. Ini tidak dimaksudkan untuk menjadi aplikasi referensi eCommerce, dan karena itu tidak mengimplementasikan banyak fitur yang jelas dan/atau penting untuk aplikasi eCommerce sebenarnya.
VERSI
Cabang
main
saat ini menjalankan ASP.NET Core 8.0.Versi yang lebih lama diberi tag.
Halaman beranda toko akan terlihat seperti ini:
Azure Developer CLI ( azd
) adalah alat antarmuka baris perintah (CLI) yang berpusat pada pengembang untuk membuat aplikasi Azure.
Anda perlu menginstalnya sebelum menjalankan dan menyebarkan dengan Azure Developer CLI.
powershell - ex AllSigned - c " Invoke-RestMethod 'https://aka.ms/install-azd.ps1' | Invoke-Expression "
curl -fsSL https://aka.ms/install-azd.sh | bash
Dan Anda juga dapat menginstal dengan pengelola paket, seperti winget, choco, dan brew. Untuk detail selengkapnya, Anda dapat mengikuti dokumentasi: https://aka.ms/azure-dev/install.
Setelah masuk dengan perintah berikut, Anda akan dapat menggunakan azd cli untuk menyediakan dan menyebarkan aplikasi dengan cepat.
azd auth login
Kemudian, jalankan perintah azd init
untuk menginisialisasi lingkungan.
azd init -t dotnet-architecture/eShopOnWeb
Jalankan azd up
untuk memprovisikan semua sumber daya ke Azure dan menyebarkan kode ke sumber daya tersebut.
azd up
Sesuai perintah, masukkan env name
, lalu pilih subscription
dan location
, ini adalah parameter yang diperlukan saat Anda membuat sumber daya. Tunggu beberapa saat hingga penerapan sumber daya selesai, klik titik akhir web dan Anda akan melihat halaman beranda.
Catatan:
Anda juga dapat menjalankan sampel secara langsung secara lokal (Lihat di bawah).
Sebagian besar fungsi situs berfungsi hanya dengan menjalankan aplikasi web. Namun, halaman Admin situs bergantung pada Blazor WebAssembly yang berjalan di browser, dan harus berkomunikasi dengan server menggunakan aplikasi web PublicApi situs. Anda juga harus menjalankan proyek ini. Anda dapat mengonfigurasi Visual Studio untuk memulai beberapa proyek, atau cukup buka folder PublicApi di jendela terminal dan jalankan dotnet run
dari sana. Setelah itu dari folder Web Anda harus menjalankan dotnet run --launch-profile Web
. Sekarang Anda seharusnya dapat menjelajah ke https://localhost:5001/
. Bagian admin di Blazor dapat diakses di https://localhost:5001/admin
Perhatikan bahwa jika Anda menggunakan pendekatan ini, Anda harus menghentikan aplikasi secara manual untuk membangun solusi (jika tidak, Anda akan mendapatkan kesalahan penguncian file).
Setelah mengkloning atau mengunduh sampel, Anda harus menyiapkan database Anda. Untuk menggunakan sampel dengan database persisten, Anda perlu menjalankan migrasi Entity Framework Core sebelum Anda dapat menjalankan aplikasi.
Anda juga dapat menjalankan sampel di Docker (lihat di bawah).
Secara default, proyek ini menggunakan database nyata. Jika Anda menginginkan database dalam memori, Anda dapat menambahkan file appsettings.json
di folder Web
{
"UseOnlyInMemoryDatabase" : true
}
Pastikan string koneksi Anda di appsettings.json
mengarah ke instans SQL Server lokal.
Pastikan alat EF sudah terinstal. Anda dapat menemukan bantuan di sini
dotnet tool update --global dotnet-ef
Buka prompt perintah di folder Web dan jalankan perintah berikut:
dotnet restore
dotnet tool restore
dotnet ef database update -c catalogcontext -p ../Infrastructure/Infrastructure.csproj -s Web.csproj
dotnet ef database update -c appidentitydbcontext -p ../Infrastructure/Infrastructure.csproj -s Web.csproj
Perintah ini akan membuat dua database terpisah, satu untuk data katalog toko dan informasi keranjang belanja, dan satu lagi untuk kredensial pengguna aplikasi dan data identitas.
Jalankan aplikasi.
Saat pertama kali Anda menjalankan aplikasi, aplikasi tersebut akan menyemai kedua database dengan data sehingga Anda akan melihat produk di toko, dan Anda seharusnya dapat masuk menggunakan akun [email protected].
Catatan: Jika Anda perlu membuat migrasi, Anda dapat menggunakan perintah berikut:
-- create migration (from Web folder CLI)
dotnet ef migrations add InitialModel --context catalogcontext -p ../Infrastructure/Infrastructure.csproj -s Web.csproj -o Data/Migrations
dotnet ef migrations add InitialIdentityModel --context appidentitydbcontext -p ../Infrastructure/Infrastructure.csproj -s Web.csproj -o Identity/Migrations
Proyek ini mencakup folder .devcontainer
dengan konfigurasi kontainer dev, yang memungkinkan Anda menggunakan kontainer sebagai lingkungan dev berfitur lengkap.
Anda dapat menggunakan wadah dev untuk membangun dan menjalankan aplikasi tanpa perlu menginstal alat apa pun secara lokal! Anda dapat bekerja di GitHub Codespaces atau ekstensi VS Code Dev Containers.
Pelajari lebih lanjut tentang menggunakan wadah dev di readme-nya.
Anda dapat menjalankan sampel Web dengan menjalankan perintah berikut dari folder akar (tempat file .sln berada):
docker-compose build
docker-compose up
Anda seharusnya dapat membuat permintaan ke localhost:5106 untuk proyek Web, dan localhost:5200 untuk proyek API Publik setelah perintah ini selesai. Jika Anda mengalami masalah, terutama saat login, coba dari browser tamu atau penyamaran baru.
Anda juga dapat menjalankan aplikasi dengan menggunakan instruksi yang terdapat di file Dockerfile
di root setiap proyek. Sekali lagi, jalankan perintah ini dari akar solusi (tempat file .sln berada).
Kami mempunyai beberapa kontribusi besar dari komunitas, dan meskipun kontribusi tersebut tidak dikelola oleh Microsoft, kami tetap ingin menyorotinya.
eShopOnWeb VB.NET oleh Mohammad Hamdy Ghanem
FShopOnWeb Pandangan F# tentang eShopOnWeb oleh Sean G. Wright dan Kyle McMaster