Web, Mobil, Masaüstü: İşiniz İçin Doğru Platformu Seçmek
Her uygulamanın web olması gerekmez; her ekibin de mobil uygulamaya ihtiyacı yoktur. Kullanıcı, ortam ve donanım ihtiyacına göre platform seçimi ve hepsini tek bir .NET çekirdeğiyle beslemenin yolu.
"Bir uygulama yaptıralım" kararından sonra gelen ilk soru genellikle şudur: web mi, mobil mi, masaüstü mü? Doğru cevap teknolojiden değil, kullanıcının nerede, hangi cihazla ve hangi koşullarda çalıştığından çıkar.
Bu yazıda üç platformu hangi durumlarda tercih ettiğimizi ve hepsini tek bir altyapıyla nasıl beslediğimizi anlatıyoruz.
Web: erişim ve kolay güncelleme
Web uygulaması, kurulum gerektirmeden her cihazdan erişilebilir olmasıyla öne çıkar. Yeni bir sürüm yayınladığınızda tüm kullanıcılar bir sonraki girişte onu kullanır; dağıtım derdi yoktur.
Web'i tercih ettiğimiz durumlar:
- Kullanıcılar şirket dışında: bayiler, müşteriler, tedarikçiler
- Yönetim panelleri, raporlama ekranları, onay akışları
- Çok sayıda ve farklı cihaz kullanan geniş kullanıcı kitlesi
- Ürünün kendisinin bir SaaS hizmeti olduğu senaryolar
Teknik tarafta ASP.NET Core ile güvenli bir API katmanı ve ihtiyaca göre Blazor veya React arayüz kullanıyoruz. Doğru tasarlanmış bir web arayüzü telefonda da rahat kullanılır; bu, birçok senaryoda ayrı bir mobil uygulama ihtiyacını ortadan kaldırır.
Mobil: saha, cihaz yetenekleri ve çevrimdışı çalışma
Mobil uygulama, kullanıcının masa başında olmadığı her durumda değer üretir. Telefonun kamerası, konumu, bildirimleri ve dokunmatik ekranı iş süreçlerinin bir parçası haline gelir.
Mobili tercih ettiğimiz durumlar:
- Saha satış, tahsilat, servis ve teknik ekipler
- Barkod veya QR ile depo, sayım ve sevkiyat işlemleri
- Fotoğraf, imza ve konum ile kanıtlanması gereken işler
- İnternetin kesintili olduğu ortamlar (depo, şantiye, kırsal bölge)
Çevrimdışı çalışma kritik bir tasarım kararıdır: veri cihazda yerel bir veritabanında tutulur, bağlantı geldiğinde merkezle senkronize edilir ve çakışmalar kurallara göre çözülür. Bu, sonradan eklenebilecek bir özellik değildir; mimari baştan buna göre kurulmalıdır.
Masaüstü: yoğun veri girişi ve donanım
Masaüstü yazılımların bittiği sıkça söylenir; sahada ise hâlâ vazgeçilmez oldukları birçok senaryo vardır. Gün boyu yoğun veri girişi yapan bir kullanıcı için klavyeyle saniyeler içinde çalışan bir ekran, en iyi web arayüzünden bile daha verimli olabilir.
Masaüstünü tercih ettiğimiz durumlar:
- Kasa, POS ve hızlı satış ekranları
- Üretim hattı terminalleri ve kalite kontrol istasyonları
- Terazi, barkod yazıcı, para çekmecesi, PLC gibi donanımlarla iletişim
- Büyük veri setleriyle çalışan, çok pencereli uzman ekranları
Bu senaryolarda WPF veya WinUI ile geliştirme yapıyor, uygulamaları otomatik güncelleme ve merkezi yapılandırmayla dağıtıyoruz. Böylece "her bilgisayarda farklı sürüm" sorunu ortadan kalkıyor.
Karşılaştırma
| Kriter | Web | Mobil | Masaüstü |
|---|---|---|---|
| Kurulum | Gerekmez | Mağaza / MDM | Kurulum paketi |
| Güncelleme | Anında | Mağaza onayı | Otomatik güncelleyici |
| Çevrimdışı çalışma | Sınırlı | ✓ Güçlü | ✓ Güçlü |
| Donanım erişimi | Sınırlı | Kamera, konum, NFC | ✓ Tam erişim |
| Yoğun veri girişi | İyi | Zayıf | ✓ Çok iyi |
| Şirket dışı kullanıcı | ✓ Çok iyi | İyi | Zayıf |
Asıl mesele: tek çekirdek, birden fazla arayüz
Platform seçimi bir "ya o ya bu" kararı olmak zorunda değil. Çoğu projede yöneticiler web panelini, saha ekibi mobil uygulamayı, depo ve üretim ise masaüstü ekranları kullanır. Burada kritik olan, bu uygulamaların aynı iş kurallarını ve aynı veriyi paylaşmasıdır.
Bunun için iş kurallarını arayüzden bağımsız bir çekirdekte topluyoruz:
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Web paneli │ │ Mobil uyg. │ │ Masaüstü │
│ Blazor/React │ │ .NET MAUI │ │ WPF │
└──────┬───────┘ └──────┬───────┘ └──────┬───────┘
└─────────────────┼─────────────────┘
┌───────▼────────┐
│ ASP.NET Core │ kimlik doğrulama, yetki,
│ Web API │ iş kuralları, doğrulama
└───────┬────────┘
┌───────▼────────┐
│ SQL Server │
└────────────────┘
Ortak sözleşmeler (DTO'lar, doğrulama kuralları) paylaşılan bir kütüphanede tanımlanır ve tüm istemciler aynı tipleri kullanır:
public sealed record SiparisOlustur(int CariId, IReadOnlyList<SiparisSatiri> Satirlar, string? Not);
public sealed record SiparisSatiri(int StokId, decimal Miktar, decimal BirimFiyat);
public interface ISiparisApi
{
Task<SiparisSonuc> OlusturAsync(SiparisOlustur komut, CancellationToken ct);
}
Bu yaklaşımın faydası büyüktür: bir fiyat kuralı değiştiğinde web, mobil ve masaüstü aynı anda doğru davranır; yeni bir platform eklemek ise sadece yeni bir arayüz yazmak anlamına gelir.
Nasıl karar verelim?
Kısa bir yol haritası:
- Kullanıcı gruplarını listeleyin: kim, nerede, hangi cihazla çalışıyor?
- Her grup için kritik ihtiyaçları belirleyin: çevrimdışı, donanım, hız, erişim
- Ortak iş kurallarını ve veriyi tek bir API çekirdeğinde toplayın
- En çok değer üretecek arayüzle başlayın, diğerlerini fazlar halinde ekleyin
DayanSoft olarak web, mobil ve masaüstü uygulamalarını aynı ekip ve aynı .NET altyapısıyla geliştiriyoruz. Hangi platformun sizin için doğru olduğunu birlikte netleştirebiliriz.
Benzer bir projeniz mi var?
İhtiyacınızı anlatın; size özel bir yol haritası ve tahmini bir plan çıkaralım.