CreateBuilder Vs CreateSlimBuilder in ASP.NET Core
ASP.NET Core में CreateBuilder के निम्नलिखित तीन प्रकार के मेथड ओवरलोडिंग है
- CreateBuilder(),
- CreateBuilder(string[] args),
- CreateBuilder(WebApplicationOptions options)
इसके अलावा इन्हीं से मिलता जुलता तीन और ओवरलोडेड मेथड है:
- CreateSlimBuilder(),
- CreateSlimBuilder(string[] args),
- CreateSlimBuilder(WebApplicationOptions options)
.NET 8 (और कुछ हद तक .NET 7) में CreateSlimBuilder() मेथड्स का एक नया सेट पेश किया गया है, जो CreateBuilder() के समकक्ष हैं लेकिन एक अधिक "पतले" (slim) या न्यूनतम कॉन्फ़िगरेशन के साथ आते हैं। तो, अब कुल छह सामान्य रूप से उपयोग किए जाने वाले WebApplicationBuilder क्रिएशन मेथड्स हैं।
Six Builders
1. WebApplication.CreateBuilder() मेथड्स ये वो मेथड्स हैं जिनके बारे में हमने पहले बात की थी। ये एक "पूर्ण" या मानक WebApplicationBuilder बनाते हैं जिसमें Kestrel, appsettings.json, एनवायरनमेंट वेरिएबल्स, कंसोल लॉगिंग और डिपेंडेंसी इंजेक्शन जैसी सभी डिफ़ॉल्ट ASP.NET Core सेटिंग्स शामिल होती हैं। ये अधिकांश सामान्य ASP.NET Core वेब एप्लीकेशन और API के लिए डिफ़ॉल्ट और अनुशंसित विकल्प हैं।
WebApplication.CreateBuilder() पैरामीटर: कोई नहीं।
उपयोग: यह string[] args के बिना कॉल करने के समान है, जहाँ कमांड-लाइन आर्ग्यूमेंट्स को स्वचालित रूप से नहीं पढ़ा जाता है। यह उन परिदृश्यों में उपयोगी हो सकता है जहाँ आप कमांड-लाइन आर्ग्यूमेंट्स को स्पष्ट रूप से शामिल नहीं करना चाहते हैं।
उदाहरण:
var builder = WebApplication.CreateBuilder();
WebApplication.CreateBuilder(string[] args)
पैरामीटर: args (एक string[] जो कमांड-लाइन आर्ग्यूमेंट्स का प्रतिनिधित्व करता है)। उपयोग: यह सबसे आम है। यह कमांड-लाइन आर्ग्यूमेंट्स को कॉन्फ़िगरेशन सोर्स में शामिल करता है। उदाहरण:
var builder = WebApplication.CreateBuilder(args);
WebApplication.CreateBuilder(WebApplicationOptions options)
2. WebApplication.CreateBuilder(WebApplicationOptions options) मेथड्स पैरामीटर: options (एक WebApplicationOptions ऑब्जेक्ट)।
उपयोग: यह आपको ApplicationName, EnvironmentName, ContentRootPath, WebRootPath, और एक मौजूदा IConfiguration इंस्टेंस जैसे गुणों को सेट करके WebApplicationBuilder के निर्माण के दौरान कुछ अधिक नियंत्रण प्रदान करता है। यह टेस्टिंग या बहुत विशिष्ट प्रारंभिक कॉन्फ़िगरेशन के लिए उपयोगी है। उदाहरण:
var options = new WebApplicationOptions { Args = args, EnvironmentName = "Staging" };
var builder = WebApplication.CreateBuilder(options);
WebApplication.CreateSlimBuilder() मेथड्स (नया - .NET 8+) CreateSlimBuilder() मेथड्स को .NET 8 में पेश किया गया था ताकि उन वर्कलोड के लिए एक अधिक न्यूनतम (minimal) WebApplicationBuilder बनाया जा सके जिन्हें फुल ASP.NET Core डिफ़ॉल्ट की आवश्यकता नहीं होती है। इसका लक्ष्य कुछ स्टार्ट-अप ओवरहेड को कम करना और रिसोर्स के उपयोग को अनुकूलित करना है, खासकर उन परिदृश्यों के लिए जहाँ आप केवल बहुत सरल HTTP API बना रहे हैं या जहाँ आपको प्रत्येक बाइट रिसोर्स की बचत करने की आवश्यकता है (जैसे क्लाउड-नेटिव माइक्रोकॉन्ट्रोलर्स, सर्वरलेस फ़ंक्शंस)। मुख्य अंतर यह है कि CreateSlimBuilder() डिफ़ॉल्ट रूप से कई "नॉन-एसेंशियल" फीचर्स को शामिल नहीं करता है:
- Slim डिफ़ॉल्ट कॉन्फ़िगरेशन स्रोत: यह केवल एनवायरनमेंट वेरिएबल्स और कमांड-लाइन आर्ग्यूमेंट्स को कॉन्फ़िगरेशन के रूप में जोड़ता है। यह डिफ़ॉल्ट रूप से appsettings.json फ़ाइलों को लोड नहीं करता है।
- Slim डिफ़ॉल्ट सर्विस रजिस्ट्रेशन: यह कम सर्विसेज़ रजिस्टर करता है, जिसके परिणामस्वरूप एक छोटा डिपेंडेंसी इंजेक्शन कंटेनर होता है।
- Slim डिफ़ॉल्ट लॉगिंग प्रोवाइडर: यह डिफ़ॉल्ट रूप से कंसोल लॉगिंग को सक्षम नहीं करता है (आपको इसे मैन्युअल रूप से जोड़ना होगा यदि आपको इसकी आवश्यकता है)।
- कोई डिफ़ॉल्ट Kestrel URL नहीं: यह Kestrel के लिए डिफ़ॉल्ट URL (जैसे http://localhost:5000) सेट नहीं करता है। आपको इसे स्पष्ट रूप से या एनवायरनमेंट वेरिएबल्स के माध्यम से कॉन्फ़िगर करना होगा। यदि आपको इन फीचर्स की आवश्यकता है, तो आपको उन्हें CreateSlimBuilder() के साथ स्पष्ट रूप से जोड़ना होगा।
3. WebApplication.CreateSlimBuilder()
पैरामीटर: कोई नहीं।
उपयोग: CreateBuilder() के समान, लेकिन बिना कमांड-लाइन आर्ग्यूमेंट्स को कॉन्फ़िगरेशन में शामिल किए।
उदाहरण:
var builder = WebApplication.CreateSlimBuilder();4. WebApplication.CreateSlimBuilder(string[] args) पैरामीटर: args (एक string[] जो कमांड-लाइन आर्ग्यूमेंट्स का प्रतिनिधित्व करता है)।
उपयोग: यह स्लिम बिल्डर बनाता है और कमांड-लाइन आर्ग्यूमेंट्स को कॉन्फ़िगरेशन में शामिल करता है। उदाहरण:
var builder = WebApplication.CreateSlimBuilder(args);5. WebApplication.CreateSlimBuilder(WebApplicationOptions options) पैरामीटर: options (एक WebApplicationOptions ऑब्जेक्ट)।
उपयोग: CreateBuilder(WebApplicationOptions options) के समान, लेकिन एक स्लिम बिल्डर कॉन्फ़िगरेशन के साथ।
उदाहरण:
var options = new WebApplicationOptions { Args = args };
var builder = WebApplication.CreateSlimBuilder(options);
CreateBuilder() बनाम CreateSlimBuilder(): कब कौन सा उपयोग करें?
अधिकांश ASP.NET Core एप्लीकेशन (MVC, Razor Pages, फुल-फीचर्ड API) हमेशा WebApplication.CreateBuilder() का उपयोग करें। यह वह है जिसके लिए अधिकांश डॉक्यूमेंटेशन और उदाहरण लिखे गए हैं, और यह आपको एक पूर्ण विशेषताओं वाला वेब एप्लीकेशन बनाने के लिए आवश्यक सभी डिफ़ॉल्ट प्रदान करता है।
बहुत सरल HTTP API, माइक्रोकॉन्ट्रोलर्स, सर्वरलेस फ़ंक्शंस, या रिसोर्स-कन्स्ट्रेंड वातावरण जहाँ आप हर संभावित बाइट और मिलीसेकंड को बचाने की कोशिश कर रहे हैं, और आपको appsettings.json या कंसोल लॉगिंग जैसी चीजों की डिफ़ॉल्ट आवश्यकता नहीं है, तो WebApplication.CreateSlimBuilder() एक विकल्प हो सकता है। आपको उन सुविधाओं को मैन्युअल रूप से जोड़ना याद रखना होगा जिनकी आपको स्पष्ट रूप से आवश्यकता है।
टिप्पणियाँ
एक टिप्पणी भेजें