Simple Plugin Manager สำหรับ ASP.NET CORE v2.2
มันนำเสนอวิธีง่ายๆในการพัฒนาโครงการที่ทำงานกับปลั๊กอินบน ASP.NET Core v2.2
การใช้งาน:
ส่วนที่ 1: ในการพัฒนาปลั๊กอินก่อนอื่นเราต้องใช้อินเทอร์เฟซ Imodule จากโครงการ MVCCOREPLUGINMANAGER
ตัวอย่าง:
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"; }
}
}
ส่วนที่สำคัญที่สุดในอินเทอร์เฟซนี้คือ entryControllerName เราระบุตัวควบคุมหลักสำหรับปลั๊กอินนี้ นี่คือจุดเริ่มต้นของปลั๊กอิน หลังจากสร้างคอนโทรลเลอร์นี้คุณสามารถกำหนดสิ่งที่คุณต้องการได้ มันจะทำงานเหมือนภายในโครงการหลัก
Core v2.x รวบรวมมุมมองแล้วคุณจะได้รับ DLL สองตัว หากคุณไม่มีมุมมองใด ๆ คุณจะได้รับเพียงหนึ่งเดียว
ส่วนที่ 2:
ตอนนี้เราต้องเพิ่มรหัสนี้ในโครงการหลักเพื่อรวม Plugin Manager:
[แอสเซมบลี: HostingStartup (typeof (PluginManagerHostingStartup))]]]
เพียงแค่เราสามารถเพิ่มภายใน program.cs หรือ startup.cs
นอกจากนี้เราต้องเปลี่ยนโปรแกรมของเราเล็กน้อยเช่นนี้:
public static async Task Main(string[] args)
{
await ApplicationManager.RunAsync(CreateWebHostBuilder, args);
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args)
{
return WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
}
เรากำลังทำสิ่งนี้เพราะหลังจากปลั๊กอินทุกตัวเพิ่มหรือลบแอปพลิเคชันควรรีสตาร์ท ด้วยรหัสนี้จะรีสตาร์ทโดยอัตโนมัติ
หากเราไม่เปลี่ยนรหัสเช่นนี้หลังจากกระบวนการเปลี่ยนปลั๊กอินใด ๆ แอปพลิเคชันจะหยุดและเมื่อเราทำคำขอใด ๆ เราจะเห็นหน้าข้อผิดพลาด
ส่วนที่ 3:
ตอนนี้ถึงเวลาที่จะใช้ปลั๊กอินในหน้าใดก็ได้
ในการทำเช่นนั้นเราขอปลั๊กอินที่มีชื่อในบล็อกรหัสของมุมมองจากนั้นเพิ่มในบล็อก HTML
@{
var testPluginModule = PluginManager.GetModule("Plugins.TestPlugin"); // Your plugin assembly name without extension.
}
@if (testPluginModule != null)
{
@Html.ActionLink(testPluginModule.Title, "Index", testPluginModule.EntryControllerName)
}
ในรหัสสิ่งที่เราต้องทำคือสิ่งเหล่านี้
ส่วนที่ 4:
ในที่สุดเราสามารถเพิ่มหรือลบปลั๊กอิน เพียงแค่คุณต้องทำเพิ่มแอสเซมบลีในโฟลเดอร์ปลั๊กอินหรือลบออก โฟลเดอร์ปลั๊กอินอยู่บนรากของโครงการ
นอกจากนี้หากคุณต้องการคุณสามารถเพิ่มปลั๊กอินในโฟลเดอร์ของตัวเอง ด้วยวิธีนี้รหัสของคุณสามารถจัดระเบียบได้มากขึ้น ...
อย่าลืมให้สิทธิ์ในการเขียนสำหรับโฟลเดอร์ปลั๊กอิน!
นอกจากนี้คุณสามารถดูตัวอย่างได้ที่ https://test3.bilalafsar.com