Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memodernisasi aplikasi Formulir Web ASP.NET di AWS
Vijai Anand Ramalingam dan Sreelaxmi Pai, Amazon Web Services
Ringkasan
Pola ini menjelaskan langkah-langkah untuk memodernisasi aplikasi ASP.NET Web Forms lama dan monolit dengan mem-porting ke ASP.NET Core di AWS.
Porting aplikasi ASP.NET Web Forms ke ASP.NET Core membantu Anda memanfaatkan kinerja, penghematan biaya, dan ekosistem Linux yang kuat. Namun, ini bisa menjadi upaya manual yang signifikan. Dalam pola ini, aplikasi lama dimodernisasi secara bertahap dengan menggunakan pendekatan bertahap, dan kemudian dikemas di AWS Cloud.
Pertimbangkan aplikasi monolit warisan untuk keranjang belanja. Mari kita asumsikan bahwa itu dibuat sebagai aplikasi ASP.NET Web Forms dan terdiri dari halaman.aspx dengan file code-behind (). aspx.cs
Proses modernisasi terdiri dari langkah-langkah berikut:
Pecahkan monolit menjadi layanan mikro dengan menggunakan pola dekomposisi yang sesuai. Untuk informasi selengkapnya, lihat panduan Menguraikan monolit menjadi layanan mikro di situs web AWS Prescriptive Guidance.
Port aplikasi ASP.NET Web Forms (.NET Framework) lama Anda ke ASP.NET Core di.NET 5 atau yang lebih baru. Dalam pola ini, Anda menggunakan Porting Assistant untuk.NET untuk memindai aplikasi ASP.NET Web Forms Anda dan mengidentifikasi ketidakcocokan dengan ASP.NET Core. Ini mengurangi upaya porting manual.
Kembangkan kembali layer UI Formulir Web dengan menggunakan React. Pola ini tidak mencakup pembangunan kembali UI. Untuk petunjuk, lihat Membuat Aplikasi React Baru
di dokumentasi React. Kembangkan kembali file kode di belakang Formulir Web (antarmuka bisnis) sebagai API web ASP.NET Core. Pola ini menggunakan NDepend laporan untuk membantu mengidentifikasi file dan dependensi yang diperlukan.
Tingkatkan shared/common proyek, seperti Logika Bisnis dan Akses Data, dalam aplikasi lama Anda ke .NET 5 atau yang lebih baru dengan menggunakan Porting Assistant untuk.NET.
Tambahkan layanan AWS untuk melengkapi aplikasi Anda. Misalnya, Anda dapat menggunakan Amazon CloudWatch Logs untuk memantau, menyimpan, dan mengakses log aplikasi Anda, dan AWS Systems Manager
untuk menyimpan setelan aplikasi Anda. Kontainerisasi aplikasi ASP.NET Core yang dimodernisasi. Pola ini membuat file Docker yang menargetkan Linux di Visual Studio dan menggunakan Docker Desktop untuk mengujinya secara lokal. Langkah ini mengasumsikan bahwa aplikasi lama Anda sudah berjalan di instans Windows Amazon Elastic Compute Cloud (Amazon) lokal atau Amazon EC2. Untuk informasi selengkapnya, lihat pola Menjalankan container ASP.NET Core API Docker pada instance Amazon EC2 Linux.
Terapkan aplikasi inti ASP.NET yang dimodernisasi ke Amazon Elastic Container Service (Amazon ECS). Pola ini tidak mencakup langkah penerapan. Untuk petunjuk, lihat Amazon ECS Workshop
.
catatan
Pola ini tidak mencakup pengembangan UI, modernisasi database, atau langkah penerapan kontainer.
Prasyarat dan batasan
Prasyarat
Visual Studio
atau Visual Studio Code , diunduh dan diinstal. Akses ke akun AWS menggunakan AWS Management Console dan AWS Command Line Interface (AWS CLI) versi 2. (Lihat petunjuk untuk mengonfigurasi AWS CLI.)
AWS Toolkit for Visual Studio (lihat petunjuk penyiapan).
Docker Desktop, diunduh
dan diinstal. .NET SDK, diunduh
dan diinstal. NDepend alat, diunduh
dan diinstal. Untuk menginstal NDepend ekstensi untuk Visual Studio, jalankan NDepend.VisualStudioExtension.Installer
(lihat instruksi). Anda dapat memilih Visual Studio 2019 atau 2022, tergantung pada kebutuhan Anda. Porting Assistant untuk.NET, diunduh
dan diinstal.
Arsitektur
Memodernisasi aplikasi keranjang belanja
Diagram berikut menggambarkan proses modernisasi untuk aplikasi keranjang belanja ASP.NET warisan.

