Ist system.addin meistens darüber, das Remoting einfacher zu machen, oder macht es dies schwieriger, dies zu tun?

StackOverflow https://stackoverflow.com/questions/1736683

Frage

Es dauert mindestens 7 Baugruppen und die Einschränkung des Datenmodells meines Addin -Datenmodells auf Datentypen, mit denen sich die Funktionen der Appdomain -Isolation abrufen können. Es ist so komplex! Das System von System.addin Teams impliziert mir, dass sie versucht haben, ein mentales Modell von COM neu zu erstellen, ein Modell, das ich in erster Linie nie sehr gut verstanden habe und nicht über die Vorteile verkauft wurde. (Wenn com so gut ist, warum ist es tot? -Rhetorische Frage.) Wenn ich nicht mit Legacy com spiegeln oder interoperieren muss Eine neue Appdomain?

Ich kann den Discovery -Code selbst schreiben, ich habe es schon einmal gemacht und eine naive Implementierung ist ziemlich schnell, weil ich nicht gerne über die Versammlungen im GAC iteriere!

Meine spezifische Frage ist also, dass ich die Appdomain -Isolation erhalten kann, die Addins mit ein paar Code -Remoting -Snippets bereitstellen, und was wären das?

War es hilfreich?

Lösung

Ich bin mir nicht ganz sicher, dass eine Antwort auf Ihre Frage die Bedingungen der Website erfüllt - es gibt keine Lösung.

Ja, das Remoting ist einfacher, da es für Sie getan wird. Es ist jedoch stark kontrolliert und erfordert, wie Sie identifiziert haben, ein wenig Arbeit, um alles zusammen zu plumieren. Die Cache -Datei, die durch den Entdeckungsprozess ausgesteckt wird, ist auch kaum willkommen.

System.addin zeichnet sich in Isolation aus, was tatsächlich ein bisschen ein Arsch ist, um auf robuste, flexible Weise von Grund auf neu zusammenzustellen. Es unterstützt das Hosting des Cross -Prozesses und die ziemlich einfache Passage der Benutzer -WPF -Elemente von einer Domäne zur anderen.

Eine Sache, an die Sie sich jedoch erinnern sollten, ist, dass die Zielgruppe von MAF nicht diejenigen ist, die versuchen, zwei Anwendungen miteinander zu verbinden. Es richtet sich an Entwickler, die steckbare und dennoch sichere Systeme wünschen (Cross Process -Hosting schützt die Stammanwendung vor unberechtigten Ausnahmen. Appdomains ermöglichen die Ausführung potenziell fremder Code mit definierter Sicherheit). Legen Sie sich von der meisten Kommunikation direkt in Richtung System.Runtime.Remoting oder WCF.

Wenn Sie mit System.addin fortfahren möchten, betrachten Sie die Pipeline Builder Plugin Für Visual Studio!

Abschließend - Sie können System.Addin -Isolation mit Remoting erhalten, aber um ein anständiges System zu erhalten, benötigen Sie mehr als ein paar Snippets. Ich versuche es selbst zu replizieren und stolpere überall in der Remote -Schnittstellenkomponente - etwas Systems.

Andere Tipps

Nachdem ich mich eine ganze Weile mit System mit system.Add versammelte, bin ich davon überzeugt, dass es als einmalige spezielle Zwecklösung für die Verwendung von Microsoft hinzugefügt wurde. Ich bin überrascht, dass es zu einem Kernteil des .NET -Frameworks erhöht wurde. Es scheint nicht die Verfeinerung und Politur zu haben, die für eine allgemeine .NET -Framework -Komponente benötigt wird.

Ich möchte einen alternativen Weg finden, um .NET Managed Add-Ins zu erstellen, die nicht so viel Aufwand erfordern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top