2008-10-30 10 views
7

हम काम पर एक ब्रांड नई परियोजना शुरू करने के लिए तैयार हैं, कोई विरासत कोड नहीं। हमने अतीत में सबसनिक का उपयोग किया था और हम इसके साथ बहुत खुश हैं। लेकिन वह लिंक से पहले था।आज आप अपनी डेटा परत, लिंक या सबसनिक के लिए क्या चुनेंगे?

क्या किसी को भी इस समस्या का सामना करना पड़ा (लिंक x Subsonic)?

आपका निर्णय क्या था? कारण क्या थे?

किसी भी अंतर्दृष्टि की सराहना की।

+0

क्या आपका मतलब LINQ या LINQ से SQL है? चूंकि SubSonic 3.0 से LINQ का समर्थन करता है। –

+0

जब मैंने सवाल पूछा, पिछले अक्टूबर, सबसनिक संस्करण 2.1 (कोई लिंक) पर था। मुझे लगता है कि अद्यतन प्रश्न LinqToEntities x Subsonic 3.0.0.3 होना चाहिए (अभी तक)। – nandos

+0

एंटिटी फ्रेमवर्क सबसनिक की तुलना में काफी बेहतर प्रदर्शन प्रदान करता है: http://www.timacheson.com/Blog/2009/jun/entity_framework_vs_subsonic – Tim

उत्तर

11

सबसोनिक

पेशेवरों की तरह एसक्यूएल:

  • अच्छा और सरल
  • मचान

विपक्ष:

  • विधि हस्ताक्षर अक्सर स्ट्रिंग parms स्वीकार करते हैं (हालांकि आप डीएओ स्ट्रिंग स्थिरांक उपयोग करने के लिए प्रोत्साहित किया जाता है), जो के साथ दुर्व्यवहार किया जा सकता है।

ध्यान रखें:

  • कोई कोड के लिए वेबसाइट परियोजना, दूर से ही मॉडल पीढ़ी (जरूरत BuildProvider) की आवश्यकता है।

LINQ एसक्यूएल करने के लिए

सकारात्मक:

  • आईडीई में वाक्यात्मक चीनी
  • एमएस समर्थित
  • देखें एसक्यूएल आईडीई में निष्पादित किया जाना है
  • अलग अनुमति देता है मॉडल में झुकाव के स्तर, ऑटो-पीढ़ी से स्पष्ट परिभाषाओं तक ओबजेक तक टी गुण।

विपक्ष:

  • परिसर। आपको डेटा कॉन्टेक्स्ट जैसी नई अवधारणाओं को प्रभावी होने की आवश्यकता है।

ध्यान रखें:

ADO.NET Entity Framework और here का भी मूल्यांकन करें।

+0

ध्यान दें कि एएसपी.नेट एमवीसी के डायनामिक डेटा पेज सबसोनिक्स के समान ही मचान बनाते हैं, लेकिन LINQ पर आधारित होते हैं। –

+1

आपका पहला सबसोनिक कॉन सत्य नहीं है, यह करने का एक ही तरीका है। आप आंशिक कक्षाएं उत्पन्न करने के लिए sonic.exe या SubStage.exe भी चला सकते हैं जिसे आप समाधान में अपने डीएओ प्रोजेक्ट में शामिल करते हैं। –

+0

ऑटो पीढ़ी से मेरा मतलब हाथ से बंद है। मुझे इन-मेमोरी डेटा ऑब्जेक्ट्स द्वारा उड़ा दिया गया था जब मैंने उन्हें पहली बार देखा और फिर वास्तविकता से थोड़ा नीचे महसूस किया। कोई बड़ी बात नहीं। मुझे लगता है कि सबसोनिक कुछ गधे को मारता है। हो सकता है कि एक कंस न करें "सुनिश्चित करें कि आप चमकदार पैकेजिंग को पीछे देखते हैं"? –

3

एक बात जो मुझे LINQ के बारे में पसंद है, जो मुझे नहीं लगता कि सबसोनिक सुन्दरता से संभालता है, स्वचालित रूप से जुड़ने से निपट रहा है।

FROM a in db.Orders 
where a.Total > 100 
SELECT new {a.Item.Desc, a.Customer.Name}; 

स्वचालित रूप से उत्पन्न होगा thisL

select i.DESC, c.NAME 
from ORDERS o 
inner join ITEMS on o.ItemID = i.ItemID 
inner join CUSTOMERS c on o.CustomerID = c.CUSTOMERID 
where o.TOTAL > 100 
0

