Tüm Platformlar için Hızlı Uygulama Geliştirme --->    Kitabımız...      Delphi

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 5/5 - 2 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Delphi ORM Yapısı ile işlevsel kod çıktısı oluşturma
#1
Merhaba,

Bu konu aslında tam bir soruyu kapsamıyor. Bu yüzden cevaplarınızın beyin fırtınasının bir parçası olması adına mümkün olduğu kadar geniş ve kapsamlı olmasına dikkat ederseniz sevinirim.

Konumuz başlıktan okuduğunuz üzere ORM Yapısına uygun ve bu şekilde oluşturulan proje çıktıları. Her proje için belirli tablolar ve aynı konseptte oluşan yapılar çıkıyor. Ancak her bir projede bunların konumları ve adlandırmaları değiştiği için ya aynı tabloların create-script dosyalarını alıp revize ediliyor, yada manuel düzenlemeler yapılıyor.

ORM yapısına bir yenilik kazandırarak, benzer konseptte olan ancak farklı adlandırılan projelerin tek kod ve tek veritabanı yapısı ile işlevselliğini arttırmak. Bunu nasıl yapmayı planladığıma gelirsek; her projemizde tanımlarımızı tutacağımız tablolar, hareketlerimizi tutacağımız tablolar ve ilişkilerini yöneteceğimiz tablolar oluşturuyoruz.

Yani; Kullanıcı, İş, Ürün, Müşteri ve Satış olarak toplamda 4-5 tablo grubu ile işimizi çözüyoruz. Her ORM projesinde oluşturulan modeller ve veritabanı tabloları isimlendirme dışında çok ufak tablo yapısında değişikliğe sürüklüyor bizleri. Peki bu işin temelinde olan bu 4-5 tabloyu sistematik olarak ORM'ye göre tasarlasak, özelleştirmemiz gereken sütunları da hesaba katarak her tabloda ek alanlar oluştursak, sonra da vt tablolarının isimleri her projede aynı kalacağı halde kullanıcı arayüzünde isimlendirmeleri istediğimiz gibi şekillendirsek nasıl olur?

Konu ile ilgili tartışmalarda savunduğunuz görüşün aksi görüşlere biraz daha saygılı olursanız seviniriz. Herkes kendi savunacağı görüşün iyiliğini kapsamlı olarak açıklamakta özgür Smile
{ talk is cheap show me the code. }
Cevapla
#2
(18-09-2017, Saat: 16:04)Abdullah Ilgaz Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlORM yapısına bir yenilik kazandırarak, benzer konseptte olan ancak farklı adlandırılan projelerin tek kod ve tek veritabanı yapısı ile işlevselliğini arttırmak.
Benzer konseptte olan proje kısmını tam anlamadım.Örneklemek mümkün müdür ?
My name is nobody.
WWW
Cevapla
#3
(18-09-2017, Saat: 16:48)ismailkocacan Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(18-09-2017, Saat: 16:04)Abdullah Ilgaz Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlORM yapısına bir yenilik kazandırarak, benzer konseptte olan ancak farklı adlandırılan projelerin tek kod ve tek veritabanı yapısı ile işlevselliğini arttırmak.
Benzer konseptte olan proje kısmını tam anlamadım.Örneklemek mümkün müdür ?

Tabii ki.

Bir satış uygulaması düşünelim. Oluşturacağımız uygulamanın veritabanında ne olacak? Ürün(Stok), Müşteri(Cari), Kullanıcı, Fatura-Sipariş(Hareket) ve ek tablolar.

Şimdi bir oto yıkama uygulaması düşünelim. Neler olacak? Yıkama, Temizlik vs.(Stok), Araba(Cari), Kullanıcı, Fatura-Sipariş(Hareket) ve ek tablolar.

Bir üretim uygulaması düşünelim. Neler olur? Ham madde, mamül, yarı mamül(Stok), Müşteri, Fabrika(Cari), Kullanıcı, Fatura-Sipariş(Hareket) ve ek tablolar.

