Wie erstelle ich eine Pluggable ASP.Net Website?

8

Was sind die besten Praktiken, um eine Website zu erstellen, mit der Fähigkeit, Plugins dafür zu entwickeln?

Sie möchten ein Blog-Modul erstellen und möchten, dass Benutzer oder Mitentwickler Plugins hinzufügen, um diese Modulfunktionalität zu erweitern.

Aktualisierung: Danke für die Ultra-Speed-Antworten, aber ich denke, das ist für mich zu töten. Gibt es keine einfachere Lösung, wie ich Blugengine Plugin Creation System gesehen habe, musst du das Klassen-Plugin einfach mit [Extension] dekorieren.

Ich bin eine Art Mid-Core-Entwickler, also habe ich über Basisklasse, Vererbung, Schnittstellen nachgedacht, was denkst du?

    
DevMania 11.04.2009, 21:00
quelle

4 Antworten

12

Bearbeiten

Ich habe meine Antwort komplett neu geschrieben, basierend auf Ihrer Fragebearbeitung.

Lassen Sie mich Ihnen zeigen, wie einfach es ist, eine Plugin-Architektur mit nur minimalen Schritten zu implementieren.

Schritt 1: Definieren Sie eine Schnittstelle, die Ihre Plugins implementieren werden.

%Vor%

Schritt 2: Erstellen Sie ein Plugin, das IPlugin implementiert.

%Vor%

Schritt 3: Führen Sie das Plugin aus.

%Vor%

Denken Sie daran, dies ist nur das einfachste und einfachste Beispiel für eine Plugin-Architektur. Sie können auch Dinge wie

tun
  • Erstelle einen Plugin-Host, um dein Plugin in seinem eigenen AppDomain auszuführen
  • Wählen Sie entweder Schnittstellen, abstrakte Klassen oder Attribute, um Ihre Plugins mit
  • zu dekorieren
  • verwenden Reflektion, Interfaces, von IL ausgegebene Thunks oder Delegates, um die späte Bindungsarbeit zu erledigen

wenn Ihr Design dies vorschreibt.

    
Ray Womack 11.04.2009, 21:26
quelle
2

Es ist wertvoll, technische und architektonische Perspektiven zu trennen:

  • In der Code-Ebene MEF (Managed Extensibility Framework) ist ein guter Anfang. Hier ist ein einfaches Beispiel.
  • Jedes andere DI (Dependency Injection-Framework) kann gut funktionieren (z. B. Unity)

Und es ist gut, dieses Problem auf architektonischer Ebene zu sehen:

Ich denke, es ist schnell und effizient, wenn Sie einige dieser Frameworks lesen und ausprobieren. Und ofcoz lesen Sie die Quelle, wenn Sie etwas Interessantes finden.

Bearbeiten

Wenn Sie nach einer erweiterbaren Blog-Engine suchen, probieren Sie Blog-Engine aus zuerst. Es stammt aus der ASP.NET-Community.

    
boj 11.04.2009 21:11
quelle
1

Dies klingt wie ein Job für das Managed Extensibility Framework von Microsoft. Es ist momentan in einer Preview-Version, aber es scheint eine bessere Wette zu sein, als einen eigenen Rahmen dafür zu erstellen. Es gibt Links zu Anleitungen, wie Sie diese auf der Website dort verwenden können.

    
Steve Willcock 11.04.2009 21:09
quelle
1

Wenn Sie eine echte Open-Source-Anwendung sehen möchten, die diese Architektur unterstützt, werfen Sie einen Blick auf DotNetNuke .

    
JonnyBoats 12.04.2009 16:59
quelle

Tags und Links