Manajer Plugin Sederhana untuk ASP.NET Core v2.2
Ini menyajikan cara sederhana untuk mengembangkan proyek yang berfungsi dengan plugin di ASP.NET Core v2.2
Penggunaan:
Bagian 1: Untuk mengembangkan plugin, pertama, kita harus mengimplementasikan antarmuka imodul dari proyek MVCCOREPLUGINMANAGER.
Contoh:
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"; }
}
}
Bagian terpenting dalam antarmuka ini adalah EntryControllername. Kami menentukan pengontrol utama untuk plugin ini. Ini adalah titik masuk plugin. Setelah membuat pengontrol ini, Anda dapat menentukan apa pun yang Anda inginkan. Ini akan berjalan seperti dari dalam proyek utama.
Sudah inti v2.x mengkompilasi tampilan, Anda akan mendapatkan dua DLL. Jika Anda tidak memiliki tampilan, maka Anda hanya akan mendapatkan satu.
Bagian 2:
Sekarang, kami harus menambahkan kode ini ke proyek utama untuk memasukkan Plugin Manager:
[Assembly: HostingStartup (TypeOf (PluginManagehostingStartup)]]
Sederhananya, kita dapat menambahkan di dalam program.cs atau startup.cs
Juga, kami harus mengubah program kami. Sedikit seperti ini:
public static async Task Main(string[] args)
{
await ApplicationManager.RunAsync(CreateWebHostBuilder, args);
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args)
{
return WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
}
Kami melakukan ini karena, setelah setiap plugin ditambahkan atau dihapus, aplikasi harus restart. Dengan kode ini, restart secara otomatis.
Jika kami tidak mengubah kode seperti ini, setelah proses mengubah plugin, aplikasi berhenti dan ketika kami melakukan permintaan apa pun, kami akan melihat halaman kesalahan.
Bagian 3:
Sekarang, saatnya menggunakan plugin di halaman apa pun.
Untuk melakukan itu, kami meminta plugin dengan namanya di blok kode View dan kemudian menambahkan di blok HTML
@{
var testPluginModule = PluginManager.GetModule("Plugins.TestPlugin"); // Your plugin assembly name without extension.
}
@if (testPluginModule != null)
{
@Html.ActionLink(testPluginModule.Title, "Index", testPluginModule.EntryControllerName)
}
Pada kode, yang harus kita lakukan adalah ini.
Bagian 4:
Akhirnya, kami dapat menambah atau menghapus plugin. Hanya harus Anda lakukan, menambahkan rakitan di folder plugin atau menghapusnya. Folder Plugins ada di akar proyek.
Juga, jika Anda mau, Anda dapat menambahkan plugin di folder mereka sendiri. Dengan cara ini, kode Anda bisa lebih terorganisir ...
Ingatlah untuk memberikan izin tulis untuk folder plugin!
Anda juga dapat melihat contoh di https://test3.bilalafsar.com