Microsoft.NET പ്ലാറ്റ്ഫോം. വാസ്തുവിദ്യയുടെയും കഴിവുകളുടെയും അവലോകനം. നെറ്റ് ഫ്രെയിംവർക്ക് ടെക്നോളജി അവലോകനം നെറ്റ് ഫ്രെയിംവർക്കിന്റെ പ്രധാന ഘടകങ്ങൾ

.NET ഫ്രെയിംവർക്ക് എന്നത് ഒരു പുതിയ തലമുറ ആപ്ലിക്കേഷനുകളുടെയും XML വെബ് സേവനങ്ങളുടെയും നിർമ്മാണത്തെയും നിർവ്വഹണത്തെയും പിന്തുണയ്ക്കുന്ന ഒരു സംയോജിത വിൻഡോസ് ഘടകമാണ്. .NET ഫ്രെയിംവർക്ക് ഇനിപ്പറയുന്ന ലക്ഷ്യങ്ങൾ മനസ്സിൽ വെച്ചാണ് രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത്:

· ഒബ്ജക്റ്റ് കോഡ് പ്രാദേശികമായി സംഭരിക്കുന്നതിനും നടപ്പിലാക്കുന്നതിനും, ഇന്റർനെറ്റിൽ വിതരണം ചെയ്യുന്ന കോഡിന്റെ പ്രാദേശിക നിർവ്വഹണത്തിനും അല്ലെങ്കിൽ വിദൂര നിർവ്വഹണത്തിനും സ്ഥിരമായ ഒബ്ജക്റ്റ്-ഓറിയന്റഡ് പ്രോഗ്രാമിംഗ് അന്തരീക്ഷം നൽകുക.

· സോഫ്‌റ്റ്‌വെയർ വിന്യാസത്തിലും പതിപ്പ് നിയന്ത്രണത്തിലും വൈരുദ്ധ്യങ്ങൾ കുറയ്ക്കുന്ന ഒരു കോഡ് എക്‌സിക്യൂഷൻ എൻവയോൺമെന്റ് നൽകുക.

· അജ്ഞാതർ അല്ലെങ്കിൽ പൂർണ്ണമായി വിശ്വസ്തരായ മൂന്നാം കക്ഷികൾ സൃഷ്ടിച്ച കോഡ് ഉൾപ്പെടെ, കോഡിന്റെ സുരക്ഷിതമായ നിർവ്വഹണത്തിന് ഉറപ്പുനൽകുന്ന ഒരു കോഡ് നിർവ്വഹണ അന്തരീക്ഷം നൽകുന്നു.

· സ്ക്രിപ്റ്റിംഗ് അല്ലെങ്കിൽ വ്യാഖ്യാനിച്ച കോഡ് എക്സിക്യൂഷൻ എൻവയോൺമെന്റുകളിലെ പ്രകടന പ്രശ്നങ്ങൾ ഒഴിവാക്കുന്ന ഒരു കോഡ് എക്സിക്യൂഷൻ എൻവയോൺമെന്റ് നൽകുക.

· വിൻഡോസ് ആപ്ലിക്കേഷനുകളും വെബ് ആപ്ലിക്കേഷനുകളും പോലെയുള്ള വ്യത്യസ്ത തരത്തിലുള്ള ആപ്ലിക്കേഷനുകളിൽ ഉടനീളം സ്ഥിരതയുള്ള ഡെവലപ്പർ അനുഭവം നൽകുക.

· .NET ഫ്രെയിംവർക്ക് കോഡ് മറ്റേതെങ്കിലും കോഡുമായി സംയോജിപ്പിക്കുന്നുവെന്ന് ഉറപ്പാക്കുന്ന വ്യവസായ നിലവാരത്തെ അടിസ്ഥാനമാക്കിയുള്ള പരസ്പര പ്രവർത്തനക്ഷമത വികസിപ്പിക്കുക.

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

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


