XAF ile İlk Projemizi Geliştirelim

Devexpress eğitim dokümanlarında anlatılan örneklerden bir tanesini bir kaç seri makale ile XAF kullanarak uygulamaya çalışacağım. Öncelikle yapılacak örnek projenin amacı ile başlayalım. Bu projede şirket içi çalışanların Intranet üzerinden etkinliklerini yöneteceği ve diğer verilerinin takibini yapacağı bir uygulama geliştirilmesi hedefleniyor. Ayrıca projenin bir web sitesi bir de winform uygulaması versiyonunun bulunması da hedefleniyor.

  • Bir kullanıcı, etkinlikler için temel bir planlama süreci düzenlemek amacıyla çalışanları, projeleri ve ilgili görev verilerini görüntüleyebilir, arayabilir, filtreleyebilir, yazdırabilir, oluşturabilir, güncelleyebilir ve silebilir.
  • Bir kullanıcı, bir web sitesi için verileri organize etmek ve sunmak amacıyla bir ürün hakkında müşterileri ve yorumları görüntüleyebilir, arayabilir, filtreleyebilir, yazdırabilir, oluşturabilir, güncelleyebilir ve silebilir.

Yazılım Mimarisi

Bu standart üç katmanlı mimari, birçok proje için yeterli bir alt yapı sunmakla birlikte daha karmaşık uygulama mimarileri için bir temel oluşturmaktadır. Takip edeceğimiz bu örneğin basit olması nedeni ile bu mimarinin herhangi bir değişikliğe gerek kalmadan ihtiyaçları karşılayacağı düşünülmektedir. Mimarideki bu başlıkları kısaca aşağıda açıklayarak projeye ilk adımımızı atalım.

  • Data Store / Veri Taban(lar)ı: Uygulama verilerinin depolanacağı veri tabanını temsil etmektedir. XAF popüler birçok veri tabanı yönetim sistemini desteklemektedir. Karmaşık ve özel bazı senaryolarda veri tabanı yerine XML web servisleri de veri kaynağı olarak kullanılabilir.
  • Data Access Layer / Veri Erişim Katmanı (DAL): Bu katmanda veri tabanına erişim için kullanılan alt yapı bulunur. Burada ORM (Object Relational Mapping) aracı olarak Microsoft Entity Framework (EF) veya eXpress Persistent Object (XPO) araçlarından biri seçilebilir.
  • Business Logic / İş Katmanı (BL): Uygulamaya özel çözümleri içeren kodlar burada bulunur. Genel mantığı MVC deseni ile aynıdır. Uygulamalarda UI katmanının direk olarak veri veya veri erişim katmanı ile haberleşmesi istenmediğinden, bu katman içerisinde UI ile veri katmanı arasında iletişimi kuran Controller yapısı da bu katman içerisinde yer alır.
  • Presentation / Sunum Katmanı (UI): Hedef katmana bağlı olarak (windows, web, mobil) iş katmanına veri gönderip sonuçları alan ve kullanıcıya gösteren katmandır. Burada XAF arayüzü kullanmak yerine başka görsel araçlar da kullanılabilir fakat biz konumuz itibari işe XAF’ın kullanışını inceleyeceğiz.

Proje Oluşturma

İlk önce Visual Studio içerisinde “File > New > Project” seçeneği tıklanır ve yeni proje açma ekranı açılır. Burada “Installed > Templates” kırılımı altında “Devexpress XAF” seçilir ve sağ bölümdeki “DevExpress v18.1 XAF Solution Wizard” projesi seçilir (Ben DevExpress v18.1 kullandığım için isimdeki versiyon kısmı v18.1 olarak görünüyor, sizde farklı bir versiyon olabilir). En alttaki “Name” kısmına projemizin adını ve “Location” bölümüne de projeyi açmak istediğiniz klasör yolunu girip OK butonuna tıkladığınızda XAF proje açma sihirbazı karşımıza gelecektir.

Açılan sihirbazın ilk ekranında yazılımın gerçekleştirileceği hedef platformların seçilmesi istenir. Ayrı ayrı platformlar seçileceği gibi, birden fazla platform da seçilerek proje geliştirilebilir. Buradaki platformlardan Mobil seçeneğinin halen beta sürümünde olduğunu ilave edeyim. Bu örnek için mobil platforma derleme yapılmayacağından, Windows ve Web seçeneklerini seçerek devam edeceğiz.