लिनक से एसक्यूएल के साथ सबसे बड़ा जोखिम यह है कि माइक्रोसॉफ्ट इससे थक जाएगा और इसे त्याग देगा। बहुत सी अटकलें हैं कि यह पहले से ही हो चुका है और केवल इकाई ढांचे को अपडेट किया जाएगा। Subsonic इस और खराब मामले से पीड़ित नहीं है आपके पास अपने संपादन करने के लिए स्रोत कोड है।

+0

मुझे लगता है कि यह बकवास है।सबसे पहले, वहां "LINQ" (वाक्यविन्यास), "LINQ से SQL" और "LINQ से Entities"। बाद वाले दो मूल रूप से कोड जनरेटर हैं जो LINQ वाक्यविन्यास द्वारा उपयोग की जाने वाली डेटाकॉन्टेक्स्ट ऑब्जेक्ट्स बनाने के लिए हैं। LINQ वाक्यविन्यास दूर नहीं जा रहा है - सी # 4 का अधिकांश इस पर आधारित है। कोड जेनरेटर अपडेट करना मामूली है। –

+0

मुझे लगता है कि "linq to sql" आपका दायां linq कहीं भी नहीं जा रहा है। ADO.NET ब्लॉग से यह नवीनतम पोस्ट इस स्थिति का समर्थन करेगा http://blogs.msdn.com/adonet/archive/2008/10/29/update-on-linq-to-sql-and-linq-to-entities- roadmap.aspx –

0

मैं एक ही स्थिति में था। LinQ अधिक "दृश्य" है, आप vstudio के अंदर सबकुछ करते हैं, और यहां तक ​​कि रोब भी मानते हैं कि सबसनिक के पास कुछ चीजें हैं।

आईनेमेरेबल, LINQDatasource (ऑटो पेजिंग के साथ) और दृश्य मॉडलिंग ने मुझे सबस्कोनिक पर लिंक चुनने के लिए आश्वस्त किया है।

1

NHibernate के बारे में क्या? क्या यह वास्तव में नई परियोजनाओं के लिए तस्वीर से बाहर है? फिर भी, जावा से आने वाले लोग इसे परिचित पाएंगे और आप इसे .NET 2.0 और मोनो के साथ भी उपयोग कर सकते हैं।

0

आप यह देखना चाहते हैं कि MS stops developing LINQ to SQ एल, जैसा कि ऐसा प्रतीत होता है। SubSonics नवीनतम संस्करण क्वेरी बनाने और अधिक पठनीय बनाने के लिए आसान है, फिर उनके पिछले संस्करण।

1

मेरा अनुभव सबसोनिक के साथ प्राथमिक रहा है। यह तैनाती के लिए बहुत सी आगे है और आप अपने डीएएल को आधे घंटे में पूरा कर लेंगे। ध्यान रखें कि यह एक स्विस सेना चाकू है, क्योंकि यह उपयोगिता के लिए डिज़ाइन किया गया है। असल में आपको प्रति तालिका उत्पन्न कक्षा मिलती है, साथ ही संग्रह के लिए आलसी लोडिंग को प्रतिबिंबित करने की क्षमता भी मिलती है। आप ढांचे के माध्यम से संग्रहीत प्रक्रियाओं को भी निष्पादित कर सकते हैं, इसलिए यदि आपके पास जटिल डेटा संरचनाएं हैं तो आप उन्हें डेटाबेस से ला सकते हैं और एक वर्ग को अपडेट कर सकते हैं जिसे आप शिल्प करते हैं।

मैंने इसे अब 5 प्रमुख परियोजनाओं पर उपयोग किया है, और इस बात से प्रभावित हूं कि मैं कितनी जल्दी इस पर निर्भर हो गया।

1

मैं लिंक के साथ गया क्योंकि यह ढांचे में बनाया गया है। उन लोगों के लिए यह माइक्रोसॉफ्ट द्वारा समर्थित नहीं होगा ... यह LinqToSQL है जिसे चरणबद्ध किया जा रहा है। मेरा मानना ​​है कि योजनाओं में से एक इसे इकाई फ्रेमवर्क में अवशोषित करना है।

अब मैं इकाई फ्रेमवर्क का उपयोग कर रहा हूं। यह linq का भी उपयोग करता है और मूल रूप से यह linqToSql की तरह है यदि आप इसका उपयोग करना चुनते हैं तो अधिक लचीलापन और शक्ति के साथ।

मैं तीसरे पक्ष के ढांचे और orms से बचने के लिए प्रवृत्त हूं क्योंकि अंत में वे भी मर जाते हैं। मेरा मानना ​​है कि उनके पास मरने का मौका अधिक है क्योंकि उनका जीवन इस बात से आता है कि इसमें कितने लोग रुचि रखते हैं और इसका इस्तेमाल करते हैं। उनका जीवन भी इसके मुख्य लेखक/योगदानकर्ता पर निर्भर है।

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