ഉദാഹരണത്തിന്, നിയന്ത്രിത കോഡിനായി ഒരു സ്കെയിലബിൾ, സെർവർ-സൈഡ് എൻവയോൺമെന്റ് നൽകുന്നതിന് ASP.NET റൺടൈം ഹോസ്റ്റുചെയ്യുന്നു. ASP.NET ആപ്ലിക്കേഷനുകളും XML വെബ് സേവനങ്ങളും പ്രവർത്തനക്ഷമമാക്കുന്നതിന് ASP.NET റൺടൈമുമായി നേരിട്ട് പ്രവർത്തിക്കുന്നു, ഇവ രണ്ടും ഈ വിഷയത്തിൽ പിന്നീട് ചർച്ചചെയ്യും.

റൺടൈം ഹോസ്റ്റുചെയ്യുന്ന (MIME തരം വിപുലീകരണത്തിന്റെ രൂപത്തിൽ) കൈകാര്യം ചെയ്യാത്ത ഒരു ആപ്ലിക്കേഷന്റെ ഉദാഹരണമാണ് Internet Explorer. റൺടൈം ഹോസ്റ്റുചെയ്യാൻ ഇന്റർനെറ്റ് എക്സ്പ്ലോറർ ഉപയോഗിക്കുന്നത് നിയന്ത്രിത ഘടകങ്ങളോ വിൻഡോസ് ഫോമുകളുടെ നിയന്ത്രണങ്ങളോ HTML പ്രമാണങ്ങളിൽ ഉൾപ്പെടുത്താൻ നിങ്ങളെ പ്രാപ്തരാക്കുന്നു. ഈ രീതിയിൽ റൺടൈം ഹോസ്റ്റുചെയ്യുന്നത് നിയന്ത്രിത മൊബൈൽ കോഡ് (Microsoft® ActiveX® നിയന്ത്രണങ്ങൾക്ക് സമാനമായത്) സാധ്യമാക്കുന്നു, എന്നാൽ സെമി-ട്രസ്റ്റഡ് എക്‌സിക്യൂഷനും ഒറ്റപ്പെട്ട ഫയൽ സംഭരണവും പോലുള്ള നിയന്ത്രിത കോഡിന് മാത്രം വാഗ്ദാനം ചെയ്യാൻ കഴിയുന്ന കാര്യമായ മെച്ചപ്പെടുത്തലുകളോടെ.

നിങ്ങളുടെ ആപ്ലിക്കേഷനുകളുമായും മൊത്തത്തിലുള്ള സിസ്റ്റവുമായും പൊതുവായ ഭാഷാ റൺടൈമിന്റെയും ക്ലാസ് ലൈബ്രറിയുടെയും ബന്ധം ഇനിപ്പറയുന്ന ചിത്രീകരണം കാണിക്കുന്നു. ഒരു വലിയ ആർക്കിടെക്ചറിനുള്ളിൽ നിയന്ത്രിത കോഡ് എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്ന് ചിത്രീകരണം കാണിക്കുന്നു.

സന്ദർഭത്തിൽ നെറ്റ് ചട്ടക്കൂട്

ഇനിപ്പറയുന്ന വിഭാഗങ്ങൾ .NET ഫ്രെയിംവർക്കിന്റെ പ്രധാന ഘടകങ്ങളും സവിശേഷതകളും കൂടുതൽ വിശദമായി വിവരിക്കുന്നു.


ഉദാഹരണത്തിന്, ASP.NET റൺടൈം ഹോസ്റ്റുചെയ്യുകയും സെർവർ-സൈഡ് നിയന്ത്രിത കോഡിനായി ഒരു സ്കെയിലബിൾ അന്തരീക്ഷം നൽകുകയും ചെയ്യുന്നു. ഈ വിഷയത്തിൽ പിന്നീട് ചർച്ച ചെയ്ത ASP.NET ആപ്ലിക്കേഷനുകളുടെയും XML വെബ് സേവനങ്ങളുടെയും നിർവ്വഹണം പ്രവർത്തനക്ഷമമാക്കുന്നതിന് ASP.NET റൺടൈമുമായി നേരിട്ട് പ്രവർത്തിക്കുന്നു.

