Framework Veya Kütüphane Tavsiyesi Hk.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
omurolmez
Üye
Mesajlar: 187
Kayıt: 31 Eki 2012 11:41

Framework Veya Kütüphane Tavsiyesi Hk.

Mesaj gönderen omurolmez »

Merhaba arkadaşlar,

Yazmak istediğim yazılımı birden fazla proje (uygulama) olarak yazmak ve veritabanı işlemlerini arayüzden ayırmak istiyorum. Hatta mümkünse, veri geçerlilik kontrollerini de ayırmak istiyorum.

Sormak istediklerimin terminolojideki adlarına hakim olmadığım için, şöyle bir örnekle anlatmak istiyorum :
(Ad, soyad, boy, kilo) özelliklerini kaydeden bir proje yapalım.
A uygulaması
Sadece verilerin girileceği/görüntüleneceği ve Edit/Grid kontrollerinden ve gereken Button lardan oluşacak

B uygulaması
Hiçbir arayüze sahip olmayacak ve
  • tüm veritabanı işlemleri (orm veya sql sorguları) burada kodlanacak
  • tüm veri kontrolleri (girilen kilonun 1-200 arasında olması, girilen boyun cm olarak 10-200 arasında olması) burada yapılacak. Yapılan kontrole göre veri kaydedilecek veya A uygulamasında bir mesaj görüntülenmesi sağlanacak
  • opsiyonel olarak, veri geçerlilik kuralları B uygulamasında tanımlanacak ancak A uygulamasında bu kurallar tekrar kodlanmadan bir şekilde B den alınarak veri kontrolü yapılacak (yani B uygulamasında bir şekilde kilo 1-200 ve boy 10-200 aralıkları kodlandığında/ belirtildiğinde, A uygulamasında girilen değerlerin bu aralıklara uygun olup olmadığının kontrolü tekrar kodlanmadan otomatik olarak yapılacak
  • opsiyonel olarak, A daki arayüz nesneleri (ad, soyad, boy, kilo Edit leri), B deki tanımlamaya göre otomatik oluşturulacak. Bu kısımda her tavsiyeye açığım
B uygulaması için lazarus düşünüyorum ancak tavsiyelerinize açığım
framework olarak mormot2 düşünüyorum ancak iyi/kötü yönlerini ve mormot a alternatifleri bilmiyorum, tavsiyelerinize açığım.

Zaman ayırıp okuduğunuz için teşekkürler.

Ömür Ölmez.
Ömür Ölmez
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: Framework Veya Kütüphane Tavsiyesi Hk.

Mesaj gönderen xozcanx »

Merhaba,
Bu işlemi Veritabanında SP ile yapabilirsiniz aslında. Gelen input değerlerini kontrol ederek hangisi uygunsuz ise o alanla ilgili işlem yapmadan Output değerinden geri dönüş yaptırabilirsiniz.

Örnek SP aşağıdaki gibidir. (Firebird)

Kod: Tümünü seç

create or alter procedure KISI_KAYIT (
    I_AD varchar(500),
    I_SOYAD varchar(500),
    I_BOY integer,
    I_KILO integer)
returns (
    O_SONUC smallint,
    O_MESAJ varchar(500))
as
begin
  if (CHAR_LENGTH(I_AD)>35) then
  BEGIN
     O_SONUC=0;
     O_MESAJ='GIRILEN AD BILGISI 35 KARAKTERDEN UZUN OLAMAZ!';
  END
  else
  BEGIN
     O_SONUC=1;
     O_MESAJ='KAYIT BAŞARILI';
  END
  SELECT :O_SONUC,:O_MESAJ fROM rdb$dATABASE
  INTO :O_SONUC, :O_MESAJ;
  suspend;
end
Sp içinde Ad ve soyad için 500 karakter yazdım fakat ilk başta veriyi kontrol ediyorum.
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
omurolmez
Üye
Mesajlar: 187
Kayıt: 31 Eki 2012 11:41

Re: Framework Veya Kütüphane Tavsiyesi Hk.

Mesaj gönderen omurolmez »

Merhaba @xozcanx,

Vakit ayırdığınız için teşekkür ederim. Yeni trend sp lerden uzak durmak yolunda. Daha açık ifade ile, iş mantığını
  • veritabanı motorlarından bağımsız,
  • bir kısım hataların derleyici ile yakalanabileceği,
bir ortamda kodlamak üzerine. Bu nedenle, eski alışkanlığım olan sp leri kullanmak yerine yeni tarzda kod geliştirmek istiyorum.

Bu konuda dilimizde kaynak bulamadım ama "why avoid stored procedure" şeklinde google araması yaptığımızda, hem makalelere hem de StackOverflow da tartışmalara erişebiliyoruz.

Tekrar teşekkürler
Ömür Ölmez.
Ömür Ölmez
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: Framework Veya Kütüphane Tavsiyesi Hk.

Mesaj gönderen ertank »

Merhaba,

Şahsen bu tür bir yapı kullanmayı bende çok defalar düşündüm ancak hiç gerçekleştirme imkanım olmadı.

mORmot ile bu bahsettiklerinizi yapmanız mümkün. Ancak yavaş ilerleyen bir öğrenme süreci var. Yakın zamanda mORMot2 yayınlandı. Başlamak için daha iyi bir seçenek olabilir.

Bunlar dışında da bazı kütüphaneler mevcut ancak isimlerini duyduğum ve incelemediğim bu diğer kütüphaneler "Lazarus" desteği veriyor mu bilmiyorum.

https://github.com/synopse/mORMot
https://github.com/synopse/mORMot2
https://github.com/danieleteti/delphimvcframework
https://github.com/teppicom/RealThinClient-SDK
https://www.tmssoftware.com/site/xdata.asp
omurolmez
Üye
Mesajlar: 187
Kayıt: 31 Eki 2012 11:41

Re: Framework Veya Kütüphane Tavsiyesi Hk.

Mesaj gönderen omurolmez »

Değerli cevabınız için teşekkür ederim @ertank. mormot2 den başladım incelemeye ...
Ömür Ölmez
omurolmez
Üye
Mesajlar: 187
Kayıt: 31 Eki 2012 11:41

Re: Framework Veya Kütüphane Tavsiyesi Hk.

Mesaj gönderen omurolmez »

Arkadaşlar, @ertank, konuyla ilgili, şöyle bir tartışmaya denk geldim.

https://forum.lazarus.freepascal.org/in ... 36.15.html
Ömür Ölmez
Cevapla