മൈക്രോസോഫ്റ്റ് നെറ്റ് പ്ലാറ്റ്‌ഫോമിൻ്റെ സവിശേഷതകളുടെയും ഘടകങ്ങളുടെയും ഉദ്ദേശ്യം. നെറ്റ് ഫ്രെയിംവർക്ക് സാങ്കേതികവിദ്യയുടെ അവലോകനം. പൊതുവായ ഭാഷാ സ്പെസിഫിക്കേഷൻ CLS ൻ്റെ ഉദ്ദേശ്യം എന്താണ്

ശുഭദിനം. അലക്സി ഗുലിനിൻ ബന്ധപ്പെട്ടിരിക്കുന്നു. കഴിഞ്ഞ ലേഖനത്തിൽ, C# ലെ ഒരു രീതിയിലേക്ക് ആർഗ്യുമെൻ്റുകൾ കൈമാറുന്നതിനുള്ള വഴികളെക്കുറിച്ച് ഞങ്ങൾ പഠിച്ചു. ഈ ലേഖനത്തിൽ ഞാൻ നിങ്ങളോട് വീണ്ടും പറയാൻ ആഗ്രഹിക്കുന്നു (ലളിതമായ വാക്കുകളിൽ) അത് എന്താണെന്ന് .നെറ്റ് ഫ്രെയിംവർക്ക്ഒപ്പം വിഷ്വൽ സ്റ്റുഡിയോയും. ഈ ലേഖനം വിഷ്വൽ സ്റ്റുഡിയോ വിവരണത്തിൻ്റെയും .നെറ്റ് ഫ്രെയിംവർക്ക് ലേഖനങ്ങളുടെയും തുടർച്ചയാണ് .നെറ്റ് ഫ്രെയിംവർക്ക്ഒരു CLR (കോമൺ ലാംഗ്വേജ് റൺടൈം) പരിതസ്ഥിതിയാണ്. .നെറ്റ് ഫ്രെയിംവർക്കിൻ്റെ പ്രധാന ഘടകം), ഇത് നിയന്ത്രിത കോഡിൻ്റെ നിർവ്വഹണം ഉറപ്പാക്കുന്നു. CLR ആണ് ഈ കോഡ് നിയന്ത്രിക്കുന്നത്. നിയന്ത്രിത കോഡ് എന്താണ്? .NET ഫ്രെയിംവർക്കിനായി എഴുതിയ കോഡ് അന്തിമ മെഷീൻ കോഡിലേക്കല്ല, മറിച്ച് ഒരു ഇൻ്റർമീഡിയറ്റ് ഭാഷയിലേക്കാണ് (IL - ഇൻ്റർമീഡിയറ്റ് ലാംഗ്വേജ് എന്ന് വിളിക്കപ്പെടുന്നവ) സമാഹരിച്ചിരിക്കുന്നത്. തുടർന്ന് ഈ അസംബ്ലി ഉപയോക്താവിന് കൈമാറുന്നു (മെഷീനിൽ .നെറ്റ് ഫ്രെയിംവർക്ക് ഇൻസ്റ്റാൾ ചെയ്തിരിക്കണം), മെമ്മറിയിലേക്ക് ലോഡ് ചെയ്യുകയും IL കമാൻഡുകൾ നടപ്പിലാക്കേണ്ട പ്രവർത്തനങ്ങളിലേക്ക് വിവർത്തനം ചെയ്യുകയും ചെയ്യുന്നു.

ഇൻ്റർമീഡിയറ്റ് ഭാഷയായ IL ൻ്റെ കാര്യം എന്താണ്?

ഒന്നാമതായി, ഇത് പ്ലാറ്റ്ഫോം സ്വതന്ത്രമാണ്, ഒരു നിർദ്ദിഷ്ട പ്രോസസറുമായി ബന്ധിപ്പിച്ചിട്ടില്ല.

രണ്ടാമതായി, നിങ്ങളുടെ പ്രോഗ്രാമിൻ്റെ പ്രവർത്തനം നിയന്ത്രിക്കാൻ അതിൻ്റെ സാന്നിധ്യം CLR-നെ അനുവദിക്കുന്നു, അതായത്. അസ്വീകാര്യമായ കാര്യങ്ങൾ ചെയ്യാൻ അവളെ അനുവദിക്കരുത് (ഉദാഹരണത്തിന്, മെമ്മറി കൃത്രിമത്വം).

രണ്ടാമത്തെ പ്രധാന ഘടകം CLR കഴിഞ്ഞാൽ ക്ലാസ് ലൈബ്രറി. എല്ലാ അടിസ്ഥാന പ്രവർത്തനങ്ങളും നൽകുന്ന നെയിംസ്‌പെയ്‌സുകളായി വിഭജിച്ചിരിക്കുന്ന ധാരാളം ക്ലാസുകൾ .NET ഫ്രെയിംവർക്കിൽ ഉൾപ്പെടുന്നു. ഫയലുകൾ, നെറ്റ്‌വർക്ക്, പ്രോസസ്സുകൾ, ഗ്രാഫിക്‌സ് സബ്‌സിസ്റ്റം എന്നിവയ്‌ക്കൊപ്പം പ്രവർത്തിക്കുന്നതിന് നിങ്ങളുടെ പ്രോഗ്രാമിന് ആവശ്യമായി വരുന്ന പ്രവർത്തനമാണിത്.

മൂന്നാമത്തെ ഘടകംവികസന ചട്ടക്കൂടുകളാണ് (മറ്റൊരു രീതിയിൽ പറഞ്ഞാൽ, വികസന ലൈബ്രറികൾ). WPF (Windows Presentation Foundation), ASP.NET, Entity Framework, WCF (Windows Communication Foundation), Windows Store മുതലായവ പോലുള്ള ലൈബ്രറികൾ ഇതിൽ ഉൾപ്പെടുന്നു. വാസ്തവത്തിൽ, ഇവയും ക്ലാസുകളാണ്. ഈ ക്ലാസുകൾ നിർദ്ദിഷ്ട പ്രശ്നങ്ങൾ പരിഹരിക്കാൻ രൂപകൽപ്പന ചെയ്തിട്ടുള്ളതാണ് എന്നതാണ് വ്യത്യാസം:

  • WPF - ഗ്രാഫിക്കൽ ആപ്ലിക്കേഷനുകളിൽ പ്രവർത്തിക്കാൻ
  • ASP.NET - വെബ് ആപ്ലിക്കേഷനുകളിൽ പ്രവർത്തിക്കാൻ
  • WCF - നെറ്റ്‌വർക്കിൽ പ്രവർത്തിക്കുന്നതിനും വിതരണം ചെയ്ത (ക്ലയൻ്റ്-സെർവർ) ആപ്ലിക്കേഷനുകൾ സൃഷ്ടിക്കുന്നതിനും
  • എൻ്റിറ്റി ഫ്രെയിംവർക്ക് - ഡാറ്റാബേസുമായി പ്രവർത്തിക്കുന്നതിന്.

ഈ ലേഖനം എഴുതുമ്പോൾ, ഏറ്റവും പുതിയ പതിപ്പ് .Net Framework 4.6 ആണ്

