Domain: tekrar eden alan tanımını tek yerde toplamak
Bir uygulamada "müşteri adı" gibi bir alan onlarca ekranda, raporda ve tablo kolonunda tekrar tekrar tanımlanabilir — uzunluk, formatlama, açıklama her yerde ayrı ayrı girilirse bir gün birinde unutulur. TROIA'da bu sorunu çözmek için Domain kavramı vardır: bir kontrolün, tablo alanının ya da veritabanı kolonunun temel özelliklerini tek bir yerde saklayan, yeniden kullanılabilir bir veri tanımı.
Bir domain neleri saklar
- Field Type / Field Length / Field Decimal: alanın veri tipi, uzunluğu, ondalık basamağı
- Check Table / Zoom Dialog: alana bağlı zoom (arama) davranışı
- Read Only / Zoom Only: alanın düzenlenebilirlik durumu
- Case Sensitivity: büyük/küçük harf duyarlılığı
- Field Picture: sanal kolonlar için formatlama
- SLabel / MLabel / LLabel / HLabel: farklı uzunluklarda başlık/etiket seçenekleri
- Options: combobox için sabit seçenek listesi
- Tooltip: kullanıcıya gösterilecek yardım metni
Event, transfer ve validasyon kodları
Bir domain'e, o alanı kullanan her kontrol için otomatik çalışacak kod da bağlanabilir:
- Event kodları:
TEXTCHANGED,ZOOMBEFORE,ZOOMAFTER,LOSEFOCUS,GAINFOCUS,RIGHTCLICKMENU,DRAG,DROP,PASTE - Transfer kodları: client-server arasında veriyi dönüştürür (ters yönü de ayrıca tanımlanmalıdır)
- Validasyon kodu: veri geçerliyse 1, geçersizse 0 döner
Nerede saklanır
Domain tanımları SYSDOMAINS, SYSDOMAINSX, SYSDOMAINSTXT, SYSDOMAINLINK, SYSDOMAINLINKX tablolarında tutulur — dialog'ların SYSDIALOGS/SYSCONTROLS ile saklanmasına benzer bir mantık.
Sonuç
Domain'i "bir alanın DNA'sı" gibi düşünebilirsiniz: uzunluk, formatlama, validasyon kuralı bir kere tanımlanır, sonra o domain'e bağlanan her kontrol ve kolon aynı davranışı otomatik miras alır. Aynı alanı elle onlarca yerde tekrar tanımlamaktan çok daha güvenlidir.
Yorumlar (0)
Yorum Yaz