Hallo!
Ich hab eine nicht ganz leichte Frage (wie ich glaube). Ich habe eine .Net Anwendung, die Module als Plugins in Form von DLLs nachlädt.
Ich möchte jetzt die Anwendung unter Xamarin den Mobilen Kunden verfügbar machen. Aber wie binde ich die Plugins in die Xamarin App ein (Xamarin.Forms PCL)?
Geht das überhaupt?
Danke!
So ganz, was Du willst, ist mir nicht klar.
Die App auf dem Handy kann keine DLLs runterladen und so die Features erweitern.
Diese muss bereits im vollen Umfang im Store hinterlegt sein; kann hier aber durchaus als einzelne DLLs aufgebaut sein.
Man versucht aber bei Apps so wenig DLLs die Möglich zu haben, da viele DLLs die Ladezeit der App negativ beeinflusst.
Das wirkt sich aber nicht auf die Entwicklungszeit aus, sondern man macht das mit einem Build-Task via Continuous Integration (zB ILmerge am Ende des Builds).
Oder geht es Dir nur um eine Plugin Architektur bei einer Xamarin App an für sich?
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hallo! Erstmal herzlichen Dank für die Antwort!
Ich habe mir das folgendermaßen vorgestellt:
Ich habe ein Solution, wo die ganzen Xamarin Projekte als PCL drin sind, und zusätzlich dazu eine normale .net Windows Forms Anwendung. In der Windows Forms Anwendung sollen Plugins als DLLs nachgeladen werden.
Bei den Apps also iOS, Android und Windows Phone ist das nicht nötig. Dort kann ich die externen Module manuell hinzufügen. Sie können zur Laufzeit also schon integriert sein, weil ich ja das Veröffentlichen in den jeweiligen App Stores persönlich manage.
Jetzt sollen aber die externen Module, die von möglicherweise fremden Entwicklern stammen (und wie ich mir das vorstelle als DLLs), und deren Quellcode mir, wenn diese das nicht wollen nicht vorliegt, aber bei den jeweiligen Entwicklern vorgetestet werden. Dazu habe ich die Winforms Anwendung vorgesehen.
Zusätzlich sollen UIs in Form von XAML in die DLLs integriert sein, wenn möglich.
Ich bin noch Anfänger was Plugins angeht. Deswgen bin ich etwas ratlos, welcher Teil der Anwendung welches Projekttyp hat, damit ich das realisieren kann, was ich will.
Ich hatte schonmal ein MEF Plugin als Xamarin PCL in Form einer DLL erzeugt, war dann aber nicht in der Lage dies in der Winforms Anwendung einzubinden.
Die Frage, die sich mir Konkret stellt ist: Wenn meine Hostanwendung als Xamarin PCL mit dem Zusätzlichen Winforms Projekt vorhanden ist:
Also Fragen übder Fragen. Wäre für einen Leitfaden wirklich sehr, sehr dankbar!
Christoph
Hi chr.pie,
mir ist auch noch nicht ganz so klar was du willst.
Wenn du möchtest, das andere Plugins für dich Programmieren können. Ist es am einfachsten ihnen ein Interfache (z.B: IMyAppPlugin) zu Verfügung zu stellen. Da kann dann z.B. ein IOC-Container die Abhängigkeiten auflösen.
Unterschiedliche UI Technologien zu Kombinierern (WindowsFormas / IOS) geht nicht. Hier werden die „Zuliferer“ Passende Technologien Verwenden müssen.
Trenne doch erst mal die Themen von einander Probiere schau dir auf der einen Seite mal an wie man Plugins realisiert und dann noch mal in Ruhe wie man Software für verschiedene Systeme Entwickelt. (Bei Google wirst du schon einiges, dazu finden. Am besten Englische Begriffe benutzen). Wenn du das machst werden sich schon viele Fragen von alleine klären.
Sollte man mal gelesen haben:
Werf mal die PCLs aus Deinem Gedankengut.
Der Nachfolger und die Zukunft heisst .NET Standard Library.
Mit PCLs setzt Du aufs falsche Boot.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
OK. Aber ich muss mich doch irgendwie an das halten, was Xamarin mir bietet. Das ist doch das Mittel der Wahl im Prinzip Xamarin.Forms Portable Class Library.
Wie würdet ihr das ganze denn aufziehen um die Anfoderungem zu erfüllen?
Hi chr.pie,
ich würde die Anforderungen überdenken. Welchen Sinn sollte es denn haben, eine Xamarin-Anwendung in einer WinForms-Anwendung zu testen?
Mach dich doch erstmal mit den Möglichkeiten und Grenzen der Technologien vertraut, die du einsetzen willst. Dann merkst du relativ schnell, daß WinForms keine XAML-Oberflächen darstellen kann, und umgekehrt.
Weeks of programming can save you hours of planning
Auch Xamarin geht den .NET Standard Platform-Weg. Einfach mal ein wenig recherchieren 😉
.NET Standard Library Support for Xamarin
Es gibt aber derzeit kein UI-Framework für alle Plattformen, PC und Mobile.
Das ist immer noch ein offener Punkt in der .NET Welt.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code