2009-03-30 11 views
24

मैं अपने आवेदन में ईमेल अधिसूचनाएं उत्पन्न करने के लिए .NET/C# के लिए एक टेम्पलेट इंजन की तलाश में हूं। मैंने अतीत में NVelocity पढ़ा और लगता है कि यह मेरी ज़रूरतों को पूरा करेगा, लेकिन ऐसा लगता है कि यह परियोजना मर चुकी है।क्या NVelocity परियोजना मृत है? क्या विकल्प हैं?

क्या आप अभी भी उस उद्देश्य के लिए NVelocity का उपयोग करने की अनुशंसा करेंगे या आप किसी भी विकल्प का सुझाव दे सकते हैं?

नोट: मुझे कुछ अन्य टेम्पलेटिंग इंजन मिलते हैं, लेकिन ये ज्यादातर एएसपी.नेट एमवीसी (ब्रिल, एनएचएएमएल, इत्यादि) के लिए "व्यू-इंजन" हैं। लेकिन मुझे लगता है कि ये वे नहीं हैं जिन्हें मैं ढूंढ रहा हूं।

उत्तर

26

कैसल प्रोजेक्ट ने परियोजना को फोर्क किया और इसे बनाए रखा है, और हाल ही में 10 दिसंबर 2010 को संस्करण 1.1.1 जारी किया गया। अधिक जानकारी the Castle Projects NVelocity site पर पाई जा सकती है। उन्होंने इसमें कई सुधार किए हैं, जिनके विवरण on their NVelocity improvements पृष्ठ मिल सकते हैं। प्रोजेक्ट ऐसा लगता है कि यह अब मर चुका है और मोनोरेल 3 में, इसे कैसल ब्लेड द्वारा प्रतिस्थापित किया गया है जो रेजर से आधारित है।

यदि आप एक विकल्प की तलाश में हैं, तो मैं एएसपी.नेट एमवीसी 3 या Spark View Engine से Razor view engine का सुझाव दूंगा।

ओपन सोर्स प्रोजेक्ट RazorEngine आपको एएसपी.NET एमवीसी या वेब पेजेस के बाहर रेजर व्यू इंजन का उपयोग करने की अनुमति देता है ताकि आप टेम्पलेट ईमेल उत्पन्न करने के लिए इसका उपयोग कर सकें।

+0

कैसल 2010 – mattmc3

+4

btw के दिसंबर में एक NVelocity रिलीज़ किया गया, यह अब है एक मृत लिंक और उनके पृष्ठ के अनुसार अब यह एक "संग्रहित प्रोजेक्ट" है जो दर्शाता है कि यह वास्तव में मृत है – Earlz

+0

मैं एएसपी.नेट 2.0 के साथ काम कर रहा हूं और एक टेम्पलेट लाइब्रेरी की आवश्यकता है। क्या मुझे मूल 'एनवेलोजिटी' के साथ जाना चाहिए या क्या कोई अच्छा विकल्प है जो एएसपी.नेट 2.0 (एमवीसी 2 नहीं!) के साथ संगत है। –

-1

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

+0