Arsitektur target
Diagram berikut menggambarkan arsitektur aplikasi keranjang belanja modern di AWS. Web ASP.NET Core APIs dikerahkan ke cluster Amazon ECS. Layanan pencatatan dan konfigurasi disediakan oleh Amazon CloudWatch Logs dan AWS Systems Manager.

Alat
Layanan AWS
Amazon ECS — Amazon Elastic Container Service (Amazon ECS) adalah layanan manajemen kontainer yang sangat skalabel dan cepat untuk menjalankan, menghentikan, dan mengelola kontainer di klaster. Anda dapat menjalankan tugas dan layanan Anda pada infrastruktur tanpa server yang dikelola oleh AWS Fargate. Atau, untuk kontrol lebih besar atas infrastruktur Anda, Anda dapat menjalankan tugas dan layanan Anda pada sekelompok EC2 instance yang Anda kelola.
Amazon CloudWatch Logs — Amazon CloudWatch Logs memusatkan log dari semua sistem, aplikasi, dan layanan AWS yang Anda gunakan. Anda dapat melihat dan memantau log, mencari kode atau pola kesalahan tertentu, memfilternya berdasarkan bidang tertentu, atau mengarsipkannya dengan aman untuk analisis masa depan.
AWS Systems Manager ─ AWS Systems Manager adalah layanan AWS yang dapat Anda gunakan untuk melihat dan mengontrol infrastruktur di AWS. Menggunakan konsol Systems Manager, Anda dapat melihat data operasional dari beberapa layanan AWS dan mengotomatiskan tugas operasional di seluruh sumber daya AWS Anda. Systems Manager membantu Anda menjaga keamanan dan kepatuhan dengan memindai instans dan pelaporan terkelola Anda (atau mengambil tindakan korektif) pada setiap pelanggaran kebijakan yang terdeteksi.
Alat
Visual Studio
atau Visual Studio Code — Alat untuk membangun aplikasi.NET, web APIs, dan program lainnya. AWS Toolkit for Visual Studio — Ekstensi untuk Visual Studio yang membantu mengembangkan, men-debug, dan menyebarkan aplikasi.NET yang menggunakan layanan AWS.
Docker Desktop
— Alat yang menyederhanakan pembuatan dan penerapan aplikasi kontainer. NDepend
— Analyzer yang memantau kode.NET untuk dependensi, masalah kualitas, dan perubahan kode. Porting Assistant for .NET
— Alat analisis yang memindai kode.NET untuk mengidentifikasi ketidakcocokan dengan.NET Core dan untuk memperkirakan upaya migrasi.
Epik
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Tingkatkan aplikasi lawasan.NET Framework Anda ke .NET 5. | Anda dapat menggunakan Porting Assistant untuk.NET untuk mengonversi aplikasi ASP.NET Web Forms lama Anda ke .NET 5 atau yang lebih baru. Ikuti petunjuk di Porting Assistant untuk dokumentasi .NET. | Pengembang aplikasi |
Hasilkan NDepend laporan. | Saat Anda memodernisasi aplikasi Formulir Web ASP.NET Anda dengan menguraikannya menjadi layanan mikro, Anda mungkin tidak memerlukan semua file.cs dari aplikasi lama. Anda dapat menggunakan NDepend untuk membuat laporan untuk file code-behind (.cs) apa pun, untuk mendapatkan semua penelepon dan pemanggil. Laporan ini membantu Anda mengidentifikasi dan hanya menggunakan file yang diperlukan dalam layanan mikro Anda. Setelah Anda menginstal NDepend (lihat bagian Prasyarat), buka solusi (file.sln) untuk aplikasi lama Anda di Visual Studio dan ikuti langkah-langkah berikut:
Proses ini menghasilkan laporan untuk file di belakang kode yang mencantumkan semua penelepon dan pemanggil. Untuk informasi selengkapnya tentang grafik ketergantungan, lihat NDepend dokumentasi | Pengembang aplikasi |
Buat solusi.NET 5 baru. | Untuk membuat struktur.NET 5 (atau yang lebih baru) baru untuk web ASP.NET Core Anda yang dimodernisasi: APIs
Untuk informasi selengkapnya tentang membuat proyek dan solusi, lihat dokumentasi Visual Studio catatanSaat Anda membangun solusi dan memverifikasi fungsionalitas, Anda mungkin mengidentifikasi beberapa file tambahan yang akan ditambahkan ke solusi, selain file yang NDepend diidentifikasi. | Pengembang aplikasi |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Implementasikan web APIs dengan ASP.NET Core. | Mari kita asumsikan bahwa salah satu layanan mikro yang Anda identifikasi dalam aplikasi keranjang belanja monolit lama Anda adalah Produk. Anda membuat proyek API web ASP.NET Core baru untuk Produk di epik sebelumnya. Pada langkah ini, Anda mengidentifikasi dan memodernisasi semua formulir web (halaman.aspx) yang terkait dengan Produk. Mari kita asumsikan bahwa Produk terdiri dari empat bentuk web, seperti yang diilustrasikan sebelumnya di bagian Arsitektur:
Anda harus menganalisis setiap formulir web, mengidentifikasi semua permintaan yang dikirim ke database untuk melakukan beberapa logika, dan mendapatkan tanggapan. Anda dapat mengimplementasikan setiap permintaan sebagai titik akhir API web. Mengingat bentuk webnya, Produk dapat memiliki titik akhir yang mungkin berikut:
Seperti disebutkan sebelumnya, Anda juga dapat menggunakan kembali semua proyek lain yang Anda upgrade ke .NET 5, termasuk Logika Bisnis, Akses Data, dan shared/common proyek. | Pengembang aplikasi |
Konfigurasikan CloudWatch Log Amazon. | Anda dapat menggunakan Amazon CloudWatch Logs untuk memantau, menyimpan, dan mengakses log aplikasi Anda. Anda dapat mencatat data ke Amazon CloudWatch Logs menggunakan AWS SDK. Anda juga dapat mengintegrasikan aplikasi.NET dengan CloudWatch Log dengan menggunakan framework logging .NET populer seperti NLog Untuk informasi selengkapnya tentang langkah ini, lihat posting blog Amazon CloudWatch Logs dan .NET Logging Frameworks | Pengembang aplikasi |
Konfigurasikan AWS Systems Manager Parameter Store. | Anda dapat menggunakan AWS Systems Manager Parameter Store untuk menyimpan setelan aplikasi seperti string koneksi secara terpisah dari kode aplikasi Anda. NuGet Paket Amazon.Extensions.Configuration. SystemsManager Untuk informasi selengkapnya tentang langkah ini, lihat posting blog penyedia konfigurasi.NET Core untuk AWS Systems Manager | Pengembang aplikasi |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Gunakan cookie bersama untuk otentikasi. | Memodernisasi aplikasi monolit warisan adalah proses berulang dan membutuhkan monolit dan versi modernnya untuk hidup berdampingan. Anda dapat menggunakan cookie bersama untuk mencapai otentikasi tanpa batas antara kedua versi. Aplikasi ASP.NET lama terus memvalidasi kredensi pengguna dan mengeluarkan cookie sementara aplikasi ASP.NET Core yang dimodernisasi memvalidasi cookie. Untuk instruksi dan kode sampel, lihat GitHub proyek sampel | Pengembang aplikasi |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Buat gambar Docker dengan menggunakan Visual Studio. | Pada langkah ini, Anda membuat file Docker dengan menggunakan Visual Studio for .NET Core web API.
Visual Studio membuat file Docker untuk proyek Anda. Untuk contoh file Docker, lihat Visual Studio Container Tools for Docker | Pengembang aplikasi |
Bangun dan jalankan wadah dengan menggunakan Docker Desktop. | Sekarang Anda dapat membangun, membuat dan menjalankan wadah di Docker Desktop.
| Pengembang aplikasi |
Sumber daya terkait
Jalankan wadah API Docker web ASP.NET Core di instans Amazon EC2 Linux (AWS Prescriptive Guidance)
Lakukan blue/green penerapan ECS dengan menggunakan CodeDeploy AWS (dokumentasi CloudFormation AWS) CloudFormation
Memulai dengan NDepend
(NDepend dokumentasi)
Informasi tambahan
Tabel berikut memberikan contoh proyek sampel untuk aplikasi keranjang belanja lama dan proyek yang setara dalam aplikasi ASP.NET Core Anda yang dimodernisasi.
Solusi warisan:
Nama proyek | Template proyek | Kerangka target |
---|---|---|
Antarmuka Bisnis | Perpustakaan Kelas | .NET Framework |
BusinessLogic | Perpustakaan Kelas | .NET Framework |
WebApplication | Aplikasi Web Kerangka ASP.NET | .NET Framework |
UnitTests | NUnit Proyek Uji | .NET Framework |
Dibagikan -> Umum | Perpustakaan Kelas | .NET Framework |
Bersama -> Kerangka | Perpustakaan Kelas | .NET Framework |
Solusi baru:
Nama proyek | Template proyek | Kerangka target |
---|---|---|
BusinessLogic | Perpustakaan Kelas | .NET 5.0 |
<WebAPI> | API Web Inti ASP.NET | .NET 5.0 |
<WebAPI>. UnitTests | NUnit 3 Proyek Uji | .NET 5.0 |
Dibagikan -> Umum | Perpustakaan Kelas | .NET 5.0 |
Bersama -> Kerangka | Perpustakaan Kelas | .NET 5.0 |