İçeriğe geç
Dil: Türkçe

İş sistemlerini neden .NET üzerinde geliştiriyoruz?

Teknoloji platformu seçimi, sistem canlıya geçtikten sonra da yıllarca sizinle kalan bir karardır; etkisi bakım ve yükseltme maliyetlerinde ve sistemin ne kadar kolay devredilebileceğinde görülür. İş sistemleri için neden .NET’i seçtiğimizi ve her tedarikçiye sorabileceğiniz soruları anlatıyoruz.

Siparişleri, stoku veya faturalamayı yönetecek bir sistem istediğinizde, sistemin hangi platform üzerinde geliştirileceğini nadiren sorarsınız; bu, işi yürüten ekibi ilgilendiren teknik bir konu gibi görünür. Oysa bu seçim, sistem canlıya geçtikten sonra da yıllarca sizinle kalır ve etkisini bakım maliyetinde, yükseltmenin ne kadar kolay olduğunda ve gerektiğinde sistemi başka bir ekibe devredebilmenizde gösterir.

ITS olarak iş sistemlerinin backend servislerini ve API’lerini .NET üzerinde geliştiriyoruz. Bu makalede bunun nedenini yazılım geliştiricinin değil, karar vericinin diliyle anlatıyor, başka bir seçeneğin ne zaman uygun olabileceğini açıklıyor ve platformu ne olursa olsun her tedarikçiye sorabileceğiniz sorularla bitiriyoruz.

Platform seçiminde sizi asıl ilgilendiren nedir?

Bir işletme sahibinin programlama dillerini karşılaştırmasına gerek yoktur. İhtiyacı olan, bütçesini ve işinin sürekliliğini ilgilendiren pratik soruların yanıtlarıdır:

  • Platform, sistemin kullanım ömrü boyunca güvenlik güncellemeleriyle desteklenmeye devam edecek mi?
  • Yükseltmeler önceden planlanabilir mi, yoksa sürpriz olarak mı gelecek?
  • İş sistemlerinin ihtiyaç duyduğu veri, yetki ve diğer sistemlerle bağlantı konularında olgun araçlar var mı?
  • Tedarikçi değişirse başka bir ekip kodu anlayıp bakımını yapabilir mi?
  • Sistemin nerede barındırılacağını seçmekte özgür müsünüz?

Kendi seçimimizi bu kriterlerle değerlendiriyoruz; size gelen her teklifi de aynı kriterlerle değerlendirmenizi öneriyoruz.

Uzun vadeli destek ve planlanabilir yükseltmeler

Bir yönetim sistemi her yıl değiştirilmez; bu yüzden platformun açıkça duyurulmuş bir destek politikası olması bizim için önemlidir. .NET’in resmî sitesinde yayımlanan destek politikasına göre her yıl kasım ayında yeni bir ana sürüm çıkar. Çift numaralı sürümler uzun vadeli destek sürümleridir ve üç yıl boyunca ücretsiz destek ve güncelleme alır; tek numaralı sürümler ise iki yıl süren standart vadeli destek sürümleridir.

Bunun pratikteki karşılığı şudur: Sisteminizin çalıştığı sürümün desteğinin ne zaman sona ereceğini önceden bilirsiniz. Böylece sisteminizin artık güvenlik güncellemesi almayan bir sürümde çalıştığını bir gün ansızın fark etmek yerine, yükseltmeyi yılın planına ve bütçesine koyabilirsiniz.

Sisteminizin uzun vadeli destek sürümlerinden biri üzerinde canlıya geçtiğini varsayalım. Destek sona ermeden önce ekibinizle belirli bir yükseltme dönemi üzerinde anlaşabilirsiniz: Yükseltme bu dönemde önce sistemin bir kopyası üzerinde test edilir, ardından yılın sakin bir zamanında uygulanır. Böylece yükseltme acil bir durum değil, planlanmış bir bakım işi olur.

Her yükseltmeyi kapsamı net, küçük bir proje gibi planlıyoruz: sistemin bağlı olduğu kütüphaneleri gözden geçirmek, testleri çalıştırmak ve sistemi canlı ortama almadan önce ayrı bir ortamda denemek. Kod ne kadar düzenli ve test edilmiş olursa yükseltme o kadar kısa sürer ve o kadar az risk taşır.

İş sistemleri için olgun araçlar

İş sistemlerinin temel ihtiyaçları birbirine benzer: zamanla değişen bir veri tabanı, sistemi mobil uygulamaya ya da başka bir sisteme bağlayan API’ler ve kimin neyi göreceğini belirleyen yetkiler. Platform bu ihtiyaçlar için bilinen araçlar sunduğunda ekip, zamanını temel yapıları sıfırdan kurmaya değil, sizin iş kurallarınıza ayırır.

  • Veri erişimi: Microsoft’un açık kaynaklı Entity Framework Core kütüphanesi, veri tabanıyla çalışmayı düzenler, birden fazla veri tabanı motorunu destekler ve sistem geliştikçe veri tabanı yapısının adım adım geliştirilmesine olanak tanır.
  • API’ler: ASP.NET Core framework’ü, web uygulamaları ile bağlı uygulamaların ve sistemlerin ihtiyaç duyduğu API’leri geliştirmek için kullanılır.
  • Güvenlik: ASP.NET Core kimlik doğrulama, yetkilendirme ve veri koruma için yerleşik özellikler içerir; böylece bunların hepsini her projede elle yazmak gerekmez.

Sisteminizin önce satış temsilcileri için bir mobil uygulamaya, bir yıl sonra da bir e-ticaret sitesine bağlanması gerektiğini varsayalım. API geliştirmek için bilinen bir framework’ün olması, yeni bağlantının da aynı kalıbı izlemesi ve ekranlara uygulanan yetkilerin API’ler için de geçerli olması demektir.

