मेरे ASP.NET MVC साइट एक WCF सेवा से कनेक्ट करता है डेटा प्राप्त करने के। WCF सेवा इस तरह एक डेटा अनुबंध रिटर्न:ASP.NET MVC दृश्य मॉडल सर्वोत्तम प्रथाओं
[DataContract]
public class Person
{
[DataMember]
public string First { get; set; }
[DataMember]
public string Last { get; set; }
}
मेरी MVC परियोजना में दृश्य मॉडल इस तरह दिखता है:
public class MyViewModel
{
public string SomeExtraField1 { get; set; }
public string SomeExtraField2 { get; set; }
public string SomeExtraField3 { get; set; }
public Person Person { set; set; }
}
चाहिए मेरे विचार मॉडल "व्यक्ति" डेटा अनुबंध है कि लौटा दिया जाता है को संदर्भित किया डेटा सेवा से? या क्या मुझे अपनी एमवीसी परियोजना में एक नया "व्यक्ति" वर्ग बनाना चाहिए जो "व्यक्ति" डेटा अनुबंध पर गुणों को प्रतिबिंबित करता है?
WCF सेवा कॉल एक अंतरफलक के पीछे छिपा है। ऐसा लगता है कि इंटरफ़ेस संदर्भ डेटा अनुबंध होने से मेरा इंटरफ़ेस एक रिसाव अबास्ट्रक्शन बनाता है। हालांकि, मेरे पास कुछ ऐसे लोग हैं जो मेरे एमवीसी प्रोजेक्ट में एक अतिरिक्त "व्यक्ति" वर्ग बनाने पर विश्वास करते हैं जो डेटा अनुबंध को प्रतिबिंबित करता है कोड कोड ब्लोट।
सर्वोत्तम प्रथाओं लेयरिंग/decoupling के इस प्रकार के आसपास के कर रहे हैं कर रहे हैं क्या?
यह निर्माता के माध्यम से देखने के मॉडल के लिए डोमेन वस्तु गुजरती हैं और वह डोमेन वस्तु निजी तौर पर उपयोग करने के लिए ठीक है? – Fixer
@ फ़िक्सर, नहीं, डिफ़ॉल्ट मॉडल बाइंडर उस पर चकित होगा। –
@Darin, ऑटोमैपर – CjCoax