Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

Metapackage ใน C # Asp.net Core คืออะไร


เป็นที่ทราบกันดีอยู่แล้วว่าแพ็คเกจ Microsoft.AspNetCore เป็นหนึ่งในแพ็คเกจที่เพิ่มไปยังเทมเพลต ASP.NET Core จำนวนมาก

แพ็คเกจ Microsoft.AspNetCore ถูกรวมซ้ำๆ เป็นหนึ่งในการพึ่งพาโปรเจ็กต์ปกติเมื่อเปิดโปรเจ็กต์ ASP.NET Core ใหม่ มีแพ็คเกจสำคัญมากมายสำหรับวางตำแหน่งแอปพลิเคชัน ASP.NET Core พื้นฐาน

แม้ว่าแพ็คเกจนี้จะไม่มี dll หรือโค้ดที่มีอยู่จริง แต่ก็มีเพียงชุดของการพึ่งพาแพ็คเกจเพิ่มเติมเท่านั้น การเพิ่มแพ็คเกจนี้ไปยังโปรเจ็กต์ของคุณ จะเป็นการนำแพ็กเกจที่เกี่ยวข้องทั้งหมดมาพร้อมกับ dll ของแพ็คเกจที่มันขึ้นอยู่และเรียกว่า metapackage

โดยเฉพาะแพ็คเกจที่อยู่ในรายการคือ −

<ก่อนหน้า>Microsoft.AspNetCore.DiagnosticsMicrosoft.AspNetCore.HostingMicrosoft.AspNetCore.RoutingMicrosoft.AspNetCore.Server.IISIntegrationMicrosoft.AspNetCore.Server.KestrelMicrosoft.Extensions.Configuration.EnvironmentVariablesMicrosoft.Extensions.Configuration.FileExtensionsMicrosoft.Extensions.Extensions.Extensions .Extensions.Logging.ConsoleMicrosoft.Extensions.Options.ConfigurationExtensionsNETStandard.Library

เวอร์ชันของแพ็คเกจเหล่านี้ที่คุณจะได้รับขึ้นอยู่กับเวอร์ชันของแพ็คเกจ Microsoft.AspNetCore ที่คุณติดตั้ง

การขึ้นต่อกันเหล่านี้ส่งไลบรารีพื้นฐานหลักสำหรับการตั้งค่าเซิร์ฟเวอร์ BasicASP.NET Core ที่ใช้เว็บเซิร์ฟเวอร์ Kestrel และรวม IIS Integration

ในแง่ของตัวแอปพลิเคชันเอง ด้วยความช่วยเหลือของแพ็คเกจนี้เพียงอย่างเดียว คุณสามารถโหลดการตั้งค่าแอปพลิเคชันและตัวแปรสภาพแวดล้อมลงในการกำหนดค่า ใช้อินเทอร์เฟซ IOptions และกำหนดค่าการบันทึกไปยังคอนโซลได้

สำหรับมิดเดิลแวร์ จะรวมเฉพาะแพ็คเกจ Microsoft.AspNetCore.Diagnostics เท่านั้น ซึ่งจะอนุญาตให้เพิ่มมิดเดิลแวร์ เช่น ExceptionHandlerMiddleware, theDeveloperExceptionPageMiddleware และ StatusCodePagesMiddleware

เพื่อให้แอปพลิเคชันสมบูรณ์ เราไม่สามารถใช้ Metapackage เท่านั้น เนื่องจากไม่ได้ให้การควบคุมที่เพียงพอ แต่เราสามารถใช้แพ็คเกจ Microsoft.AspNetCore.Mvc หรือ Microsoft.AspNetCore.MvcCore เพื่อเพิ่มความสามารถ MVC ให้กับแอปพลิเคชันของเรา และยังจำเป็นต้องมีแพ็คเกจอื่นๆ ด้วย

metapackage พยายามใช้แพ็คเกจจำนวนหนึ่งที่สามารถนำไปใช้กับหลาย ๆ แอปพลิเคชั่นเพื่อที่เราจะได้ไม่ต้องโหลดการพึ่งพาเพิ่มเติม แต่จริง ๆ แล้วไม่เป็นเช่นนั้นเพราะต้องใช้แพ็คเกจอื่นเช่นกัน ดังนั้น หากจำนวนของแพ็คเกจมีมาก การขึ้นต่อกันจะเพิ่มขึ้น ซึ่งส่งผลต่อการใช้งานจริงของ metapackage Forexample หนึ่งในการขึ้นต่อกันที่ Microsoft.AspNetCore ขึ้นอยู่กับคือแพ็คเกจ NETStandard.Library ซึ่งเป็น metapackage เช่นกัน ดังนั้นการพึ่งพาเพิ่มขึ้น