यह उत्तर सूचियों समर्थक और [5 साल के लिए एक उद्यम उत्पाद के लिए XML/XSLT संचालित यूआई] एक का उपयोग कर के विपक्ष (http://stackoverflow.com/a/847342/819887) और एक ही प्रश्न में [इस जवाब निष्कर्ष निकाला है यदि आप xslt के लिए प्रतिबद्ध हैं और आपके पास जटिल डेटा है जिसके लिए जटिल प्रतिपादन प्रक्रिया की आवश्यकता है तो इसके साथ जाएं अन्यथा इसके साथ न जाएं।] (http://stackoverflow.com/a/848596/819887) – surfmuggle

3

आप HTML ईमेल जेनरेट करने के लिए ब्राइल या नहल स्टैंडअलोन का उपयोग कर सकते हैं।

नहल का मूल (ब्राइल के बारे में निश्चित नहीं है ??) में एमवीसी या एएसपी का कोई संदर्भ नहीं है।

मैंने प्रिंट फॉर्म ऐप से प्रिंटिंग और रिपोर्टिंग के लिए एक्सपीएस दस्तावेज़ जेनरेट करने के लिए नहल का उपयोग किया है।

यदि यह पाठ शायद http://www.stringtemplate.org/

हो गया है और यहाँ है एक ऐसी ही सवाल How to use Brail as a stand-alone general purpose templating engine (like NVelocity)?

1

आप iKVM का उपयोग कर इसे परिवर्तित करने के लिए से नेट में वेग के मूल (और अक्सर अद्यतन) जावा संस्करण का उपयोग कर सकते हैं एक असेंबली के लिए। मैंने .NET के तहत कोड जनरेशन के लिए इस तरह सफलतापूर्वक वेग का उपयोग किया है। आप स्ट्रिंग टेम्पलेट पर भी एक नज़र डाल सकते हैं। स्ट्रिंग टेम्पलेट के जावा और सी # संस्करण हैं। आप .Net here में वेग का उपयोग करने पर एक त्वरित मिनी-ट्यूटोरियल पा सकते हैं। मैं सुझाव देता हूं कि StringTemplate पर एक कठिन नज़र डालने का सुझाव है, क्योंकि मुझे लगता है कि यह एक क्लीनर टेम्पलेट इंजन है (मैं हाल ही में परिवर्तित हूं)।

3

मुझे NVelocity (कैसल प्रोजेक्ट कांटा) का उपयोग न करने का कोई कारण नहीं दिख रहा है। यह स्थिर है और आपकी विशिष्ट ज़रूरतें (ईमेल टेम्पलेट्स) शायद अन्य परियोजनाओं के रूप में जटिल नहीं हैं जो एनवीलोसिटी का उपयोग करती हैं, इसलिए आपको किसी भी समस्या की उम्मीद नहीं करनी चाहिए।

3

कोडप्लेक्स पर प्रोजेक्ट है।

http://www.codeplex.com/NVelocity

परियोजना विवरण: NVelocity बहुत propular खुला स्रोत जावा टेम्पलेट enginee ढांचे, वेग 1.6 के एक बंदरगाह है। NVelocity एक शुद्ध है।सी # में लिखी गई नेट लाइब्रेरी जो वर्तमान में फ्रेमवर्क संस्करण 3.5 को लक्षित करती है।

प्रारंभिक स्रोत कोड चेक-इन किया सीधे svn.castleproject.org से प्रतीत होता है।

वह व्यक्ति जो कोडप्लेक्स प्रोजेक्ट (उपयोगकर्ता नाम: टेरीलियांग) बनाता है ने अगस्त में एनएलसीन से एक बार बनाया। उस प्रोजेक्ट के लिए, उसके बाद ने लगभग 50 चेकइन बनाए हैं, इसलिए शायद वह उस परियोजना पर कुछ गंभीर कार्य करने की योजना बना रहा है।

2

मैं साइमन से सहमत हूं; http://www.stringtemplate.org/ उत्कृष्ट, बहुत अच्छी तरह डिज़ाइन किया गया है और इसे सक्रिय रूप से बनाए रखा जा रहा है।

3

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

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

3

NVelocity के रूप में (फिर), मैं DotLiquid सुझाव है कि मारे गए हैं लगता है। अभी भी बहुत कुछ नहीं कह सकता क्योंकि मैं अभी भी इसका मूल्यांकन कर रहा हूं, लेकिन यह निश्चित रूप से आशाजनक दिखता है (और जो मुझे चिंतित है उसके लिए मोनो टच/मोनोड्रॉइड लाइब्रेरी के रूप में बनाता है)।

अद्यतन [11 जून 2012]

के रूप में मॉडल सिर दर्द का एक प्रमुख स्रोत हो सकता है "सुरक्षित" वर्गों/संग्रह होने की बाधा। इस इंजन का मूल्यांकन करते समय, आप इस बिंदु से शुरू करना चाह सकते हैं।

2

मैं DotLiquid के लिए Sorin वोट दें नहीं कर सकते, तो बस मेरी टिप्पणी जोड़ना चाहते हैं - यह की तरह एक महान मंच सक्रिय रूप से विकसित किया जा रहा है।

और सुविधाओं ट्रंक संस्करण (जारी किया dll यद्यपि में नहीं) यदि आप किसी भी आधार वर्ग से विरासत के लिए अगर तुम उन्हें इस तरह से रजिस्टर की आवश्यकता के बिना Pocos उपयोग कर सकते हैं में उनके पास है:

foreach (var type in {Assembly}.GetTypes()) 
    Template.RegisterSafeType(type, type.GetProperties().Select(p => p.Name).ToArray()); 

और इस हल सिरदर्द Sorin का उल्लेख किया।

StringTemplate भी एक बड़ी बात है, लेकिन बहुत सख्त और सीमित, टेम्पलेट्स हैं भी शुद्ध विचार और इसका इस्तेमाल करने के inpractical है ...

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