റൺടൈം (MIME ടൈപ്പ് എക്സ്റ്റൻഷനുകളുടെ രൂപത്തിൽ) ഹോസ്റ്റ് ചെയ്യുന്ന ഒരു മാനേജ് ചെയ്യാത്ത ആപ്ലിക്കേഷന്റെ ഉദാഹരണമാണ് Internet Explorer. Internet Explorer-ൽ റൺടൈം ഹോസ്റ്റുചെയ്യുന്നത്, HTML പ്രമാണങ്ങളിൽ നിയന്ത്രിത ഘടകങ്ങളോ Windows Forms നിയന്ത്രണങ്ങളോ ഉൾച്ചേർക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു. ഈ എൻവയോൺമെന്റ് ലേഔട്ട് നിയന്ത്രിത മൊബൈൽ കോഡ് (Microsoft® ActiveX® നിയന്ത്രണങ്ങൾക്ക് സമാനമായത്) പ്രവർത്തിപ്പിക്കുന്നത് സാധ്യമാക്കുന്നു, എന്നാൽ നിയന്ത്രിത കോഡിന്റെ കാര്യമായ നേട്ടങ്ങൾ, അതായത് ഭാഗിക വിശ്വാസ നിർവ്വഹണം, ഒറ്റപ്പെട്ട ഫയൽ സംഭരണം എന്നിവ.

പൊതുവായ ഭാഷാ റൺടൈമും ക്ലാസ് ലൈബ്രറിയും ഉപയോക്തൃ ആപ്ലിക്കേഷനുകളുമായും മുഴുവൻ സിസ്റ്റവുമായും എങ്ങനെ സംവദിക്കുന്നുവെന്ന് ഇനിപ്പറയുന്ന ചിത്രം കാണിക്കുന്നു. വിശാലമായ ആർക്കിടെക്ചറിനുള്ളിൽ നിയന്ത്രിത കോഡ് എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്നും ചിത്രം കാണിക്കുന്നു.

സന്ദർഭത്തിൽ നെറ്റ് ചട്ടക്കൂട്

ഇനിപ്പറയുന്ന വിഭാഗങ്ങൾ .NET ഫ്രെയിംവർക്കിന്റെ പ്രധാന ഘടകങ്ങളെയും സവിശേഷതകളെയും കുറിച്ച് കൂടുതൽ വിശദമായ വിവരണം നൽകുന്നു.

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

C#-നുള്ള .NET ഫ്രെയിംവർക്കിലും CLR റൺടൈമിലും എന്റെ വീഡിയോ കാണുക

C# പ്രോഗ്രാമിംഗ് ഭാഷതാരതമ്യേന പുതിയതാണ്, പക്ഷേ അത് ഇതിനകം വിശ്വാസം നേടിയിട്ടുണ്ട്. ആദ്യ പതിപ്പിന്റെ പ്രകാശനം 2002 ഫെബ്രുവരിയിൽ നടന്നു. എഴുതുന്ന സമയത്ത് ഭാഷയുടെ ഏറ്റവും പുതിയ പതിപ്പ് C# 7.2 ആണ്, അത് 2017 ഓഗസ്റ്റ് 16-ന് പുറത്തിറങ്ങി.

സി # ഭാഷയുടെ വാക്യഘടന, പേര് സൂചിപ്പിക്കുന്നത് പോലെ, സി പോലുള്ള ഭാഷകളുടെ കുടുംബത്തിന്റെ ഭാഗമാണ്, ഈ ഗ്രൂപ്പിൽ നിന്നുള്ള മറ്റ് ജനപ്രിയ ഭാഷകൾക്ക് സമാനമാണ് (സി ++, ജാവ). അതിനാൽ, നിങ്ങൾക്ക് ഈ ഭാഷകളിലൊന്ന് ഇതിനകം പരിചിതമാണെങ്കിൽ, C# പ്രോഗ്രാമിംഗ് ഭാഷയിൽ പ്രാവീണ്യം നേടുന്നത് നിങ്ങൾക്ക് വളരെ എളുപ്പമായിരിക്കും.

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

