Zum Inhalt springen

OmniSeller:PlugIn Entwicklung: Unterschied zwischen den Versionen

Keine Bearbeitungszusammenfassung
Korrekturlauf: Rechtschreibung, Grammatik und Stil ueberarbeitet
Zeile 79: Zeile 79:
<h3>1. Projekt einrichten</h3>
<h3>1. Projekt einrichten</h3>
<ul>
<ul>
     <li>Erstelle ein neues <b>.NET Standard 2.0</b> Class Library-Projekt in Visual Studio</li>
     <li>Erstellen Sie ein neues <b>.NET Standard 2.0</b> Class Library-Projekt in Visual Studio</li>
     <li>Füge die folgenden Pakete über das HTK NuGet Repository hinzu:</li>
     <li>Fügen Sie die folgenden Pakete über das HTK NuGet Repository hinzu:</li>
<pre>
<pre>
OmniSeller.Common
OmniSeller.Common
Zeile 87: Zeile 87:
<h3>2. PlugIn-Logik implementieren</h3>
<h3>2. PlugIn-Logik implementieren</h3>
<ul>
<ul>
     <li>Implementiere die Schnittstelle <code>IEntryPointPlugin</code>.</li>
     <li>Implementieren Sie die Schnittstelle <code>IEntryPointPlugin</code>.</li>
     <li>Definiere die unterstützten <code>EntryPoints</code> und <code>ShopTypes</code>.</li>
     <li>Definieren Sie die unterstützten <code>EntryPoints</code> und <code>ShopTypes</code>.</li>
     <li>Implementiere die Logik in der Methode <code>Call</code>.</li>
     <li>Implementieren Sie die Logik in der Methode <code>Call</code>.</li>
</ul>
</ul>
<h3>3. PlugIn erstellen und veröffentlichen</h3>
<h3>3. PlugIn erstellen und veröffentlichen</h3>
<ul>
<ul>
     <li>Kompiliere das Projekt.</li>
     <li>Kompilieren Sie das Projekt.</li>
     <li>Die resultierende <code>.dll</code>-Datei (zusammen mit ihren Abhängigkeiten) wird in das OmniSeller PlugIn-Verzeichnis kopiert:</li>
     <li>Die resultierende <code>.dll</code>-Datei (zusammen mit ihren Abhängigkeiten) wird in das OmniSeller PlugIn-Verzeichnis kopiert:</li>
<pre>C:\OmniVersum\Apps\OmniSellerService2\PlugIns</pre></ul>
<pre>C:\OmniVersum\Apps\OmniSellerService2\PlugIns</pre></ul>
<h3>4. PlugIn testen</h3>
<h3>4. PlugIn testen</h3>
<ul>
<ul>
     <li>Starte den OmniSeller DataService und beobachte die Logs.</li>
     <li>Starten Sie den OmniSeller DataService und beobachten Sie die Logs.</li>
     <li>Das PlugIn wird automatisch geladen und ausgeführt, wenn der entsprechende <code>EntryPoint</code> erreicht wird.</li>
     <li>Das PlugIn wird automatisch geladen und ausgeführt, wenn der entsprechende <code>EntryPoint</code> erreicht wird.</li>
</ul>
</ul>
Zeile 129: Zeile 129:
<h2>Best Practices für PlugIns</h2>
<h2>Best Practices für PlugIns</h2>
<ul>
<ul>
     <li><b>Vermeide lange Blockaden:</b>
     <li><b>Vermeiden Sie lange Blockaden:</b>
         <ul>
         <ul>
             <li>Die Methode <code>Call</code> sollte möglichst schnell ausgeführt werden, um Verzögerungen im DataService zu vermeiden.</li>
             <li>Die Methode <code>Call</code> sollte möglichst schnell ausgeführt werden, um Verzögerungen im DataService zu vermeiden.</li>
Zeile 135: Zeile 135:
     <li><b>Fehlerbehandlung:</b>
     <li><b>Fehlerbehandlung:</b>
         <ul>
         <ul>
             <li>Verwende <code>try-catch</code>, um Laufzeitfehler zu verhindern, die den gesamten Service beeinflussen könnten.</li>
             <li>Verwenden Sie <code>try-catch</code>, um Laufzeitfehler zu verhindern, die den gesamten Service beeinflussen könnten.</li>
</ul></li>
</ul></li>
     <li><b>Testumgebung nutzen:</b>
     <li><b>Testumgebung nutzen:</b>
         <ul>
         <ul>
             <li>Teste das PlugIn in einer Entwicklungs- oder Staging-Umgebung, bevor es in die Produktion übernommen wird.</li>
             <li>Testen Sie das PlugIn in einer Entwicklungs- oder Staging-Umgebung, bevor es in die Produktion übernommen wird.</li>
</ul></li>
</ul></li>
     <li><b>Log-Ausgaben:</b>
     <li><b>Log-Ausgaben:</b>
         <ul>
         <ul>
             <li>Nutze <code>Console.WriteLine</code>, um wichtige Informationen und Debug-Daten während der PlugIn-Ausführung zu loggen.</li>
             <li>Nutzen Sie <code>Console.WriteLine</code>, um wichtige Informationen und Debug-Daten während der PlugIn-Ausführung zu loggen.</li>
</ul></li>
</ul></li>
</ul>
</ul>
Zeile 159: Zeile 159:
     <li><b>PlugIn wird nicht geladen:</b>
     <li><b>PlugIn wird nicht geladen:</b>
         <ul>
         <ul>
             <li>Überprüfe, ob die <code>IEntryPointPlugin</code>-Schnittstelle korrekt implementiert wurde.</li>
             <li>Überprüfen Sie, ob die <code>IEntryPointPlugin</code>-Schnittstelle korrekt implementiert wurde.</li>
             <li>Stelle sicher, dass alle Abhängigkeiten (z. B. <code>OmniSeller.Common</code>) verfügbar sind.</li>
             <li>Stellen Sie sicher, dass alle Abhängigkeiten (z. B. <code>OmniSeller.Common</code>) verfügbar sind.</li>
</ul></li>
</ul></li>
     <li><b>Assembly-Version inkompatibel:</b>
     <li><b>Assembly-Version inkompatibel:</b>
         <ul>
         <ul>
             <li>Stelle sicher, dass die Hauptanwendung und das PlugIn dieselben Versionen von <code>OmniSeller.Common</code> verwenden.</li>
             <li>Stellen Sie sicher, dass die Hauptanwendung und das PlugIn dieselben Versionen von <code>OmniSeller.Common</code> verwenden.</li>
</ul></li>
</ul></li>
     <li><b>Kein <code>EntryPoint</code> aktiviert:</b>
     <li><b>Kein <code>EntryPoint</code> aktiviert:</b>
         <ul>
         <ul>
             <li>Prüfe, ob der EntryPoint des PlugIns (<code>SupportedEntryPoints</code>) mit dem vom Service ausgelösten EntryPoint übereinstimmt.<br><br><br></li>
             <li>Prüfen Sie, ob der EntryPoint des PlugIns (<code>SupportedEntryPoints</code>) mit dem vom Service ausgelösten EntryPoint übereinstimmt.<br><br><br></li>
</ul></li>
</ul></li>
</ul>
</ul>