XAF Eğitim Serisi

Devexpress firmasına ait yazılım geliştirme platformu olan XAF Application Framework hakkında çok fazla Türkçe içerik olmadığından bir XAF eğitim içeriği yazmak istiyorum. Bunu yaparken de en önemli kaynağım https://documentation.devexpress.com sitesi olacak. Bu seride yer alacak olan içerikler bir bakıma Devexpress firması tarafından hazırlanan İngilizce içeriklerin Türkçeye çevrilmesi şeklinde olacak. Tabi kendi yorumumu da anladığım kadarı ile eklemeye çalışacağım. İlk önce XAF kullanmanın ve kullanmamanın getireceği avantaj ve dezavantajlarla başlayalım.

Genel Bakış

Günümüzde şirketler operasyonlarından kaynaklanan verileri bünyelerinde tutmak ve gerektiğinde ilgililere raporlamak durumunda kalmaktadır. Gitgide artan ve sürekli değişen ortamda yazılımların da bu sürece hızlı bir şekilde adapte olması gerekmektedir. Şimdi şirketlerin yazılımlarını tedarik ettiği yöntemlere göre geleneksel tedarik yöntemlerinin ve XAF alt yapısının avantaj ve dezavantajlarını inceleyelim.

İş Modeli 1: Şirkete Uygun, Özel Yazılım Geliştirilmesi

Şirket, ihtiyaç duyduğu yazılımları bağımsız bir yazılım şirketine veya varsa kendi şirket bünyesindeki bilgi teknolojileri departmanına sıfırdan yazdırabilir. Eğer yazılımcılar uygulamaları bazı işleri kolaylaştıracak şekilde bir çatı (framework) üzerine inşa etmemişse muhtemelen aşağıdaki sorunlarla karşılaşacaktır.

  • Yazılım geliştiriciler veritabanındaki her bir tablo veya alana veri girişin sağlamak için bir ekran tasarımı yapmak zorunda kalacaklar. Bu durumda çok basit veri giriş ve raporlama ekranları için bile uzun bir zaman ayırmak zorunda kalacaklar.
  • Çok büyük olasılıkla kod tekrarı yapılmaması konusu göz ardı edilecektir. Özellikle birden fazla yazılımcı olması durumunda herkesin kendi tarzını yansıtması sonucu, kod okunabilirliği düşecek ve sonradan projeye dahil olan yazılımcılar için sıkıntılı bir süreç yaşanacaktır.
  • Her yazılımda olabilecek hataların sıfırdan geliştirilen bir yazılımda görülmesi çok daha büyük bir olasılıktır. Hele ki yeterli testler yapılmadıysa çok daha büyük hatalar çalışma zamanında ortaya çıkacak ve geri dönülmeyen sorunlara yol açabilecektir.
  • Testlerin yapılması için çok ciddi zaman ve insan kaynağı ayrılması gerekir. Eğer yeteri kadar özen gösterilmezse hatalar gözden kaçacak ve ileride büyüyerek karşımıza çıkacaktır.
  • Bu tür uygulamalarda yazılım prensipleri büyük ihtimalle göz ardı edilmiş olacağından sonradan genişletilebilirlik ve bakım süreçleri çok maliyetli duruma gelebilir. Programda istenen yeni bir özellik için tüm formların tekrardan gözden geçirilmesi ve düzenlenmesi gerekir. Bu da çalışan bazı kodların bu düzenleme esnasında hataya düşmesine neden olabilir.

Bu yaklaşımda bazı avantajlar da bulunmaktadır.

  • Bu tür özel programlarda standart yazılımların sağlamayacağı kadar detaya inilebilir ve özelleştirilebilir. Tüm kontrol yazılım ekibindedir.
  • Uygulamalar belli bir kalıba uymak zorunda değildir. Örneğin eklenecek bir özelliğin, uygulamayı kullanacak tüm şirketlerin ortak ihtiyacını karşılayacak daha genel bir yapıda olması gibi kısıtlara takılmazlar. Bu yüzden işletmeye özel operasyonları tüm detaylarına kadar yönetebilirler.

İş Modeli 2: Evrensel Bir Yazılım Ürünü Satın Alma