Barındırma: tek bir kısıt yerine seçenekler

.NET ücretsiz ve açık kaynaklı bir platformdur; uygulamaları Windows, Linux ve macOS üzerinde çalışır ve Docker konteynerlerinde çalıştırılabilir. ASP.NET Core dokümantasyonuna göre uygulamalar kurumun kendi veri merkezlerinde ya da bulutta dağıtılabilir.

Bu size karar özgürlüğü verir: veri politikanız gerektiriyorsa şirketinizin içinde bir sunucu, şubeleriniz için daha uygunsa bir bulut hizmeti. Platform seçimi sizi belirli bir barındırma sağlayıcısına da bağlamaz.

Şirket içi bir sunucuyla başlayıp iş hacminiz değiştiğinde buluta geçebilirsiniz; bu geçiş, sistemin üzerine kurulduğu platformu değiştirmenizi gerektirmez.

Bakımı ve devri daha kolay kod

.NET’in temel programlama dili olan C#, tür kuralları katı bir dildir. Basitçe söylemek gerekirse, koddaki her değerin tutar, tarih ya da fatura numarası gibi belirli bir türü vardır ve birçok hata, kullanıcıya ulaşmadan önce sistem derlenirken ortaya çıkar.

Küçük bir sistemde bu önemli görünmeyebilir. Ancak modül modül geliştirilen özel bir ERP sistemi zamanla büyür ve bir modüldeki her değişiklik başka modülleri etkileyebilir. Türler net olduğunda yazılım geliştirici değişikliğin etkisini erkenden görür ve satış tarafındaki bir düzeltmenin muhasebede bir şeyi bozma riski azalır.

İndirim alanının sabit bir tutardan, tutar ya da oran olabilen bir alana dönüştüğünü varsayalım. Tür kuralları katı bir dilde derleme, bu alanın kullanıldığı her yeri gösterir; böylece indirimi eski yöntemle hesaplayan, gözden kaçmış bir yer kalmaz.

Sizi doğrudan ilgilendiren bir etki daha var: devir. Açık kaynaklı ve yaygın olarak bilinen bir platform, sisteminizin tek bir ekibe ya da nadir bir beceriye bağımlılığını azaltır. Bir gün sistemin bakımını kendi iç ekibinize ya da başka bir tedarikçiye devretmeye karar verirseniz, yeni ekip tanıdığı araçları ve dokümantasyonu bulur. Bu yüzden kodun okunabilir ve belgelenmiş olmasına, bizden sonra devralanın onu anlayabilmesine önem veriyoruz.

Tek seçenek değil

.NET’in her proje için doğru seçim olduğunu söylemiyoruz. Üzerinde iyi sistemler geliştirilen başka olgun platformlar da var; platformuna hâkim olan ve açık, test edilmiş kod yazan bir ekip, platformun adından daha önemlidir.

Belirli durumlarda başka bir seçenek daha uygun olabilir: bakımı devralacak ve başka bir platformla çalışan bir iç ekibiniz varsa ya da yeni sistem, farklı bir teknolojiyle geliştirilmiş mevcut bir sistemin uzantısıysa. Bu durumlarda konuyu açıkça konuşuruz; çünkü sistemin, bakımını yapacak olanlarla uyumlu olması bizim tercihlerimizden daha önemlidir.

Sonuçta bizim için önemli olan platformun kendisi değil, sizin için ne ifade ettiğidir: güvenlik güncellemelerini alan bir sistem, zamanını bildiğiniz yükseltmeler ve bizden başkasının da anlayıp bakımını yapabileceği kod.

“Mikroservisler: Ne zaman gerekir, ne zaman gerekmez?” başlıklı makalede benzer bir fikri anlatmıştık: Sağlıklı bir teknik karar, terimlerden değil, işin niteliğinden ve ekibin büyüklüğünden yola çıkar. Platform seçimi de aynı kurala tabidir.

Uygun platform, bugün modern görünen değil, yıllar sonra da bakımını yapabileceğiniz, yükseltebileceğiniz ve devredebileceğiniz platformdur.

Her tedarikçiye sorabileceğiniz sorular

İster bizimle ister başka bir firmayla çalışın, sözleşmeden önce bu soruları sorun ve yazılı yanıt isteyin:

  1. Sistem hangi platform ve hangi sürüm üzerinde geliştirilecek, bu sürümün desteği ne zaman sona eriyor?
  2. Destek sona ermeden önceki yükseltme planı nedir, maliyetini kim üstlenecek?
  3. Kodun sahibi ben miyim, kod bana başka bir ekibe yetecek dokümantasyonla birlikte teslim edilecek mi?
  4. Sistem şirket içi bir sunucuda ya da bulutta barındırılabilir mi, yoksa tek bir sağlayıcıya mı bağlı?
  5. Yetkiler ve veri koruma nasıl yönetiliyor; platformun araçlarına mı, yoksa elle yazılmış çözümlere mi dayanıyor?
  6. Değişiklikler kullanıcılara ulaşmadan önce nasıl test ediliyor?

Bu sorulara verilen net yanıtlar, tedarikçinin olgunluğu hakkında size platformun adından daha fazlasını söyler. Yeni bir sistem için bir teklifi değerlendiriyor ya da mevcut bir sistemi güncellemeyi düşünüyorsanız, durumunuzu ITS ekibiyle görüşebilirsiniz; teknik seçenekleri ve işinize etkilerini birlikte gözden geçirelim.

İlgili hizmetBackend servisleri ve mikroservisler

Makaleyi paylaşınLinkedInXWhatsApp