DTO (Data Transfer Object) veri transferini yapmamızı sağlayan nesnedir.
Urun Musteri Personel şeklinde 3 tane verimiz var. 3 tane veriyi Get in view ine göndermek istiyorsak.
Tuple nesne kullanabiliriz. Birden fazla nesneyi tek bir nesnede birleştirmemizi sağlar, çoklu nesne oluşturmamızı sağlar.
Ya da Fiziksel bir ViewModel oluşturup onun üzerinde birleştirmeyi yapabiliriz.
Personel referansına Personel nesnesini
Urun referansına Urun nesnesini
Musteri referansına Musteri nesnesini bağlıyoruz
XVM nesnemiz sayesinde 3 tane farklı nesneyi tek bir nesnede toplayıp ona göre işlem gerçekleştirip bir yere transfer edebiliyoruz.
Backend de üretmiş olduğumuz veriyi herhangi bir client a gönderdiğimizde, client gelecek olan verinin a b c formatında olduğunu bilecektir. Clientta hangi teknoloji kullanılıyorsa bu veriyi karşılayacak bir (Entity,Model) oluşturmamız gerekir.
Gelecek olan veriye birebir aynı şekilde aynı imzalara sahip bir nesne oluşturmamız gerekiyor ki bu bizim gelecek olan veriyi tam olarak karşılayabilsin. İşte buna sözleşme denilmektedir.
ViewModeller da yaptığımız operasyonlara göre validation lar tasarlanmalıdır.
EntityModel ı direkt temsil eden içinde fonksiyon, farklı nesnenin ya da Dto nesnesinin referansını barındırmayan nesnelere ViewModel demiyoruz da DTO nesnesi diyoruz. Bu operasyonlarda yani kullanıcıdan gelen salt dataları temsil eden ViewModellar bizim için esasında DTO nesneleridir. ViewModel Dto dan biraz daha geniş kapsamlı nitelendirebileceğimiz nesnedir.
Manuel Dönüştürme
Reflection herhangi bir sınıfın, struct ın, interface in içerisine girip ilgili türün içerisinde programatik olarak tarama yapmamızı sağlayan ve memberlar üzerinde işlemler gerçekleştirmemizi sağlayan bir ileri düzey tekniktir. Bu tekniği kullanarak elimizdeki viewmodellarla entitymodellar arasında veri transferini sağlayabiliriz.