Gestionnaire de plugin simple pour ASP.net Core v2.2
Il présente un moyen simple de développer des projets qui fonctionnent avec les plugins sur ASP.net Core v2.2
Usage:
Section 1: Pour développer un plugin, nous devons d'abord implémenter l'interface Imodule du projet MVCCorePluginManager.
Exemple:
public class TestPluginModule : IModule
{
public string Title
{
get { return "TestPlugin Index Page"; }
}
public string Name
{
get { return Assembly.GetAssembly(GetType()).GetName().Name; }
}
public Version Version
{
get { return new Version(1, 0, 0, 0); }
}
public string EntryControllerName
{
get { return "TestPlugin"; }
}
}
La partie la plus importante de cette interface est EntryControllername. Nous spécifions le contrôleur principal de ce plugin. Il s'agit du point d'entrée du plugin. Après avoir créé ce contrôleur, vous pouvez définir tout ce que vous voulez. Il fonctionnera comme à l'intérieur du projet principal.
Déjà Core V2.x compile les vues, vous obtiendrez deux DLL. Si vous n'avez aucune vue, vous n'en obtiendrez qu'un.
Section 2:
Maintenant, nous devons ajouter ce code au projet principal pour inclure le gestionnaire de plugin:
[Assembly: HostingStartup (typeof (PluginManagerHostingStartup))]]
Simplement, nous pouvons ajouter à l'intérieur de Program.cs ou Startup.cs
De plus, nous devons changer notre programme.cs un peu comme ceci:
public static async Task Main(string[] args)
{
await ApplicationManager.RunAsync(CreateWebHostBuilder, args);
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args)
{
return WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
}
Nous le faisons parce que, après chaque plugin ajouté ou supprimé, l'application doit être redémarrée. Avec ce code, il redémarre automatiquement.
Si nous ne modifions pas le code comme celui-ci, après un processus de modification du plugin, l'application s'arrête et lorsque nous faisons une demande, nous verrons une page d'erreur.
Section 3:
Maintenant, il est temps d'utiliser le plugin dans n'importe quelle page.
Pour ce faire, nous demandons le plugin avec son nom dans le bloc de code de la vue, puis en ajoutant le bloc HTML
@{
var testPluginModule = PluginManager.GetModule("Plugins.TestPlugin"); // Your plugin assembly name without extension.
}
@if (testPluginModule != null)
{
@Html.ActionLink(testPluginModule.Title, "Index", testPluginModule.EntryControllerName)
}
Sur le code, tout ce que nous avons à faire est ceux-ci.
Section 4:
Enfin, nous pouvons ajouter ou supprimer les plugins. Il suffit de faire, d'ajouter des assemblages dans un dossier de plugins ou de le retirer. Le dossier des plugins est sur la racine du projet.
De plus, si vous le souhaitez, vous pouvez ajouter des plugins dans leurs propres dossiers. De cette façon, votre code peut être plus organisé ...
N'oubliez pas de donner une autorisation d'écriture pour le dossier des plugins!
En outre, vous pouvez consulter l'exemple sur https://test3.bilalafsar.com