Kerangka Materi
Pengenalan ke Platform .NET Modern
- Overview runtime .NET 8, SDK, dan platform terpadu
- Perbandingan evolusi .NET Framework, .NET Core, dan .NET 8+
- Struktur proyek, framework target, dan dasar-dasar multi-targeting
- Menyiapkan lingkungan pengembangan dan alat perkakas
C# Modern dan Praktik Bahasa Berorientasi Masa Depan
- Records, setter hanya-inisialisasi, dan pola imutabilitas
- Peningkatan pencocokan pola dan ekspresi switch
- Jenis referensi nullable dan keamanan yang didukung compiler
- Praktik terbaik async/await dan streaming hemat memori
- Math generik, statik abstrak dalam antarmuka, dan API berorientasi performa
- Menyiapkan basis kode untuk fitur C# 12/13 di .NET 8
Dasar-dasar ASP.NET Core dan Bootstrapping Aplikasi
- Host builder, pipeline middleware, dan siklus permintaan
- Minimal APIs vs API berbasis controller: kriteria pengambilan keputusan
- Penyedia konfigurasi, pengaturan spesifik lingkungan, dan manajemen rahasia
- Berkas statis, penataan rute, dan konvensi endpoint
- Konfigurasi wadah injeksi dependensi dan usia layanan
Desain dan Implementasi REST API
- Model kedewasaan REST, pemodelan sumber daya, dan desain URI
- Metode HTTP, kode status, dan negosiasi konten
- Validasi permintaan, penautan model, dan integrasi FluentValidation
- Strategi penomoran versi untuk API publik dan internal
- Dokumentasi dengan OpenAPI dan Swagger UI
- Pengujian integrasi API dengan TestServer dan WebApplicationFactory
Injeksi Dependensi Enterprise dan Inversion of Control
- Injeksi konstruktor, usia layanan, dan dependensi tertawan
- Pola dekorator dan pabrik dengan wadah bawaan
- Integrasi Scrutor dan perpustakaan DI pihak ketiga
- Pendaftaran layanan modular dan organisasi berbasis fitur
- Kepentingan lintas melalui middleware dan filter
Logging, Konfigurasi, dan Penanganan Error Terpusat
- Logging terstruktur dengan Microsoft.Extensions.Logging dan Serilog
- Tingkat log, cakupan, pengayaan, dan konfigurasi sink
- Middleware pengecualian dan pipeline penanganan error global
- ProblemDetails dan respons error yang sesuai dengan RFC 7807
- Pemeriksaan kesehatan, telemetri, dan hook observabilitas
- Penyiapan ID korelasi dan penelusuran terdistribusi
Arsitektur Perangkat Lunak untuk Solusi .NET Enterprise
- Prinsip arsitektur berlapis, hexagonal, dan bersih
- Blok bangunan domain-driven design di .NET
- Pola CQRS dan mediator dengan MediatR
- Pola repositori dan unit-of-work dengan EF Core
- Arsitektur potongan vertikal untuk kohesi fitur
- Menilai trade-off antara monolith, monolith modular, dan microservices
Keamanan untuk Aplikasi Web dan API
- Skema autentikasi: JWT, OAuth2, OpenID Connect, dan alur berbasis cookie
- Kebijakan otorisasi, akses berbasis klaim, dan penjaga berbasis sumber daya
- Penegakan HTTPS, HSTS, dan middleware header aman
- Sanitasi input, pengodean output, dan mitigasi OWASP Top 10
- Pembatasan laju, kebijakan CORS, dan penanganan token anti-forgery
- Manajemen rahasia dengan Azure Key Vault dan rotasi berbasis lingkungan
Kualitas Kode, Pemeliharaan, dan Praktik Terbaik
- Standar koding, EditorConfig, dan dotnet format
- Analisis statis dengan analyzer Roslyn dan integrasi SonarQube
- Pengujian unit dengan xUnit, mocking dengan Moq atau NSubstitute
- Pengujian integrasi dan kontrak dalam pipeline CI
- Teknik refactoring untuk modul warisan jangka panjang
- Dokumentasi, kontrak API, dan praktik berbagi pengetahuan
Strategi Modernisasi: Menilai Kode .NET Framework Warisan
- Analisis portofolio: klasifikasi aplikasi berdasarkan kritikalitas, kompleksitas, dan nilai bisnis
- Penggunaan .NET Upgrade Assistant dan analyzer kompatibilitas
- Mengidentifikasi API yang usang, dependensi spesifik platform, dan kesenjangan pihak ketiga
- API khusus Windows dan pertimbangan migrasi WCF
- Membuat peta jalan migrasi dengan prioritas berbasis risiko
Migrasi Bertahap dan Teknik Koeksistensi
- Pola Strangler Fig: mengganti subsistem warisan secara inkremental
- Migrasi API-first: mengekspos domain .NET Framework melalui fasade REST
- Jembatan berbasis pesan dengan RabbitMQ, Azure Service Bus, atau Kafka
- Koeksistensi basis data bersama dan strategi penomoran versi skema
- Menjalankan .NET Framework dan .NET 8 berdampingan dalam infrastruktur yang sama
- Kontainerisasi komponen modern sambil meninggalkan warisan di IIS
Lab Migrasi Praktis dan Tinjauan
- Menerapkan Upgrade Assistant ke proyek warisan perwakilan
- Refactoring layanan Web Forms atau WCF menjadi API ASP.NET Core
- Mengimplementasikan DI, logging, dan penanganan error terpusat dalam solusi yang dimigrasi
- Menambahkan autentikasi dan otorisasi ke permukaan API baru
- Memverifikasi koeksistensi melalui pengujian integrasi end-to-end
- Tinjauan, Q&A, dan panduan perencanaan modernisasi pasca-pelatihan
Persyaratan
- Pengalaman dengan pemrograman C# dan prinsip desain berorientasi objek
- Kepahaman konsep pengembangan web (HTTP, HTML, CSS, dasar-dasar JavaScript)
- Pemahaman dasar tentang basis data relasional dan SQL
- Paparan sebelumnya terhadap .NET Framework atau ASP.NET membantu tetapi tidak diwajibkan
Target Peserta
- Pengembang dan arsitek .NET yang bersiap memodernisasi aplikasi .NET Framework warisan
- Insinyur perangkat lunak yang berpindah ke peran pengembangan .NET enterprise
- Pemimpin teknis yang bertanggung jawab atas perencanaan migrasi platform dan koeksistensi
- Personel DevOps dan infrastruktur yang mendukung siklus hidup aplikasi .NET
Testimoni (2)
Interaktivitas dan solusi kode secara langsung
Eduard-Emanuel Zaharia - Kruk Italia
Kursus - Advanced Blazor
Diterjemahkan Mesin
kesempatan untuk praktik langsung dan kesabaran instruktur
sheena - Te Manawa Taki Trauma System
Kursus - Visual Studio 2022 IDE
Diterjemahkan Mesin