2009-04-11 13 views
8

इसके लिए प्लगइन्स विकसित करने की क्षमता के साथ साइट बनाने के सर्वोत्तम अभ्यास क्या हैं?प्लग करने योग्य ASP.Net वेबसाइट कैसे बनाएं?

जैसे आप एक ब्लॉग मॉड्यूल बनाना चाहते हैं, और आप चाहते हैं कि उपयोगकर्ता या सह-डेवलपर्स इस मॉड्यूल कार्यक्षमता को बढ़ाने के लिए प्लगइन जोड़ने के लिए चाहते हैं।

अद्यतन: अल्ट्रा गति जवाब के लिए धन्यवाद, लेकिन मुझे लगता है कि यह मेरे लिए मार खत्म हो गया है। क्या कोई आसान समाधान नहीं है, जैसे मैंने ब्लॉगेंगिन प्लगइन निर्माण प्रणाली देखी है, आपको बस [एक्सटेंशन] के साथ क्लास प्लगइन को सजाना है।

मैं मध्य कोर डेवलपर की तरह हूं, इसलिए मैं बेस क्लास, विरासत, इंटरफेस के बारे में सोच रहा था, आपको क्या लगता है?

+0

प्लग-इन वास्तुकला सरल नहीं है। यदि यह सरल थे, यह हर सॉफ्टवेयर ढेर और प्रोग्रामिंग भाषा में डिजाइन द्वारा शामिल किया जाएगा। प्रत्येक प्लग इन (किसी और वे सिर्फ अलग कार्यक्रमों होगा) में परिभाषित किया गया जिस तरह से किसी तरह का में मुख्य कार्यक्रम के साथ संवाद करने की जरूरत है। – Aron

उत्तर

12

संपादित

मैं पूरी तरह से अपने प्रश्न संपादन के आधार पर मेरा उत्तर दुबारा लिखा।

मुझे आपको दिखाएं कि प्लगइन आर्किटेक्चर को केवल न्यूनतम चरणों के साथ कार्यान्वित करना कितना आसान है।

चरण 1: एक इंटरफेस परिभाषित करें जो आपके प्लगइन लागू होंगे।

namespace PluginInterface 
{ 
    public interface IPlugin 
    { 
     string Name { get; } 
     string Run(string input); 
    } 
} 

चरण 2: कि IPlugin लागू करता है एक प्लगइन बनाएँ।

namespace PluginX 
{ 
    using PluginInterface; 

    public class Plugin : IPlugin 
    { 
     public string Name 
     { 
      get { return "Plugin X"; } 
     } 

     public string Run(string input) 
     { 
      return input; 
     } 
    } 
} 

चरण 3: प्लग इन चलाएं।

namespace PluginTest 
{ 
    using System; 
    using System.IO; 
    using System.Runtime.Remoting; 
    using PluginInterface; 

    class Program 
    { 
     static void Main(string[] args) 
     { 
      string pluginFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "PluginX.dll"); 
      ObjectHandle handle = Activator.CreateInstanceFrom(pluginFile, "PluginX.Plugin"); 

      IPlugin plugin = handle.Unwrap() as IPlugin; 

      string pluginName = plugin.Name; 
      string pluginResult = plugin.Run("test string");   

     } 
    } 
} 

ध्यान रखें, यह सिर्फ बुनियादी, एक प्लगइन architechure का सबसे सरल उदाहरण है। आप यह भी कर सकते हैं इस तरह के

  • के रूप में चीजों को उसके अपने AppDomain
  • के अंदर अपने प्लग इन चलाना, या तो इंटरफेस, सार कक्षाएं चुनें एक प्लगइन मेजबान बना सकते हैं या साथ
  • उपयोग प्रतिबिंब अपने प्लग-इन को सजाने के लिए जिम्मेदार बताते हैं, इंटरफेस , देर से बाध्यकारी नौकरी पाने के लिए आईएल उत्सर्जित थंक्स या प्रतिनिधि

यदि आपका डिज़ाइन इतना निर्देशित करता है।

+1

धन्यवाद आदमी, इस वास्तव में मैं क्या देख रहा था है :) – DevMania

1

यह माइक्रोसॉफ्ट से Managed Extensibility Framework के लिए नौकरी की तरह लगता है। यह फिलहाल एक पूर्वावलोकन रिलीज में है लेकिन यह इसके लिए अपना खुद का ढांचा रोल करने से बेहतर शर्त प्रतीत होता है। साइट पर इसका उपयोग कैसे करें इसके बारे में गाइड के लिंक हैं।

2

यह तकनीकी और architecturas दृष्टिकोण अलग करने के लिए मूल्यवान है:

  • कोड स्तर MEF (प्रबंधित तानाना फ्रेमवर्क) में एक अच्छी शुरुआत है। Here एक साधारण उदाहरण है। पी & पी से

    • Web Client Software Factory:
    • किसी भी अन्य डि (निर्भरता इंजेक्शन ढांचे) (। यानी एकता)

    को अच्छी तरह से काम कर सकते हैं और यह वास्तु स्तर में इस समस्या को देखने के लिए अच्छा है। "समग्र वेब एप्लिकेशन कैसे बनाएं?" के बारे में केवल तकनीकी लेकिन arcihtectural सूचनाएं नहीं हैं? examples. देखें। मॉड्यूलरिटी बाउंडल पैकेज है।

  • Spring Framework

मुझे लगता है कि यह & पढ़ने वाले कुछ फ्रेमवर्क को आजमाएं, यह तेज़ और कुशल है। और अगर आपको कुछ इंट्र्रेसिंग मिलती है तो ऑफकोज़ स्रोत को पढ़ता है।

संपादित

यदि आप एक विस्तृत ब्लॉग इंजन के लिए खोज रहे हैं तो कोशिश Blog Engine पहले। यह एएसपी.नेट समुदाय से है।

1

आप एक असली, खुला स्रोत आवेदन impliments कि इस archecture DotNetNuke पर एक नज़र देखने के लिए चाहते हैं, तो।

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