30 Haziran 2014 Pazartesi

XAF ile Custom Form Oluşturma

XAF(Xtra App Framework);  hem Web hem Windows uygulamaları oluşturmayı sağlayan esnek bir DevExpress framework yapısıdır. İskeletini, MVC  n-tier mimarisi oluşturur.

Bu yazımda,  XAF ile oluşturduğum bir Windows uygulamasını anlatacağım.
1. Visual Studio’da File -> New -> Project seçilir.

2.Solda Visual C# DevExpress XAF seçilir. Gelen seçeneklerden Dxperience XAF Cross-Platform Application seçip proje isimlendirilir.

3.   Proje oluşturulduktan sonra Solution Explorer’ da toplamda 5 adet proje oluşur. Bu projeler temel olarak XAF’ in oluşturduğu projelerdir. Bu projeleri tek tek açıklamak gerekirse;
Solution1.Module projesi, yapacağımız uygulamanın (hem web hem windows) veritabanı işlerini yürüten ve yöneten kısımdır.
Solution1.Module.Web projesi ise, Web tarafı için Database erişim katmanıdır. Ayrıca bu projede sadece web’ te olmasını istediğimiz bazı özellikleri de ekleyebilir yada çıkartabiliriz.
Solution1.Module.Win aynı bir üsteki projenin windows versiyonu.
Solution1.Win ise, windows arayüz katmanıdır. Bu katmana ihtiyacıız olan modülleri ekleyerek projemize yetenek kazandıracağız.
Solution1.Web ise , web arayüz katmanıdır.

4.  Ben Addressbook adlı projemde, Personel bilgilerini bir tabloda ve personelin detaylı adres bilgilerini diğer tabloda tutacağım.  Custom Form’ da ise kendi oluşturduğum bir form sayfasını, programda çağıracağım.

5.  Öncelikle Addressbook.Module içerisinde;

  • BusinessObject klasörüne Personel.cs , PersonelAddress.cs ve frmPersonel.cs adında üç dosya  eklenir.
  • DatabaseUpdate klasörüne Updater.cs  dosyası eklenir.
  • Editors klasörüne CustomUserControlViewItem.cs dosyası eklenir.

6.  Personel.cs dosyasında;
Burada IPersonel adında bir interface oluşturulur. Bu interface içinde personel tablosunda da tutulacak olan değişkenleri tanımlanır ve en sonda PersonelAddress PersonelAddress {get; set;} yazılmasının nedeni PersonelAddress.cs dosyasında da Personel Personel {get; set; } tanımlamasını yaparak bu iki tabloyu birbirine bağlamaktır.

7.  Personel.cs dosyasında interface tanımlamasından sonra içindeki değişkenlerin sınıfları  teker teker oluşturulur.
Private ile belirlediğim f ile başlayan değişkenlerden referans alarak kendi nesneleri set edilir. Interface yazarken değişken tipleri nasıl tanımlandıysa fonksiyonlarda da aynı şekilde devam edilir. En sonuna da oturum kontrolü için;  public Personel(Session session) : base(session) { } eklenir. Aynı şekilde PersonelAddress.cs  dosyası da yazılır. Bu sefer IPerAddress adında bir interface oluşturulur ve PersonelAddress tablosunu oluşturan column isimleri tipleri ile beraber tanımlanıp fonksiyonlarında çağırılır. Burada da Personel Personel {get; set;} yapılır. İki tablo bağlanmış olur.

8. Addressbook.Module içerisinde Model.DesignedDiffs.xafml dosyasında NavigationItems içerisine aşağıdaki gibi item eklenir. Bu , oluşturulacak olan Custom Form içindir. ImageName ile programdaki logo, Caption ile programda görünecek olan adı ve id’si ile ne tür view olacağı belirlenir.

9.   Addressbook.Win içerisinde Controls adında bir klasör açılır ve içine frmPersonel.cs adında bir Windows Form yapılır.

10.   frmPersonel.cs kod kısmına gerekli kütüphaneler eklenir.
IXpoSessionAwareControl interface tanımlanır. Daha sonra nesnelerin altına bu interface update session kodu yazılır. Buradaki XpoSession, XpoHelper’da oluşturulacağı için XpoHelper classı yazılır. Devamına aşağıdaki kodlar yazılır. OnLoad ile formda oluşturduğumuz nesnelerin yüklenmesi sağlanır.

11.   Updater.cs dosyası içine aşağıdaki kodlar yazılır.
...

Yazımın tamamına ve screenshotlara buradan erişebilirsin.


4 yorum:

  1. Hocam faydalı paylasiminiz için teşekkürler

    YanıtlaSil
  2. Hocam faydalı paylasiminiz için teşekkürler

    YanıtlaSil
    Yanıtlar
    1. Rica ederim, paylaştıkça çoğalması dileğiyle.

      Sil
  3. merhaba iyi günler bana yardım edebilirmisinz acaba ???

    YanıtlaSil