.NET പ്ലാറ്റ്ഫോം

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

  • ക്രോസ്-പ്ലാറ്റ്ഫോം– .NET ഫ്രെയിംവർക്ക് മിക്ക ആധുനിക ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങളും പിന്തുണയ്ക്കുന്നുവിൻഡോസ്, കൂടാതെ ലിനക്സ് സിസ്റ്റങ്ങളും മൊബൈൽ ആപ്ലിക്കേഷനുകളും പിന്തുണയ്ക്കുന്ന ആപ്ലിക്കേഷനുകൾ സൃഷ്ടിക്കാനും കഴിയും.
  • ബഹുഭാഷ- ഉപയോഗിച്ച പ്രോഗ്രാമിംഗ് ഭാഷയിൽ എഴുതിയ സോഴ്സ് കോഡ് കോമൺ ഇന്റർമീഡിയറ്റ് ലാംഗ്വേജ് (സിഐഎൽ) കോഡിലേക്ക് വിവർത്തനം ചെയ്തതിനാൽ, പിന്തുണയ്ക്കുന്ന ഏത് പ്രോഗ്രാമിംഗ് ഭാഷയിലും വികസിപ്പിക്കാനും ഒരു പരിഹാരത്തിൽ വ്യത്യസ്ത പ്രോഗ്രാമിംഗ് ഭാഷകൾ ഉപയോഗിക്കാനും കഴിയും. C#, VB.NET, C++, F# എന്നിവയാണ് ഏറ്റവും ജനപ്രിയ പിന്തുണയുള്ള ഭാഷകൾ.
  • ക്ലാസുകളുടെയും സാങ്കേതികവിദ്യകളുടെയും വിപുലമായ ലൈബ്രറി- ആവശ്യമായ പ്രശ്നങ്ങൾ പരിഹരിക്കുന്നതിന് ധാരാളം റെഡി-ടു-യുസ് ലൈബ്രറികൾ ഉണ്ട്. പലപ്പോഴും ആപ്ലിക്കേഷന്റെ ലോ-ലെവൽ ലോജിക് നടപ്പിലാക്കേണ്ട ആവശ്യമില്ല; ന്യൂജെറ്റ് പാക്കേജ് മാനേജർ വഴി സൗകര്യപ്രദമായി വിതരണം ചെയ്യുന്ന ഒരു റെഡിമെയ്ഡ് സൊല്യൂഷൻ ഉപയോഗിച്ചാൽ മതി. കൂടാതെ, .NET പ്ലാറ്റ്ഫോം ആവശ്യമുള്ള ഏത് തരത്തിലുള്ള സോഫ്റ്റ്വെയറും എളുപ്പത്തിൽ വികസിപ്പിക്കാൻ അനുവദിക്കുന്നു.

നിയന്ത്രിതവും നിയന്ത്രിക്കാത്തതുമായ കോഡ്. JIT സമാഹാരം

നിയന്ത്രിത കോഡ്കോമൺ ലാംഗ്വേജ് റൺടൈം (CLR) നിയന്ത്രിക്കുന്ന കോഡാണ്. ഇതിനർത്ഥം നിയന്ത്രണ പരിതസ്ഥിതിക്ക് ഒരു ആപ്ലിക്കേഷന്റെ നിർവ്വഹണം താൽക്കാലികമായി നിർത്താനും അതിന്റെ നിർവ്വഹണ സമയത്ത് ഏത് സമയത്തും ആപ്ലിക്കേഷന്റെ അവസ്ഥയെക്കുറിച്ചുള്ള നിർദ്ദിഷ്ട വിവരങ്ങൾ നേടാനുമുള്ള കഴിവുണ്ട്. ഉപയോഗിച്ച പ്രോഗ്രാമിംഗ് ഭാഷയുടെ സോഴ്സ് കോഡ് നിയന്ത്രിത CIL കോഡിലേക്ക് വിവർത്തനം ചെയ്യപ്പെടുന്നു (ഹൈ-ലെവൽ അസംബ്ലർ എന്നും അറിയപ്പെടുന്നു).

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

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

കൂടാതെ, ലേഖനം വായിക്കാൻ ഞാൻ ശുപാർശ ചെയ്യുന്നു. കൂടാതെ VKontakte ഗ്രൂപ്പ്, ടെലിഗ്രാം, YouTube ചാനൽ എന്നിവയും സബ്‌സ്‌ക്രൈബുചെയ്യുക. പ്രോഗ്രാമർമാർക്ക് കൂടുതൽ ഉപയോഗപ്രദവും രസകരവുമായ കാര്യങ്ങൾ ഉണ്ട്.

