2009-07-23 11 views
8

मैं डब्ल्यूसीएफ स्थापित करने के लिए नया हूं, मैं इसे अपने प्रोजेक्ट में जा रहा हूं, लेकिन मुझे अपनी एक डब्लूसीएफ परियोजना में 5 अलग-अलग 'सेवाएं' पसंद हैं और मुझे आश्चर्य है कि मैं सही काम कर रहा हूं । मेरे डेटाबेस टेबल पर अब मेरी सेवाएं 1-1 हैं। मैं कुछ ऐसा करने का अंत करता हूं:डब्ल्यूसीएफ एक सेवा या एकाधिक सेवाएं

public class Projects : IProjects 
{ 
    public List<Project> GetAll() 
    { 
     return (from p in Connection.Data.Projects 
       select new Project {ID = p.id, Name = p.name}).ToList(); 
    } 

    public Project GetByID(int id) 
    { 
     return (from p in Connection.Data.Projects 
       where p.id == id 
       select new Project {ID = p.id, Name = p.name}).First(); 
    } 

    public Project AddProject(string name) 
    { 
     var project = new Data.Projects {name = name}; 
     Connection.Data.AddToProjects(project); 
     Connection.Data.SaveChanges(); 

     return new Project {ID = project.id, Name = project.name}; 
    } 

    public void DeleteProject(int id) 
    { 
     var project = (from p in Connection.Data.Projects 
         where p.id == id 
         select new Project {ID = p.id, Name = p.name}).First(); 

     Connection.Data.DeleteObject(project); 
     Connection.Data.SaveChanges(); 
    } 
} 

मेरे पास मेरी परियोजना में प्रत्येक तालिका के लिए एक समान कक्षा है। क्या मुझे उप वर्गों के साथ 1 सेवा कनेक्शन का उपयोग करने का तरीका मिलना चाहिए या इसे प्रति टेबल 1 सर्विस क्लास के रूप में रखना चाहिए?

उत्तर

8

"यह निर्भर करता है!" :-) सभी आईटी और प्रोग्रामिंग सवालों के लिए मानक उत्तर :-)

मुझे उन 5 अलग-अलग सेवाओं के साथ कुछ भी गलत नहीं दिख रहा है - आपको वास्तव में उन्हें एक बड़ी सेवा में विलय करके कुछ भी हासिल नहीं होता है, मेरे अनुसार। मैं उन्हें अलग रखना और "lean'n'mean" रखना पसंद करूंगा।

यदि आपके पास पांच अलग-अलग सेवाएं हैं, तो आप अलग-अलग के लिए एक्सेस अनुमतियों जैसी चीज़ों को भी प्रबंधित कर सकते हैं, उदा। कुछ उपयोगकर्ता समूह एक सेवा का उपयोग करते हैं, जबकि दूसरे नहीं।

दोबारा: मुझे लगता है कि आप इसे ठीक कर रहे हैं - मुझे पांच छोटी, निंबलर बनाम एक बड़ी सेवाओं से कोई अनिवार्य कारण या लाभ नहीं दिख रहा है।

इसके बारे में सोचने के लिए आओ - एकमात्र असली परिवर्तन जो मैं सुझाव दे सकता हूं वह आपकी सेवाओं को डिजाइन करने की कोशिश कर रहा है ताकि वे आपके ऐप को क्या करना चाहते हैं उससे अधिक बारीकी से मेल खाते हैं (यानी आप जिस ऑपरेशन को अपने ऐप की अपेक्षा करते हैं और इस प्रकार आपकी सेवाएं हैंडल), डेटाबेस के लिए बहुत बारीकी से मॉडलिंग के बजाय। अंतर्निहित स्टोर के बजाय "कार्य-उन्मुख" या संचालन के संदर्भ में सोचने का प्रयास करें, जहां वे अपना डेटा संग्रहीत करेंगे।

मार्क

+1

भयानक, धन्यवाद आदमी! –

+0

कार्य आधारित दृष्टिकोण पर सहमति हुई। एक भंडार के रूप में एक सेवा के बारे में सोचने के लिए बेहतर नहीं है, लेकिन एक अधिक उपयोग केस नियंत्रक आईएमओ। मैं यह इंगित करता हूं कि यद्यपि 5 अलग-अलग सेवाएं होने के कारण शायद एक बेहतर encapsulation है, यह कभी-कभी कॉन्फ़िगरेशन/रखरखाव/तैनाती ओवरहेड को बढ़ाता है। हमेशा नहीं, लेकिन ध्यान में रखना उचित है। – Stimul8d

संबंधित मुद्दे