Masaüstü yazılım geliştirme hizmetimiz, Windows bilgisayarlarda çalışan uygulamaları ve arka plan hizmetlerini kapsar. Bir ekranı olan, kullanıcının tıklayıp kullandığı bir program da olabilir; hiç arayüzü olmayan, bilgisayar açıldığında sessizce çalışmaya başlayan bir sistem yazılımı da. İhtiyaç hangisini gerektiriyorsa onu geliştiririz.
Masaüstü yazılımların web ya da mobilden farkı, doğrudan kullanıcının bilgisayarında, yani sizin tam kontrol etmediğiniz bir ortamda çalışmasıdır. Bu yüzden performans, kaynak kullanımı, kurulum ve güncelleme gibi konular tasarım aşamasında ele alınır; sonraya bırakılacak ayrıntılar değildir.
Masaüstü yazılım hangi durumlarda tercih edilir?
- İnternet bağlantısından bağımsız ya da yalnızca yerel ağda çalışması gereken işler.
- Bilgisayarın dosya sistemine, ekranına, yazıcısına ya da bağlı cihazlarına doğrudan erişmesi gereken yazılımlar.
- Kullanıcı bir şey yapmadan arka planda sürekli çalışması gereken hizmetler.
- Kurum içindeki bilgisayarlar arasında veri aktaran ya da bağlantı kuran araçlar.
- Bir web sitesinin tarayıcı sınırları içinde yapamayacağı işler.
Her iş için masaüstü yazılım gerekmez. Aynı işi web ile çözmek mümkün ve daha kolaysa bunu açıkça söyleriz; seçim ihtiyaca göre yapılır.
Karar verirken şu soruyu sorun: yazılım bilgisayarın kendisine mi, yoksa yalnızca bir veriye mi erişecek? İlkinde masaüstü, ikincisinde çoğunlukla web daha uygundur. Kullanıcıların kendi bilgisayarına bir şey kurmak zorunda kalmaması web yazılımının avantajıdır; masaüstüne karar verirken bu bedeli baştan hesaba katmak gerekir.
Arayüzlü uygulamalar ve arayüzsüz arka plan hizmetleri
Arayüzlü bir uygulamada ekran ve kullanıcı akışı projenin önemli bir parçasıdır. Bu durumda çalışma modelimiz Tasarım, Geliştirme, Test, Düzenleme ve Yeniden İnceleme aşamalarından oluşur. Aksi belirtilmedikçe arayüzü sade tutarız; masaüstü yazılımda kullanıcı çoğunlukla işini yapmaya çalışan bir çalışandır ve karşısına çıkan her fazladan düğme onun için bir yavaşlıktır.
Arayüzsüz yazılımda, yani kullanıcıya gösterilecek ekranı olmayan arka plan hizmetlerinde Tasarım aşaması yoktur; süreç Geliştirme, Test, Düzenleme ve Yeniden İnceleme olarak ilerler. Ekran çizmeye gerek kalmaz, ancak yazılımın nasıl davranacağı yine baştan konuşulur: ne zaman çalışacağı, bir hata alırsa ne yapacağı, kayıtları nereye yazacağı.
Örnek: Ekran Kaydedici
Ekran Kaydedici, arayüzsüz çalışan bir Windows sistem yazılımıdır. Bir firmanın "çalışanların ne yaptığı kayıt altında tutulsun" talebi üzerine geliştirdik; masaüstünü arka planda, kullanıcıyı rahatsız etmeden, ayarlanan süreli parçalar hâlinde video olarak kaydeder. Cihazlar bir web yönetim panelinden izlenir ve yönetilir. Arka planda çalışan bir yazılımın kullanıcının asıl işini yavaşlatmaması gerekir; bu, projenin ana tasarım ölçütlerinden biri oldu.
Çalışan izleme konusunun hukuki bir yönü de vardır. İhtiyatlı yaklaşımımızı çalışan izleme yazılımı ve KVKK yazısında anlattık.
Örnek: Uzak Masaüstü
Uzak Masaüstü uçtan uca (point-to-point) çalışan, arayüzlü bir Windows uygulamasıdır: bilgisayarları bir sunucu üzerinden birleştirmek yerine, aracı sunucu olmadan doğrudan birbirine bağlar. Cihaz listesinin kimde nasıl görüneceği ve hangi bilgisayarlara kimin bağlanabileceği gibi kararlar, bu tür bir uygulamada arayüz tasarımının da yetki tasarımının da parçasıdır.
Bir bilgisayarın ekranını canlı yayınlayıp yetkili izleyicilerin başka bir cihazdan izlemesini sağlayan Yayınlama ve İzleme yazılımımız ise Windows'ta çalışan bir yayın istemcisi, merkezî bir sunucu ve mobil ile masaüstü için bir izleyici uygulamasından oluşur; yani tek bir ihtiyaç birden fazla platforma yayılabilir.
Performansı etkilememek bir tasarım kararıdır
Arka planda çalışan yazılım, kullanıcının asıl işini yavaşlatmamalıdır. Bunu iyi niyetle değil, tasarımla sağlamaya çalışırız: yoğun işlemleri uygun zamanlara yaymak, gereksiz bellek ve işlemci kullanımından kaçınmak, diski ve ağı gereğinden sık meşgul etmemek. Ekran Kaydedici'de örneğin video kodlamada bilgisayardaki donanım hızlandırıcıları otomatik tespit edip uygun olanı seçerek işlemciyi az yormayı hedefledik. Geliştirme bittikten sonra sistem analiziyle yazılımın diğer programların çalışmasını engelleyip engellemediğine de bakarız; Ekran Kaydedici için yaptığımız analizlerde böyle bir etki görülmedi.
Yine de sonuç bilgisayarın donanımına ve üzerinde çalışan diğer programlara göre değişebilir. Bu yüzden yeni bir yazılımı önce küçük bir grupta, kendi ortamınızda denemenizi öneririz.
Kurulum, güncelleme ve test
Bir yazılımı birkaç bilgisayara kurmak ile çok sayıda bilgisayara kurmak aynı iş değildir. Planlama aşamasında kurulumun nasıl yapılacağını (tek tek mi, toplu mu), yazılımın hangi Windows sürümlerinde çalışacağını, ayarların nerede tutulacağını ve yeni sürüm çıktığında nasıl güncelleneceğini konuşuruz. Güncellemenin kullanıcıyı yarıda bırakmaması ve bir sorun çıkarsa eski sürüme dönülebilmesi de bu planın parçasıdır. Arka planda çalışan yazılımlarda ayrıca bilgisayar yeniden başladığında yazılımın kendiliğinden ayağa kalkması gerekir; Ekran Kaydedici'de bunu Windows açılışı ve zamanlanmış görev ile sağlıyor, kurucunun gerekli bileşenleri denetleyip eksikleri yüklemesine de önem veriyoruz.
Masaüstü yazılımın testi de web yazılımınkinden farklıdır, çünkü yazılım sizin kontrol etmediğiniz bilgisayarlarda çalışır. Test aşamasında farklı ekran çözünürlüklerini, yönetici hakkı olmayan kullanıcı hesaplarını, bilgisayarın uyku ve yeniden başlatma durumlarını, ağ bağlantısının kopup geri gelmesini ve bilgisayardaki diğer yazılımların (örneğin güvenlik yazılımlarının) etkisini ayrı ayrı denemeye çalışırız. Hepsini önceden öngörmek mümkün olmadığı için ilk kurulumların küçük bir grupta yapılmasını ve çıkan sorunların Düzenleme aşamasında toplanmasını öneririz.
Sürece katılım ve başlangıç
Geliştirme boyunca tasarım ve işleyiş kararlarına canlı olarak katılabilir, her aşamada ekran görüntüleriyle e-posta bildirimi alırsınız. Masaüstü yazılımınızın firmadaki diğer yazılımlarla veri alışverişi yapması gerekiyorsa bunu sistem entegrasyonu hizmetimiz kapsamında ele alırız.
Projeyi nasıl hazırlayacağınızdan emin değilseniz önce ihtiyacınızı yazın. Hazır olduğunuzda iletişim sayfamızdan durumunuzu kısaca anlatın; süre kapsama ve ekip yoğunluğuna göre belirlenir, bunu birlikte konuşuruz.