മൈക്രോസോഫ്റ്റ് ശുപാർശ ചെയ്യുന്ന പ്രധാന വികസന പരിസ്ഥിതി വിഷ്വൽ സ്റ്റുഡിയോ ആണ്. മൈക്രോസോഫ്റ്റിന് സാധാരണയായി ഈ സാഹചര്യമുണ്ട്: .NET ഫ്രെയിംവർക്കിൻ്റെ ഒരു പുതിയ പതിപ്പ് പുറത്തിറങ്ങുമ്പോൾ, കുറച്ച് സമയത്തിന് ശേഷം വിഷ്വൽ സ്റ്റുഡിയോയുടെ ഒരു പുതിയ പതിപ്പ് പുറത്തിറങ്ങുന്നു. വിഷ്വൽ സ്റ്റുഡിയോയിൽ എന്താണ് ഉൾപ്പെടുത്തിയിരിക്കുന്നത് (അടിസ്ഥാനം):

  1. സിൻ്റാക്സ് കോഡ് ഹൈലൈറ്റിംഗ് ഉള്ള ടെക്സ്റ്റ് എഡിറ്റർ
  2. ഇൻ്റലിസെൻസ് സഹായ സംവിധാനം (സ്വയം അല്ലെങ്കിൽ കീബോർഡ് കുറുക്കുവഴി Ctrl + Space (സ്‌പേസ്ബാർ) വഴി വിളിക്കാം
  3. വിവിധ ഭാഷകളിൽ നിന്നുള്ള കമ്പൈലർമാർ
  4. ദ്രുത ആപ്ലിക്കേഷൻ വികസനം (RAD)
  5. ഇൻ്റർഫേസുകളുടെ വിഷ്വൽ ഡിസൈനർ, ഡയഗ്രമുകൾ
  6. സെർവറുകളിലും ഡാറ്റാബേസുകളിലും പ്രവർത്തിക്കുന്നതിനുള്ള ഘടകം
  7. IIS വെബ് സെർവറും SQL സെർവർ എക്സ്പ്രസ് ഓപ്ഷനും
  8. ഡീബഗ്ഗറുകൾ, പ്രൊഫൈലറുകൾ, പിശകുകൾ കൈകാര്യം ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുന്ന ഘടകങ്ങൾ
  9. MSDN സഹായ സംവിധാനം

ഇത് എഴുതുമ്പോൾ, ഏറ്റവും പുതിയ പതിപ്പ് വിഷ്വൽ സ്റ്റുഡിയോ 2015 ആണ്.

വിഷ്വൽ സ്റ്റുഡിയോയിൽ പ്രോഗ്രാമുകളുടെ ആശയം എങ്ങനെ പ്രവർത്തിക്കുന്നു. സ്റ്റുഡിയോയിൽ "പ്രോജക്റ്റ്", "സൊല്യൂഷൻ" എന്ന ആശയം ഉണ്ട്. സംഗ്രഹത്തിൻ്റെ ഒരു യൂണിറ്റാണ് പ്രോജക്റ്റ്. അതിൽ ഒരു കൂട്ടം ഫയലുകൾ അടങ്ങിയിരിക്കുന്നു. മുഴുവൻ പ്രോജക്റ്റും സാധാരണയായി ഒരു അസംബ്ലിയിൽ (exe ഫയൽ അല്ലെങ്കിൽ dll ഫയൽ) സമാഹരിക്കുന്നു. പ്രോജക്ടുകളെ സൊല്യൂഷൻ ആയി തരം തിരിക്കാം. ഒരു പരിഹാരം എന്നത് പരസ്പരം ബന്ധപ്പെട്ടതോ അല്ലാത്തതോ ആയ പ്രോജക്റ്റുകളുടെ ഒരു ശേഖരമാണ് (സാധാരണയായി അവ).

C#
  • പൊതു ഭാഷ റൺടൈം) ഒരു ക്ലാസ് ലൈബ്രറിയും...
  • .NET ചട്ടക്കൂടും CTS സ്പെസിഫിക്കേഷനും
    C# ഭാഷയും അതിൻ്റെ പിന്തുണയും നിലവിൽ Microsoft വികസിപ്പിച്ച .NET ഫ്രെയിംവർക്കുമായി ബന്ധപ്പെട്ടിരിക്കുന്നു. പേരിട്ടിരിക്കുന്ന പ്ലാറ്റ്‌ഫോമിൽ (കാണുക) ഉൾപ്പെടുന്നു: സാധാരണ ഭാഷ റൺടൈം (CLR - പൊതു ഭാഷ റൺടൈം ഫ്രെയിംവർക്ക് ക്ലാസ് ലൈബ്രറി).അത് ശ്രദ്ധിക്കേണ്ടതാണ്...
    (പ്രോഗ്രാമിംഗ്. അടിസ്ഥാന കോഴ്‌സ് സി#)
  • .NET ഫ്രെയിംവർക്കും വിഷ്വൽ സ്റ്റുഡിയോയും ഇൻസ്റ്റാൾ ചെയ്യുന്നു
    വിൻഡോസ് 7, 8 എന്നിവയിൽ, .NET പ്ലാറ്റ്ഫോം ഇതിനകം ലഭ്യമാണ്, ഒന്നും ഇൻസ്റ്റാൾ ചെയ്യേണ്ട ആവശ്യമില്ല. .NET പ്ലാറ്റ്‌ഫോമിൽ ആപ്ലിക്കേഷനുകൾ വികസിപ്പിക്കുന്നതിന്, നിങ്ങൾ വിഷ്വൽ ഡെവലപ്‌മെൻ്റ് സിസ്റ്റം ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട് C# 2012 (അല്ലെങ്കിൽ 2013) എക്സ്പ്രസ് എഡിഷൻ - വിഷ്വൽ സ്റ്റുഡിയോ വികസന പരിതസ്ഥിതിയുടെ ഒരു സ്വതന്ത്ര പതിപ്പ് (ചെറിയതും എന്നാൽ ഏതാണ്ട്...
    (ഒബ്ജക്റ്റ് ഓറിയന്റഡ് പ്രോഗ്രാമിങ്)
  • സി# തരങ്ങളും .നെറ്റ് ഫ്രെയിംവർക്ക് തരങ്ങളും
    C# ഭാഷയും അതിൻ്റെ പിന്തുണയും നിലവിൽ Microsoft വികസിപ്പിച്ച .NET ഫ്രെയിംവർക്കുമായി ബന്ധപ്പെട്ടിരിക്കുന്നു. പേരിട്ടിരിക്കുന്ന പ്ലാറ്റ്‌ഫോമിൽ (കാണുക) ഉൾപ്പെടുന്നു: പൊതു ഭാഷ റൺടൈം (CLR - പൊതു ഭാഷ റൺടൈം) ഒരു ക്ലാസ് ലൈബ്രറിയും...
    (പ്രോഗ്രാമിംഗ്. അടിസ്ഥാന കോഴ്‌സ് സി#)
  • .NET ചട്ടക്കൂടും CTS സ്പെസിഫിക്കേഷനും
    C# ഭാഷയും അതിൻ്റെ പിന്തുണയും നിലവിൽ Microsoft വികസിപ്പിച്ച .NET ഫ്രെയിംവർക്കുമായി ബന്ധപ്പെട്ടിരിക്കുന്നു. പേരിട്ടിരിക്കുന്ന പ്ലാറ്റ്‌ഫോമിൽ (കാണുക) ഉൾപ്പെടുന്നു: സാധാരണ ഭാഷ റൺടൈം (CLR - പൊതു ഭാഷ റൺടൈം) ക്ലാസ്സ് ലൈബ്രറിയും (FCL - ഫ്രെയിംവർക്ക് ക്ലാസ് ലൈബ്രറി).അത് ശ്രദ്ധിക്കേണ്ടതാണ്...
    (പ്രോഗ്രാമിംഗ്. അടിസ്ഥാന കോഴ്‌സ് സി#)
  • ഘടകങ്ങളെ (നിയന്ത്രണങ്ങൾ) അടിസ്ഥാനമാക്കിയുള്ള വിതരണം ചെയ്ത ആപ്ലിക്കേഷനുകളെ പിന്തുണയ്ക്കുന്നതിനും വികസിപ്പിക്കുന്നതിനും പ്രവർത്തിപ്പിക്കുന്നതിനുമുള്ള ഒരു അന്തരീക്ഷമായി നെറ്റ് ഫ്രെയിംവർക്ക് പ്രവർത്തിക്കുന്നു.

    ഈ സാങ്കേതികവിദ്യയെ പിന്തുണയ്ക്കുന്ന വ്യത്യസ്ത പ്രോഗ്രാമിംഗ് ഭാഷകളിൽ ആപ്ലിക്കേഷനുകൾ (പ്രോഗ്രാമുകൾ) വികസിപ്പിക്കാൻ കഴിയും.

    NET ഫ്രെയിംവർക്ക് നൽകുന്നു:

    • വിവിധ പ്രോഗ്രാമിംഗ് ഭാഷകളുടെ സംയുക്ത ഉപയോഗം;
    • പ്രോഗ്രാമുകളുടെ സുരക്ഷയും പോർട്ടബിലിറ്റിയും;
    • വിൻഡോസ് പ്ലാറ്റ്‌ഫോമിനെ അടിസ്ഥാനമാക്കിയുള്ള പൊതു പ്രോഗ്രാമിംഗ് മോഡൽ.

    2. .NET ഫ്രെയിംവർക്കിൻ്റെ പ്രധാന ഘടകങ്ങൾ എന്തൊക്കെയാണ്?

    ഒരു പ്രോഗ്രാമിംഗ് വീക്ഷണകോണിൽ നിന്ന്, .NET ഫ്രെയിംവർക്ക് രണ്ട് പ്രധാന ഘടകങ്ങൾ ഉൾക്കൊള്ളുന്നു:

    • പൊതുവായ ഭാഷാ നിർവ്വഹണ പരിസ്ഥിതി CLR (പൊതുഭാഷാ പ്രവർത്തനസമയം);
    • അടിസ്ഥാന ക്ലാസ് ലൈബ്രറി.

    കോമൺ ലാംഗ്വേജ് റൺടൈം (CLR) .NET തരങ്ങൾ സ്വയമേവ കണ്ടെത്തുന്നതിനും ആ തരങ്ങൾ ലോഡുചെയ്യുന്നതിനും അവ കൈകാര്യം ചെയ്യുന്നതിനുമുള്ള പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നു. CLR മെമ്മറി മാനേജ്മെൻ്റ്, ആപ്ലിക്കേഷൻ മെയിൻ്റനൻസ്, ത്രെഡ് പ്രോസസ്സിംഗ് എന്നിവ കൈകാര്യം ചെയ്യുന്നു, കൂടാതെ നിരവധി സുരക്ഷയുമായി ബന്ധപ്പെട്ട പരിശോധനകൾ നടപ്പിലാക്കുന്നു.

    അടിസ്ഥാന ക്ലാസുകളുടെ ലൈബ്രറിയിൽ വിവിധ പ്രിമിറ്റീവുകളുടെ നിർവചനം ഉൾപ്പെടുന്നു, അവ ഇവയാകാം: സ്ട്രീമുകൾ, ഗ്രാഫിക്കൽ API-കൾ, ഡാറ്റാബേസ് നടപ്പിലാക്കലുകൾ, ഫയൽ I/O മുതലായവ.

    3. കോമൺ ലാംഗ്വേജ് റൺടൈമിൻ്റെ (CLR) പ്രവർത്തന തത്വം എന്താണ്?

    സാധാരണ ഭാഷാ റൺടൈം (CLR) .NET കോഡിൻ്റെ നിർവ്വഹണം നിയന്ത്രിക്കുന്നു.

    C#-ൽ (അല്ലെങ്കിൽ മറ്റൊരു ഭാഷ) ഒരു പ്രോഗ്രാം കംപൈൽ ചെയ്‌ത ശേഷം, ഒരു പ്രത്യേക തരം സ്യൂഡോകോഡോ ബൈറ്റ്‌കോഡോ അടങ്ങിയ ഒരു ഫയൽ സൃഷ്‌ടിക്കുന്നു (അത് മുമ്പത്തെപ്പോലെ എക്‌സിക്യൂട്ടബിൾ ഫയലല്ല). ഈ സ്യൂഡോകോഡിനെ (MSIL) അല്ലെങ്കിൽ കോമൺ ഇൻ്റർമീഡിയറ്റ് ലാംഗ്വേജ് (CIL) എന്ന് വിളിക്കുന്നു. ഈ സ്യൂഡോകോഡ് മൈക്രോസോഫ്റ്റ് ഇൻ്റർമീഡിയറ്റ് ലാംഗ്വേജ് ആണ്.

    പ്രോഗ്രാം എക്സിക്യൂഷൻ സമയത്ത് ഇൻ്റർമീഡിയറ്റ് MSIL കോഡ് എക്സിക്യൂട്ടബിൾ കോഡാക്കി മാറ്റുക എന്നതാണ് CLR-ൻ്റെ പ്രധാന ലക്ഷ്യം.

    MSIL സ്യൂഡോകോഡിലേക്ക് കംപൈൽ ചെയ്‌തിരിക്കുന്ന ഏതൊരു പ്രോഗ്രാമും CLR നടപ്പിലാക്കുന്ന ഏത് പരിതസ്ഥിതിയിലും നടപ്പിലാക്കാൻ കഴിയും. .NET ഫ്രെയിംവർക്കിനുള്ളിൽ പ്രോഗ്രാമുകൾ പോർട്ടബിൾ ആക്കാൻ ഇത് അനുവദിക്കുന്നു.

    അരി. 1. സോഴ്സ് കോഡ് MSIL (CIL അല്ലെങ്കിൽ IL) കോഡിലേക്ക് പരിവർത്തനം ചെയ്യുകയും ഒരു അസംബ്ലി ഫയൽ (*.dll അല്ലെങ്കിൽ *.exe) സൃഷ്ടിക്കുകയും ചെയ്യുന്ന പ്രക്രിയ

    ഇതിനുശേഷം, സ്യൂഡോകോഡ് എക്സിക്യൂട്ടബിൾ കോഡായി മാറുന്നു. ജെഐടി കമ്പൈലറാണ് ഇത് ചെയ്യുന്നത്. JIT (ജസ്റ്റ്-ഇൻ-ടൈം) സമാഹാരം ഈച്ചയിലെ സമാഹാരമാണ്.

    അസംബ്ലി എവിടെ സ്ഥാപിക്കണമെന്ന് നിർണ്ണയിക്കുന്നതിനുള്ള ഉത്തരവാദിത്തം CLR ആണ്.

    അസംബ്ലിയിൽ സ്ഥാപിച്ചിരിക്കുന്ന അഭ്യർത്ഥിച്ച തരം (അറേ ലിസ്റ്റ് ക്ലാസ് അല്ലെങ്കിൽ മറ്റ് തരം) ഫയലിൻ്റെ മെറ്റാഡാറ്റ വായിച്ചുകൊണ്ട് ബൈനറി ഫയലിൽ (*.dll അല്ലെങ്കിൽ *.exe) നിർണ്ണയിക്കപ്പെടുന്നു.

    CLR പിന്നീട് അസംബ്ലിയിൽ നിന്ന് വായിച്ച തരം മെമ്മറിയിലേക്ക് സ്ഥാപിക്കുന്നു.

    CLR പിന്നീട് CIL കോഡിനെ നിർദ്ദിഷ്ട പ്ലാറ്റ്‌ഫോമിന് അനുയോജ്യമായ നിർദ്ദേശങ്ങളാക്കി മാറ്റുന്നു (PC, ഓപ്പറേറ്റിംഗ് സിസ്റ്റം മുതലായവയെ ആശ്രയിച്ച്). കൂടാതെ, ഈ ഘട്ടത്തിൽ ആവശ്യമായ സുരക്ഷാ പരിശോധനകൾ നടക്കുന്നു.

    അഭ്യർത്ഥിച്ച പ്രോഗ്രാം കോഡ് എക്സിക്യൂട്ട് ചെയ്യുക എന്നതാണ് അവസാനമായി ചെയ്യേണ്ടത്.

    4. എന്താണ് MSIL ഇൻ്റർമീഡിയറ്റ് ഭാഷ ( മൈക്രോസോഫ്റ്റ് ഇൻ്റർമീഡിയറ്റ് ലാംഗ്വേജ്) അല്ലെങ്കിൽ CIL (പൊതു ഇൻ്റർമീഡിയറ്റ് ഭാഷ)?

    ആദ്യം, ഇൻ്റർമീഡിയറ്റ് സ്യൂഡോകോഡ് ഭാഷയാണ് വിളിച്ചിരുന്നത് മൈക്രോസോഫ്റ്റ് ഇൻ്റർമീഡിയറ്റ് ലാംഗ്വേജ്(എംഎസ്ഐഎൽ). പിന്നീട് (.NET-ൻ്റെ ഏറ്റവും പുതിയ പതിപ്പുകളിൽ) ഈ പേര് കോമൺ ഇൻ്റർമീഡിയറ്റ് ലാംഗ്വേജ് (CIL - Common Intermediate Language) എന്നാക്കി മാറ്റി. MSIL, CIL, IL (ഇൻ്റർമീഡിയറ്റ് ലാംഗ്വേജ്) എന്നീ ചുരുക്കെഴുത്തുകൾ അർത്ഥമാക്കുന്നത് ഒരേ കാര്യമാണ്.

    .NET ഫ്രെയിംവർക്കിനെ പിന്തുണയ്ക്കുന്ന ചില പ്രോഗ്രാമിംഗ് ഭാഷയിൽ ഒരു പ്രോഗ്രാം കംപൈൽ ചെയ്തതിന് ശേഷമാണ് ഇൻ്റർമീഡിയറ്റ് ഭാഷ CIL (അല്ലെങ്കിൽ MSIL) രൂപപ്പെടുന്നത്.

    MSIL എന്നത് സ്യൂഡോകോഡാണ്. MSIL ഇനിപ്പറയുന്ന നിർദ്ദേശങ്ങളുടെ ഒരു കൂട്ടം നിർവചിക്കുന്നു:

    • വ്യത്യസ്ത പ്ലാറ്റ്ഫോമുകളിലേക്ക് മാറ്റാൻ കഴിയും;
    • ഒരു പ്രത്യേക പ്രോസസ്സറിനെ ആശ്രയിക്കരുത്.

    വാസ്തവത്തിൽ, MSIL ആണ് പോർട്ടബിൾ അസംബ്ലി ഭാഷ

    5. നെറ്റ് സാങ്കേതികവിദ്യയുടെ വീക്ഷണകോണിൽ നിന്ന് ഒരു അസംബ്ലി എന്താണ്?

    .NET പ്ലാറ്റ്‌ഫോം-ഇൻഡിപെൻഡൻ്റ് ഇൻ്റർമീഡിയറ്റ് ലാംഗ്വേജ് (IL) നിർദ്ദേശങ്ങളും ടൈപ്പ് മെറ്റാഡാറ്റയും അടങ്ങുന്ന *.dll അല്ലെങ്കിൽ *.exe വിപുലീകരണങ്ങളുള്ള ഫയലുകളാണ് അസംബ്ലികൾ.

    .NET കമ്പൈലർ ഉപയോഗിച്ചാണ് അസംബ്ലി സൃഷ്ടിച്ചിരിക്കുന്നത്. അസംബ്ലി ഒരു വലിയ ബൈനറി വസ്തുവാണ്.

    നെയിംസ്പേസുകൾ സംരക്ഷിക്കുന്നതിനാണ് അസംബ്ലി രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത്. നെയിംസ്‌പെയ്‌സിൽ തരങ്ങൾ അടങ്ങിയിരിക്കുന്നു. തരങ്ങൾ ക്ലാസുകൾ, പ്രതിനിധികൾ, ഇൻ്റർഫേസുകൾ, കണക്കുകൾ, ഘടനകൾ എന്നിവ ആകാം.

    ഒരു അസംബ്ലിയിൽ എത്ര നെയിംസ്‌പെയ്‌സുകളും അടങ്ങിയിരിക്കാം. ഏത് നെയിംസ്‌പെയ്‌സിലും എത്ര തരം (ക്ലാസുകൾ, ഇൻ്റർഫേസുകൾ, ഘടനകൾ, കണക്കുകൾ, പ്രതിനിധികൾ) അടങ്ങിയിരിക്കാം.

    6. അസംബ്ലികളിൽ എന്താണ് ഉൾപ്പെടുത്തിയിരിക്കുന്നത്?

    അസംബ്ലികളിൽ CIL കോഡും (MSIL കോഡ് അല്ലെങ്കിൽ IL കോഡ്) മെറ്റാഡാറ്റയും അടങ്ങിയിരിക്കുന്നു.

    .NET റൺടൈമിൽ നിന്ന് ആക്‌സസ് ചെയ്‌താൽ മാത്രമേ ഒരു പ്രത്യേക പ്ലാറ്റ്‌ഫോമിനായി CIL കോഡ് കംപൈൽ ചെയ്യുകയുള്ളൂ.

    നൽകിയിരിക്കുന്ന .NET ബൈനറി യൂണിറ്റിനുള്ളിൽ നിലനിൽക്കുന്ന ഓരോ തരത്തിൻ്റേയും സവിശേഷതകൾ മെറ്റാഡാറ്റ വിശദമായി വിവരിക്കുന്നു.

    ഉദാഹരണത്തിന്നിങ്ങൾ C#-ൽ ഒരു Windows Forms ആപ്ലിക്കേഷൻ സൃഷ്ടിക്കുമ്പോൾ, ഒരു Assembly.info ഫയൽ സൃഷ്ടിക്കപ്പെടും. പ്രധാന പ്രോഗ്രാം ഫോൾഡറുമായി ബന്ധപ്പെട്ട പ്രോപ്പർട്ടീസ് സബ്ഫോൾഡറിലാണ് ഈ ഫയൽ സ്ഥിതി ചെയ്യുന്നത്. ഈ ഫയൽ അസംബ്ലിയെക്കുറിച്ചുള്ള പൊതുവായ വിവരങ്ങൾ നൽകുന്നു.

    7. എന്താണ് പ്രകടമായത്?

    മാനിഫെസ്റ്റോമെറ്റാഡാറ്റ ഉപയോഗിച്ച് അസംബ്ലിയുടെ തന്നെ വിവരണം ആണ്.

    മാനിഫെസ്റ്റിൽ ഇനിപ്പറയുന്ന വിവരങ്ങൾ അടങ്ങിയിരിക്കുന്നു:

    • അസംബ്ലിയുടെ നിലവിലെ പതിപ്പിനെക്കുറിച്ച്;
    • സംസ്കാരത്തെക്കുറിച്ചുള്ള വിവരങ്ങൾ (ലൈൻ, ഗ്രാഫിക് ഉറവിടങ്ങളുടെ പ്രാദേശികവൽക്കരണം);
    • ശരിയായ പ്രവർത്തനത്തിന് ആവശ്യമായ എല്ലാ ബാഹ്യ അസംബ്ലികളിലേക്കുള്ള ലിങ്കുകളുടെ ഒരു ലിസ്റ്റ്.

    8. സോഴ്സ് കോഡ്, .NET കംപൈലർ, .NET റൺടൈം എഞ്ചിൻ എന്നിവ തമ്മിലുള്ള പ്രതിപ്രവർത്തനത്തിൻ്റെ ഡയഗ്രം.

    പ്രോഗ്രാമർ .NET സാങ്കേതികവിദ്യയെ (C#, C++/CLI, Visual Basic .NET, മുതലായവ) പിന്തുണയ്ക്കുന്ന ഒരു ഭാഷയിൽ ആപ്ലിക്കേഷൻ്റെ സോഴ്സ് കോഡ് സൃഷ്ടിക്കുന്നു. മൈക്രോസോഫ്റ്റ് വിഷ്വൽ സ്റ്റുഡിയോ പോലുള്ള ചില പ്രോഗ്രാമിംഗ് പരിതസ്ഥിതിയിലാണ് ആപ്ലിക്കേഷൻ സൃഷ്ടിച്ചിരിക്കുന്നത്. കംപൈലർ ഒരു അസംബ്ലി ജനറേറ്റ് ചെയ്യുന്നു - CIL നിർദ്ദേശങ്ങളും മെറ്റാഡാറ്റയും മാനിഫെസ്റ്റും അടങ്ങുന്ന ഒരു ഫയൽ.

    ഒരു നിശ്ചിത കമ്പ്യൂട്ടറിൽ (ചില പ്ലാറ്റ്‌ഫോമിൽ) ഈ ആപ്ലിക്കേഷൻ പ്രവർത്തിപ്പിച്ചതിന് ശേഷം, .NET റൺടൈം എഞ്ചിൻ സമാരംഭിക്കുന്നു. ആദ്യം, .NET ഫ്രെയിംവർക്കിൻ്റെ പതിപ്പുകളിലൊന്ന് (കുറഞ്ഞത്) കമ്പ്യൂട്ടറിൽ ഇൻസ്റ്റാൾ ചെയ്തിരിക്കണം.

    സോഴ്സ് കോഡ് അടിസ്ഥാന ക്ലാസ് ലൈബ്രറികൾ ഉപയോഗിക്കുന്നുവെങ്കിൽ (ഉദാഹരണത്തിന്, mscorlib.dll അസംബ്ലിയിൽ നിന്ന്), അവ ക്ലാസ് ലോഡർ ഉപയോഗിച്ചാണ് ലോഡ് ചെയ്യുന്നത്.

    ആപ്ലിക്കേഷൻ പ്രവർത്തിക്കുന്ന കമ്പ്യൂട്ടറിൻ്റെ ഹാർഡ്‌വെയർ, സോഫ്‌റ്റ്‌വെയർ സവിശേഷതകൾ കണക്കിലെടുത്ത് (ലിങ്ക് ചെയ്യുന്നു) JIT കംപൈലർ അസംബ്ലി സമാഹരിക്കുന്നു.

    ഇതിനുശേഷം, ആപ്ലിക്കേഷൻ പ്രവർത്തിക്കുന്നു.

    ചിത്രം 2. സോഴ്സ് കോഡ്, കമ്പൈലർ, .NET റൺടൈം എഞ്ചിൻ എന്നിവ തമ്മിലുള്ള ബന്ധം

    9. ഏതൊക്കെ തരത്തിലുള്ള അസംബ്ലികളുണ്ട്?

    രണ്ട് തരം അസംബ്ലികളുണ്ട്:

    • ഒറ്റ-ഫയൽ അസംബ്ലികൾ;
    • മൾട്ടി-ഫയൽ അസംബ്ലികൾ.

    ഒരൊറ്റ മൊഡ്യൂൾ (*.dll അല്ലെങ്കിൽ *.exe) അടങ്ങുന്ന ഒരു അസംബ്ലിയെ സിംഗിൾ-ഫയൽ എന്ന് വിളിക്കുന്നു. സിംഗിൾ-ഫയൽ അസംബ്ലികൾ ആവശ്യമായ എല്ലാ CIL നിർദ്ദേശങ്ങളും മെറ്റാഡാറ്റയും മാനിഫെസ്റ്റുകളും ഒരു, നന്നായി നിർവചിക്കപ്പെട്ട പാക്കേജിൽ സ്ഥാപിക്കുന്നു.

    നിരവധി .NET ബൈനറി കോഡ് ഫയലുകൾ അടങ്ങുന്ന ഒരു അസംബ്ലിയെ മൾട്ടി-ഫയൽ അസംബ്ലി എന്ന് വിളിക്കുന്നു. ഈ ഫയലുകളെ ഓരോന്നും ഒരു മൊഡ്യൂൾ എന്ന് വിളിക്കുന്നു.

    ഒരു മൾട്ടി-ഫയൽ അസംബ്ലിയിൽ, മൊഡ്യൂളുകളിൽ ഒന്ന് പ്രധാനം (പ്രാഥമികം) ആണ്.

    10. എംഎസ് വിഷ്വൽ സ്റ്റുഡിയോ ലൈബ്രറിയുടെ പ്രധാന അസംബ്ലി അടങ്ങുന്ന ഫയലേത്?

    പ്രധാന അസംബ്ലി "mscorlib.dll" എന്ന ഫയലിലാണ് സ്ഥിതി ചെയ്യുന്നത്.

    11. പൊതുവായ CTS തരം സിസ്റ്റം എന്താണ്?

    CTS (കോമൺ ടൈപ്പ് സിസ്റ്റം) - പൊതുവായ ഭാഷാ റൺടൈം CLR പിന്തുണയ്ക്കുന്ന സാധ്യമായ എല്ലാ ഡാറ്റാ തരങ്ങളുടെയും പ്രോഗ്രാം കൺസ്ട്രക്റ്റുകളുടെയും പൂർണ്ണമായ വിവരണം ഉൾക്കൊള്ളുന്ന ഒരു തരം സിസ്റ്റം. ഈ എൻ്റിറ്റികൾക്ക് എങ്ങനെ പരസ്പരം ഇടപഴകാൻ കഴിയുമെന്നും ഇത് വിവരിക്കുന്നു.

    തരങ്ങൾ ക്ലാസുകൾ, ഇൻ്റർഫേസുകൾ, ഘടനകൾ, കണക്കുകൾ, പ്രതിനിധികൾ എന്നിവ ആകാം.

    12. പൊതു ഭാഷാ സ്പെസിഫിക്കേഷൻ CLS ൻ്റെ ഉദ്ദേശ്യം എന്താണ്?

    നിങ്ങൾക്കറിയാവുന്നതുപോലെ, .NET അനുയോജ്യമായ എല്ലാ പ്രോഗ്രാമിംഗ് ഭാഷകൾക്കും CTS ടൈപ്പ് സിസ്റ്റത്തിൻ്റെ പ്രവർത്തനത്തെ പിന്തുണയ്ക്കാൻ കഴിയില്ല. ഈ ആവശ്യത്തിനായി, പൊതു ഭാഷാ സ്പെസിഫിക്കേഷൻ CLS (പൊതുഭാഷാ സ്പെസിഫിക്കേഷൻ) ഉപയോഗിക്കുന്നു.

    .NET-നെ പിന്തുണയ്ക്കുന്ന എല്ലാ പ്രോഗ്രാമിംഗ് ഭാഷകളും അംഗീകരിക്കുന്ന പൊതുവായ തരങ്ങളുടെയും പ്രോഗ്രാമിംഗ് നിർമ്മാണങ്ങളുടെയും ഉപവിഭാഗം മാത്രം വിവരിക്കുക എന്നതാണ് CLS-ൻ്റെ ഉദ്ദേശ്യം.

    13. ഏത് പ്രോഗ്രാമിംഗ് ഭാഷകളാണ് .NET സാങ്കേതികവിദ്യയെ പിന്തുണയ്ക്കുന്നത്?

    MS വിഷ്വൽ സ്റ്റുഡിയോ ആപ്ലിക്കേഷൻ ഡെവലപ്മെൻ്റ് സിസ്റ്റത്തിൽ, .NET സാങ്കേതികവിദ്യയെ ഇനിപ്പറയുന്ന പ്രോഗ്രാമിംഗ് ഭാഷകൾ പിന്തുണയ്ക്കുന്നു: C#, Visual Basic .NET, C++/CLI, JScript .NET, F#, J#.

    .NET സാങ്കേതികവിദ്യ ഉപയോഗിക്കുന്നതിന്, നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ സോഫ്റ്റ്‌വെയർ ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട് Microsoft .NET ഫ്രെയിംവർക്ക് സോഫ്റ്റ്‌വെയർ ഡെവലപ്‌മെൻ്റ് കിറ്റ്(SDK) അല്ലെങ്കിൽ ഏതെങ്കിലും പതിപ്പിൻ്റെ Microsoft Visual Studio.

    14. എന്താണ് നെയിംസ്പേസ്?

    ഒരു സെമാൻ്റിക് വീക്ഷണകോണിൽ നിന്ന് പരസ്പരം ബന്ധപ്പെട്ടിരിക്കുന്ന ഒരു കൂട്ടം തരങ്ങളെ ഒന്നിപ്പിക്കാൻ ഉദ്ദേശിച്ചുള്ളതാണ് ഒരു നെയിംസ്പേസ്. തരങ്ങൾ അസംബ്ലികളിൽ (അസംബ്ലി) സ്ഥാപിച്ചിരിക്കുന്നു. തരങ്ങൾ അർത്ഥമാക്കുന്നത് ക്ലാസുകൾ, പ്രതിനിധികൾ, ഇൻ്റർഫേസുകൾ, ഘടനകൾ, എണ്ണൽ എന്നിവയാണ്.

    നെയിംസ്പേസ് പേരുകളുടെ ഉദാഹരണങ്ങൾ:

    സിസ്റ്റം സിസ്റ്റം.ഡാറ്റ System.IO സിസ്റ്റം.ശേഖരങ്ങൾ സിസ്റ്റം.ത്രെഡിംഗ്.ടാസ്കുകൾ

    ഉദാഹരണത്തിന്, System.Data നെയിംസ്പേസിൽ ഡാറ്റാബേസുകളിൽ പ്രവർത്തിക്കുന്നതിനുള്ള പ്രധാന തരങ്ങളും System.Collections നെയിംസ്പേസിൽ ശേഖരങ്ങളുമായി പ്രവർത്തിക്കുന്നതിനുള്ള പ്രധാന തരങ്ങളും അടങ്ങിയിരിക്കുന്നു.

    15. MS വിഷ്വൽ സ്റ്റുഡിയോയിൽ അസംബ്ലികളുടെയും നെയിംസ്‌പെയ്‌സുകളുടെയും തരങ്ങളുടെയും ഉള്ളടക്കം എങ്ങനെ പ്രദർശിപ്പിക്കാം?

    മൈക്രോസോഫ്റ്റ് വിഷ്വൽ സ്റ്റുഡിയോ സിസ്റ്റത്തിന് ഒരു യൂട്ടിലിറ്റി ഒബ്ജക്റ്റ് ബ്രൗസർ ഉണ്ട്, അത് വ്യൂ മെനുവിൽ നിന്ന് വിളിക്കുന്നു (ചിത്രം 3).

    അരി. 3. ഒബ്ജക്റ്റ് ബ്രൗസർ യൂട്ടിലിറ്റിയെ വിളിക്കുന്നു

    ഇത് ഒബ്ജക്റ്റ് ബ്രൗസർ വിൻഡോ തുറക്കും, അത് ഒരു പ്രത്യേക സാങ്കേതികവിദ്യയിൽ ഉപയോഗിക്കുന്ന അസംബ്ലികൾ പ്രദർശിപ്പിക്കും.

    ".NET Framework 4" സാങ്കേതികവിദ്യയിൽ പ്രദർശിപ്പിച്ചിരിക്കുന്ന അസംബ്ലികളുടെ ഒരു ലിസ്റ്റ് ചിത്രം 4 കാണിക്കുന്നു. "mscorlib" എന്ന് പേരുള്ള ഒരു അസംബ്ലി ഹൈലൈറ്റ് ചെയ്തിരിക്കുന്നു.

    അരി. 4. mscorlib.dll അസംബ്ലി ഹൈലൈറ്റ് ചെയ്ത ഒബ്ജക്റ്റ് ബ്രൗസർ വിൻഡോ

    നിങ്ങൾ mscorlib അസംബ്ലിയുടെ ഉള്ളടക്കം വിപുലീകരിക്കുകയാണെങ്കിൽ (" + "), തുടർന്ന് ഈ അസംബ്ലിക്കുള്ള എല്ലാ നെയിംസ്പേസുകളുടെയും ഒരു ലിസ്റ്റ് പ്രദർശിപ്പിക്കും (ചിത്രം 5). ചിത്രത്തിൽ നിന്ന് നിങ്ങൾക്ക് കാണാനാകുന്നതുപോലെ, അസംബ്ലിയിൽ Microsoft.Win32, System, System.Collections, System.Collections.Concurrent എന്നിങ്ങനെയുള്ള നെയിംസ്പേസുകൾ ഉൾപ്പെടുന്നു.

    അരി. 5. mscorlib അസംബ്ലിയും അതിൽ ഉൾപ്പെടുത്തിയിരിക്കുന്ന നെയിംസ്പേസുകളുടെ പട്ടികയും

    ഏതെങ്കിലും നെയിംസ്‌പെയ്‌സും ഇതേ രീതിയിൽ വികസിപ്പിച്ചിരിക്കുന്നു. നെയിംസ്പേസുകൾ തരങ്ങളെ വിവരിക്കുന്നു. തരങ്ങൾ രീതികൾ, ഗുണങ്ങൾ, സ്ഥിരാങ്കങ്ങൾ മുതലായവ വിവരിക്കുന്നു.

    System.IO നെയിംസ്പേസിൽ നിന്നുള്ള ബൈനറി റീഡർ ക്ലാസ് ചിത്രം 6 കാണിക്കുന്നു. പ്രത്യക്ഷത്തിൽ, ക്ലാസ് BinaryReader(), Close(), Dispose(), FillBuffer() എന്നിങ്ങനെ പേരുള്ള രീതികൾ നടപ്പിലാക്കുന്നു.

    അരി. 6. ബൈനറി റീഡർ ക്ലാസിൻ്റെ ഉള്ളടക്കം

    16. ഒരു C# പ്രോഗ്രാമിൽ ഒരു നെയിംസ്പേസ് എങ്ങനെ ബന്ധിപ്പിക്കാം?

    ഒരു നെയിംസ്പേസ് ബന്ധിപ്പിക്കുന്നതിന്, കീവേഡ് ഉപയോഗിക്കുക

    പ്രോഗ്രാമുകൾ എഴുതുകയും തിരുത്തുകയും മെഷീൻ കോഡുകളാക്കി മാറ്റുകയും ഡീബഗ്ഗ് ചെയ്യുകയും സമാരംഭിക്കുകയും ചെയ്യുന്ന മാർഗങ്ങളെ വിളിക്കുന്നു വികസന പരിസ്ഥിതിഅഥവാ ഷെൽ. പ്ലാറ്റ്ഫോം.നെറ്റ്അഥവാ .നെറ്റ് ഫ്രെയിംവർക്ക്- ഇത് കേവലം മാത്രമല്ല വികസന പരിസ്ഥിതിപ്രോഗ്രാമുകൾ, ഇത് മൈക്രോസോഫ്റ്റിൻ്റെ മുമ്പ് വ്യത്യസ്ത സാങ്കേതികവിദ്യകളുടെ ഒരു പുതിയ വിപ്ലവകരമായ സംയോജനമാണ്, ഇത് വ്യത്യസ്ത ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങൾക്കായി വ്യത്യസ്ത പ്രോഗ്രാമിംഗ് ഭാഷകളിൽ വ്യത്യസ്ത തരം ആപ്ലിക്കേഷനുകൾ വികസിപ്പിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു.

    ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിലേക്കുള്ള ഒരു ആഡ്-ഓൺ ആണ് നെറ്റ് ഫ്രെയിംവർക്ക്, അത് വിൻഡോസ്, യുണിക്സ്, പൊതുവെ ഏത് ഒഎസ് പതിപ്പും ആകാം (ഡെവലപ്പർമാരുടെ അഭിപ്രായത്തിൽ), കൂടാതെ നിരവധി ഘടകങ്ങൾ ഉൾക്കൊള്ളുന്നു. അതിനാൽ, . NET ചട്ടക്കൂട് ഉൾപ്പെടുന്നു:

    1. നാല് ഔദ്യോഗിക ഭാഷകൾ: C#, VB.NET, മാനേജ്ഡ് C++, JScript .NET.
    2. ആപ്ലിക്കേഷനുകൾ സൃഷ്‌ടിക്കാൻ ഈ ഭാഷകൾ പങ്കിടുന്ന ഒരു പൊതു ഭാഷാ ഒബ്ജക്റ്റ് ഓറിയൻ്റഡ് റൺടൈം (CLR).
    3. FCL (ഫ്രെയിംവർക്ക് ക്ലാസ് ലൈബ്രറി) എന്ന പൊതുനാമത്തിൽ പരസ്പരബന്ധിതമായ ക്ലാസ് ലൈബ്രറികളുടെ ഒരു പരമ്പര.

    പ്ലാറ്റ്ഫോമിൻ്റെ പ്രധാന ഘടകം. CLR പ്രോഗ്രാമുകൾക്കുള്ള ഒരു പൊതു ഭാഷാ റൺടൈം പരിതസ്ഥിതിയാണ് NET ഫ്രെയിംവർക്ക്. പരിസ്ഥിതിയുടെ പേര് - "പൊതുഭാഷാ റൺടൈം" - സ്വയം സംസാരിക്കുന്നു: ഇത് വിവിധ പ്രോഗ്രാമിംഗ് ഭാഷകൾക്ക് അനുയോജ്യമായ ഒരു റൺടൈം പരിസ്ഥിതിയാണ്. CLR ഫംഗ്‌ഷനുകളിൽ ഇവ ഉൾപ്പെടുന്നു:

    1. രണ്ട്-ഘട്ട സമാഹാരം: പ്രോഗ്രാമിംഗ് ഭാഷകളിലൊന്നിൽ എഴുതിയ ഒരു പ്രോഗ്രാം നിയന്ത്രിത കോഡാക്കി മാറ്റുന്നു ഇൻ്റർമീഡിയറ്റ് ഭാഷ ( മൈക്രോസോഫ്റ്റ് ഇൻ്റർമീഡിയറ്റ് ലാംഗ്വേജ്, MSIL, അല്ലെങ്കിൽ വെറും IL), തുടർന്ന് IL കോഡ് ഒരു പ്രത്യേക പ്രോസസറിനായി മെഷീൻ കോഡാക്കി മാറ്റുന്നു, അത് ഒരു വെർച്വൽ മെഷീൻ അല്ലെങ്കിൽ ഒരു ജസ്റ്റ് ഇൻ ടൈം കംപൈലർ ഉപയോഗിച്ച് നടപ്പിലാക്കുന്നു (യഥാസമയം കംപൈൽ ചെയ്യുന്നു);
    2. കോഡ് മാനേജ്മെൻ്റ്: ഒരു JIT കംപൈലർ ഉപയോഗിച്ച് റെഡിമെയ്ഡ് IL കോഡ് ലോഡ് ചെയ്യുകയും നടപ്പിലാക്കുകയും ചെയ്യുന്നു;
    3. സ്ഥിരീകരണ ആവശ്യങ്ങൾക്കായി മെറ്റാഡാറ്റ ആക്സസ് ചെയ്യുന്നു കോഡ് സുരക്ഷ;
    4. ഗാർബേജ് കളക്ടർ (ഗാർബേജ് കളക്ടർ) ഉപയോഗിച്ച് വസ്തുക്കൾ സ്ഥാപിക്കുമ്പോൾ മെമ്മറി മാനേജ്മെൻ്റ്;
    5. ക്രോസ്-ലാംഗ്വേജ് ഒഴിവാക്കലുകൾ ഉൾപ്പെടെ, ഒഴിവാക്കലുകളും അസാധാരണമായ സാഹചര്യങ്ങളും കൈകാര്യം ചെയ്യുക;
    6. നിയന്ത്രിത കോഡും (CLR-നായി എഴുതിയ കോഡും) നിയന്ത്രിക്കാത്ത കോഡും തമ്മിലുള്ള ഇടപെടൽ നടപ്പിലാക്കുന്നു;
    7. വിവിധ തരത്തിലുള്ള ആപ്ലിക്കേഷനുകൾ വികസിപ്പിക്കുന്നതിനുള്ള സേവനങ്ങൾക്കുള്ള പിന്തുണ.

    അടുത്ത ഘടകം. നെറ്റ് ഫ്രെയിംവർക്ക് ഒരു FCL - പ്ലാറ്റ്ഫോം ക്ലാസ് ലൈബ്രറിയാണ്. ആവശ്യമായ ഫലങ്ങളെ ആശ്രയിച്ച് അതിൻ്റെ ഒന്നോ അല്ലെങ്കിൽ മറ്റൊരു ഭാഗം ഉപയോഗിക്കാൻ കഴിയുന്ന തരത്തിൽ ഈ ലൈബ്രറി നിരവധി മൊഡ്യൂളുകളായി തിരിച്ചിരിക്കുന്നു. ഉദാഹരണത്തിന്, മൊഡ്യൂളുകളിൽ ഒന്നിൽ നിങ്ങൾക്ക് വിൻഡോസ് ആപ്ലിക്കേഷനുകൾ നിർമ്മിക്കാൻ കഴിയുന്ന “ഇഷ്ടികകൾ” അടങ്ങിയിരിക്കുന്നു, മറ്റൊന്ന് നെറ്റ്‌വർക്കിൽ ജോലികൾ സംഘടിപ്പിക്കുന്നതിന് ആവശ്യമായ “ഇഷ്ടികകൾ” ഉൾക്കൊള്ളുന്നു.

    FCL-ൻ്റെ ഒരു ഭാഗം അടിസ്ഥാന തരങ്ങൾ വിവരിക്കുന്നതിന് നീക്കിവച്ചിരിക്കുന്നു. ഒരു തരം ഡാറ്റയെ പ്രതിനിധീകരിക്കുന്നതിനുള്ള ഒരു മാർഗമാണ്; ഏറ്റവും അടിസ്ഥാനപരമായവ തിരിച്ചറിയുന്നത് പ്രോഗ്രാമിംഗ് ഭാഷകൾ സഹായത്തോടെ പങ്കിടുന്നത് എളുപ്പമാക്കുന്നു. നെറ്റ് ഫ്രെയിംവർക്ക്. മൊത്തത്തിൽ ഇതിനെ കോമൺ ടൈപ്പ് സിസ്റ്റം (സിടിഎസ് - ഏകീകൃത തരം സിസ്റ്റം) എന്ന് വിളിക്കുന്നു.

    കൂടാതെ, FCL ലൈബ്രറിയിൽ പൊതുവായ ഭാഷാ സ്പെസിഫിക്കേഷൻ (CLS - കോമൺ ലാംഗ്വേജ് സ്പെസിഫിക്കേഷൻ) ഉൾപ്പെടുന്നു, അത് സ്ഥാപിക്കുന്നു: ഭാഷാ സംയോജനത്തിൻ്റെ അടിസ്ഥാന നിയമങ്ങൾ. CLS സ്പെസിഫിക്കേഷൻ ഒരു പ്ലാറ്റ്ഫോം ഭാഷയ്ക്കുള്ള ഏറ്റവും കുറഞ്ഞ ആവശ്യകതകൾ നിർവചിക്കുന്നു. നെറ്റ്. ഈ സ്പെസിഫിക്കേഷൻ പാലിക്കുന്ന കംപൈലറുകൾ പരസ്പരം ഇടപഴകാൻ കഴിയുന്ന ഒബ്ജക്റ്റുകൾ നിർമ്മിക്കുന്നു. അതിനാൽ, ഏത് CLS-അനുയോജ്യമായ ഭാഷയ്ക്കും FCL ലൈബ്രറിയുടെ എല്ലാ സവിശേഷതകളും ഉപയോഗിക്കാൻ കഴിയും.

    ഇതിനകം സൂചിപ്പിച്ചതുപോലെ, പ്ലാറ്റ്‌ഫോമിനായി ഉദ്ദേശിച്ചിട്ടുള്ള പ്രധാന ഭാഷകൾ. C#, VB എന്നിവയാണ് നെറ്റ് ഫ്രെയിംവർക്ക്. നെറ്റ്, നിയന്ത്രിത C++, JScript എന്നിവ. നെറ്റ്. ഈ ഭാഷകൾക്കായി, പ്രോഗ്രാമിനെ IL കോഡിലേക്ക് വിവർത്തനം ചെയ്യുന്ന സ്വന്തം കമ്പൈലറുകൾ Microsoft വാഗ്ദാനം ചെയ്യുന്നു, അത് CLR JIT കംപൈലർ നിർവ്വഹിക്കുന്നു. മൈക്രോസോഫ്റ്റിനെ കൂടാതെ, മറ്റ് നിരവധി കമ്പനികളും അക്കാദമിക് ഓർഗനൈസേഷനുകളും CLR-ൽ പ്രവർത്തിക്കുന്ന കോഡ് സൃഷ്ടിക്കുന്ന സ്വന്തം കംപൈലറുകൾ സൃഷ്ടിച്ചിട്ടുണ്ട്. നിലവിൽ, കംപൈലറുകൾ പാസ്കൽ, കോബോൾ, ലിസ്പ്, പേൾ, പ്രോലോഗ് മുതലായവയ്ക്ക് അറിയപ്പെടുന്നു. ഇതിനർത്ഥം നിങ്ങൾക്ക് ഒരു പ്രോഗ്രാം എഴുതാം, ഉദാഹരണത്തിന്, പാസ്കലിൽ, തുടർന്ന്, ഉചിതമായ കംപൈലർ ഉപയോഗിച്ച്, CLR-ൽ പ്രവർത്തിക്കുന്ന നിയന്ത്രിത കോഡ് സൃഷ്ടിക്കുക.

    ആപ്ലിക്കേഷൻ, പ്രോജക്റ്റ്, പരിഹാരം എന്നിവയുടെ ആശയങ്ങൾ

    സൃഷ്ടിക്കാൻ കഴിയുന്ന ആപ്ലിക്കേഷനുകളുടെ തരങ്ങളിൽ നെറ്റ് ഫ്രെയിംവർക്ക് യാതൊരു നിയന്ത്രണവും ഏർപ്പെടുത്തുന്നില്ല. അതായത്, ഏറ്റവും സാധാരണമായ ചില ആപ്ലിക്കേഷൻ തരങ്ങൾ നോക്കാം:

    1. കൺസോൾ ആപ്ലിക്കേഷനുകൾ "കൺസോളിലേക്ക്", അതായത് ഒരു ഷെൽ വിൻഡോയിലേക്ക് ഔട്ട്പുട്ട് ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുന്നു.
    2. ഫോമുകൾ, ബട്ടണുകൾ, ചെക്ക്ബോക്സുകൾ മുതലായവ ഉൾപ്പെടെയുള്ള വിൻഡോസ് ഇൻ്റർഫേസ് ഘടകങ്ങൾ ഉപയോഗിക്കുന്ന വിൻഡോസ് ആപ്ലിക്കേഷനുകൾ.
    3. ഏത് വെബ് ബ്രൗസറിനും കാണാൻ കഴിയുന്ന വെബ് പേജുകളാണ് വെബ് ആപ്ലിക്കേഷനുകൾ.
    4. വെബ് സേവനം സൃഷ്‌ടിക്കാൻ ഏത് പ്രോഗ്രാമിംഗ് ഭാഷയാണ് ഉപയോഗിച്ചതെന്നോ ഏത് സിസ്റ്റത്തിലാണ് ഹോസ്റ്റുചെയ്‌തതെന്നോ പരിഗണിക്കാതെ, ഒരൊറ്റ വാക്യഘടന ഉപയോഗിച്ച് ഇൻ്റർനെറ്റിലൂടെ ഫലത്തിൽ ഏത് ഡാറ്റയും കൈമാറാൻ നിങ്ങളെ അനുവദിക്കുന്ന ഡിസ്ട്രിബ്യൂഡ് ആപ്ലിക്കേഷനുകളാണ് വെബ് സേവനങ്ങൾ.

    വികസിപ്പിച്ചുകൊണ്ടിരിക്കുന്ന ആപ്ലിക്കേഷനെ പ്രോജക്റ്റ് എന്ന് വിളിക്കുന്നു. നിരവധി ആപ്ലിക്കേഷനുകൾ ഒരു പരിഹാരമായി സംയോജിപ്പിക്കാം.

    വിഷ്വൽ സ്റ്റുഡിയോ .നെറ്റ് ആണ് സൗകര്യപ്രദമായ ആപ്ലിക്കേഷൻ വികസന അന്തരീക്ഷം.

    വിഷ്വൽ സ്റ്റുഡിയോ .നെറ്റ് വികസന പരിസ്ഥിതി

    ഈ കോഴ്സിൽ നമ്മൾ C# ഭാഷ പഠിക്കും. കൺസോൾ ആപ്ലിക്കേഷനുകൾ വികസിപ്പിച്ചുകൊണ്ട് ഭാഷയുമായി പരിചയപ്പെടാൻ തുടങ്ങാം. ഞങ്ങളുടെ വികസന പരിതസ്ഥിതിയായി ഞങ്ങൾ വിഷ്വൽ സ്റ്റുഡിയോ ഉപയോഗിക്കും. നെറ്റ് (വിഎസ്).

    നോട്ട്പാഡ് പോലെയുള്ള ഒരു സാധാരണ ടെക്സ്റ്റ് എഡിറ്റർ ഉപയോഗിച്ച് നിങ്ങൾക്ക് C# സോഴ്സ് കോഡ് ഫയലുകൾ സൃഷ്ടിക്കാനും അവ കംപൈൽ ചെയ്യാനും കഴിയും നിയന്ത്രിത മൊഡ്യൂളുകൾഉൾപ്പെടുത്തിയിരിക്കുന്ന കമാൻഡ് ലൈൻ കമ്പൈലർ ഉപയോഗിച്ച്. നെറ്റ് ഫ്രെയിംവർക്ക്. എന്നിരുന്നാലും, ഈ ആവശ്യങ്ങൾക്ക് VS ഉപയോഗിക്കുന്നത് ഏറ്റവും സൗകര്യപ്രദമാണ് കാരണം:

    1. സോഴ്സ് കോഡ് കംപൈൽ ചെയ്യുന്നതിന് ആവശ്യമായ എല്ലാ നടപടികളും VS സ്വയമേവ നിർവഹിക്കുന്നു.
    2. VS ടെക്സ്റ്റ് എഡിറ്റർ, C# പോലെയുള്ള VS പിന്തുണയ്ക്കുന്ന ഭാഷകളിൽ പ്രവർത്തിക്കാൻ കോൺഫിഗർ ചെയ്‌തിരിക്കുന്നു, അതിനാൽ ഇതിന് ബുദ്ധിപരമായി പിശകുകൾ കണ്ടെത്താനും നിങ്ങൾ ടൈപ്പുചെയ്യുമ്പോൾ ആവശ്യമായ കോഡ് കണ്ടെത്താൻ ആവശ്യപ്പെടാനും കഴിയും.
    3. ലളിതമായ ഡ്രാഗ് ആൻഡ് ഡ്രോപ്പ് യൂസർ ഇൻ്റർഫേസ് ഘടകങ്ങൾ ഉപയോഗിച്ച് വിൻഡോസും വെബ് ആപ്ലിക്കേഷനുകളും സൃഷ്ടിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്ന പ്രോഗ്രാമുകൾ VS-ൽ ഉൾപ്പെടുന്നു.
    4. C#-ൽ സൃഷ്ടിക്കാൻ കഴിയുന്ന പല തരത്തിലുള്ള പ്രോജക്ടുകളും പ്രോഗ്രാമിൽ മുൻകൂട്ടി ഉൾപ്പെടുത്തിയിട്ടുള്ള "അസ്ഥികൂടം" കോഡ് അടിസ്ഥാനമാക്കി വികസിപ്പിക്കാവുന്നതാണ്. ഓരോ തവണയും ആദ്യം മുതൽ ആരംഭിക്കുന്നതിനുപകരം, നിലവിലുള്ള സോഴ്സ് കോഡ് ഫയലുകൾ ഉപയോഗിക്കാൻ VS നിങ്ങളെ അനുവദിക്കുന്നു, ഇത് ഒരു പ്രോജക്റ്റ് സൃഷ്ടിക്കാൻ ആവശ്യമായ സമയം കുറയ്ക്കുന്നു.

    ആദ്യ പ്രോജക്റ്റ് സൃഷ്ടിക്കുന്നു

    ഒരു പ്രോജക്റ്റ് സൃഷ്ടിക്കാൻ, VS സമാരംഭിക്കുക, തുടർന്ന് VS പ്രധാന മെനുവിൽ നിന്ന് കമാൻഡ് തിരഞ്ഞെടുക്കുക ഫയൽ – പുതിയത് – പദ്ധതി.അപ്പോൾ ഒരു ഡയലോഗ് മെനു തുറക്കും പുതിയ പദ്ധതി(ചിത്രം 1.1 കാണുക).


    അരി. 1.1

    വയലിൽ പ്രോജക്റ്റ് തരങ്ങൾതിരഞ്ഞെടുക്കണം വിഷ്വൽ സി#, വയലിൽ ടെംപ്ലേറ്റുകൾകൺസോൾ ആപ്ലിക്കേഷൻ.

    ഇൻ ലൈൻ പേര്അപേക്ഷയുടെ പേര് നൽകുക ഹലോ. അതേ പേര് വരിയിൽ പ്രത്യക്ഷപ്പെടുമെന്നത് ശ്രദ്ധിക്കുക പരിഹാരത്തിൻ്റെ പേര്. ബോക്സ് അൺചെക്ക് ചെയ്യുക ആപ്ലിക്കേഷനായി ഡയറക്ടറി സൃഷ്ടിക്കുക(ഞങ്ങൾ ഒരു ലളിതമായ ആപ്ലിക്കേഷൻ സൃഷ്ടിക്കുന്നിടത്തോളം, അതിൻ്റെ ഘടന സങ്കീർണ്ണമാക്കേണ്ടതില്ല).

    ഇൻ ലൈൻ സ്ഥാനംനിങ്ങളുടെ പ്രോജക്റ്റ് സംരക്ഷിക്കാൻ ആഗ്രഹിക്കുന്ന ഡിസ്കിലെ സ്ഥാനം നിർണ്ണയിക്കുക. ഒപ്പം ബട്ടൺ അമർത്തുക ശരി. ഒരു ഏകദേശ സ്ക്രീൻ കാഴ്ച ചിത്രം 1.2 ൽ കാണിച്ചിരിക്കുന്നു


    അരി. 1.2

    മുകളിൽ വലത് ഭാഗത്ത് ഒരു പ്രോജക്റ്റ് മാനേജ്മെൻ്റ് വിൻഡോ ഉണ്ട് സൊല്യൂഷൻ എക്സ്പ്ലോറർ കാണുക - സൊല്യൂഷൻ എക്സ്പ്ലോറർ. പ്രോജക്റ്റിൽ ഉൾപ്പെടുത്തിയിരിക്കുന്ന എല്ലാ ഉറവിടങ്ങളും ഈ വിൻഡോ ലിസ്റ്റുചെയ്യുന്നു:

    1. AssemblyInfo.cs - ഇതിനെക്കുറിച്ചുള്ള വിവരങ്ങൾ അസംബ്ലി.

      അതിൻ്റെ നിർവ്വഹണത്തിൻ്റെ ഫലമായി, കംപൈലർ വിളിക്കപ്പെടുന്നവ സൃഷ്ടിക്കുന്നു അസംബ്ലി- IL കോഡും മെറ്റാഡാറ്റയും അടങ്ങുന്ന ഒരു exe അല്ലെങ്കിൽ dll വിപുലീകരണമുള്ള ഒരു ഫയൽ.

    2. System, System.Data, System.Xml - സാധാരണ ലൈബ്രറികളിലേക്കുള്ള ലിങ്കുകൾ.
    3. Program.cs - C# ഭാഷയിലുള്ള പ്രോഗ്രാം ടെക്സ്റ്റ്.

    അഭിപ്രായം. VS-ൻ്റെ മറ്റ് പതിപ്പുകളിൽ, ആപ്ലിക്കേഷൻ കുറുക്കുവഴിയുടെ രൂപത്തിന് ഉത്തരവാദിയായ ico എക്സ്റ്റൻഷനുള്ള ഒരു ഫയലും ഇതിൽ ഉൾപ്പെടുന്നു.

    സ്ക്രീനിൻ്റെ താഴെ വലതുഭാഗത്ത് ഒരു പ്രോപ്പർട്ടി വിൻഡോ ഉണ്ട്. പ്രോപ്പർട്ടികൾ. ഇത് അടച്ചിട്ടുണ്ടെങ്കിൽ, നിങ്ങൾക്ക് കമാൻഡ് ഉപയോഗിച്ച് ഇത് പ്രവർത്തനക്ഷമമാക്കാം കാണുക - പ്രോപ്പർട്ടികൾ. തിരഞ്ഞെടുത്ത ഘടകത്തിൻ്റെ ഏറ്റവും പ്രധാനപ്പെട്ട സവിശേഷതകൾ ഈ വിൻഡോ പ്രദർശിപ്പിക്കുന്നു.

    എൻവയോൺമെൻ്റ് സ്വയമേവ സൃഷ്‌ടിച്ച പ്രോഗ്രാം ടെക്‌സ്‌റ്റ് അടങ്ങുന്ന എഡിറ്റർ വിൻഡോയാണ് പ്രധാന സ്‌ക്രീൻ സ്‌പെയ്‌സ് ഉൾക്കൊള്ളുന്നത്. പ്രോഗ്രാമർ ആവശ്യമായ കോഡ് ചേർക്കുന്ന ഒരു ചട്ടക്കൂടാണ് ടെക്സ്റ്റ്. ഈ സാഹചര്യത്തിൽ, സംവരണം ചെയ്ത വാക്കുകൾ നീലയിലും അഭിപ്രായങ്ങൾ പച്ചയിലും പ്രധാന വാചകം കറുപ്പിലും പ്രദർശിപ്പിക്കും.

    വാചകം ഘടനാപരമായതാണ്. മൈനസ് ചിഹ്നത്തിൽ ക്ലിക്കുചെയ്യുന്നത് കോഡ് ബ്ലോക്ക് മറയ്ക്കും; പ്ലസ് ചിഹ്നത്തിൽ ക്ലിക്ക് ചെയ്താൽ അത് തുറക്കും.

    പ്രോജക്റ്റ് അടങ്ങുന്ന ഫോൾഡർ തുറന്ന് അതിൻ്റെ ഘടന നോക്കാം (ചിത്രം 1.3 കാണുക). കംപൈൽ ചെയ്തതിനുശേഷം മാത്രമേ ബോൾഡിലുള്ള ഫയലുകൾ ദൃശ്യമാകൂ.


    അരി. 1.3

    ഈ ഘട്ടത്തിൽ, ഇനിപ്പറയുന്ന ഫയലുകൾ ഞങ്ങൾക്ക് പ്രത്യേക താൽപ്പര്യമുള്ളതായിരിക്കും:

    1. Hello.sln- മുഴുവൻ പ്രോജക്റ്റിനും ഉത്തരവാദിത്തമുള്ള പ്രധാന ഫയൽ. എഡിറ്റിംഗിനായി നിങ്ങൾക്ക് ഒരു പ്രോജക്റ്റ് തുറക്കണമെങ്കിൽ, നിങ്ങൾ ഈ ഫയൽ തിരഞ്ഞെടുക്കേണ്ടതുണ്ട്. ശേഷിക്കുന്ന ഫയലുകൾ യാന്ത്രികമായി തുറക്കും.
    2. Program.cs– സോഴ്സ് കോഡ് അടങ്ങുന്ന ഒരു ഫയൽ - C# ൽ എഴുതിയ കോഡ്. ഈ ഫയലാണ് ഞങ്ങൾ നേരിട്ട് പ്രവർത്തിക്കുന്നത്.
    3. Hello.exe– ജനറേറ്റ് ചെയ്ത IL കോഡും പ്രൊജക്റ്റ് മെറ്റാഡാറ്റയും അടങ്ങുന്ന ഒരു ഫയൽ. മറ്റൊരു വിധത്തിൽ പറഞ്ഞാൽ, .Net പ്ലാറ്റ്ഫോം ഇൻസ്റ്റാൾ ചെയ്തിട്ടുള്ള ഏത് കമ്പ്യൂട്ടറിലും എക്സിക്യൂട്ട് ചെയ്യാൻ കഴിയുന്ന ഒരു റെഡിമെയ്ഡ് ആപ്ലിക്കേഷനാണ് ഈ ഫയൽ.

    ഇനി പ്രോഗ്രാം ടെക്സ്റ്റ് തന്നെ നോക്കാം.

    സിസ്റ്റം ഉപയോഗിച്ച്നെയിംസ്‌പെയ്‌സിൽ നിന്ന് സാധാരണ ക്ലാസ് നാമങ്ങൾ ഉപയോഗിക്കാൻ അനുവദിക്കുന്ന ഒരു നിർദ്ദേശമാണ് സിസ്റ്റംഅവ നിർവചിച്ചിരിക്കുന്ന സ്ഥലത്തിൻ്റെ പേര് വ്യക്തമാക്കാതെ നേരിട്ട്.

    കീവേഡ് നെയിംസ്പേസ്പ്രോജക്റ്റിനായി സ്വന്തം നെയിംസ്പേസ് സൃഷ്ടിക്കുന്നു, അതിനെ സ്ഥിരസ്ഥിതിയായി പ്രോജക്റ്റ് നാമം എന്ന് വിളിക്കുന്നു. ഞങ്ങളുടെ കാര്യത്തിൽ, നെയിംസ്പേസിനെ ഹലോ എന്ന് വിളിക്കുന്നു. എന്നിരുന്നാലും, പ്രോഗ്രാമർക്ക് മറ്റൊരു പേര് വ്യക്തമാക്കാൻ അവകാശമുണ്ട്. ഒരു നെയിംസ്പേസ് ഒരു പേരിൻ്റെ വ്യാപ്തിയെ പരിമിതപ്പെടുത്തുന്നു, അത് ആ സ്ഥലത്ത് മാത്രം അർത്ഥപൂർണ്ണമാക്കുന്നു. സോഫ്‌റ്റ്‌വെയർ ഒബ്‌ജക്‌റ്റുകൾ മറ്റ് ആപ്ലിക്കേഷനുകളിലെ പേരുകളുമായി പൊരുത്തപ്പെടുമോ എന്ന ആശങ്കയില്ലാതെ നിങ്ങൾക്ക് പേര് നൽകാനാണ് ഇത് ചെയ്യുന്നത്. അതിനാൽ, സോഫ്റ്റ്‌വെയർ ഒബ്‌ജക്‌റ്റുകളുടെ വൈരുദ്ധ്യമുള്ള പേരുകൾ ഒഴിവാക്കാൻ നെയിംസ്‌പെയ്‌സ് നിങ്ങളെ അനുവദിക്കുന്നു, ആപ്ലിക്കേഷനുകൾ സംവദിക്കുമ്പോൾ ഇത് വളരെ പ്രധാനമാണ്.

    C# ഒരു ഒബ്ജക്റ്റ്-ഓറിയൻ്റഡ് ഭാഷയാണ്, അതിനാൽ അതിൽ എഴുതിയിരിക്കുന്ന ഒരു പ്രോഗ്രാം പരസ്പരം സംവദിക്കുന്ന ക്ലാസുകളുടെ ഒരു ശേഖരമായിരിക്കും. പ്രോഗ്രാം എന്ന് പേരുള്ള ഒരു ക്ലാസ് സ്വയമേവ സൃഷ്‌ടിക്കപ്പെട്ടു (ഫ്രെയിംവർക്കിൻ്റെ മറ്റ് പതിപ്പുകൾ ക്ലാസ് 1 എന്ന പേരിൽ ഒരു ക്ലാസ് സൃഷ്‌ടിച്ചേക്കാം).

    ഈ ക്ലാസിൽ ഒരു രീതി മാത്രമേ അടങ്ങിയിട്ടുള്ളൂ - മെയിൻ() രീതി. മെയിൻ() രീതി പ്രോഗ്രാമിലേക്കുള്ള പ്രവേശന പോയിൻ്റാണ്, അതായത്. ഈ രീതി ഉപയോഗിച്ചാണ് ആപ്ലിക്കേഷൻ എക്സിക്യൂഷൻ ആരംഭിക്കുന്നത്. ഓരോ C# പ്രോഗ്രാമിനും ഒരു മെയിൻ() രീതി ഉണ്ടായിരിക്കണം.

    അഭിപ്രായം ഒരു പ്രോഗ്രാമിൽ ഒന്നിലധികം മെയിൻ() രീതികൾ ഉണ്ടാകുന്നത് സാങ്കേതികമായി സാധ്യമാണ്, ഈ സാഹചര്യത്തിൽ പ്രോഗ്രാമിലേക്കുള്ള പ്രവേശന പോയിൻ്റ് ഏത് മെയിൻ() രീതിയാണെന്ന് C# കംപൈലറിനോട് പറയാൻ നിങ്ങൾ ഒരു കമാൻഡ് ലൈൻ പാരാമീറ്റർ ഉപയോഗിക്കേണ്ടതുണ്ട്.

    ഡീബഗ്-ആരംഭിക്കുക ഡീബഗ്ഗിംഗ് പിശകുകളില്ലാതെ പ്രോഗ്രാം എക്സിക്യൂട്ട് ചെയ്താൽ, കൺസോൾ വിൻഡോയിൽ ഒരു സന്ദേശം പ്രദർശിപ്പിക്കും, അത് ഫ്ലാഷ് ചെയ്യുകയും വേഗത്തിൽ അടയ്ക്കുകയും ചെയ്യും. സന്ദേശം സാധാരണ മോഡിൽ കാണുന്നതിന്, Ctrl+F5 അമർത്തുക അല്ലെങ്കിൽ കമാൻഡ് പ്രവർത്തിപ്പിക്കുക ഡീബഗ്-ഡീബഗ്ഗിംഗ് ഇല്ലാതെ ആരംഭിക്കുക.ഞങ്ങളുടെ കാര്യത്തിൽ, ഇനിപ്പറയുന്ന കൺസോൾ വിൻഡോ തുറക്കും:

    പ്രോഗ്രാം കോഡിൽ പിശകുകൾ ഉണ്ടെങ്കിൽ, ഉദാഹരണത്തിന്, ഔട്ട്‌പുട്ട് കമാൻഡിന് ശേഷം ഒരു അർദ്ധവിരാമം ഇല്ലെങ്കിൽ, F5 കീ അമർത്തിയാൽ, ഒരു ഡയലോഗ് ബോക്സ് തുറക്കും, അതിൽ ഒരു പിശക് കണ്ടെത്തിയെന്നും ഒരു ചോദ്യവും പ്രദർശിപ്പിക്കുന്ന ഒരു സന്ദേശം പ്രദർശിപ്പിക്കും. കൂടുതൽ ജോലി തുടരുക. ഉത്തരം പറഞ്ഞാൽ അതെ, തുടർന്ന് പ്രോഗ്രാമിൻ്റെ മുമ്പത്തെ വിജയകരമായി സമാഹരിച്ച പതിപ്പ് എക്സിക്യൂട്ട് ചെയ്യപ്പെടും. അല്ലെങ്കിൽ, പ്രക്രിയ നിർത്തുകയും പിശക് ലിസ്റ്റ് വിൻഡോയിലേക്ക് നിയന്ത്രണം മാറ്റുകയും ചെയ്യും പിശക് പട്ടിക.

    വ്യായാമം ചെയ്യുക. കോഡിൻ്റെ വാചകം മാറ്റുക, അങ്ങനെ സന്ദേശം സ്ക്രീനിൽ ദൃശ്യമാകും: ഹുറേ!!!ഇന്ന് കമ്പ്യൂട്ടർ സയൻസ്!!!

    ആമുഖം

    ഒരു പ്ലാറ്റ്ഫോം കുറഞ്ഞത് ഒരു പ്രോഗ്രാം നിർവ്വഹണ പരിതസ്ഥിതിയാണ് കൂടാതെ... പ്രോഗ്രാം കോഡിൻ്റെ വികസനത്തിൻ്റെയും നിർവ്വഹണത്തിൻ്റെയും സവിശേഷതകൾ നിർണ്ണയിക്കുന്ന മറ്റെന്തെങ്കിലും - പ്രോഗ്രാമിംഗ് മാതൃകകൾ, പ്രോഗ്രാമിംഗ് ഭാഷകൾ, നിരവധി അടിസ്ഥാന ക്ലാസുകൾ.

    Microsoft.NET (.NET Framework) ഒരു സോഫ്റ്റ്‌വെയർ പ്ലാറ്റ്‌ഫോമാണ്. ഇനിപ്പറയുന്ന പ്രധാന ഘടകങ്ങൾ അടങ്ങിയിരിക്കുന്നു: പൊതു ഭാഷ റൺടൈം (CLR), .NET ഫ്രെയിംവർക്ക് ക്ലാസ് ലൈബ്രറി (.NET FCL).

    CLS (കോമൺ ലാംഗ്വേജ് സ്പെസിഫിക്കേഷൻ) എന്നത് പ്രോഗ്രാമിംഗ് ഭാഷകൾക്കുള്ള ഒരു പൊതു സ്പെസിഫിക്കേഷനാണ്. .NET ഫ്രെയിംവർക്കിലെ ലൈബ്രറികളുടെ സ്രഷ്‌ടാക്കൾക്കും കംപൈലർമാർക്കും മാർഗ്ഗനിർദ്ദേശം നൽകുന്ന ഒരു കൂട്ടം നിർമ്മിതിയും നിയന്ത്രണങ്ങളുമാണ് ഇത്. CLS-നെ പിന്തുണയ്ക്കുന്ന ഏത് പ്രോഗ്രാമിംഗ് ഭാഷയിൽ നിന്നും CLS അനുസരിച്ച് നിർമ്മിച്ച ലൈബ്രറികൾ ഉപയോഗിക്കാം. CLS-അനുയോജ്യമായ ഭാഷകൾക്ക് (വിഷ്വൽ സി#, വിഷ്വൽ ബേസിക്, വിഷ്വൽ സി++ ഉൾപ്പെടെ) പരസ്പരം സംയോജിപ്പിക്കാൻ കഴിയും. Microsoft.NET പ്ലാറ്റ്‌ഫോമിലെ ഭാഷാ ആശയവിനിമയത്തിനുള്ള അടിസ്ഥാനം CLS ആണ്.

    CLR (പൊതുഭാഷാ റൺടൈം) - റൺടൈം എൻവയോൺമെൻ്റ് അല്ലെങ്കിൽ വെർച്വൽ മെഷീൻ. നിർമ്മാണം പൂർത്തിയായെന്ന് ഉറപ്പാക്കുന്നു. .NET ഫ്രെയിംവർക്കിൻ്റെ പ്രധാന ഘടകം. ഒരു വെർച്വൽ മെഷീൻ എന്നത് ഒരു എൻക്യാപ്‌സുലേറ്റഡ് (പ്രത്യേക) ഉയർന്ന തലത്തിലുള്ള നിയന്ത്രിത ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിൻ്റെ സംഗ്രഹമാണ്, അത് പ്രോഗ്രാം കോഡിൻ്റെ നിർവ്വഹണം ഉറപ്പാക്കുകയും ഇനിപ്പറയുന്ന ജോലികൾ പരിഹരിക്കുകയും ചെയ്യുന്നു:

    § കോഡ് മാനേജ്മെൻ്റ് (ലോഡിംഗും എക്സിക്യൂഷനും),

    § ഒബ്ജക്റ്റുകൾ സ്ഥാപിക്കുമ്പോൾ മെമ്മറി മാനേജ്മെൻ്റ്,

    § ആപ്ലിക്കേഷൻ മെമ്മറി ഐസൊലേഷൻ,

    § കോഡ് സുരക്ഷാ പരിശോധന,

    § ഇൻ്റർമീഡിയറ്റ് ഭാഷയെ മെഷീൻ കോഡാക്കി മാറ്റൽ,

    § മെറ്റാഡാറ്റയിലേക്കുള്ള ആക്സസ് (തരങ്ങളെക്കുറിച്ചുള്ള വിപുലമായ വിവരങ്ങൾ),

    § ക്രോസ്-ലാംഗ്വേജ് ഒഴിവാക്കലുകൾ ഉൾപ്പെടെ, ഒഴിവാക്കൽ കൈകാര്യം ചെയ്യൽ,

    § നിയന്ത്രിതവും കൈകാര്യം ചെയ്യാത്തതുമായ കോഡ് (COM ഒബ്‌ജക്‌റ്റുകൾ ഉൾപ്പെടെ) തമ്മിലുള്ള ഇടപെടൽ

    § വികസന സേവനങ്ങൾക്കുള്ള പിന്തുണ (പ്രൊഫൈലിംഗ്, ഡീബഗ്ഗിംഗ് മുതലായവ).

    ചുരുക്കത്തിൽ, ഒരു ബിൽഡ് നടത്താൻ ആവശ്യമായ സേവനങ്ങളുടെ ഒരു കൂട്ടമാണ് CLR. ഈ സാഹചര്യത്തിൽ, അസംബ്ലി പ്രോഗ്രാം കോഡ് മാനേജ് ചെയ്യാവുന്നതാണ് (കോഡ്, എക്സിക്യൂട്ട് ചെയ്യുമ്പോൾ, CLR, പ്രത്യേകിച്ച്, മെമ്മറി മാനേജ്മെൻ്റ് സിസ്റ്റം സജീവമാക്കുന്നു) അല്ലെങ്കിൽ നിയന്ത്രിക്കപ്പെടാത്ത ("പഴയ" പ്രോഗ്രാം കോഡ്).

    CLR-ൽ തന്നെ രണ്ട് പ്രധാന ഘടകങ്ങൾ അടങ്ങിയിരിക്കുന്നു: കോർ (mscoree.dll), അടിസ്ഥാന ക്ലാസ് ലൈബ്രറി (mscorlib.dll). കമ്പ്യൂട്ടറിൽ .NET പ്ലാറ്റ്ഫോം ഇൻസ്റ്റാൾ ചെയ്യാൻ കുറഞ്ഞത് ഒരു ശ്രമമെങ്കിലും നടത്തിയിട്ടുണ്ടെന്നതിൻ്റെ ഉറപ്പായ സൂചനയാണ് ഡിസ്കിലെ ഈ ഫയലുകളുടെ സാന്നിധ്യം.

    റൺടൈം കോർ mscoree.dll ലൈബ്രറിയായി നടപ്പിലാക്കുന്നു. ഒരു അസംബ്ലി ലിങ്ക് ചെയ്യുമ്പോൾ, അതിൽ പ്രത്യേക വിവരങ്ങൾ നിർമ്മിക്കപ്പെടുന്നു, അത് ആപ്ലിക്കേഷൻ സമാരംഭിക്കുമ്പോൾ (EXE) അല്ലെങ്കിൽ ലൈബ്രറി ലോഡ് ചെയ്യുമ്പോൾ (നിയന്ത്രിതമല്ലാത്ത ഒരു മൊഡ്യൂളിൽ നിന്ന് ഒരു DLL വിളിക്കുന്നു - ഒരു നിയന്ത്രിത അസംബ്ലി ലോഡുചെയ്യുന്നതിന് LoadLibrary ഫംഗ്ഷനിലേക്ക് വിളിക്കുന്നു) നയിക്കുന്നു. CLR-ൻ്റെ ലോഡിംഗും സമാരംഭവും. CLR പ്രോസസ്സിൻ്റെ വിലാസ സ്ഥലത്ത് ലോഡ് ചെയ്തുകഴിഞ്ഞാൽ, റൺടൈം കേർണൽ ഇനിപ്പറയുന്ന പ്രവർത്തനങ്ങൾ ചെയ്യുന്നു:

    § അസംബ്ലി സ്ഥലം കണ്ടെത്തുന്നു,

    § അസംബ്ലി മെമ്മറിയിലേക്ക് ലോഡ് ചെയ്യുന്നു,

    § അസംബ്ലിയുടെ ഉള്ളടക്കങ്ങൾ വിശകലനം ചെയ്യുന്നു (ക്ലാസുകൾ, ഘടനകൾ, ഇൻ്റർഫേസുകൾ എന്നിവ തിരിച്ചറിയുന്നു),

    § മെറ്റാഡാറ്റ വിശകലനം ചെയ്യുന്നു,

    § ഇൻ്റർമീഡിയറ്റ് ലാംഗ്വേജ് (IL) കോഡ് പ്ലാറ്റ്‌ഫോം-ആശ്രിത നിർദ്ദേശങ്ങളിലേക്ക് (അസംബ്ലി കോഡ്) സമാഹരിക്കുന്നു,

    § സുരക്ഷയുമായി ബന്ധപ്പെട്ട പരിശോധനകൾ നടത്തുന്നു,

    § പ്രധാന ആപ്ലിക്കേഷൻ ത്രെഡ് ഉപയോഗിച്ച്, പ്രോസസ്സർ കമാൻഡുകളായി പരിവർത്തനം ചെയ്ത അസംബ്ലി കോഡിൻ്റെ ഒരു ശകലത്തിലേക്ക് നിയന്ത്രണം കൈമാറുന്നു.

    FCL (.NET Framework Class Library) എന്നത് Microsoft .NET പ്ലാറ്റ്‌ഫോമിൽ ഉൾപ്പെടുത്തിയിരിക്കുന്ന ക്ലാസുകൾ, ഇൻ്റർഫേസുകൾ, ടൈപ്പ് സിസ്റ്റങ്ങൾ (മൂല്യം തരങ്ങൾ) എന്നിവയുടെ CLS-അനുയോജ്യമായ ഒബ്ജക്റ്റ്-ഓറിയൻ്റഡ് ലൈബ്രറിയാണ്.

    ഈ ലൈബ്രറി സിസ്റ്റം പ്രവർത്തനക്ഷമതയിലേക്കുള്ള ആക്‌സസ് നൽകുന്നു, കൂടാതെ .NET ആപ്ലിക്കേഷനുകൾ, ഘടകങ്ങൾ, നിയന്ത്രണങ്ങൾ എന്നിവ വികസിപ്പിക്കുന്നതിനുള്ള അടിസ്ഥാനമായി ഇത് ഉദ്ദേശിക്കുന്നു.

    CLR-ൻ്റെ രണ്ടാമത്തെ ഘടകമാണ് നെറ്റ് ക്ലാസ് ലൈബ്രറി.

    പ്രോഗ്രാമിംഗ് ഭാഷ വികസിപ്പിക്കാൻ ഉപയോഗിക്കുന്ന ആർക്കിടെക്ചർ, ഉദ്ദേശ്യം പരിഗണിക്കാതെ തന്നെ, എല്ലാ .NET ആപ്ലിക്കേഷനുകൾക്കും NET FCL ഉപയോഗിക്കാൻ കഴിയും. പ്രത്യേകിച്ചും, അതിൽ അടങ്ങിയിരിക്കുന്നു:

    § ബിൽറ്റ്-ഇൻ (എലിമെൻ്ററി) തരങ്ങൾ, ക്ലാസുകളായി അവതരിപ്പിച്ചിരിക്കുന്നു (.NET പ്ലാറ്റ്‌ഫോമിൽ എല്ലാം ഘടനകളിലോ ക്ലാസുകളിലോ നിർമ്മിച്ചതാണ്),

    ഒരു ഗ്രാഫിക്കൽ യൂസർ ഇൻ്റർഫേസ് വികസിപ്പിക്കുന്നതിനുള്ള § ക്ലാസുകൾ (വിൻഡോസ് ഫോം),

    ASP.NET സാങ്കേതികവിദ്യ (വെബ് ഫോമുകൾ) അടിസ്ഥാനമാക്കിയുള്ള വെബ് ആപ്ലിക്കേഷനുകളും വെബ് സേവനങ്ങളും വികസിപ്പിക്കുന്നതിനുള്ള § ക്ലാസുകൾ,

    XML, ഇൻ്റർനെറ്റ് പ്രോട്ടോക്കോളുകൾ വികസിപ്പിക്കുന്നതിനുള്ള § ക്ലാസുകൾ (FTP, HTTP, SMTP, SOAP),

    ഡാറ്റാബേസുകളിൽ (ADO.NET) പ്രവർത്തിക്കുന്ന ആപ്ലിക്കേഷനുകൾ വികസിപ്പിക്കുന്നതിനുള്ള § ക്ലാസുകൾ,

    § അതോടൊപ്പം തന്നെ കുടുതല്.

    Microsoft.NET പ്ലാറ്റ്‌ഫോമിൽ പ്രവർത്തിക്കാൻ രൂപകൽപ്പന ചെയ്ത ഒരു ആപ്ലിക്കേഷനാണ് നെറ്റ് ആപ്ലിക്കേഷൻ. CLS-ന് അനുസൃതമായ പ്രോഗ്രാമിംഗ് ഭാഷകളിൽ നടപ്പിലാക്കുന്നു.

    MSIL (മൈക്രോസോഫ്റ്റ് ഇൻ്റർമീഡിയറ്റ് ലാംഗ്വേജ്, IL - ഇൻ്റർമീഡിയ ലാംഗ്വേജ് എന്നും അറിയപ്പെടുന്നു) Microsoft.NET പ്ലാറ്റ്‌ഫോമിൻ്റെ ഒരു ഇൻ്റർമീഡിയറ്റ് ഭാഷയാണ്. .NET ആപ്ലിക്കേഷനുകൾക്കുള്ള സോഴ്സ് കോഡ് CLS സ്പെസിഫിക്കേഷനുമായി പൊരുത്തപ്പെടുന്ന പ്രോഗ്രാമിംഗ് ഭാഷകളിൽ എഴുതിയിരിക്കുന്നു. CLS സ്പെസിഫിക്കേഷനുമായി പൊരുത്തപ്പെടുന്ന പ്രോഗ്രാമിംഗ് ഭാഷകൾക്കായി, MSIL-ലേക്ക് ഒരു കൺവെർട്ടർ നിർമ്മിക്കാൻ കഴിയും. അതിനാൽ, ഈ ഭാഷകളിലെ പ്രോഗ്രാമുകൾ MSIL-ൽ ഇൻ്റർമീഡിയറ്റ് കോഡിലേക്ക് വിവർത്തനം ചെയ്യാൻ കഴിയും. CLS പാലിക്കുന്നതിന് നന്ദി, വിവിധ ഭാഷകളിൽ എഴുതിയ പ്രോഗ്രാം കോഡ് വിവർത്തനം ചെയ്യുന്നത് അനുയോജ്യമായ IL കോഡിന് കാരണമാകുന്നു.

    വാസ്തവത്തിൽ, MSIL ഒരു വെർച്വൽ പ്രോസസർ അസംബ്ലറാണ്.

    മെറ്റാഡാറ്റ - പ്രോഗ്രാം കോഡ് MSIL-ലേക്ക് പരിവർത്തനം ചെയ്യുമ്പോൾ, പ്രോഗ്രാമിൽ ഉപയോഗിക്കുന്ന ഡാറ്റയെക്കുറിച്ചുള്ള വിവരങ്ങൾ അടങ്ങിയ ഒരു METADATA ബ്ലോക്കും ജനറേറ്റുചെയ്യുന്നു. വാസ്തവത്തിൽ, മൊഡ്യൂളിൽ നിർവചിച്ചിരിക്കുന്ന ഡാറ്റ തരങ്ങളെ കുറിച്ചുള്ള വിവരങ്ങൾ അടങ്ങുന്ന പട്ടികകളുടെ സെറ്റുകളാണ് ഇവ, ഈ മൊഡ്യൂൾ പരാമർശിച്ചിരിക്കുന്ന ഡാറ്റ തരങ്ങളെ കുറിച്ചുള്ള വിവരങ്ങൾ. മുമ്പ്, അത്തരം വിവരങ്ങൾ പ്രത്യേകം സംഭരിച്ചിരുന്നു. ഉദാഹരണത്തിന്, ഒരു ആപ്ലിക്കേഷനിൽ ഇൻ്റർഫേസ് ഡെഫനിഷൻ ലാംഗ്വേജിൽ (IDL) വിവരിച്ചിരിക്കുന്ന ഇൻ്റർഫേസുകളെക്കുറിച്ചുള്ള വിവരങ്ങൾ ഉൾപ്പെട്ടേക്കാം. മെറ്റാഡാറ്റ ഇപ്പോൾ നിയന്ത്രിത മൊഡ്യൂളിൻ്റെ ഭാഗമാണ്.

    പ്രത്യേകിച്ചും, മെറ്റാഡാറ്റ ഇതിനായി ഉപയോഗിക്കുന്നു:

    § തരങ്ങളെക്കുറിച്ചുള്ള വിവരങ്ങൾ സംരക്ഷിക്കുന്നു. കംപൈൽ ചെയ്യുമ്പോൾ, ഹെഡ്ഡറും ലൈബ്രറി ഫയലുകളും ഇനി ആവശ്യമില്ല. നിയന്ത്രിത മൊഡ്യൂളുകളിൽ നിന്ന് ആവശ്യമായ എല്ലാ വിവരങ്ങളും കമ്പൈലർ നേരിട്ട് വായിക്കുന്നു,

    മൊഡ്യൂൾ എക്സിക്യൂഷൻ സമയത്ത് § കോഡ് പരിശോധന,

    § മൊഡ്യൂൾ എക്സിക്യൂഷൻ സമയത്ത് ഡൈനാമിക് മെമ്മറി മാനേജ്മെൻ്റ് (മെമ്മറി ഫ്രീയിംഗ്),

    § സ്റ്റാൻഡേർഡ് ടൂളുകൾ ഉപയോഗിച്ച് ഒരു പ്രോഗ്രാം വികസിപ്പിക്കുമ്പോൾ (Microsoft Visual Studio.NET)

    § ഡൈനാമിക് സൂചന (ഇൻ്റലിസെൻസ്) മെറ്റാഡാറ്റയെ അടിസ്ഥാനമാക്കിയാണ് നൽകിയിരിക്കുന്നത്.

    MSIL-ലേക്ക് വിവർത്തനം നടപ്പിലാക്കിയ ഭാഷകൾ:

    കൂടാതെ മറ്റു പല ഭാഷകളും.

    എക്സിക്യൂട്ടബിൾ - കംപൈലർ (ഇൻപുട്ട് ഭാഷ) പരിഗണിക്കാതെ തന്നെ, ഒരു .NET ആപ്ലിക്കേഷൻ വിവർത്തനത്തിൻ്റെ ഔട്ട്പുട്ട് ഒരു നിയന്ത്രിത എക്സിക്യൂട്ടബിൾ ആണ് (നിയന്ത്രിത മൊഡ്യൂൾ). ഇതൊരു സാധാരണ വിൻഡോസ് പോർട്ടബിൾ എക്സിക്യൂട്ടബിൾ (PE - Portable Executable) ഫയലാണ്.

    നിയന്ത്രിത മൊഡ്യൂളിൻ്റെ ഘടകങ്ങൾ പട്ടികയിൽ അവതരിപ്പിച്ചിരിക്കുന്നു.

    നിയന്ത്രിത മൊഡ്യൂളിൽ നിയന്ത്രിത കോഡ് അടങ്ങിയിരിക്കുന്നു.

    CLR-ൽ പ്രവർത്തിക്കുന്ന കോഡാണ് മാനേജ്ഡ് കോഡ്. രീതി പ്രഖ്യാപനങ്ങൾ ഉൾക്കൊള്ളുന്ന ഉറവിട മൊഡ്യൂളിൽ പ്രഖ്യാപിച്ച ഘടനകളുടെയും ക്ലാസുകളുടെയും അടിസ്ഥാനത്തിലാണ് കോഡ് നിർമ്മിച്ചിരിക്കുന്നത്. നിയന്ത്രിത കോഡിന് റൺടൈം എൻവയോൺമെൻ്റിനായി ഒരു നിശ്ചിത തലത്തിലുള്ള വിവരങ്ങൾ (മെറ്റാഡാറ്റ) ഉണ്ടായിരിക്കണം. C#, വിഷ്വൽ ബേസിക്, JScript കോഡ് എന്നിവ ഡിഫോൾട്ടായി കൈകാര്യം ചെയ്യുന്നു. വിഷ്വൽ C++ കോഡ് ഡിഫോൾട്ടായി മാനേജ് ചെയ്യപ്പെടുന്നില്ല, എന്നാൽ ഒരു കമാൻഡ് ലൈൻ ആർഗ്യുമെൻ്റ് (/CLR) വ്യക്തമാക്കിക്കൊണ്ട് കംപൈലറിന് നിയന്ത്രിത കോഡ് നിർമ്മിക്കാൻ കഴിയും. നിയന്ത്രിത ഡാറ്റയിൽ പ്രവർത്തിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്ന മെക്കാനിസങ്ങളുടെ സാന്നിധ്യമാണ് നിയന്ത്രിത കോഡിൻ്റെ സവിശേഷതകളിലൊന്ന്.

    മൊഡ്യൂൾ കോഡിൻ്റെ നിർവ്വഹണ സമയത്ത്, നിയന്ത്രിത മെമ്മറിയിൽ (നിയന്ത്രിത കൂമ്പാരത്തിൽ) സ്ഥാപിക്കുകയും CLR മാലിന്യ ശേഖരണം നശിപ്പിക്കുകയും ചെയ്യുന്ന വസ്തുക്കളാണ് നിയന്ത്രിത ഡാറ്റ. C#, വിഷ്വൽ ബേസിക്, JScript .NET ഡാറ്റ എന്നിവ ഡിഫോൾട്ടായി കൈകാര്യം ചെയ്യുന്നു. C# ഡാറ്റയും മാനേജ് ചെയ്യാത്തതായി അടയാളപ്പെടുത്താം.

    .NET ഫ്രെയിംവർക്കിലെ ഒരു ആപ്ലിക്കേഷൻ്റെ അടിസ്ഥാന നിർമ്മാണ ബ്ലോക്കാണ് അസംബ്ലി. നിയന്ത്രിത മൊഡ്യൂളുകൾ അസംബ്ലികളായി സംയോജിപ്പിച്ചിരിക്കുന്നു. ഒന്നോ അതിലധികമോ നിയന്ത്രിത മൊഡ്യൂളുകളുടെയോ റിസോഴ്സ് ഫയലുകളുടെയോ ലോജിക്കൽ ഗ്രൂപ്പിംഗാണ് അസംബ്ലി. അസംബ്ലികൾക്കുള്ളിൽ നിയന്ത്രിത മൊഡ്യൂളുകൾ റൺടൈം എൻവയോൺമെൻ്റിൽ (CLR) നടപ്പിലാക്കുന്നു. ഒരു അസംബ്ലി ഒന്നുകിൽ എക്‌സിക്യൂട്ടബിൾ ആപ്പ് (.EXE എക്സ്റ്റൻഷനുള്ള ഒരു ഫയലിൽ) അല്ലെങ്കിൽ ഒരു ലൈബ്രറി മൊഡ്യൂൾ (.DLL എക്സ്റ്റൻഷനുള്ള ഒരു ഫയലിൽ) ആകാം. അതേ സമയം, അസംബ്ലിക്ക് സാധാരണ (പഴയ-ശൈലി!) എക്സിക്യൂട്ടബിൾ ആപ്ലിക്കേഷനുകളുമായും ലൈബ്രറി മൊഡ്യൂളുകളുമായും പൊതുവായി ഒന്നുമില്ല.

    ഒരു അസംബ്ലി ഡിക്ലറേഷൻ (മാനിഫെസ്റ്റ്) ഒരു അസംബ്ലിയുടെ അവിഭാജ്യ ഘടകമാണ്. മെറ്റാഡാറ്റ പട്ടികകളുടെ മറ്റൊരു കൂട്ടം:

    § ഒരു ടെക്സ്റ്റ് നാമം, അതിൻ്റെ പതിപ്പ്, സംസ്കാരം, ഡിജിറ്റൽ സിഗ്നേച്ചർ എന്നിവയുടെ രൂപത്തിൽ അസംബ്ലിയെ തിരിച്ചറിയുന്നു (അസംബ്ലി ആപ്ലിക്കേഷനുകൾക്കിടയിൽ പങ്കിട്ടിട്ടുണ്ടെങ്കിൽ),

    § ഉൾപ്പെടുത്തിയ ഫയലുകൾ നിർണ്ണയിക്കുന്നു (പേരും ഹാഷും പ്രകാരം),

    അസംബ്ലിയിൽ നിന്ന് കയറ്റുമതി ചെയ്യുന്നവയുടെ വിവരണം ഉൾപ്പെടെ, അസംബ്ലിയിൽ നിലനിൽക്കുന്ന തരങ്ങളും വിഭവങ്ങളും § സൂചിപ്പിക്കുന്നു,

    § മറ്റ് അസംബ്ലികളിലെ ഡിപൻഡൻസികൾ പട്ടികപ്പെടുത്തുന്നു,

    അസംബ്ലി ശരിയായി പ്രവർത്തിക്കുന്നതിന് ആവശ്യമായ അവകാശങ്ങളുടെ സെറ്റ് § സൂചിപ്പിക്കുന്നു.

    ആപ്ലിക്കേഷൻ ശരിയായി പ്രവർത്തിക്കുന്നതിന് റൺടൈമിൽ ഈ വിവരങ്ങൾ ഉപയോഗിക്കുന്നു.

    പ്രോസസ്സറിന് IL കോഡ് എക്സിക്യൂട്ട് ചെയ്യാൻ കഴിയില്ല. കൂടാതെ, IL കോഡിൻ്റെ വിവർത്തനം ഒരു JIT കംപൈലറാണ് (കൃത്യസമയത്ത്) നടത്തുന്നത്, അത് CLR ഉപയോഗിച്ച് ആവശ്യാനുസരണം സജീവമാക്കുകയും പ്രോസസ്സർ നടപ്പിലാക്കുകയും ചെയ്യുന്നു. ഈ സാഹചര്യത്തിൽ, JIT കംപൈലറിൻ്റെ ഫലങ്ങൾ റാമിൽ സംഭരിച്ചിരിക്കുന്നു. വിവർത്തനം ചെയ്ത IL കോഡിൻ്റെ ഒരു ശകലത്തിനും അനുബന്ധ മെമ്മറി ബ്ലോക്കിനും ഇടയിൽ ഒരു മാപ്പിംഗ് സ്ഥാപിച്ചു, ഇത് പിന്നീട് JIT കംപൈലറിലേക്കുള്ള ആവർത്തിച്ചുള്ള കോളിനെ മറികടന്ന് ഈ മെമ്മറി ബ്ലോക്കിൽ എഴുതിയിരിക്കുന്ന പ്രോസസ്സർ നിർദ്ദേശങ്ങളിലേക്ക് നിയന്ത്രണം കൈമാറാൻ CLR-നെ അനുവദിക്കുന്നു.

    CLR പരിതസ്ഥിതി വിവിധ പ്രോഗ്രാമിംഗ് ഭാഷകളിൽ നടപ്പിലാക്കിയ സോഫ്റ്റ്‌വെയർ ഘടകങ്ങളുടെ സഹകരണവും ഇടപെടലും അനുവദിക്കുന്നു.

    മുമ്പ് ജനറേറ്റ് ചെയ്ത ഒരു മെറ്റാഡാറ്റ ബ്ലോക്കിനെ അടിസ്ഥാനമാക്കി, CLR, .NET ആപ്ലിക്കേഷനുകൾ പ്രവർത്തിപ്പിക്കുന്ന ഇടയിൽ കാര്യക്ഷമമായ ഇടപെടൽ ഉറപ്പാക്കുന്നു.

    CLR-നെ സംബന്ധിച്ചിടത്തോളം, ഏത് പ്രോഗ്രാമിംഗ് ഭാഷകളിൽ എഴുതിയാലും എല്ലാ അസംബ്ലികളും ഒരുപോലെയാണ്. പ്രധാന കാര്യം അവർ CLS പാലിക്കുന്നു എന്നതാണ്. വാസ്തവത്തിൽ, CLR പ്രോഗ്രാമിംഗ് ഭാഷകളുടെ അതിരുകൾ ലംഘിക്കുന്നു (ക്രോസ്-ലാംഗ്വേജ് ഇൻ്ററോപ്പറബിളിറ്റി). അതിനാൽ, CLS, CTS എന്നിവയ്ക്ക് നന്ദി, .NET ആപ്ലിക്കേഷനുകൾ യഥാർത്ഥത്തിൽ MSIL (IL) ആപ്ലിക്കേഷനുകളാണ്.

    പരമ്പരാഗതമായി ആപ്ലിക്കേഷൻ ഡെവലപ്പർമാരുടെ ശ്രദ്ധാകേന്ദ്രമായ നിരവധി പ്രശ്നങ്ങൾ CLR ഏറ്റെടുക്കുന്നു. CLR നിർവ്വഹിക്കുന്ന പ്രവർത്തനങ്ങളിൽ ഇവ ഉൾപ്പെടുന്നു:

    § സ്ഥിരീകരണവും ഡൈനാമിക് (JIT) MSIL കോഡിൻ്റെ പ്രോസസർ നിർദ്ദേശങ്ങളിലേക്കുള്ള സമാഹാരവും,

    § മെമ്മറി, പ്രോസസ്സ്, ത്രെഡ് മാനേജ്മെൻ്റ്,

    § പ്രക്രിയകൾ തമ്മിലുള്ള ഇടപെടലിൻ്റെ ഓർഗനൈസേഷൻ,

    § സുരക്ഷാ പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നു (സിസ്റ്റത്തിൽ നിലവിലുള്ള സുരക്ഷാ നയത്തിൻ്റെ ചട്ടക്കൂടിനുള്ളിൽ).

    ഒരു പ്രോസസിൻ്റെ അഡ്രസ് സ്‌പെയ്‌സിൽ ഒരു ആപ്ലിക്കേഷനെ ഒറ്റപ്പെടുത്താൻ ഉപയോഗിക്കുന്ന ഒരു ലോജിക്കൽ അസംബ്ലി കണ്ടെയ്‌നറാണ് AppDomain. ഒരു ആപ്ലിക്കേഷൻ സൃഷ്‌ടിച്ച എല്ലാ ഒബ്‌ജക്‌റ്റുകളും ഒരു പ്രത്യേക ആപ്ലിക്കേഷൻ ഡൊമെയ്‌നിൽ സൃഷ്‌ടിച്ചതാണ്. ഒരു ഓപ്പറേറ്റിംഗ് സിസ്റ്റം പ്രോസസ്സിനുള്ളിൽ ഒന്നിലധികം ആപ്ലിക്കേഷൻ ഡൊമെയ്‌നുകൾ നിലനിൽക്കും. ആപ്ലിക്കേഷൻ ഡൊമെയ്‌നിനുള്ളിൽ മെമ്മറി കൈകാര്യം ചെയ്യുന്നതിലൂടെ CLR ആപ്ലിക്കേഷനുകളെ ഒറ്റപ്പെടുത്തുന്നു.

    CLR-ൽ പ്രവർത്തിക്കുന്ന കോഡ് (CLR പ്രോസസ്സ്) ഒരേ സമയം കമ്പ്യൂട്ടറിൽ പ്രവർത്തിക്കുന്ന മറ്റ് പ്രക്രിയകളിൽ നിന്ന് വ്യത്യസ്തമാണ്.

    പ്രക്രിയയ്ക്ക് പ്രത്യേകമായി അനുവദിച്ചിരിക്കുന്ന വിലാസ സ്ഥലത്ത് സിസ്റ്റം ഒരു സാധാരണ പ്രക്രിയ സമാരംഭിക്കുന്നു. ഒരു പ്രക്രിയയിൽ ഒന്നിലധികം നിയന്ത്രിത ആപ്ലിക്കേഷനുകൾ പ്രവർത്തിപ്പിക്കാനുള്ള കഴിവ് CLR നൽകുന്നു. നിയന്ത്രിത ഓരോ ആപ്ലിക്കേഷനും അതിൻ്റേതായ ആപ്ലിക്കേഷൻ ഡൊമെയ്‌നുമായി ബന്ധപ്പെട്ടിരിക്കുന്നു (ചുരുക്കമുള്ള AppDomain). പ്രധാന ഡൊമെയ്‌നിന് പുറമേ, അപ്ലിക്കേഷനിൽ നിരവധി അധിക ഡൊമെയ്‌നുകൾ സൃഷ്‌ടിക്കാൻ കഴിയും.

    CLR റൺടൈമിൻ്റെ ഘടന ചിത്രത്തിൽ കാണിച്ചിരിക്കുന്നു.

    ഡൊമെയ്ൻ പ്രോപ്പർട്ടികൾ:

    § ഡൊമെയ്‌നുകൾ പരസ്പരം വേർതിരിച്ചിരിക്കുന്നു. ഒരു ഡൊമെയ്‌നിൽ സൃഷ്‌ടിച്ച ഒബ്‌ജക്റ്റുകൾ മറ്റൊരു ഡൊമെയ്‌നിൽ നിന്ന് ആക്‌സസ് ചെയ്യാൻ കഴിയില്ല.

    § ആ ഡൊമെയ്‌നുകളുമായി ബന്ധപ്പെട്ട എല്ലാ അസംബ്ലികളും ഡൊമെയ്‌നുകൾ അൺലോഡ് ചെയ്യാൻ CLR-ന് കഴിയും,

    § അധിക കോൺഫിഗറേഷനും ഡൊമെയ്ൻ പരിരക്ഷയും സാധ്യമാണ്,

    § ഡൊമെയ്‌നുകൾക്കിടയിൽ ഡാറ്റാ കൈമാറ്റത്തിനായി ഒരു പ്രത്യേക സുരക്ഷിത ആക്‌സസ് സംവിധാനം (മാർഷലിംഗ്) നടപ്പിലാക്കുന്നു.

    § .NET ഫ്രെയിംവർക്ക് അതിൻ്റേതായ ഘടക മോഡൽ വികസിപ്പിച്ചെടുത്തിട്ടുണ്ട്, ഇവയുടെ ഘടകങ്ങൾ .NET അസംബ്ലികൾ (.NET-അസംബ്ലി) ആണ്, കൂടാതെ COM/COM+ മോഡലുമായി നേരിട്ടുള്ളതും പിന്നോക്കവുമായ അനുയോജ്യതയ്ക്കായി, CLR-ന് ബിൽറ്റ്-ഇൻ മെക്കാനിസങ്ങളുണ്ട് (COM Interop ) അത് .NET നിയമങ്ങൾ അനുസരിച്ച് COM ഒബ്ജക്റ്റുകളിലേക്കും COM നിയമങ്ങൾക്കനുസൃതമായി .NET അസംബ്ലികളിലേക്കും പ്രവേശനം നൽകുന്നു. എന്നിരുന്നാലും, .NET ആപ്ലിക്കേഷനുകൾക്ക് വിൻഡോസ് രജിസ്ട്രിയിൽ ഘടകങ്ങൾ രജിസ്റ്റർ ചെയ്യേണ്ട ആവശ്യമില്ല.

    ഒരു .NET ആപ്ലിക്കേഷൻ പ്രവർത്തിപ്പിക്കുന്നതിന്, ഈ ആപ്ലിക്കേഷനുമായി ബന്ധപ്പെട്ട അസംബ്ലികൾ ഒരു ഡയറക്ടറിയിൽ സ്ഥാപിച്ചാൽ മതിയാകും. നിരവധി ആപ്ലിക്കേഷനുകളിൽ അസംബ്ലി ഉപയോഗിക്കാൻ കഴിയുമെങ്കിൽ, അത് ജിഎസിയിൽ (ഗ്ലോബൽ അസംബ്ലി കാഷെ) ഒരു പ്രത്യേക യൂട്ടിലിറ്റി ഉപയോഗിച്ച് സ്ഥാപിക്കുകയും രജിസ്റ്റർ ചെയ്യുകയും ചെയ്യുന്നു.

    CTS - കോമൺ ടൈപ്പ് സിസ്റ്റം സ്റ്റാൻഡേർഡ് ടൈപ്പ് സിസ്റ്റം. എല്ലാ പ്ലാറ്റ്ഫോം ഭാഷകളിലും പിന്തുണയ്ക്കുന്നു. .NET OOP-യുടെ കുട്ടിയായതിനാൽ, ഞങ്ങൾ ഇവിടെ സംസാരിക്കുന്നത് പ്രാഥമിക തരങ്ങൾ, ക്ലാസുകൾ, ഘടനകൾ, ഇൻ്റർഫേസുകൾ, ഡെലിഗേറ്റുകൾ, സംഖ്യകൾ എന്നിവയെക്കുറിച്ചാണ്.

    റൺടൈം എൻവയോൺമെൻ്റിൻ്റെ ഒരു പ്രധാന ഭാഗമാണ് കോമൺ ടൈപ്പ് സിസ്റ്റം, സിൻ്റക്‌റ്റിക് കൺസ്ട്രക്‌റ്റുകളുടെ ഘടന, കോമൺ റൺടൈം തരങ്ങൾ പ്രഖ്യാപിക്കുന്നതിനും ഉപയോഗിക്കുന്നതിനും പ്രയോഗിക്കുന്നതിനുമുള്ള വഴികൾ നിർവചിക്കുന്നു. CTS-ൽ പൊതുവായ മുൻനിർവചിക്കപ്പെട്ട തരങ്ങളുടെ സിസ്റ്റം, അവയുടെ ഉപയോഗം, മാനേജ്മെൻ്റ് (മൂല്യം പരിവർത്തന നിയമങ്ങൾ) എന്നിവയെക്കുറിച്ചുള്ള അടിസ്ഥാന വിവരങ്ങൾ അടങ്ങിയിരിക്കുന്നു. ബഹുഭാഷാ നിയന്ത്രിത ആപ്ലിക്കേഷനുകൾ സമന്വയിപ്പിക്കുന്നതിൽ CTS ഒരു പ്രധാന പങ്ക് വഹിക്കുന്നു.

    ഒരു ടൈപ്പ് സിസ്റ്റം ഒരൊറ്റ ഗ്രൂപ്പായി ക്രമീകരിക്കുന്നതിനുള്ള ഒരു മാർഗമാണ് നെയിംസ്പേസ്. അടിസ്ഥാന ക്ലാസുകളുടെ ഒരു പൊതു ഭാഷാ ലൈബ്രറിയുണ്ട്. നെയിംസ്പേസ് ആശയം ഈ ലൈബ്രറിയിൽ കാര്യക്ഷമമായ ഓർഗനൈസേഷനും നാവിഗേഷനും നൽകുന്നു. പ്രോഗ്രാമിംഗ് ഭാഷ പരിഗണിക്കാതെ തന്നെ, പൊതുവായ നെയിംസ്പേസുകളിൽ ഗ്രൂപ്പുചെയ്യുന്നതിലൂടെ ചില ക്ലാസുകളിലേക്കുള്ള പ്രവേശനം നൽകുന്നു.

    നെയിംസ്പേസ് ഉദ്ദേശം
    സിസ്റ്റം
    സിസ്റ്റം.ഡാറ്റ ഡാറ്റാബേസുകൾ ആക്സസ് ചെയ്യാൻ
    System.Data.Common
    System.Data.OleDb
    System.Data.SqlClient
    സിസ്റ്റം.ശേഖരങ്ങൾ കണ്ടെയ്നർ വസ്തുക്കളുമായി പ്രവർത്തിക്കുന്നതിനുള്ള ക്ലാസുകൾ
    സിസ്റ്റം.ഡയഗ്നോസ്റ്റിക്സ് കോഡ് കണ്ടെത്തുന്നതിനും ഡീബഗ്ഗിംഗ് ചെയ്യുന്നതിനുമുള്ള ക്ലാസുകൾ
    സിസ്റ്റം.ഡ്രോയിംഗ് ഗ്രാഫിക്സ് പിന്തുണ ക്ലാസുകൾ
    സിസ്റ്റം.ഡ്രോയിംഗ്.ഡ്രോയിംഗ്2ഡി
    സിസ്റ്റം.ഡ്രോയിംഗ്.പ്രിൻ്റിംഗ്
    System.IO I/O പിന്തുണ
    System.Net നെറ്റ്‌വർക്കുകൾ വഴിയുള്ള ഡാറ്റ കൈമാറ്റത്തിനുള്ള പിന്തുണ
    സിസ്റ്റം.പ്രതിബിംബം റൺടൈമിൽ ഇഷ്‌ടാനുസൃത തരങ്ങളുമായി പ്രവർത്തിക്കുന്നു
    System.Reflection.Emit
    System.Runtime.InteropServices "റെഗുലർ കോഡ്" - DLL-കൾ, COM സെർവറുകൾ, റിമോട്ട് ആക്സസ് എന്നിവയുമായുള്ള ആശയവിനിമയത്തിനുള്ള പിന്തുണ
    സിസ്റ്റം.റൺടൈം.റിമോട്ടിംഗ്
    സിസ്റ്റം.സെക്യൂരിറ്റി ക്രിപ്റ്റോഗ്രഫി, അനുമതികൾ
    സിസ്റ്റം.ത്രെഡിംഗ് ത്രെഡുകൾ ഉപയോഗിച്ച് പ്രവർത്തിക്കുന്നു
    System.WEB വെബ് ആപ്ലിക്കേഷനുകൾക്കൊപ്പം പ്രവർത്തിക്കുന്നു
    System.Windows.Form വിൻഡോസ് ഇൻ്റർഫേസ് ഘടകങ്ങളുമായി പ്രവർത്തിക്കുന്നു
    System.XML XML ഡാറ്റ പിന്തുണ

    നിയന്ത്രിക്കാത്ത എക്സിക്യൂട്ടബിൾ മൊഡ്യൂളുകളുടെ (പതിവ് വിൻഡോസ് ആപ്ലിക്കേഷനുകൾ) നിർവ്വഹണം വിൻഡോസ് സിസ്റ്റം നേരിട്ട് നൽകുന്നു. നിയന്ത്രിക്കാത്ത മൊഡ്യൂളുകൾ വിൻഡോസ് പരിതസ്ഥിതിയിൽ "ലളിതമായ" പ്രക്രിയകളായി പ്രവർത്തിക്കുന്നു. അത്തരം മൊഡ്യൂളുകൾ പാലിക്കേണ്ട ഒരേയൊരു ആവശ്യകത അവ വിൻഡോസ് പരിതസ്ഥിതിയിൽ ശരിയായി പ്രവർത്തിക്കുന്നു എന്നതാണ്. അവ "ശരിയായി" പ്രവർത്തിക്കണം (സിസ്റ്റം ക്രാഷ് ചെയ്യരുത്, മെമ്മറി ലീക്കുകൾ ഒഴിവാക്കുക, മറ്റ് പ്രക്രിയകൾ തടയരുത്, കൂടാതെ പ്രോസസ്സുകൾക്ക് വേണ്ടി പ്രവർത്തിക്കാൻ OS തന്നെ ശരിയായി ഉപയോഗിക്കുക). അതായത്, വിൻഡോസിന് കീഴിൽ പ്രവർത്തിക്കുന്നതിനുള്ള ഏറ്റവും പൊതുവായ നിയമങ്ങൾ പാലിക്കുക.

    അതേ സമയം, കൈകാര്യം ചെയ്യാത്ത മൊഡ്യൂളിൻ്റെ ശരിയായ നിർവ്വഹണത്തിലെ മിക്ക പ്രശ്നങ്ങളും (ഇൻ്ററാക്ഷൻ, മെമ്മറി അലോക്കേഷൻ, സ്വതന്ത്രമാക്കൽ എന്നിവയുടെ പ്രശ്നങ്ങൾ) ആപ്ലിക്കേഷൻ ഡെവലപ്പർമാരുടെ പ്രശ്നങ്ങളാണ്. ഉദാഹരണത്തിന്, അറിയപ്പെടുന്ന COM സാങ്കേതികവിദ്യ ഒരു ആപ്ലിക്കേഷനിൽ വൈവിധ്യമാർന്ന ഘടകങ്ങളുടെ ഇടപെടൽ സംഘടിപ്പിക്കുന്നതിനുള്ള ഒരു മാർഗമാണ്.

    ഒരു വസ്തു, വിശാലമായ അർത്ഥത്തിൽ, ഏതെങ്കിലും മൂല്യങ്ങൾ രേഖപ്പെടുത്തുന്നതിനായി പ്രോഗ്രാം നിർവ്വഹണ വേളയിൽ അനുവദിച്ച മെമ്മറിയുടെ (സ്റ്റാക്ക് അല്ലെങ്കിൽ കൂമ്പാരം) ഒരു മേഖലയാണ്. മെമ്മറിയിലെ സ്ഥാനം (വിലാസം) തരം (അധിനിവേശ പ്രദേശത്തിൻ്റെ വലുപ്പം നിർണ്ണയിക്കുന്ന ഒരു നിശ്ചിത പ്രോപ്പർട്ടികൾ, മൂല്യം വ്യാഖ്യാനിക്കുന്ന രീതി, മൂല്യങ്ങളുടെ ശ്രേണി, ഒരു ഒബ്ജക്റ്റ് കൈകാര്യം ചെയ്യുമ്പോൾ അനുവദനീയമായ പ്രവർത്തനങ്ങളുടെ സെറ്റ്) ഇതിൻ്റെ സവിശേഷതയാണ്.

    ഒരു പ്രോഗ്രാമിൻ്റെ നിയന്ത്രിത മെമ്മറിയിൽ ഒരു ഒബ്‌ജക്റ്റ് ലഭ്യമല്ലാത്തപ്പോൾ നിർണ്ണയിക്കാൻ CLR-നെ അനുവദിക്കുന്ന ഒരു സംവിധാനമാണ് മാലിന്യ ശേഖരണം. മാലിന്യ ശേഖരണ സമയത്ത്, നിയന്ത്രിത മെമ്മറി സ്വതന്ത്രമാകുന്നു. ആപ്ലിക്കേഷൻ ഡെവലപ്പറെ സംബന്ധിച്ചിടത്തോളം, മാലിന്യ ശേഖരണ സംവിധാനം ഉള്ളത് അർത്ഥമാക്കുന്നത് അയാൾക്ക് മെമ്മറി സ്വതന്ത്രമാക്കുന്നതിനെക്കുറിച്ച് ഇനി വിഷമിക്കേണ്ടതില്ല എന്നാണ്. എന്നിരുന്നാലും, ഇതിന് പ്രോഗ്രാമിംഗ് ശൈലിയിൽ മാറ്റങ്ങൾ ആവശ്യമായി വന്നേക്കാം, ഉദാഹരണത്തിന്, സിസ്റ്റം ഉറവിടങ്ങൾ സ്വതന്ത്രമാക്കുന്നതിനുള്ള നടപടിക്രമത്തിന് പ്രത്യേക ശ്രദ്ധ നൽകണം. ആപ്ലിക്കേഷൻ നിയന്ത്രണത്തിൽ സിസ്റ്റം ഉറവിടങ്ങൾ റിലീസ് ചെയ്യുന്ന രീതികൾ നടപ്പിലാക്കേണ്ടത് ആവശ്യമാണ്.

    ഒബ്ജക്റ്റ് മൂല്യങ്ങളുടെ (വേരിയബിളുകളും സ്ഥിരാങ്കങ്ങളും) താൽക്കാലിക സംഭരണത്തിനായി രൂപകൽപ്പന ചെയ്ത പ്രത്യേകമായി സംഘടിപ്പിച്ച മെമ്മറി ഏരിയയാണ് സ്റ്റാക്ക്, രീതികൾ വിളിക്കുമ്പോൾ പാരാമീറ്ററുകൾ കൈമാറുന്നതിനും റിട്ടേൺ വിലാസം സംഭരിക്കുന്നതിനും. കൂമ്പാരവുമായി താരതമ്യപ്പെടുത്തുമ്പോൾ സ്റ്റാക്ക് മാനേജ്മെൻ്റ് വളരെ ലളിതമാണ്. സ്റ്റാക്കിൻ്റെ മുകളിലുള്ള അനുബന്ധ രജിസ്റ്ററിൻ്റെ മൂല്യം മാറ്റുന്നതിനെ അടിസ്ഥാനമാക്കിയുള്ളതാണ് ഇത്. സ്റ്റാക്ക് വലുപ്പം കുറയുമ്പോൾ, വസ്തുക്കൾ നഷ്ടപ്പെടും.

    C#-ലെ പ്രോഗ്രാം

    ഒരു പ്രോഗ്രാം ശരിയായി നിർമ്മിച്ച (സി# കംപൈലറിൽ നിന്ന് എതിർപ്പുകൾ ഉന്നയിക്കുന്നില്ല) വാക്യങ്ങളുടെ ക്രമമാണ്, അതിൻ്റെ അടിസ്ഥാനത്തിൽ ഒരു അസംബ്ലി രൂപീകരിക്കപ്പെടുന്നു.

    പൊതുവേ, പ്രോഗ്രാമർ ക്ലാസ് ഡിക്ലറേഷനുകൾ അടങ്ങിയ ഒരു ഫയൽ സൃഷ്ടിക്കുന്നു, അത് കമ്പൈലറിലേക്ക് ഇൻപുട്ടായി വിതരണം ചെയ്യുന്നു. സമാഹാര ഫലം വിവർത്തകൻ ഒരു അസംബ്ലിയായി അവതരിപ്പിക്കുകയും പ്രോഗ്രാമറുടെ മുൻഗണനകളാൽ നിർണ്ണയിക്കപ്പെടുകയും ചെയ്യുന്നു. തത്വത്തിൽ, അസംബ്ലി രണ്ട് തരത്തിലാകാം:

    § പോർട്ടബിൾ എക്സിക്യൂട്ടബിൾ ഫയൽ (.exe എക്സ്റ്റൻഷനോടുകൂടിയ PE ഫയൽ), CLR-ൻ്റെ നേരിട്ടുള്ള നിർവ്വഹണത്തിന് അനുയോജ്യമാണ്,

    § ഡൈനാമിക് ലിങ്ക് ലൈബ്രറി ഫയൽ (.dll വിപുലീകരണത്തോടുകൂടിയ DLL ഫയൽ), ഏതെങ്കിലും ആപ്ലിക്കേഷൻ്റെ ഭാഗമായി പുനരുപയോഗം ചെയ്യാൻ ഉദ്ദേശിച്ചുള്ളതാണ്.

    ഏത് സാഹചര്യത്തിലും, ഇൻപുട്ട് കോഡിൻ്റെ അടിസ്ഥാനത്തിൽ, വിവർത്തകൻ ഒരു IL മൊഡ്യൂൾ, ഒരു മാനിഫെസ്റ്റ് നിർമ്മിക്കുകയും ഒരു അസംബ്ലി ജനറേറ്റ് ചെയ്യുകയും ചെയ്യുന്നു. ഭാവിയിൽ, അസംബ്ലി ഒന്നുകിൽ JIT സമാഹരണത്തിന് ശേഷം നടത്താം, അല്ലെങ്കിൽ മറ്റ് പ്രോഗ്രാമുകളുടെ ഭാഗമായി ഉപയോഗിക്കാം.