0
votes

Application de bureau modulaire (plug-in similaire)

Je vais faire une application de bureau pouvant être ajoutée / supprimer des modules en ajoutant / enlevant des dlls (chaque module géré par une DLL) ou via un fichier de configuration.

Mon objectif est d'avoir une application comme Eclipse IDE, il y aura des fonctions de base (Eclipse Basic) comme le début, puis d'autres fonctions peuvent être installées lorsque des plugins doivent être une application entièrement fonctionnelle.

Passer une certaine recherche et se retrouver avec Cadre d'extensibilité géré (MEF) . Le problème est que le MEF semble suspendu à soutenir pendant une longue période et pas de nombreuses applications l'utilisent. Quelqu'un pourrait-il me dire pourquoi et devrais-je continuer avec ça? J'ai de nombreuses expériences dans Winform, mais WPF.

S'il y a d'autres approches, merci de me le faire savoir aussi.


4 commentaires

J'ai bien peur que cela soit à la fois trop large et aussi demander des outils. Les deux ne sont pas autorisés ici.


Je cherche une architecture basée sur une plug-in similaire, j'ai un coup d'œil au MAF: docs.microsoft.com/en-us/dotnet/framework/wpf/app-Devopmen T / ...


Cela n'a pas non plus été en développement depuis un jour, mais il est disponible et assez strie d'utiliser. Faites attention, cela ne vous protège pas du plugin qui écrase votre hôte. Vous pouvez contourner cependant en lançant chaque plugin dans son propre processus. Il y a un lien utile dans la présente pour des choses similaires, consultez ceci: MSDN .microsoft.com / fr-US / US / Magazine / DN519924.aspx


Enfin, un lien de si peut fournir plus de perspicacité (et plus de liens) Stackoverflow.com/Questtions/835182/...


4 Réponses :


1
votes

Vous devez regarder prisme . C'est un cadre open-source pour construire des applications XAML couplées, assemblées et testables de manière lâche, de WPF, Windows 10 UWP et Xamarin.

Il prend en charge l'ajout de modules à l'aide de la configuration, comme indiqué dans cet exemple: https://github.com/prismLibrary/prism-samples-wpf/tree/master/07-Modules%20-%20appconfig


4 commentaires

Merci. J'ai découvert ce cadre mais comme je l'ai déjà mentionné, je n'ai aucune expérience dans le WPF, donc je préfère mef.


MEF et WPF sont totalement non liés.


@Cragin: Oui, je savais. Je veux dire que Prism travaille avec WPF


@Tutran: Quelle est exactement votre question?



2
votes

mef est en fait un bon moyen pour une telle architecture d'application. Dire "pas tellement d'applications utilise MEF" n'est pas tout à fait correcte, car l'application (probablement) la plus grande et la plus connue utilisée à l'aide de MEF est Visual Studio (à partir de la version 12.0 - 2013).

Maintenant, il y a un malentendu à propos de MEF. Il y a 3 versions (saveurs) de MEF (Eh bien, de trois et demi). Cela confond souvent les gens.

Permettez-moi d'essayer d'expliquer:


1 commentaires

Explication très utile, vous avez sauvé mes jours.



2
votes

premier , le MEF fait partie de la structure .NET et disponible dans .NET CORE. MEF est en vie et est utilisé dans beaucoup de projets. Les dernières modifications ont été il y a un mois pour PRERELEASE HTTPS: // www. nuget.org/packages/system.composition/1.3.0-preview3.19128.7 et bien sûr dans GITHUB (voir System.Composition. *).

second , j'ai accepté avec @ mm8. Prisme est un bon choix. Mais vous pouvez voir WAF) .

Comme écrit dans la description , Soutien de la CAF:


0 commentaires

2
votes

Si vous souhaitez éviter la dépendance sur l'une des cadres d'extensibilité telles que le MEF ou le PRISM, vous pouvez également utiliser une réflexion nu avec le chargement de l'assemblage. Voici comment cela fonctionnerait:


0 commentaires