Bir sonraki ekranda veri erişim katmanında (DAL) kullanılacak ORM aracının seçilmesi istenmektedir. Burada sadece bir adet seçilmesi yeterli olacaktır fakat bu örnek kapsamında deneme amaçlı olarak Microsoft firmasına ait Entity Framework (EF) ve Devexpress firmasına ait eXpress Persistent Objects (XPO) araçları birlikte seçilmektedir.

Bu pencerede uygulama için güvenlik seçenekleri yer almaktadır. Burada uygulamaya entegre edilmek istenen güvenlik seçenekleri seçilir. Bu örnek projede güvenlik seçenekleri yer almayacağından, “Authentication” altında yer alan seçeneklerden “None” yazan seçeneği işaretleyerek devam ediyoruz.

Sihirbazın son ekranında da projeye dahil edilmek istenen özel XAF modüllerinin yer aldığı bir ekran gelmektedir. Bu örnek proje kapsamında herhangi bir ek modüle gerek olmadığından ilgili ekranda herhangi bir seçim yapılmadan “Finish” butonuna basılır ve proje oluşturulur.

Proje Ayarlarının Yapılması

Proje açma sihirbazı tamamlandıktan sonra yukarıda görülen “Solution” yapısı otomatik olarak oluşturulur. Kısaca bu projelerin ne işe yaradıklarından bahsedelim ve veritabanı bağlantı ayarlarının yapılması işlemine geçelim.

  • SimpleProjectManager.Module, platformdan ve UI katmanından bağımsız olan ve diğer katmanlar tarafından ortak kullanılan bir XAF modülüdür. Bu paylaşılan modülde yapılan değişiklikler, bu modüle bağlı olan diğer modüllere otomatik olarak yayılmaktadır.
  • SimpleProjectManager.Module.Win, Windows Forms projesine özel kodları ve Windows platformuna bağımlı kodları içerebilen bir XAF modülüdür. Bu modül SimpleProjectManager.Module projesini referans alır. SimpleProjectManager.Module içerisinde yapılan değişiklikler
    SimpleProjectManager.Module.Win projesine otomatik olarak yansır.
  • SimpleProjectManager.Module.Web, ASP.Net web formlarına özel kodları ve Web ortamına bağımlı kodları içerebilen bir XAF modülüdür. Bu modül SimpleProjectManager.Module projesini referans alır. SimpleProjectManager.Module içerisinde yapılan değişiklikler 
    SimpleProjectManager.Module.Web projesine otomatik olarak yansır.
  • SimpleProjectManager.Win ve SimpleProjectManager.Web sırasıyla Windows masaüstü ve Web tarayıcı arayüzlerini sağlamak için paylaşılan ve platform bağımlı modülleri referans alan uygulamaları yazmak için hazırlanmış projelerdir.

Proje açıldığında SimpleProjectManager.Win içerisinde app.config ve SimpleProjectManager.Web içerisinde de web.config dosyaları hazır vaziyette varsayılan bağlantı parametreleri ile bulunmaktadır. Projeyi çalıştırdığınızda bu config dosyalarında belirtilen veritabanlarına ulaşamayacağı için proje hata verecek ve açılmayacaktır. Yukarıda belirttiğim her iki config dosyasında bulunan connection string bilgilerini aşağıda görülen şekilde değiştiriniz.

<connectionStrings>
    <add name="EasyTestConnectionString" connectionString="Integrated Security=SSPI;Pooling=false;Data Source=YourServerIP;Initial Catalog=YourDatabaseName;User Id=YourUserID; Password=YourPassword"/>
    <add name="ConnectionStringXPO" connectionString="Integrated Security=SSPI;Pooling=false;Data Source=YourServerIP;Initial Catalog=YourDatabaseName;User Id=YourUserID; Password=YourPassword"/>
    <add name="ConnectionStringEF" connectionString="Integrated Security=SSPI;MultipleActiveResultSets=True;Data Source=YourServerID;Initial Catalog=YourDatabaseName;User Id=YourUserID; Password=YourPassword" providerName="System.Data.SqlClient"/>
</connectionStrings>

Config dosyalarında gerekli değişiklik yapıldıktan sonra Solution Explorer penceresinde SimpleProjectManager.Win (veya SimpleProjectManager.Web) projesine sağ tıklayarak Set as Startup Project seçeneğini işaretleyin. Sonrasında projeyi çalıştırırsanız projenin açılış ekranı karşınıza gelecektir. Şu an herhangi bir modül içermeyen boş bir ekran olarak uygulamamız çalıştı. Bir sonraki makalede gerekli modüllerin eklenmesi ile işlemleri ele alacağım.

Faydalı olması dileğiyle…

Bir cevap yazın

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