Hüseyin Çelik Blog Sayfasi

.Net, Java, Android, Progress 4gl Paylasimlarim

DevExpress XAF eXpressApp Framework nedir

Devexpress; DevExpress firmasi tarafindan gelistirilen ücretli bit frameworktür. DevExpress kuruldugunda direkt olarak Visual Studio ya eklenti olarak kurulur. Açilimi  eXpressApp Framework bizim tabirimizle XAF. XAF kullanmak için XPO (Express Persistent Objects) da kullanilmasi gerekir. XPO hakkinda bilgi almak için makaleyi okuyabilirsiniz. Nedir bu XPO.

Xpo olusturdugunuz model siniflariniza (Class) göre database i yönetmenize yarayan bir araçtir. Yani bir ögrenci sinifi XPO için bir ögrenci tablosu demektir. Tabi belli kosullari var. Siz hiç SQL sorgusu yazmadan bu sinifin kayitlarini okuyup yazabilirsiniz.

Xaf ise yine belli kosullara göre (siki durun) bu siniflarinizda size hazir ekranlar sunar. Siz sadece siniflarinizi tanimlar gerisini Xpo ve Xaf ye birakirsiniz.

Xpo için bir sinifin tablo olabilmesi için belli siniflardan türetilmesi gerekiyor. Xaf için durum farklidir. Bir sinifin ekran olabilmesi için DefaultClassOptions Attribute ile isaretlenmesi gerekiyor

[DefaultClassOptions]
[NavigationItem("Genel Tanimlar")]
[ImageName("ModelEditor_DetailView")]
[ModelDefault("DefaultListViewShowAutoFilterRow", "True")]
public partial class Ogrenci
{
    public Ogrenci() { }
    public Ogrenci(Session session) : base(session) { }
}

Uzun zamandir Xaf kullaniyorum. Kisaca çalisma mantigina deginmek istiyorum. Bu proje eger bir web projesiyse site ilk defa çalistiginda Xaf bu attribute tasiyan siniflar için yeni siniflar olusturuyor. ListView, DetailView ve LookupListView bunlar Xaf tarafindan otomatik olusturuluyor. 

XAF ListView

Bilgilerin toplu listelenecegi ekran ve bir kayit seçildiginde o kaydin detaylarinin görüntülenecegi detay ekrani olan DetailView olusturulur. LookupListView ise listview ekraninin diyalog seklinde çalisan halidir. Xaf bu classlari otomatik olarak olusturur ve runtime aninda derler.

Bu ekranlari istediginiz gibi özellestirebilirsiniz. Bu özellestirme bazen template kullanarak bazen de Controller kullanarak yapilabilir. O kadar detaya girmeyecegim.

Xpo da oldugu gibi attributeler Xaf içinde çok önemlidir. Xaf olusturacagi ekranlari sizin direktiflerinize göre olusturur. Hiç bir sey belirtmezseniz property türlerine göre alanlar açar. String bir property için textbox kullanir. Date bir alan için datetimepicker kullanir. Siz bunlarda istediginiz gibi degisiklikler yapabilirsiniz. 

Benim verdigim örnek kodda oldugu gibi; Ögrenci ekrani, menüde NavigationItem belirtmeseydim Default altinda görünecekti. Ama ben NavigationItem attribute kullanarak farkli bir klasör altinda gösterilmesini sagladim. Bu degisiklikleri attribute yardimiyla yaptigimiz gibi ayni zamanda DevExpress Model Editör yardimiyla da yapabiliriz.

Xaf Model Editör

DevExpress Xaf Model Editor

Xaf projesi olusturabilmek için öncelikle Devexpress kurulmalidir. Kurulum sonrasi Vsual Studio proje templatelerine XAF proje templateleri eklenir.

DevExpress Xaf Project Template

Eger devexpress kurulumunu Visual Studio kurulumundan önce yaptiysaniz size tavsiyem Visual Studio kurulumundan sonra Devexpressi yeniden kurun, proje templateleri isinizi kolaylastiracaktir.

Solution projesi olusturdugunuzda size 7 adet proje olusturulur. 

DevExpress XAF Solution Project

Module Xpo ve Xaf için model classlarinin oldugu proje. Module.Web web için yazilan kontrollerin oldugu proje. Module.Win Windows için yazilan kontrollerin oldugu proje. 

Bu arada çoklu dil destegi güvenlik altyapisi ve bunun gibi pek çok özelligi vardir.

Umarim faydali olmustur, sorunuz olursa memnuniyetle cevaplarim.

Basit bir XAF projesi incelemek isterseniz Test Kodu indirebilirsiniz. Ayrica XAF kurulumuyla birlikte MainDemo ve XCRM gibi çok kaliteli örneklerde gelmektedir.

Yorumlar (1) -

  • Kadir tok

    27.10.2017 19:11:04 |

    Xaf ile büyük proje yazilabilir mi?

Loading