Piyasada kendini kanıtlamış ve ihtiyacı karşılamaya aday yazılımlar arasından bir tanesi (Microsoft Dynamics Ürünleri, SAP, Micro, Logo, vb.) seçilerek satın alma yoluna gidilebilir. Bu iş modelinde karşılaşılacak bazı dezavantajlar şunlardır.

  • Bu tip uygulamaların kendine özgü frameworkleri, kodlama yapıları hatta özel yazılım dilleri bile olabilir. Bu da yazılım alındıktan sonra destek kısmında ya bu dilin/yapının öğrenilmesi veya bilen kişilerin istihdam edilmesi gibi pahalı bir yöntem olarak karşımıza çıkabilir.
  • Uygulamaların özelleştirilmesine ve özel ihtiyaçlara göre genişletilmesine ya izin vermez yada sınırlı bir esnekliğe sahiptir. Bazı durumlarda bu genişleme işi için de yüksek maliyetler karşımıza çıkabilir.
  • Bu evrensel ürünler sektördeki ihtiyaçların çoğunluğuna karşılık vermek durumunda olduklarından performans olarak özel yazılımlara göre biraz daha yavaş kalabilir. Ayrıca hali hazırda kullanmayacağınız bir çok özelliği de bünyesinde barındırdıklarından kullanmadığınız özelliklerin maliyetine de katlanma durumunda kalınabilir.

Tabi bu yazılımların avantajları da yok değil. Bunları da kabaca şu şekilde sıralayabiliriz.

  • Piyasada bilinen, kendini ilgili konuda kanıtlamış bir yazılım satın aldığınızda kalitesinden emin olabilirsiniz. Kapsamlı analizler sonucu yazıldığından ve gerekli testleri yapıldığından, hatalarla karşılaşma riskiniz diğer yazılımlara göre oldukça düşüktür.
  • Destek ve ek geliştirme maliyetlerini de göze alıp satıcı firma ile sözleşme imzalandığında, firma bünyesinde yazılımcı ve destek personeli tutmayarak sabit maliyetleri düşürebilirsiniz.

İş Modeli 3: eXpressApp Framework Kullanmak

Aslında tam olarak bir iş modeli denemese de yine de dokümandaki modellemeye sadık kalmak için XAF’ı da ayrı bir başlık altında değerlendireceğiz. Bu iş modeli aslında hazır bir alt yapı kullanarak yazılımları bu alt yapı ile geliştirme modeline tekabül eder ve yukarıda bahsettiğimiz iki modelin arasında bir noktaya konumlandırılabilir. Tabi makalenin konusu XAF olduğu için, XAF’ın özellikleri ve sağladığı kolaylıklar ile yazımıza devam edeceğiz.

XAF, uygulamaların sıfırdan yazılması durumunda karşılaşılacak problemleri gidermek için (İş modeli 1’i açıklarken bu problemlere değinmiştik) tasarlanmış bir alt yapıdır. Bazı avantajlarını şu şekilde sıralayabiliriz.

  • Arayüz ile kaygılanmayıp direk olarak iş mantığına odaklanıldığından farklı platformlar (WinForms, ASP.NET ve Mobile) için tasarlanmış uygulamalarda aynı iş mantığını kolayca yeniden kullanabilirsiniz. Bunu kabaca vergi ve ek maliyetlerin hesaplamasını yapan metodun bir kez yazılıp her platform için bu metodun çağrılması şeklinde düşünebiliriz.
  • Veri tarama ve düzenleme için birçok benzer formun manüel olarak oluşturmanıza gerek kalmaz. Bu şekilde uygulamaların bakımları da kolay yapılabilir bir duruma gelir çünkü verileri değiştirdiğinizde, çok sayıda formu ve/veya web sayfasını değiştirmek zorunda kalmazsınız. Tüm bu formlar ve web sayfaları veriye göre otomatik olarak XAF tarafından oluşturulur.
  • Verilere erişmek için herhangi bir DBMS ile uğraşmak veya ADO.NET kullanmak zorunda kalmazsınız. eXpressApp Framework, veri yönetimi için daha üst düzey bir araç sunar. Bu araç, verilerinizi ayrıntılı olarak tanımak zorunda kalmadan, herhangi bir popüler DBMS’yi kullanarak verilerinizi kaydetmeyi kolaylaştırır.
  • Sadece verileri depolamak ve gerektiğinde görüntülemek için tasarlanmış iş uygulamaları oluşturmayı son derece kolaylaştırır.
  • Uygulamaların herhangi bir .NET dili kullanılarak oluşturulmasına izin verir.
  • Arayüzlerin ve standart davranışların tamamını kendinize göre özelleştirebilirsiniz. Hatta açık kaynak kodlu geldiği için alt yapının tamamını da özelleştirmeniz mümkündür (pratikte çok zor olsa bile).
  • XAF tarafından sağlanan tüm bileşenler çok fazla test edilerek geliştirildiği için güvenle kullanılabilir.

Sonuç

Anladığım kadarı ile iş modellerinin avantaj ve dezavantajlarını aktarmaya çalıştım. Tabi başka iş modelleri olabileceği gibi, yukarıda aktarılanlardan daha fazla avantaj ve dezavantaj da eklenebilir. Burada hem Devexpress dokümanlarına sadık kalmaya çalıştım hem de anladığım kadarı çevirerek basit ilaveler de yapmaya çalıştım.

Faydalı olması dileğiyle…

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir