Solution Explorer Components in ASP.NET Core MVC Project

Solution Explorer Components

Visual Studio के द्वारा ASP.NET Core MVC Project बनाने पर Solution Explorer में निम्नलिखित nodes दिखाई देते हैं 

  1. Connected Services
  2. Dependencies
  3. Properties
  4. wwwroot
  5. Controllers
  6. Models
  7. Views 

आइए  इनके बारे में समझते हैं


जब आप विजुअल स्टूडियो (Visual Studio) का उपयोग करके एक ASP.NET Core MVC एप्लीकेशन बनाते हैं, तो Solution Explorer में विभिन्न नोड्स (nodes) दिखाई देते हैं. ये नोड्स आपके प्रोजेक्ट की संरचना को दर्शाते हैं और एप्लीकेशन के विभिन्न हिस्सों को व्यवस्थित करने में मदद करते हैं. आइए इन प्रमुख नोड्स के बारे में विस्तार से समझते हैं:

Connected Services (कनेक्टेड सर्विसेज):

  • यह नोड आपको अपनी NET Core एप्लीकेशन को विभिन्न बाहरी सेवाओं (external services) से आसानी से जोड़ने की सुविधा देता है.
  • इसमें क्लाउड सेवाएँ (जैसे Azure SQL Database, Azure Storage, Azure Key Vault, Azure App Configuration), विभिन्न API (जैसे OpenAPI/Swagger), और अन्य थर्ड-पार्टी सेवाएं शामिल हो सकती हैं.
  • जब आप किसी कनेक्टेड सेवा को जोड़ते हैं, तो विजुअल स्टूडियो अक्सर आवश्यक NuGet पैकेजों को इंस्टॉल करता है, कॉन्फ़िगरेशन सेटिंग्स जोड़ता है, और कभी-कभी स्टार्टअप कोड में भी बदलाव करता है ताकि आप उस सेवा का उपयोग करना शुरू कर सकें.
  • यह डेवलपमेंट प्रक्रिया को सरल बनाता है क्योंकि आपको मैन्युअल रूप से कई कॉन्फ़िगरेशन चरणों को करने की आवश्यकता नहीं होती है.

Dependencies (डिपेंडेंसीज़):

  • यह नोड आपके प्रोजेक्ट की सभी बाहरी निर्भरताओं (external dependencies) को सूचीबद्ध करता है. ये वे लाइब्रेरीज़ और फ़्रेमवर्क हैं जिन पर आपका प्रोजेक्ट कार्य करने के लिए निर्भर करता है.
  • यह नोड आगे कई उप-नोड्स में विभाजित होता है:
  • Frameworks (फ़्रेमवर्क): यह उन .NET फ़्रेमवर्क संदर्भों को दिखाता है जिन पर आपका प्रोजेक्ट निर्भर करता है, जैसे AspNetCore.App. यह आपके एप्लिकेशन के लिए आवश्यक मूलभूत ASP.NET Core घटकों को प्रदान करता है.
  • Packages (पैकेज): यह आपके प्रोजेक्ट में इंस्टॉल किए गए सभी NuGet पैकेजों को सूचीबद्ध करता है. NuGet पैकेज विभिन्न कार्यक्षमताओं (जैसे डेटाबेस एक्सेस, JSON हैंडलिंग, प्रमाणीकरण) को जोड़ने के लिए उपयोग की जाने वाली पुन: प्रयोज्य लाइब्रेरीज़ हैं. उदाहरण के लिए, EntityFrameworkCore, Newtonsoft.Json, आदि यहाँ दिखाई देंगे.
  • Projects (प्रोजेक्ट्स): यदि आपका सॉल्यूशन कई प्रोजेक्ट्स से बना है और आपका वर्तमान प्रोजेक्ट किसी अन्य प्रोजेक्ट पर निर्भर करता है (जैसे कि एक क्लास लाइब्रेरी जिसमें व्यावसायिक तर्क है), तो वे प्रोजेक्ट यहां सूचीबद्ध होंगे.
  • Analyzers (एनालाइज़र): ये कोड एनालाइज़र हैं जो कोड गुणवत्ता, सुरक्षा और प्रदर्शन संबंधी समस्याओं की पहचान करने में मदद करते हैं.

Properties (प्रॉपर्टीज़):

  • इस नोड में launchSettings.json नामक एक महत्वपूर्ण फ़ाइल होती है.
  • json: यह फ़ाइल विजुअल स्टूडियो में आपकी एप्लीकेशन को कैसे लॉन्च किया जाए, इसके लिए विभिन्न प्रोफ़ाइल (profiles) और सेटिंग्स को परिभाषित करती है. इसमें शामिल हैं:
    • एप्लीकेशन के लिए URL (जैसे http://localhost:5000, https://localhost:5001).
    • एनवायरनमेंट वैरिएबल्स (जैसे ASPNETCORE_ENVIRONMENT जो Development, Staging, या Production हो सकता है).
    • IIS Express जैसी विभिन्न होस्टिंग विधियों के लिए सेटिंग्स.
  • यह आपको डेवलपमेंट के दौरान विभिन्न कॉन्फ़िगरेशन के साथ अपनी एप्लीकेशन को चलाने की अनुमति देता है.

wwwroot (वर्ल्ड वाइड वेब रूट):

  • यह फ़ोल्डर NET Core एप्लीकेशन में सार्वजनिक रूप से सुलभ (publicly accessible) स्थिर फ़ाइलों (static files) के लिए रूट निर्देशिका है.
  • इसका मतलब है कि इस फ़ोल्डर के अंदर की सामग्री वेब सर्वर द्वारा सीधे ग्राहकों (clients) को परोसी जा सकती है.
  • इसमें आमतौर पर निम्नलिखित प्रकार की फ़ाइलें होती हैं:
    • CSS फ़ाइलें: स्टाइलशीट (जैसे css, bootstrap.css).
    • JavaScript फ़ाइलें: क्लाइंट-साइड स्क्रिप्टिंग (जैसे js, jquery.js, bootstrap.js).
    • इमेज फ़ाइलें: लोगो, आइकन, आदि.
    • लाइब्रेरीज़: क्लाइंट-साइड लाइब्रेरीज़ (जैसे lib फ़ोल्डर में Bootstrap, jQuery).
  • यह फ़ोल्डर एप्लीकेशन के फ्रंट-एंड (front-end) भाग को रखता है.

Controllers (कंट्रोलर्स):

  • यह फ़ोल्डर MVC पैटर्न में "कंट्रोलर" (Controller) नामक घटकों को रखता है.
  • कंट्रोलर क्लासेस, यूज़र इनपुट को हैंडल करने, मॉडल के साथ इंटरैक्ट करने, और व्यू (View) का चयन करने के लिए जिम्मेदार होते हैं.
  • जब कोई वेब अनुरोध आता है, तो एक कंट्रोलर एक्शन मेथड उसे प्राप्त करता है, आवश्यक डेटा को मॉडल से प्राप्त करता है, और फिर उस डेटा को व्यू को पास करता है ताकि HTML प्रतिक्रिया उत्पन्न हो सके.
  • कंट्रोलर क्लासेस आमतौर पर Controller प्रत्यय (suffix) के साथ समाप्त होते हैं (जैसे HomeController.cs).

Models (मॉडल):

  • यह फ़ोल्डर MVC पैटर्न में "मॉडल" (Model) नामक घटकों को रखता है.
  • मॉडल एप्लीकेशन के डेटा और व्यावसायिक तर्क (business logic) का प्रतिनिधित्व करते हैं.
  • इसमें डेटाबेस में संग्रहीत डेटा को दर्शाने वाली POCO (Plain Old CLR Objects) क्लासेस (जिन्हें एंटिटी क्लासेस या डेटा ट्रांसफर ऑब्जेक्ट्स - DTOs भी कहा जाता है) शामिल हो सकती हैं.
    • उदाहरण के लिए, एक ई-कॉमर्स एप्लीकेशन में Product, Order, Customer जैसी मॉडल क्लासेस होंगी.
  • मॉडल्स, डेटा को वैलिडेट करने, प्रोसेस करने और डेटाबेस के साथ इंटरैक्ट करने के लिए भी जिम्मेदार होते हैं (अक्सर Entity Framework Core जैसी ORM लाइब्रेरी का उपयोग करके).

Views (व्यूज़):

  • यह फ़ोल्डर MVC पैटर्न में "व्यू" (View) नामक घटकों को रखता है.
  • व्यूज़ एप्लीकेशन के यूज़र इंटरफ़ेस (UI) या प्रस्तुति परत (presentation layer) के लिए जिम्मेदार होते हैं.
  • वे HTML मार्कअप को उत्पन्न करने के लिए Razor सिंटैक्स का उपयोग करते हैं, जो डेटा को मॉडल से प्राप्त करते हैं और इसे यूज़र को प्रदर्शित करते हैं.
  • व्यूज़ आमतौर पर .cshtml एक्सटेंशन के साथ होते हैं (जैसे cshtml, Privacy.cshtml).
  • Shared (साझा) फ़ोल्डर: Views फ़ोल्डर के अंदर एक Shared फ़ोल्डर होता है जिसमें ऐसे व्यू होते हैं जिनका उपयोग कई अन्य व्यूज़ द्वारा किया जाता है, जैसे लेआउट फ़ाइल (cshtml), आंशिक व्यू (partial views) और त्रुटि पृष्ठ (Error.cshtml).
    • _ViewImports.cshtml: यह फ़ाइल उन नेमस्पेस को परिभाषित करती है जिन्हें सभी व्यूज़ में आयात किया जाता है, ताकि आपको उन्हें प्रत्येक व्यू फ़ाइल में मैन्युअल रूप से @using स्टेटमेंट के साथ जोड़ने की आवश्यकता न पड़े.
    • _ViewStart.cshtml: यह फ़ाइल प्रत्येक व्यू के निष्पादन से पहले चलती है और आमतौर पर लेआउट फ़ाइल (Layout = "_Layout";) को सेट करने के लिए उपयोग की जाती है.

टिप्पणियाँ

इस ब्लॉग से लोकप्रिय पोस्ट

Differences between in-process and out-of-process hosting models

Web Fundamental Concepts in Hindi for Beginners - FAQs with their Answers Part-1

Introduction to ASP.NET Core and Web Frameworks