OmniSeller:PlugIn Entwicklung: Unterschied zwischen den Versionen
Erscheinungsbild
Admin (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Admin (Diskussion | Beiträge) Korrekturlauf Teil 2: Markup-Reste, abgebrochene Saetze und Doppelungen bereinigt |
||
| (5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
[[Datei:Omniseller plugin c.png|300px|thumb]] | |||
<h1>OmniSeller PlugIn Entwicklung</h1> | <h1>OmniSeller PlugIn Entwicklung</h1> | ||
<h2>Überblick</h2> | <h2>Überblick</h2> | ||
| Zeile 12: | Zeile 13: | ||
<li><b>Abhängigkeiten:</b> | <li><b>Abhängigkeiten:</b> | ||
<ul> | <ul> | ||
<li>OmniSeller.Common und OmniSeller.Enums aus dem HTK NuGet Repository | <li>OmniSeller.Common und OmniSeller.Enums aus dem HTK NuGet Repository HTKPackages</li> | ||
</ul></li> | </ul></li> | ||
<li><b>Nützliche Schnittstellen und Modelle:</b> | <li><b>Nützliche Schnittstellen und Modelle:</b> | ||
| Zeile 78: | Zeile 79: | ||
<h3>1. Projekt einrichten</h3> | <h3>1. Projekt einrichten</h3> | ||
<ul> | <ul> | ||
<li> | <li>Erstellen Sie ein neues <b>.NET Standard 2.0</b> Class Library-Projekt in Visual Studio</li> | ||
<li> | <li>Fügen Sie die folgenden Pakete über das HTK NuGet Repository hinzu:</li> | ||
<pre> | <pre> | ||
OmniSeller.Common | OmniSeller.Common | ||
| Zeile 86: | Zeile 87: | ||
<h3>2. PlugIn-Logik implementieren</h3> | <h3>2. PlugIn-Logik implementieren</h3> | ||
<ul> | <ul> | ||
<li> | <li>Implementieren Sie die Schnittstelle <code>IEntryPointPlugin</code>.</li> | ||
<li> | <li>Definieren Sie die unterstützten <code>EntryPoints</code> und <code>ShopTypes</code>.</li> | ||
<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> | <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> | <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 128: | Zeile 129: | ||
<h2>Best Practices für PlugIns</h2> | <h2>Best Practices für PlugIns</h2> | ||
<ul> | <ul> | ||
<li><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 134: | Zeile 135: | ||
<li><b>Fehlerbehandlung:</b> | <li><b>Fehlerbehandlung:</b> | ||
<ul> | <ul> | ||
<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> | <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> | <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 158: | Zeile 159: | ||
<li><b>PlugIn wird nicht geladen:</b> | <li><b>PlugIn wird nicht geladen:</b> | ||
<ul> | <ul> | ||
<li> | <li>Überprüfen Sie, ob die <code>IEntryPointPlugin</code>-Schnittstelle korrekt implementiert wurde.</li> | ||
<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> | <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> | <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> | ||
<h1>Hinweis zur PlugIn-Entwicklung</h1> | |||
<p>Die Möglichkeit, individuelle PlugIns für den OmniSeller DataService zu erstellen, bietet eine flexible und maßgeschneiderte Lösung für spezifische Kundenanforderungen. Bitte beachten Sie jedoch:</p> | |||
<ul> | |||
<li><b>Die Entwicklung von PlugIns ist nicht Bestandteil unserer regulären Pakete, einschließlich des Enterprise-Pakets.</b></li> | |||
<li><b>Eine PlugIn-Entwicklung erfordert immer eine gesonderte Absprache mit HTK.</b></li> | |||
</ul> | |||
<p>PlugIns ermöglichen Anpassungen, die über den Standardumfang hinausgehen. Sie sind ideal, um individuelle Geschäftsprozesse oder spezielle Anforderungen abzubilden, erfordern jedoch eine präzise Abstimmung zwischen Ihnen und unserem Entwicklungsteam.</p> | |||
<h2>Was bedeutet das für Sie?</h2> | |||
<ul> | |||
<li><b>Keine Standardfunktion:</b> Die PlugIn-Entwicklung ist eine Zusatzleistung und nicht automatisch im Lieferumfang unserer OmniSeller-Pakete enthalten (auch nicht im Enterprise Paket).</li> | |||
<li><b>Gesonderte Kosten:</b> Jede PlugIn-Entwicklung wird individuell kalkuliert und als separate Leistung abgerechnet.</li> | |||
<li><b>Kundenspezifische Lösung:</b> PlugIns werden speziell für Ihre Anforderungen erstellt und sind nicht universell einsetzbar.</li> | |||
</ul> | |||
<p>Wenn Sie Interesse an der Entwicklung eines PlugIns haben, kontaktieren Sie bitte Ihren Ansprechpartner bei HTK. Wir freuen uns darauf, Ihre Anforderungen zu besprechen und Ihnen eine passende Lösung anzubieten.</p> | |||
<p> | |||
<i>HTK behält sich das Recht vor, PlugIn-Anfragen zu prüfen und gegebenenfalls abzulehnen, falls diese nicht mit den technischen oder geschäftlichen Rahmenbedingungen vereinbar sind.</i></p> | |||