Yani aslında espri basit. Çoğu uygulamada Alıcı, Verici, Mesaj, Kanal kavramları var. Alıcı müşteridir. Verici kullanıcı. Mesaj ürün-hizmet. Kanal mesajın alıcıya ulaştırılma biçimi.
{ talk is cheap show me the code. }
Cevapla
#4
Peki.
Veritabanı tasarımı olarak benzer yapıda uygulamalar olabilir.Örnek olması açısından bir sağlık uygulamasında bire çok ilişkili tablolar olabildiği gibi, aynı şekilde bir finans uygulamasında da bire çok ilişkili tablolar olabilir.Fakat her uygulamanın iş mantığı/iş kuralı farklı değil midir?

Amaç bir araç yardımıyla tablo-alan isimlendirmeleri yapmak mı ? O kısmı tam anlamadım. Confused
My name is nobody.
WWW
Cevapla
#5
(19-09-2017, Saat: 10:01)ismailkocacan Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlPeki.
Veritabanı tasarımı olarak benzer yapıda uygulamalar olabilir.Örnek olması açısından bir sağlık uygulamasında bire çok ilişkili tablolar olabildiği gibi, aynı şekilde bir finans uygulamasında da bire çok ilişkili tablolar olabilir.Fakat her uygulamanın iş mantığı/iş kuralı farklı değil midir?

Amaç bir araç yardımıyla tablo-alan isimlendirmeleri yapmak mı ? O kısmı tam anlamadım. Confused

Aynı işe hizmet edecek 2 uygulamanın dahi birden fazla tablo farklılığı ve sütun farklılıkları olabilir. Buradaki ana espri, tek kod bloğu ile aynı CRUD işlemlerini yapacak ortak kod, ortak veritabanı ve minimum özelleştirme ile mümkün edilmesi.

Sağlık ve Finans örnekleriniz için; Sağlık uygulamasının ihtiyaç duyacağı özellik, modül, parametre ve kavramları Sağlık için özel olarak uygulanabilir hale getirilecek. Burası şuan konunun çok dışında. Aynı şekilde, yukarıdaki bahsettiğim ortak paydaya bakılırsa, Finans için teklif, çek-senet, banka gibi ek modüller yer alacaktır. Buradaki amaç tamamen aynı veritabanını birden fazla sektörde, her sektörün kendi jargonu ile isimlendirerek kullandırmak.

Toparlarsak; A sektörü için aynı uygulamadaki Stok tablosu Abonelik olarak adlandırılacakken, B sektörü için Stok tablosu Ham Madde olarak adlandırılacak. Bu görünümleri düzenleme ve özelleştirme imkanının olacağı bir sistem tablosu da olabilir.
Save
{ talk is cheap show me the code. }
Cevapla
#6
Somut bir kod örneği verebilir misiniz ?
Mesela "tek kod bloğu ile aynı CRUD işlemlerini yapacak ortak kod" nasıl olacak ?
My name is nobody.
WWW
Cevapla
#7
yanlış anlamış olabilirim ama büyük crm projelerinde örneğin oracle'ıni crm i gibi ihtiyaçlarınıza göre tablo oluşturup x tablonun y alanı şu tablodan çek buraya şöyle bir verigeldiğinde webservisle şunu gönder gibi işlemleri paket alındıktan sonra siz yapıyorsunuz bir nevi yazılımın tablo yapısını / ekranlarını kurallarını siz kendi isteiğinize göre şekillendiriyorsunuz.



“Do. Or do not. There is no try.”
Cevapla
#8
(19-09-2017, Saat: 11:31)ismailkocacan Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlSomut bir kod örneği verebilir misiniz ?
Mesela "tek kod bloğu ile aynı CRUD işlemlerini yapacak ortak kod" nasıl olacak ?


Doğru şeyi mi algıladım bilemedim fakat belki Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol yöntemiyle bir sınıf tanımlanabilir.
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol,Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol,Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol,Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  C Nesnelerini Delphi'de kullanmak uparlayan 9 383 11-01-2018, Saat: 00:23
Son Yorum: savasabd
  (Sadeleştirildi) Girilen sayı adedinde iç içe for döngüsü oluşturma Abdullah ILGAZ 29 1.849 07-09-2017, Saat: 16:45
Son Yorum: Abdullah ILGAZ



Konuyu Okuyanlar: 1 Ziyaretçi