എല്ലാവർക്കും ശുഭദിനം. അലക്സി ഗുലിനിൻ ബന്ധപ്പെട്ടിരിക്കുന്നു. C#-ലെ ഈ ആദ്യ ലേഖനത്തിൽ, പ്ലാറ്റ്‌ഫോമിനെക്കുറിച്ച് സംസാരിക്കാൻ ഞാൻ ആഗ്രഹിക്കുന്നു .NET ഫ്രെയിംവർക്ക്. C# ഭാഷയും പ്ലാറ്റ്‌ഫോമും ആദ്യമായി പ്രത്യക്ഷപ്പെട്ടത് 2002-ലാണ്. COM പ്രോഗ്രാമിംഗ് മോഡലിനെ അപേക്ഷിച്ച് ലളിതവും കൂടുതൽ അളക്കാവുന്നതും ഏറ്റവും പ്രധാനമായി കൂടുതൽ ശക്തവുമായ പ്രോഗ്രാമിംഗ് മോഡൽ നൽകുക എന്നതായിരുന്നു അവരുടെ സൃഷ്ടിയുടെ പ്രധാന ലക്ഷ്യം. .NET ഫ്രെയിംവർക്ക് പ്ലാറ്റ്‌ഫോമിനെ അടിസ്ഥാനമാക്കി, നിങ്ങൾക്ക് വിൻഡോസ് ഫാമിലി ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിനായി ആപ്ലിക്കേഷനുകൾ നിർമ്മിക്കാൻ കഴിയും; നിങ്ങൾക്ക് Unix, Linux, Mac OS X എന്നിവയ്‌ക്കായുള്ള ആപ്ലിക്കേഷനുകളും നിർമ്മിക്കാൻ കഴിയും. ചുവടെയുള്ള ഒരു സംക്ഷിപ്തമാണ് .NET ഫ്രെയിംവർക്ക് പിന്തുണയ്ക്കുന്ന സവിശേഷതകളുടെ പട്ടിക:

1) നിലവിലുള്ള കോഡുമായി സംവദിക്കാനുള്ള കഴിവ്. ഈ സവിശേഷത നിങ്ങളെ കംപൈൽ ചെയ്യാൻ അനുവദിക്കുന്നു, ഉദാഹരണത്തിന്, COM ബൈനറി ഘടകങ്ങളും .NET ഘടകങ്ങളും.
2) വിവിധ പ്രോഗ്രാമിംഗ് ഭാഷകൾക്കുള്ള പിന്തുണ. C#, Visual Basic, F# എന്നിങ്ങനെ വിവിധ പ്രോഗ്രാമിംഗ് ഭാഷകൾ ഉപയോഗിച്ച് .NET ആപ്ലിക്കേഷനുകൾ സൃഷ്ടിക്കാൻ കഴിയും.
3) ജനറൽ എക്സിക്യൂഷൻ മെക്കാനിസം. .NET-ന് ഓരോ .NET-പിന്തുണയ്ക്കുന്ന ഭാഷയ്ക്കും മനസ്സിലാക്കാൻ കഴിയുന്ന തരത്തിലുള്ള ഒരു പ്രത്യേക സെറ്റ് ഉണ്ട് എന്നതാണ് ഇവിടെയുള്ള കാര്യം.
4) ഭാഷാ ഏകീകരണം. നിങ്ങൾക്ക് വിഷ്വൽ ബേസിക്കിൽ ഒരു ക്ലാസ് എഴുതുകയും അത് C#-ൽ നീട്ടുകയും ചെയ്യാം.
5) അടിസ്ഥാന ക്ലാസുകളുടെ വലിയ ലൈബ്രറി. ഈ ലൈബ്രറിക്ക് നന്ദി, API-കളിലേക്ക് താഴ്ന്ന നിലയിലുള്ള കോളുകൾ നടപ്പിലാക്കുന്നതിന്റെ സങ്കീർണ്ണതകളെക്കുറിച്ച് നമുക്ക് മറക്കാനും പ്രോഗ്രാമിംഗിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കാനും കഴിയും.
6) ലളിതമായ വിന്യാസ മാതൃക. ഒരു COM ലൈബ്രറിയിൽ നിന്ന് വ്യത്യസ്തമായി, .NET രജിസ്ട്രിയിൽ രജിസ്റ്റർ ചെയ്യേണ്ടതില്ല. ഇത് അസംബ്ലി.dll ആയി നിലനിൽക്കും.

