Rehber
C# ve .NET ile Yazılım Geliştirme: Eski Windows Programınızın Yerine Ne Gelmeli?
Eski Windows programını yenilerken C# ve .NET nerede doğru seçimdir? Masaüstü ile web paneli karşılaştırması, barındırma, veritabanı lisansı ve eski verilerin aktarımı üzerine bir rehber.
· 4 dk okuma · Mood Reklam
Muhasebe odasındaki bilgisayarda açılan, gri pencereli, yalnızca o bilgisayarda çalışan bir program… Birçok işletmede böyle bir program vardır ve günün birinde soru gelir: Bunu yenileyelim mi; yenilersek yine masaüstü programı mı olsun, yoksa telefondan da açılan bir web paneli mi? Bu tür programların önemli bir kısmı Microsoft’un C# diliyle ve .NET altyapısıyla yazılmıştır. Bu yazı, C# ve .NET ile yazılım geliştirme kararını bu sorunun etrafında ele alıyor.
C# ve .NET kısaca
C# (“si şarp” diye okunur), Microsoft’un geliştirdiği, türleri baştan belirlenen ve derlenen bir dildir. .NET ise C# ile yazılan programların üzerinde çalıştığı altyapı ve kütüphaneler bütünüdür. Uzun süre Windows ile özdeşleşmiş olsa da .NET’in güncel sürümleri açık kaynaklıdır ve Linux ile macOS üzerinde de çalışır. Yani “C# seçersek Windows sunucuya mahkûm oluruz” düşüncesi artık eskisi kadar geçerli değildir.
C#’ın sevilen bir yanı geliştirme araçlarıdır: Visual Studio gibi ortamlar hataları yazarken gösterir, büyük bir projede bir alanın nerelerde kullanıldığını tek tıkla bulur. Türlerin baştan belirlenmesi de Java’da olduğu gibi kod büyüdükçe düzeni korumaya yardım eder. Bedeli, küçük işler için biraz fazla “resmî” bir yapı kurulmasıdır.
.NET ile hangi işler yapılır?
- Web uygulaması ve API: ASP.NET Core ile yönetim panelleri ve mobil uygulamaların konuştuğu sunucular yazılır.
- Windows masaüstü programları: Kasa, depo, üretim takibi gibi tek bilgisayarda ya da yerel ağda çalışan programlar.
- Mobil uygulama: .NET MAUI ile Android ve iOS’a çıkılabilir; ancak bu alanda Flutter ve React Native kadar geniş bir topluluğu yoktur.
- Oyun: Unity oyun motorunda oyun mantığı C# ile yazılır.
Masaüstünde mi kalmalı, web’e mi taşınmalı?
| Konu | Masaüstü mantıklı | Web paneli mantıklı |
|---|---|---|
| Kim kullanıyor? | Tek ofis, birkaç sabit bilgisayar | Şube, saha ekibi, bayi ve telefondan bakan yönetici |
| Donanım bağlantısı | Barkod yazıcı, tartı, kasa gibi cihazlarla doğrudan konuşması gerekiyor | Cihaz bağlantısı yok ya da sınırlı |
| İnternet | Bağlantı kesintisi işi durdurmamalı | Bağlantı genellikle sağlam |
| Güncelleme | Her bilgisayarda ayrı ayrı yapılır | Sunucuda bir kez yapılır, herkes yeni sürümü görür |
Deprem sonrası İskenderun’da yerini değiştirmek zorunda kalan işletmeler için verisi tek bir bilgisayarda duran program ciddi bir risktir. Verinin sunucuda ve düzenli yedekte durduğu web tabanlı yapı bu açıdan daha dayanıklıdır. İkisinin birleştiği ara çözümler de vardır: cihazla konuşan küçük bir masaüstü parçası ve her şeyin görüldüğü bir web paneli.
Nerede ikinci kez düşünmeli?
- Barındırma: ASP.NET Core uygulamaları klasik PHP paylaşımlı hostinginde çalışmaz. Windows hosting, sanal sunucu ya da bulut gerekir.
- Veritabanı lisansı: .NET projeleri sık sık Microsoft SQL Server ile kurulur ve bu ürünün büyük sürümleri lisans gerektirir. PostgreSQL ya da MySQL ile de çalışılabileceğini baştan konuşun.
- Ekip: C# bilen geliştirici bulmak genellikle zor değildir, ama Windows masaüstü programı yazan ekip ile web uygulaması yazan ekip aynı olmayabilir.
Veritabanı seçiminin ayrıntıları için SQL ve veritabanı tasarımı yazısına bakabilirsiniz.
Eski programın verisi ne olacak?
Yenileme kararında en çok unutulan konu eski kayıtlardır. Müşteri listesi, cari hesaplar ve ürün kartları eski programın veritabanında durur. Yeni sistem ister C# ile ister başka bir dille yazılsın, bu verilerin okunması, temizlenmesi ve aktarılması ayrı bir iştir ve kapsama yazılmalıdır. Eski programın veritabanı şifresi ve yapısı hakkındaki bilgi kimdeyse, işe başlamadan ona ulaşmak gerekir. Hazır bir pakete geçmek mi, özel yazılım yaptırmak mı sorusunu ise hazır program mı, özel yazılım mı yazısında tarttık.
Web, mobil ve masaüstü aynı çatı altında
.NET’in bir artısı, aynı iş kurallarının farklı ekranlarda paylaşılabilmesidir. Örneğin sipariş hesaplamasını yapan kod bir kez yazılır; hem web panelinin konuştuğu sunucu hem de depodaki masaüstü programı onu kullanır. Telefondaki uygulama ise aynı sunucuya API üzerinden bağlanır ve hangi dille yazıldığı fark etmez. Bu düzende tek bir veritabanı, tek bir yetki yapısı ve tek bir yedekleme planı olur. Dikkat edilecek nokta, masaüstü parçanın gerçekten gerekli olup olmadığıdır: cihaz bağlantısı yoksa, her bilgisayara ayrı kurulum ve güncelleme yükünü üstlenmek yerine her şeyi web panelinde toplamak çoğu zaman daha sade bir yoldur.
Karar için üç soru
- Program cihazlarla doğrudan konuşmak zorunda mı?
- Kullanıcılar ofis dışından, telefondan erişmeli mi?
- Bakımı kim yapacak; kurum içinde .NET bilen biri var mı?
Cevaplar web’i gösteriyorsa C# yine bir seçenektir ama tek seçenek değildir; dil, barındırma ve ekip birlikte düşünülür. Programınızı İskenderun’da yerinde gösterip konuşmak isterseniz özel yazılım sayfasına göz atabilir ya da iletişim bilgilerinden doğrudan ulaşabilirsiniz.