मान लें कि हमारे पास एक ऐसी परियोजना है जो बहुत सारे डेटा (कर्मचारियों, शेड्यूल, कैलेंडर .... और बहुत कुछ) को संभालेगी। क्लाइंट विंडोज ऐप है, सर्वर पक्ष डब्ल्यूसीएफ है। डेटाबेस एमएस एसक्यूएल सर्वर है। मैं उलझन में हूं कि किस दृष्टिकोण का उपयोग करना है। मैंने कुछ लेख और ब्लॉग पढ़े हैं जो वे सभी अच्छे लगते हैं लेकिन मैं उलझन में हूं। मैं एक दृष्टिकोण से शुरू नहीं करना चाहता हूं और फिर दूसरे को चुनने पर पछतावा नहीं करना चाहता हूं। इस परियोजना में लगभग 30-35 विभिन्न ऑब्जेक्ट प्रकार होंगे। डाटा का एक बहुत अलग रिपोर्टों में पुन: प्राप्त करने ... आदिक्लाइंट/सर्वर प्रोजेक्ट के लिए कौन सा डिज़ाइन बेहतर है, डेटा साझा करने के साथ
दृष्टिकोण 1:
// classes that hold data
public class Employee
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
.....
}
public class Assignment
{
public int Id { get; set; }
public int UserId { get; set; }
public DateTime Date { get; set; }
.....
}
.....
डेटा बचत और वापस लाने से निपटने के लिए फिर हेल्पर कक्षाएं:
public static class Employees
{
public static int Save(Employee emp)
{
// save the employee
}
public static Employee Get(int empId)
{
// return the ugly employee
}
.....
}
public static class Assignments
{
public static int Save(Assignment ass)
{
// save the Assignment
}
.....
}
FYI करें, कर्मचारी और असाइनमेंट जैसे ऑब्जेक्ट क्लास सेवर और क्लाइंट के बीच साझा करने के लिए एक अलग असेंबली में होंगे। वैसे भी, इस दृष्टिकोण के साथ मेरे पास एक क्लीनर ऑब्जेक्ट्स होगा। हेल्पर कक्षाएं अधिकांश काम करेंगे।
दृष्टिकोण 2:
// classes that hold data and methods for saving and retrieving
public class Employee
{
// constructors
public Employee()
{
// Construct a new Employee
}
public Employee(int Id)
{
// Construct a new Employee and fills the data from db
}
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
.....
public int Save()
{
// save the Employee
}
.....
}
public class Assignment
{
// constructors
public Assignment()
{
// Construct a new assignment
}
public Assignment(int Id)
{
// Construct a new assignment and fills the data from db
}
public int Id { get; set; }
public int UserId { get; set; }
public DateTime Date { get; set; }
.....
public int Save()
{
// save the Assignment
}
.....
}
.....
इस दृष्टिकोण के साथ
, प्रत्येक वस्तु का अपना काम करना होगा .. अब भी डेटा WCF से ग्राहक के लिए आसानी से WCF केवल शेयर गुण के बाद से स्थानांतरित किया जा सकता।
दृष्टिकोण 3:
इकाई की रूपरेखा का उपयोग करना .. तथ्य यह है कि मैं इसके साथ काम नहीं (जो अच्छा है के बाद से मैं कुछ नया सीखने के लिए है) मैं ग्राहक के बीच डेटा स्थानांतरित करने के Pocos बनाने की आवश्यकता होगी बगल में और डब्ल्यूसीएफ ..
अब, कौन सा बेहतर है? अधिक विकल्प?
एक अच्छा सवाल है, लेकिन शायद प्रोग्रामर के लिए बेहतर फिट है। – jwiscarson