Kerangka Materi
Pengenalan ke Platform .NET Modern
- .NET 8 runtime, SDK, dan ikhtisar platform terpadu
- Perbandingan evolusi .NET Framework, .NET Core, dan .NET 8+
- Astruktur proyek, kerangka kerja target, dan dasar-dasar multi-targeting
- Persiapan lingkungan pengembangan dan pemuliaan
C# Modern dan Praktik Bahasa Berorientasi Masa Depan
- Records, setter init-only, dan pola immutability
- Peningkatan pattern matching dan ekspresi switch
- Jenis referensi nullable dan keamanan yang didorong oleh kompiler
- Best practice async/await dan streaming hemat memori
- Matematika generik, static abstract dalam antarmuka, dan API berorientasi performa
- Mempersiapkan basis kode untuk fitur C# 12/13 di .NET 8
Fundamental ASP.NET Core dan Bootstrap Aplikasi
- Host builder, pipeline middleware, dan siklus permintaan
- Minimal APIs vs controller-based APIs: kriteria pengambilan keputusan
- Penyedia konfigurasi, pengaturan spesifik lingkungan, dan manajemen rahasia
- Berkas statis, routing, dan konvensi endpoint
- Konfigurasi container dependency injection dan masa layanan (service lifetimes)
Desain dan Implementasi REST API
- Model kematangan REST, pemodelan sumber daya, dan desain URI
- Metode HTTP, kode status, dan negosiasi konten
- Validasi permintaan, model binding, dan integrasi FluentValidation
- Strategi versioning untuk API publik dan internal
- Dokumentasi dengan OpenAPI dan Swagger UI
- Pengujian integrasi API dengan TestServer dan WebApplicationFactory
Dependency Injection Enterprise dan Inversion of Control
- Injeksi konstruktor, masa layanan, dan ketergantungan tertahan (captive dependencies)
- Pola dekorator dan pabrik dengan container bawaan
- Integrasi Scrutor dan perpustakaan DI pihak ketiga
- Pendaftaran layanan modular dan organisasi berbasis fitur
- Kekhawatiran lintas potong (cross-cutting concerns) melalui middleware dan filter
Logging, Konfigurasi, dan Penanganan Kesalahan Terpusat
- Logging terstruktur dengan Microsoft.Extensions.Logging dan Serilog
- Tingkat log, scope, enrichement, dan konfigurasi sink
- Middleware pengecualian dan alur penanganan kesalahan global
- ProblemDetails dan respons kesalahan yang sesuai RFC 7807
- Pemeriksaan kesehatan, telemetri, dan hook observabilitas
- ID korelasi dan persiapan distributed tracing
Arsitektur Perangkat Lunak untuk Solusi .NET Enterprise
- Prinsip arsitektur berlapis, hexagonal, dan clean architecture
- Blok bangunan domain-driven design di .NET
- Pola CQRS dan mediator dengan MediatR
- Pola Repository dan unit-of-work dengan EF Core
- Arsitektur vertical slice untuk kohesi fitur
- Menilai pertukaran antara monolith, modular monolith, dan microservices
Keamanan untuk Aplikasi Web dan API
- Scheme autentikasi: JWT, OAuth2, OpenID Connect, dan flow berbasis cookie
- Kebijakan otorisasi, akses berbasis klaim, dan guard berbasis sumber daya
- Penegakan HTTPS, HSTS, dan middleware header aman
- Sanitasi input, encoding 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, Kemudahan Pemeliharaan, dan Praktik Terbaik
- Standar coding, EditorConfig, dan dotnet format
- Analisis statis dengan analizer 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 kritisitas, kompleksitas, dan nilai bisnis
- Penggunaan .NET Upgrade Assistant dan analyzer kompatibilitas
- Mengidentifikasi API yang sudah 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 bertahap
- Migrasi API-first: mengekspos domain .NET Framework melalui fasad REST
- Perambatan berbasis pesan dengan RabbitMQ, Azure Service Bus, atau Kafka
- Koeksistensi basis data bersama dan strategi versioning skema
- Menjalankan .NET Framework dan .NET 8 berdampingan di infrastruktur yang sama
- Mengkcontainer komponen modern sambil membiarkan warisan tetap di IIS
Laboratorium Migrasi Hands-On dan Tinjauan
- Menerapkan Upgrade Assistant ke proyek warisan perwakilan
- Refactoring layanan Web Forms atau WCF menjadi REST API ASP.NET Core
- Mengimplementasikan DI, logging, dan penanganan kesalahan terpusat dalam solusi yang dimigrasikan
- Menambahkan autentikasi dan otorisasi ke permukaan API baru
- Memverifikasi koeksistensi melalui pengujian integrasi end-to-end
- Tinjauan, tanya jawab, dan panduan perencanaan modernisasi pasca-pelatihan
Persyaratan
- Pengalaman dengan pemrograman C# dan prinsip desain berorientasi objek
- Kepahaman dengan 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 namun tidak wajib
Audience
- Pengembang .NET dan arsitek yang bersiap memodernisasi aplikasi .NET Framework warisan
- Insinyur perangkat lunak yang beralih ke peran pengembangan .NET enterprise
- Pemimpin teknis yang bertanggung jawab atas perencanaan migrasi platform dan koeksistensi
- Petugas 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