ഒരുപക്ഷേ ഇവിടെ ഞാൻ ചില മനസ്സിലാക്കാൻ കഴിയാത്ത കാര്യങ്ങളെക്കുറിച്ച് എഴുതിയിട്ടുണ്ട്, ഉദാഹരണത്തിന് ക്ലാസുകൾ, API ഇന്റർഫേസുകൾ. ഇതിനെക്കുറിച്ച് ഇതുവരെ വിഷമിക്കുന്നത് വിലമതിക്കുന്നില്ല. തത്വത്തിൽ, ഇതെല്ലാം അറിയാതെ നിങ്ങൾക്ക് പ്രോഗ്രാം ചെയ്യാൻ കഴിയും, എന്നാൽ ഞങ്ങൾ പഠിക്കുന്ന രീതി, സിദ്ധാന്തം ഉപയോഗിച്ച് പ്രാക്ടീസ് അൽപ്പം നേർപ്പിക്കാം.
സിദ്ധാന്തം ഉപയോഗിച്ച് നിങ്ങളെ പൂർണ്ണമായും അവസാനിപ്പിക്കാൻ, .NET പ്ലാറ്റ്‌ഫോമിന്റെ പ്രധാന നിർമ്മാണ ബ്ലോക്കുകളെക്കുറിച്ച് ഞാൻ നിങ്ങളോട് പറയും:

1) CLR (കോമൺ ലാംഗ്വേജ് റൺടൈം) - ഒരു പൊതു ഭാഷ റൺടൈം പരിസ്ഥിതി. ഈ പരിതസ്ഥിതിയുടെ പ്രാഥമിക ദൗത്യം .NET ഒബ്ജക്റ്റുകൾ ലോഡുചെയ്യുകയും നിയന്ത്രിക്കുകയും ചെയ്യുക എന്നതാണ് (അതിനാൽ പ്രോഗ്രാമർ ഇത് സ്വമേധയാ ചെയ്യേണ്ടതില്ല). കൂടാതെ, മെമ്മറി മാനേജ്‌മെന്റ്, ആപ്ലിക്കേഷൻ പ്ലേസ്‌മെന്റ്, ആപ്ലിക്കേഷൻ സെക്യൂരിറ്റിയുമായി ബന്ധപ്പെട്ട പരിശോധനകൾ നടത്തൽ തുടങ്ങിയ നിരവധി താഴ്ന്ന തലത്തിലുള്ള വിശദാംശങ്ങൾ CLR ശ്രദ്ധിക്കുന്നു.
2) CTS (കോമൺ ടൈപ്പ് സിസ്റ്റം) - ഒരു സാധാരണ തരം സിസ്റ്റം. റൺടൈം (CLR) പിന്തുണയ്ക്കുന്ന സാധ്യമായ എല്ലാ ഡാറ്റാ തരങ്ങളെയും ഇത് വിവരിക്കുന്നു. CTS സ്പെസിഫിക്കേഷൻ നിർവചിച്ചിരിക്കുന്ന എല്ലാ ഫീച്ചറുകളേയും ഒരൊറ്റ ഭാഷ പിന്തുണയ്ക്കില്ല എന്ന കാര്യം നിങ്ങൾ അറിഞ്ഞിരിക്കണം. അതിനാൽ ഉണ്ട്:
3) CLS (പൊതുഭാഷാ സ്പെസിഫിക്കേഷൻ). .NET ഫ്രെയിംവർക്കിനായുള്ള എല്ലാ പ്രോഗ്രാമിംഗ് ഭാഷകളും പിന്തുണയ്ക്കേണ്ട പൊതുവായ തരങ്ങളുടെയും പ്രോഗ്രാമിംഗ് നിർമ്മാണങ്ങളുടെയും ഒരു ഉപവിഭാഗത്തെ ഇത് വിവരിക്കുന്നു.

