Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
MVVM ve Presentation Model: Data Binding, Command ve ViewModel
MVVM, Fowler'ın Presentation Model'inin data binding üzerine kurulmuş hâlidir: ViewModel view state'i ve view logic'i taşır, view ile senkronizasyonu binding yapar, kullanıcı aksiyonları CanExecute'u olan command'lara dönüşür. Sipariş formunun ViewModel'ini C#'ta CommunityToolkit.Mvvm 8.4 source generator'larıyla ve Angular 22'de signal'larla yazıyor, ikisini de view olmadan test ediyor ve binding'in sessiz hatalarını gerçek çıktılarla görüyoruz.
Framework'lerde Karşılıkları: Angular MVC mi, MVVM mi? React, Blazor, WPF ve ASP.NET Core
Angular ne klasik MVC ne de saf MVVM'dir: component class bir ViewModel gibi view state ve view logic taşır, template ona bağlanır, signal'lar ise UI'ı React'teki gibi state'ten türetir. Aynı sipariş formunu React, Blazor ve Razor Pages ile de yazıp çalıştırıyor, framework'leri etiketle değil üç soruyla (state nerede, senkronizasyon nasıl, view'sız test mümkün mü) okumayı gösteriyoruz.