Manager de complemento simple para ASP.NET Core v2.2
Presenta una forma simple de desarrollar proyectos que funcionen con complementos en ASP.NET Core v2.2
Uso:
Sección 1: Para desarrollar un complemento, primero, tenemos que implementar la interfaz Imodule del proyecto MVCCorePlugInManager.
Ejemplo:
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 parte más importante en esta interfaz es EntryControllername. Estamos especificando el controlador principal para este complemento. Este es el punto de entrada del complemento. Después de crear este controlador, puede definir lo que desee. Se ejecutará desde el interior del proyecto principal.
Ya Core v2.x compila las vistas, obtendrá dos DLL. Si no tiene ninguna vista, solo obtendrá una.
Sección 2:
Ahora, tenemos que agregar este código al proyecto principal para incluir el Administrador de complementos:
[Asamblea: HostingStartup (typeof (pluginManagerhostingStartup)]]
Simplemente, podemos agregar dentro del programa.cs o startup.cs
Además, tenemos que cambiar nuestro programa.cs un poco así:
public static async Task Main(string[] args)
{
await ApplicationManager.RunAsync(CreateWebHostBuilder, args);
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args)
{
return WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
}
Estamos haciendo esto porque, después de cada complemento agregado o eliminado, la aplicación debe reiniciarse. Con este código, se reinicia automáticamente.
Si no cambiamos el código así, después de cualquier proceso de cambio de complemento, la aplicación se detiene y cuando hacemos cualquier solicitud, veremos una página de error.
Sección 3:
Ahora, es hora de usar el complemento en cualquier página.
Para hacer eso, solicitamos el complemento con su nombre en el bloque de código de la vista y luego agregamos el bloque HTML
@{
var testPluginModule = PluginManager.GetModule("Plugins.TestPlugin"); // Your plugin assembly name without extension.
}
@if (testPluginModule != null)
{
@Html.ActionLink(testPluginModule.Title, "Index", testPluginModule.EntryControllerName)
}
En el código, todo lo que tenemos que hacer son estos.
Sección 4:
Finalmente, podemos agregar o eliminar complementos. Solo tienes que hacer, agregando ensamblajes en la carpeta de complementos o eliminando de ella. La carpeta Plugins está en la raíz del proyecto.
Además, si desea, puede agregar complementos en sus propias carpetas. Con esta manera, su código puede estar más organizado ...
¡Recuerde dar permiso de escritura para la carpeta de complementos!
Además, puede ver el ejemplo en https://test3.bilalafsar.com