CLR, CTS/CLS സ്പെസിഫിക്കേഷനുകൾക്ക് പുറമേ, .NET പ്ലാറ്റ്ഫോം നൽകുന്നു അടിസ്ഥാന ക്ലാസ് ലൈബ്രറി, ഇത് എല്ലാ .NET പ്രോഗ്രാമിംഗ് ഭാഷകളിലും ലഭ്യമാണ്. ഈ ലൈബ്രറി നിങ്ങളെ മാനേജുചെയ്യാൻ അനുവദിക്കുന്നു, ഉദാഹരണത്തിന്, ഫയൽ I/O, ഗ്രാഫിക്സ്, വിവിധ ബാഹ്യ ഉപകരണങ്ങൾ, ഡാറ്റ സ്ട്രീമുകൾ, വിവിധ സേവനങ്ങൾ എന്നിവ ഉയർന്ന തലത്തിൽ (നടപ്പാക്കൽ വിശദാംശങ്ങളെക്കുറിച്ച് ചിന്തിക്കാതെ).

ഞാൻ സിദ്ധാന്തം എഴുതുന്നതിൽ ഒരു അഗ്രഗണ്യനല്ല, അതിനാൽ .NET-ന്റെ തത്ത്വചിന്ത നന്നായി മനസ്സിലാക്കാൻ ആഗ്രഹിക്കുന്നവർക്ക് ആൻഡ്രൂ ട്രോൾസന്റെ "ദി സി# 5.0 പ്രോഗ്രാമിംഗ് ലാംഗ്വേജും .NET 4.5 പ്ലാറ്റ്‌ഫോമും" എന്ന പുസ്തകത്തിന്റെ ആദ്യ അധ്യായം വായിക്കാൻ ഞാൻ ശുപാർശ ചെയ്യുന്നു. 2013-ൽ പ്രസിദ്ധീകരിച്ചു. .NET പ്ലാറ്റ്‌ഫോമിന്റെ ഈ സംഗ്രഹം ഈ പുസ്തകത്തിൽ നിന്ന് എടുത്തതാണ്. ഈ പുസ്തകത്തിൽ ഞാൻ നേരിട്ട പ്രശ്നം ഒരു തുടക്കക്കാരന് മെറ്റീരിയൽ അവതരിപ്പിക്കുന്നത് എത്ര ബുദ്ധിമുട്ടാണ് എന്നതാണ്. നിങ്ങൾ അങ്ങനെ വിചാരിച്ചേക്കില്ല, ഇത് എന്റെ അഭിപ്രായം മാത്രമാണ്.

ശരി, എന്റെ സുഹൃത്തുക്കളേ, നിങ്ങൾക്ക് ഇപ്പോഴും C# പഠിക്കാൻ ആഗ്രഹമുണ്ടോ? അപ്പോൾ നമുക്ക് ധൈര്യത്തോടെ മുന്നോട്ട് പോകാം, ഭാവിയിൽ കുറഞ്ഞത് സൈദ്ധാന്തിക ലേഖനങ്ങൾ ഉണ്ടാകുമെന്ന് ഞാൻ വാഗ്ദാനം ചെയ്യുന്നു (സി # പഠിക്കുന്നതിന്റെ തുടക്കത്തിൽ മാത്രം), ഒരു പരിശീലനം മാത്രം. നിങ്ങൾക്ക് ഒരു സിദ്ധാന്തം ആവശ്യമുണ്ടെങ്കിൽ, ആൻഡ്രൂ ട്രോൾസന്റെ പുസ്തകം പുകവലിക്കുക.
അതിനാൽ, നിങ്ങൾക്ക് ഒരു ക്ലാസിനെക്കുറിച്ചോ അതിന്റെ രീതിയെക്കുറിച്ചോ എന്തെങ്കിലും വിവരങ്ങൾ ആവശ്യമുണ്ടെങ്കിൽ, നേരെ പോകുക

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#, വിഷ്വൽ ബേസിക് .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# പ്രോഗ്രാമിൽ ഒരു നെയിംസ്പേസ് എങ്ങനെ ബന്ധിപ്പിക്കാം?

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