Jump to content

.NET Framework

Վիքիպեդիայից՝ ազատ հանրագիտարանից
.NET Framework
պատկերանիշ
Տեսակֆրեյմվորք և Համակարգչային պլատֆորմ
Նախագծումը՝Մայքրոսոֆթ և Xamarin?
ՕՀWindows
Լույս տեսավ՝փետրվարի 13, 2002
ՊլատֆորմWindows
Արտոնագիրոչ ազատ ծրագրային ապահովման արտոնագիր[1]
Կայքdotnet.microsoft.com
 .NET Framework Վիքիպահեստում

.NET Framework (արտասանվում է «դոթ նեթ»), Microsoft ընկերության կողմից մշակված սեփական ծրագրային հարթակ, հիմնականում աշխատում է Microsoft Windows օպերացիոն համակարգում։ Այն Common Language Infrastructure (CLI)-ի հիմնական իրականացումն էր մինչև այն փոխարինվեց բազմահարթակ .NET նախագծով։ Այն ներառում է դասերի մեծ գրադարան, որը կոչվում է Framework Class Library (FCL), և ապահովում է լեզվական փոխգործունակություն՝ թույլ տալով, որ որևէ լեզվով գրված կոդն օգտագործվի մի քանի այլ ծրագրավորման լեզուներում։ .NET Framework-ի համար գրված ծրագրերը գործարկվում են ծրագրային միջավայրում, որը կոչվում է Common Language Runtime (CLR): CLR-ը հավելվածների ծրագրային վիրտուալ մեքենա է, որը ապահովում է այնպիսի ծառայություններ, ինչպիսիք են անվտանգությունը, հիշողության կառավարումը և բացառությունների մշակումը: Այդ պատճառով, .NET Framework-ի միջոցով գրված կոդը կոչվում է «կառավարվող կոդ»: FCL-ն և CLR-ը միասին կազմում են .NET Framework-ը:

FCL-ը ապահովում է օգտագործողի ինտերֆեյսը, տվյալներին հասանելիությունը, տվյալների բազայի միացումը, գաղտնագրությունը, վեբ հավելվածների մշակումը, թվային ալգորիթմները և ցանցային հաղորդակցությունը։ Ծրագրավորողները ծրագրային ապահովում են ստեղծում՝ համադրելով իրենց ելակոդը .NET Framework-ի և այլ գրադարանների հետ։ Այս ֆրեյմվորկը ը նախատեսված է Windows օպերացիոն համակարգի համար ստեղծվող նոր հավելվածների մեծ մասի կողմից օգտագործվելու համար։ Microsoft-ը նաև ստեղծել է .NET ծրագրային ապահովման համար նախատեսված մշակման ինտեգրված միջավայր (IDE), որը կոչվում է Visual Studio։

.NET Framework-ը սկզբում եղել է սեփականատիրական ծրագրային ապահովում, թեև ընկերությունը գրեթե անմիջապես աշխատել է ծրագրային փաթեթը ստանդարտացնելու ուղղությամբ՝ նույնիսկ մինչև դրա առաջին թողարկումը։ Չնայած ստանդարտացման այդ ջանքերին, ծրագրավորողները, հիմնականում ազատ և բաց կոդով ծրագրային ապահովման համայնքների ներկայացուցիչները, արտահայտել են իրենց մտահոգությունը ընտրված պայմանների և հնարավոր ազատ ու բաց կոդով իրականացումների հեռանկարների վերաբերյալ, մասնավորապես՝ ծրագրային արտոնագրերի հետ կապված։ Այդ ժամանակից ի վեր Microsoft-ը փոխել է .NET-ի զարգացման մոտեցումը՝ ավելի սերտորեն հետևելով համայնքի կողմից մշակված ծրագրային նախագծի ժամանակակից մոդելին, ներառյալ իր արտոնագրի թարմացումը թողարկելով՝ խոստանալով լուծել մտահոգությունները[2]։

2019 թվականի ապրիլին Microsoft-ը թողարկեց .NET Framework 4.8 տարբերակը, որը վերջին հիմնական տարբերակն էր որպես սեփականատիրական առաջարկ, որին հաջորդեց .NET Framework 4.8.1 տարբերակը՝ 2022 թվականի օգոստոսին։ Այդ ժամանակվանից ի վեր թողարկվել են միայն այդ տարբերակի անվտանգության և հուսալիության ամսական սխալների շտկումները։ Այդ տարբերակի համար այլևս ոչ մի փոփոխություն չի նախատեսվում։ «.NET Framework»-ը կշարունակի ներառվել Windows-ի հետագա թողարկումներում և կշարունակի ստանալ անվտանգության թարմացումներ, ընդ որում, 2025 թվականի հուլիսի դրությամբ այն հեռացնելու որևէ ծրագիր չունի[3]։

Microsoft ընկերությունը սկսեց մշակել .NET Framework-ը 1990-ական թվականների վերջում՝ սկզբնապես Next Generation Windows Services (NGWS) անվան ներքո՝ որպես Microsoft .NET-ի ռազմավարության մաս։ 2000 թվականի սկզբին թողարկվեցին .NET 1.0-ի առաջին բետա տարբերակները։

2000 թվականի օգոստոսին Microsoft-ը և Intel-ը համատեղ աշխատեցին Common Language Infrastructure (CLI) և C# լեզվի ստանդարտացման ուղղությամբ։ 2001 թվականի դեկտեմբերին երկուսն էլ վավերացվեցին որպես ECMA ստանդարտներ[4][5]։ 2003 թվականի ապրիլին դրանց օրինակին հետևեց նաև Ստանդարտացման միջազգային կազմակերպությունը (ISO)։ ISO ստանդարտների ներկայիս տարբերակներն են՝ ISO/IEC 23271:2012 և ISO/IEC 23270:2006[6][7]:

Microsoft .NET-ի բնօրինակ լոգոտիպ

2007 թվականի հոկտեմբերի 3-ին Microsoft-ը հայտարարեց, որ .NET Framework 3.5 գրադարանների ելակոդը հասանելի է դառնալու Microsoft Reference Source License (Ms-RSL) լիցենզիայի ներքո[8]։ Ելակոդի ռեպոզիտորիան առցանց հասանելի դարձավ 2008 թվականի հունվարի 16-ին և ներառում էր BCL, ASP.NET, ADO.NET, Windows Forms, WPF և XML։ Microsoft-ի Scott Guthrie-ն խոստացավ, որ LINQ, WCF և WF գրադարանները նույնպես կավելացվեն։[2] Microsoft-ից Սքոթ Գաթրին խոստացավ, որ LINQ, WCF և WF գրադարանները նույնպես ավելացման փուլում են[9]:

.NET Framework-ի .NET Compact Framework-ը և .NET Micro Framework-ի տարբերակները աջակցություն էին տրամադրում Microsoft-ի այլ հարթակներին, ինչպիսիք են Windows Mobile-ը, Windows CE-ն և այլ սահմանափակ ռեսուրսներով ներդրված սարքերը: Silverlight-ն ապահովում էր բրաուզերների աջակցությունը՝ փլագինների միջոցով։

Microsoft-ի մամուլի հաղորդագրությունը ընդգծում է, որ բազմապլատֆորմային պարտավորությունն այժմ հնարավորություն է տալիս ունենալ լիովին բաց կոդով, ժամանակակից սերվերային .NET փաթեթ[2]։ Microsoft-ը թողարկեց WPF-ի, Windows Forms-ի և WinUI-ի ելակոդը 2018 թվականի դեկտեմբերի 4-ին[10]։

Ճարտարապետություն

[խմբագրել | խմբագրել կոդը]
Common Language Infrastructure-ի (CLI) ընդհանուր նկարագրություն

Ընդհանուր լեզվական ենթակառուցվածք

[խմբագրել | խմբագրել կոդը]

Common Language Infrastructure (CLI)-ն ապահովում է ծրագրերի մշակման և գործարկման համար լեզվից անկախ հարթակ։ CLI-ի շրջանակներում .NET Framework-ի հիմնական ասպեկտները ներդնելով, այս գործառույթները կապված չեն լինի մեկ ծրագրավորման լեզվի հետ, այլ հասանելի կլինեն NET Framework-ի կողմից աջակցվող բազմաթիվ լեզուներով:

Common Language Runtime

[խմբագրել | խմբագրել կոդը]

.NET Framework-ը ներառում է Common Language Runtime (CLR): Այն ծառայում է որպես .NET Framework-ի կատարողական շարժիչ և տրամադրում է է բազմաթիվ ծառայություններ, ինչպիսիք են հիշողության կառավարումը, տիպերի անվտանգությունը, բացառությունների մշակումը, աղբահավաքոը, անվտանգությունը և հոսքերի կառավարումը: .NET Framework-ի համար գրված բոլոր ծրագրերը կատարվում են CLR-ի կողմից:

.NET Framework-ի համար գրված ծրագրերը կոմպիլացվում են Common Intermediate Language (CIL) կոդի, այլ ոչ թե անմիջապես կոմպիլացվում են մեքենայական կոդի: Կատարման ընթացքում ճարտարապետությանիղ կախված հատուկ Just-in-Time(JIT) կոմպիլյատորը CIL կոդը փոխակերպում է մեքենայական կոդի:

Կոմպիլացված CLI կոդը պահվում է CLI ասեմբլիներում։ Ինչպես պահանջվում է սպեցիֆիկացիայով, ասեմբլիները պահվում են Portable Executable (PE) ֆայլային ձևաչափով, որը տարածված է Windows հարթակում բոլոր դինամիկ հղումների գրադարանների (dynamic-link library, DLL) և կատարվող EXE ֆայլերի համար։ Յուրաքանչյուր ասեմբլի բաղկացած է մեկ կամ մի քանի ֆայլերից, որոնցից առնվազն մեկը պետք է պարունակի ասեմբլիի մետատվյալները պարունակող մանիֆեստ։ Ասեմբլիի ամբողջական անունը (չպետք է շփոթել սկավառակի վրա գտնվող ֆայլի անունի հետ) ներառում է դրա պարզ տեքստային անունը, տարբերակի համարը և հանրային բանալու տոկենը։ Ասեմբլիները համարվում են համարժեք, եթե դրանք ունեն միևնույն ամբողջական անունը։

Սկսած Visual Studio 2015-ից, .NET Native կոմպիլյացիոն տեխնոլոգիան թույլ է տալիս Universal Windows Platform հավելվածների .NET կոդը անմիջապես կոմպիլացնել մեքենայական կոդի՝ CIL կոդի փոխարեն, սակայն հավելվածը պետք է գրված լինի կամ C#, կամ Visual Basic .NET լեզուներով[11]։

.NET Framework-ը ներառում է CLI հիմնարար ստանդարտ գրադարանների (Standard Libraries) իրականացում: .NET Framework-ի Class Library-ն կազմակերպված է անունների տարածքների հիերարխիայի տեսքով։ Ներկառուցված կիրառական ծրագրային ինտերֆեյսների (API) մեծ մասը պատկանում է System.* կամ Microsoft.* անվանատարածքներին։ Այս class library-ները իրականացնում են բազմաթիվ ընդհանուր գործառույթներ, ինչպիսիք են ֆայլերի ընթերցում և գրառում, գրաֆիկական արտապատկերում, տվյալների բազայի հետ փոխազդեցություն և XML փաստաթղթերի մշակում։ Դասերի գրադարանները հասանելի են CLI-ի հետ համատեղելի բոլոր լեզուների համար։ FCL-ն իրականացնում է բազային դասերի գրադարանը (Base Class Library, BCL) և այլ դասի գրադարաններ, որոշները սահմանվում են CLI-ի կողմից, իսկ մյուսները՝ Microsoft-ի ։

BCL-ը ներառում է ամբողջ class library-ի փոքր ենթաբազմություն և հանդիսանում է դասերի հիմնական հավաքածուն, որը ծառայում է որպես CLR-ի հիմնական API[12]։ .NET Framework-ի համար BCL-ի մաս համարվող դասերի մեծ մասը գտնվում են mscorlib.dll, System.dll and System.Core.dll ֆայլերում։ BCL դասերը հասանելի են ինչպես .NET Framework-ում, այնպես էլ CLI-ի այլընտրանքային իրականացումներում, ներառյալ .NET Compact Framework-ը, Microsoft Silverlight-ը, .NET Core-ը և Mono-ն։

FCL-ը վերաբերում է ամբողջ class library-ին, որը տրամադրվում է .NET Framework-ի հետ միասին։ Այն ներառում է BCL-ը՝ գրադարանների ընդլայնված հավաքածու, ներառյալ Windows Forms-ը, ASP.NET-ը և Windows Presentation Foundation-ը (WPF), ինչպես նաև բազային դասերի գրադարանների ընդլայնումները՝ ADO.NET, Language Integrated Query (LINQ), Windows Communication Foundation (WCF) և Workflow Foundation (WF)։ FCL-ի ծավալը զգալիորեն ավելի մեծ է, քան C++ լեզվի ստանդարտ գրադարանները, և համեմատելի է Java-ի ստանդարտ գրադարանների հետ։

NuGet-ը .NET բոլոր հարթակների համար նախատեսված փաթեթների կառավարիչն է: Այն օգտագործվում է երրորդ կողմի գրադարանները .NET նախագծի մեջ ներառելու համար՝ NuGet.org կայքում գլոբալ գրադարանային հոսքի միջոցով[13]:

.NET-ում հոսքերի հիերարխիայի UML փաթեթի դիագրամ

Microsoft-ը ներդրեց C++/CLI-ն Visual Studio 2005-ում, որը հանդիսանում է լեզու և միջոց՝ Visual C++ ծրագրերը կոմպիլյացնելու և .NET Framework-ի միջավայրում աշխատեցնելու համար։ C++ ծրագրի որոշ մասեր դեռևս աշխատում են չկառավարվող Visual C++ Runtime միջավայում, մինչդեռ հատուկ ձևափոխվ��ծ մասերը թարգմանվում են CIL կոդի և աշխատում .NET Framework-ի CLR-ի միջոցով:

C++/CLI կոմպիլյատորով կոմպիլացված ասեմբլիները կոչվում են խառը ռեժիմի (mixed-mode) ասեմբլիներ, քանի որ դրանք պարունակում են բնօրինակ և կառավարվող կոդ նույն DLL ֆայլի ներսում[14]։ Նման ասեմբլիները ավելի բարդ են հակադարձ ինժեներիայի համար, քանի որ .NET դեկոմպիլյատորները (օրինակ՝ .NET Reflector) բացահայտում են միայն կառավարվող կոդը։

Նախագծման սկզբունքներ

[խմբագրել | խմբագրել կոդը]

Փոխգործունակություն

[խմբագրել | խմբագրել կոդը]

Քանի որ համակարգչային համակարգերը սովորաբար պահանջում են փոխազդեցություն նոր և հին ծրագրերի միջև, .NET Framework-ը հնարավորություն է տալիս մուտք գործել այն ֆունկցիաներին, որոնք իրականացված են նոր և հին ծրագրերում, որոնք կատարվում են .NET միջավայրից դուրս: Հասանելիությունը Component Object Model (COM) բաղադրիչներին ապահովվում է framework-ի System.Runtime.InteropServices և System.EnterpriseServices անունների տարածքների միջոցով։ Այլ ֆունկցիաների հասանելիությունը իրականացվում է Platform Invocation Services (P/Invoke)-ի միջոցով։

Լեզվի անկախություն

[խմբագրել | խմբագրել կոդը]

.NET Framework-ը ներկայացնում է տիպերի ընդհանուր համակարգ (Common Type System)-ը, որը սահմանում է CLR-ի կողմից աջակցվող բոլոր հնարավոր տվյալների տիպերն ու ծրագրավորման կառուցվածքները, և թե ինչպես դրանք կարող են կամ չեն կարող փոխազդել միմյանց հետ՝ համապատասխանելով CLI-ի սպեցիֆիկացիաներին։ Այս առանձնահատկության շնորհիվ, .NET Framework-ն աջակցում է տիպերի և օբյեկտների նմուշների փոխանակումը այն գրադարանների ու հավելվածների միջև, որոնք գրված են CLI-ի պահանջներին համապատասխանող ցանկացած լեզվով։

Տվյալների տիպի անվտանգություն

[խմբագրել | խմբագրել կոդը]

.NET Framework-ում օգտագործվող CTS-ը և CLR-ը նույնպես ապահովում են տիպերի անվտանգությունը։ Սա կանխում է ոչ ճիշտ սահմանված տիպափոխությունները, սխալ մեթոդների կանչերը և հիշողության չափի հետ կապված խնդիրները օբյեկտին հասանելիություն ստանալու ժամանակ։ Այն նաև CLI լեզուների մեծ մասը դարձնում է ստատիկ տիպավորված։ Այնուամենայնիվ, սկսած .NET Framework 4.0 տարբերակից, Dynamic Language Runtime-ը ընդլայնեց CLR-ը՝ թույլ տալով դինամիկ տիպավորված լեզուների իրականացումը CLI-ի վրա։

Փոխադրելիություն

[խմբագրել | խմբագրել կոդը]

Չնայած Microsoft-ը երբեք երբեք չի ներդրել ամբողջական ֆրեյմվորկը որևէ այլ համակարգում, բացի Microsoft Windows-ից, այն նախագծվել է որպես բազմապլատֆորմային հարթակ[15], և դրա իրականացումները հասանելի են նաև այլ օպերացիոն համակարգերի համար։ Microsoft-ը CLI-ի (ներառյալ Base Class Libraries, CTS և CIL)[16][17][18], C#-ի[5] և C++/CLI-ի[19] սպեցիֆիկացիաները ներկայացրել է Ecma International-ին (ECMA) և Ստանդարտացման միջազգային կազմակերպությանը (ISO), դրանք հասանելի դարձնելով որպես պաշտոնական ստանդարտներ։ Սա հնարավորություն է տալիս երրորդ կողմերին ստեղծել շրջանակի և դրա լեզուների համատեղելի իրականացումներ այլ հարթակներում։

Core .NET-ը (նախկինում՝ .NET Core) պաշտոնապես հասանելի է նաև Linux և macOS օպերացիոն համակարգերի համար[20]։

Հիշողության կառավարում

[խմբագրել | խմբագրել կոդը]

CLR-ը ծրագրավորողին ազատում է հիշողության կառավարման բեռից (հիշողության հատկացում և ազատում ավարտից հետո). այն ինքնուրույն է իրականացնում հիշողության կառավարումը՝ որոշելով, թե երբ է հիշողությունը կարող անվտանգ կերպով ազատել: .NET տեսակների (օբյեկտների) օրինակները հատկացվում են կառավարվող կույտից՝ հիշողության մի տիրույթից, որը կառավարվում է CLR-ի կողմից: Քանի դեռ գոյություն ունի հղում դեպի օբյեկտը՝ լինի դա ուղղակի, թե օբյեկտների գրաֆի միջոցով, օբյեկտը համարվում է օգտագործվող։ Երբ որևէ հղում այլևս գոյություն չունի դեպի օբյեկտը, և նրան այլևս հնարավոր չէ դիմել կամ օգտագործել, այդ օբյեկտը դառնում է «աղբ» և ենթակա է աղբահանության (garbage collection)։

.NET Framework-ը ներառում է աղբահավաք (GC), որը պարբերաբար աշխատում է ծրագրի թելից առանձին թելի վրա, թվարկում է բոլոր անօգտագործելի օբյեկտները և վերականգնում դրանց հատկացված հիշողությունը։

Արտադրողականություն

[խմբագրել | խմբագրել կոդը]

Երբ որևէ ծրագիր առաջին անգամ գործարկվում է, .NET Framework-ը CIL կոդը կոմպիլացնում է մեքենայական կոդի՝ օգտագործելով իր Just-In-Time (JIT) կոմպիլյատորը, և կատարվող ծրագիրը քեշավորում է .NET Native Image Cache-ում[21][22]։ Քեշավորման շնորհիվ հավելվածը հաջորդ անգամներում ավելի արագ է գործարկվում, թեև առաջին գործարկումը սովորաբար ավելի դանդաղ է լինում։ Առաջին գործարկումն արագացնելու համար ծրագրավորողները կարող են օգտագործել Native Image Generator օժանդակ ծրագիրը՝ ցանկացած .NET ծրագիր ձեռքով AOT-կոմպիլյացիայի ենթարկելու և քեշավորելու համար[22]։

Garbage Collector-ը, որն ինտեգրված է միջավայրի մեջ, կարող է առաջացնել գործարկման անկանխատեսելի ուշացումներ, որոնց վրա ծրագրավորողը գրեթե չունի վերահսկողություն[23]։

.NET Framework-ը տրամադրում է Streaming SIMD Extensions (SSE)-ի կանչման աջակցություն կառավարվող կոդի միջոցով՝ սկսած 2014 թվականի ապրիլից՝ Visual Studio 2013 Update 2-ից։ Սակայն, Mono-ն 2009 թվականին Mono.Simd անվանատարածքում 2.2 տարբերակից սկսած SIMD ընդլայնումների աջակցություն է տրամադրել[24]։ Mono-ի գլխավոր ծրագրավորող Միգել դե Իկասան հույս է հայտնել, որ այս SIMD-ի այս աջակցությունը կներառվի CLR-ի ECMA ստանդարտում[25]։ Հոսքային SIMD ընդլայնումները(SSE) հասանելի են եղել x86 պրոցեսորներում՝ սկսած Pentium III-ից։ Որոշ այլ ճարտարապետություններ, ինչպիսիք են ARM-ը և MIPS-ը, նույնպես ունեն SIMD ընդլայնումներ։ Եթե պրոցեսորը չունի այդ ընդլայնումների աջակցությունը, ապա այդ հրահանգները սիմուլացվում են ծրագրային մակարդակում[26][27]։

Այլընտրանքային իրականացումներ

[խմբագրել | խմբագրել կոդը]

.NET Framework-ը եղել է CLI-ի հիմնական և ամենատարածված իրականացումը մինչև .NET-ի թողարկումը։ Ֆրեյմվորկի որոշ մասերի այլ իրականացումներ նույնպես գոյություն ունեն։

Այստեղ ներկայացված են ֆրեյմվորկի որոշ մասերի այլընտրանքային իրականացումներ․

  • .NET Micro Framework-ը .NET հարթակ է չափազանց սահմանափակ ռեսուրսներ ունեցող սարքերի համար։։ Այն ներառում է CLR-ի փոքր տարբերակը և աջակցում է C# լեզվով ծրագրավորումը (թեև որոշ ծրագրավորողների հաջողվել է օգտագործել VB.NET-ը[28]՝ չնայած որոշակի հակերային հնարքների և սահմանափակ ֆունկցիոնալության), ինչպես նաև սխալների ուղղումը (էմուլյատորում կամ սարքավորման վրա), օգտագործելով Microsoft Visual Studio-ն: Այն նաև ներառում է .NET Framework-ի Class Library-ի ենթաբազմություն (մոտ 70 դաս և մոտ 420 մեթոդ), WPF-ի վրա ազատորեն հիմնված GUI ֆրեյմվորկ, ինչպես նաև ներկառուցված հավելվածների համար նախատեսված լրացուցիչ գրադարաններ։
  • Mono-ն CLI-ի և FCL-ի իրագործումն է և ապահովում է լրացուցիչ ֆունկցիոնալություն։ Այն լիցենզավորված է որպես ազատ ծրագրային ապահովում՝ MIT լիցենզիայի ներքո։ Այն ներառում է ASP.NET, ADO.NET և Windows Forms գրադարանների աջակցություն՝ ճարտարապետությունների և օպերացիոն համակարգերի համար: Այն նաև ներառում է C# և VB.NET կոմպիլյատորներ:
  • Microsoft Shared Source Common Language Infrastructure-ը CLR-ի ոչ ազատ իրականացում է։
  • Microsoft-ի համօգտագործվող կոդով ընդհանուր լեզվի ենթակառուցվածքը CLR-ի ոչ ազատ իրականացումն է։ Սակայն վերջին տարբերակը աշխատում է միայն Windows XP SP2-ի վրա և չի թարմացվել 2006 թվականից ի վեր։ Այսպիսով, այն չի պարունակում .NET Framework-ի 2.0 տարբերակի բոլոր հնարավորությունները։
  • CrossNet-ը[29] CLI-ի և FCL-ի որոշ մասերի իրագործումն է: Այն անվճար ծրագիր է, որն օգտագործում է բաց կոդով MIT լիցենզիա:

Լիցենզավորում

[խմբագրել | խմբագրել կոդը]

Microsoft-ի կառավարվող կոդի ֆրեյմվորկները և դրանց բաղադրիչները լիցենզավորված են հետևյալ կերպ.

Բաղադրիչ Լիցենզիա
.NET Framework (վերաբաշխվող փաթեթ) Proprietary software[30]
.NET Framework 4.5-ի և դրանից ավելի հին տարբերակների ելակետային կոդ Microsoft Reference License (Ms-RSL)[8][31]
.NET Framework 4.6-ի ելակետային կոդը MIT License[32]
Mono MIT License[33]
.NET (նախկինում .NET Core)

CoreFX, CoreCLR և CLI

MIT License[34]
.NET Micro Framework Apache License 2.0[35]
.NET Compiler Platform (կոդային անվանում "Roslyn") MIT License[36]
ASP.NET MVC, Web API և Web Pages (Razor) Apache License 2.0[37]
ASP.NET Core Apache License 2.0[38]
ASP.NET Ajax Control Toolkit BSD License[39]
ASP.NET SignalR Apache License 2.0[40]
Entity Framework Apache License 2.0[41]
NuGet Apache License 2.0[42]

Ծանոթագրություններ

[խմբագրել | խմբագրել կոդը]
  1. https://learn.microsoft.com/en-us/previous-versions/dotnet/articles/ms994405(v=msdn.10)?redirectedfrom=MSDN
  2. 1 2 Ibanez, Luis (2014 թ․ նոյեմբերի 19). «Microsoft gets on board with open source». Opensource.com (անգլերեն). Արխիվացված օրիգինալից 2020 թ․ հունվարի 2-ին. Վերցված է 2020-01-02-ին.
  3. gewarren. «.NET Framework & Windows OS versions». Microsoft Learn (ամերիկյան անգլերեն). Արխիվացված օրիգինալից 2022 թ․ սեպտեմբերի 3-ին. Վերցված է 2020-11-21-ին.
  4. «Standard ECMA-335: Common Language Infrastructure (CLI)» (6 ed.). Ecma International|ECMA. 2012 թ․ հունիս. Արխիվացված է օրիգինալից 2013 թ․ հունիսի 29-ին. Վերցված է 2005 թ․ օգոստոսի 31-ին.
  5. 1 2 «Standard ECMA-334: C# Language Specification» (4 ed.). Ecma International|ECMA. 2006 թ․ հունիս. Արխիվացված է օրիգինալից 2010 թ․ հոկտեմբերի 31-ին. Վերցված է 2005 թ․ օգոստոսի 31-ին.
  6. «ISO/IEC 23271:2012 Information technology – Common Language Infrastructure» (3 ed.). International Organization for Standardization. 2012 թ․ փետրվարի 13. Արխիվացված օրիգինալից 2012 թ․ մարտի 17-ին. Վերցված է 2012 թ․ մարտի 17-ին.
  7. «ISO/IEC 23270:2006 – Information technology – Programming languages – C#» (2 ed.). International Organization for Standardization. 2012 թ․ հունվարի 26. Արխիվացված օրիգինալից 2010 թ․ դեկտեմբերի 6-ին. Վերցված է 2008 թ․ ապրիլի 1-ին.
  8. 1 2 Guthrie, Scott (2007 թ․ հոկտեմբերի 3). «Releasing the Source Code for the NET Framework». Scott Guthrie's Blog. Microsoft. Արխիվացված օրիգինալից 2010 թ․ սեպտեմբերի 7-ին. Վերցված է 2010 թ․ սեպտեմբերի 15-ին.
  9. Guthrie, Scott (2008 թ․ հունվարի 16). «.NET Framework Library Source Code now available». Scott Guthrie's Blog. Microsoft. Արխիվացված օրիգինալից 2015 թ․ մարտի 18-ին. Վերցված է 2015 թ․ փետրվարի 28-ին.
  10. Gallo, Kevin (2018 թ․ դեկտեմբերի 4). «Announcing Open Source of WPF, Windows Forms, and WinUI at Microsoft Connect 2018». Windows Developer Blog. Microsoft. Արխիվացված է օրիգինալից 2018 թ․ դեկտեմբերի 15-ին. Վերցված է 2018 թ․ դեկտեմբերի 24-ին.
  11. rpetrusha. «Compiling Apps with .NET Native». Microsoft Learn. Արխիվացված օրիգինալից 2017 թ․ դեկտեմբերի 3-ին. Վերցված է 2017 թ․ դեկտեմբերի 2-ին.
  12. «Base Class Libraries Community». Microsoft. Արխիվացված է օրիգինալից 2009 թ․ ապրիլի 24-ին. Վերցված է 2008 թ․ հունիսի 1-ին.
  13. «NuGet Gallery – Home». nuget.org. Արխիվացված օրիգինալից 2021 թ․ փետրվարի 21-ին. Վերցված է 2021 թ․ փետրվարի 21-ին.
  14. Mixed (Native and Managed) Assemblies Արխիվացված Հոկտեմբեր 22, 2014 Wayback Machine, MSDN
  15. «Scott Guthrie: Silverlight and the Cross-Platform CLR». Channel 9 (discussion forum)|Channel 9. 2007 թ․ ապրիլի 30. Արխիվացված օրիգինալից 2015 թ․ մայիսի 22-ին. Վերցված է 2016 թ․ ապրիլի 16-ին.
  16. «ECMA 335 – Standard ECMA-335 Common Language Infrastructure (CLI) 4th edition (June 2006)». ECMA. 2006 թ․ հունիսի 1. Արխիվացված է օրիգինալից 2008 թ․ հունիսի 14-ին. Վերցված է 2008 թ․ հունիսի 1-ին.
  17. «ISO/IEC 23271:2006». ISO Standards. 2006 թ․ սեպտեմբերի 29. Արխիվացված է օրիգինալից 2018 թ․ հուլիսի 1-ին. Վերցված է 2012 թ․ ապրիլի 17-ին.
  18. «Technical Report TR/84 Common Language Infrastructure (CLI) – Information Derived from Partition IV XML File». ECMA. 2006 թ․ հունիսի 1. Արխիվացված է օրիգինալից 2015 թ․ մարտի 7-ին. Վերցված է 2016 թ․ ապրիլի 16-ին.
  19. «Standard ECMA-372 C++/CLI Language Specification». ECMA. 2005 թ․ դեկտեմբերի 1. Արխիվացված է օրիգինալից 2008 թ․ օգոստոսի 10-ին. Վերցված է 2008 թ․ հունվարի 16-ին.
  20. «.NET Goes Cross-Platform with .NET Core». 2019 թ․ հունվարի 31. Արխիվացված օրիգինալից 2024 թ․ փետրվարի 19-ին. Վերցված է 2024 թ․ փետրվարի 19-ին.
  21. «Understanding .NET Just-In-Time Compilation». telerik.com. 2013 թ․ մայիսի 28. Արխիվացված օրիգինալից 2013 թ․ հունիսի 11-ին. Վերցված է 2015 թ․ մայիսի 21-ին.
  22. 1 2 Archiveddocs. «Compiling MSIL to Native Code». learn.microsoft.com (ամերիկյան անգլերեն). Վերցված է 2026-06-07-ին.
  23. «Understanding Garbage Collection in .NET». 2009 թ․ հունիսի 17. Արխիվացված օրիգինալից 2019 թ․ հոկտեմբերի 10-ին. Վերցված է 2019 թ․ նոյեմբերի 13-ին.
  24. «Release Notes Mono 2.2 – Mono». mono-project.com. Արխիվացված օրիգինալից 2016 թ․ նոյեմբերի 22-ին. Վերցված է 2016 թ․ նոյեմբերի 22-ին.
  25. de Icaza, Miguel (2008 թ․ նոյեմբերի 3). «Mono's SIMD Support: Making Mono safe for Gaming». Tirania.org. Արխիվացված օրիգինալից 2010 թ․ նոյեմբերի 4-ին. Վերցված է 2012 թ․ ապրիլի 17-ին.
  26. de Icaza, Miguel (2008 թ․ նոյեմբերի 3). «Mono's SIMD Support: Making Mono safe for Gaming». tirania.org. Արխիվացված օրիգինալից 2022 թ․ հուլիսի 2-ին. Վերցված է 2022-05-06-ին.
  27. «SIMD-accelerated types in .NET». Microsoft Learn (ամերիկյան անգլերեն). Արխիվացված օրիգինալից 2022 թ․ մայիսի 6-ին. Վերցված է 2022-05-06-ին.
  28. Fairbairn, Christopher (2008 թ․ ապրիլի 1). «Using VB.NET with the .NET Micro Framework «/dev/mobile». /dev/mobile. Արխիվացված է օրիգինալից 2018 թ․ փետրվարի 27-ին. Վերցված է 2012 թ․ ապրիլի 17-ին.
  29. «CrossNet». Codeplex.com. Արխիվացված օրիգինալից 2010 թ․ հունվարի 25-ին. Վերցված է 2012 թ․ ապրիլի 17-ին.
  30. «Microsoft .NET Framework Redistributable EULA». MSDN. Microsoft. 2006 թ․ սեպտեմբերի 13. Արխիվացված օրիգինալից 2015 թ․ ապրիլի 2-ին. Վերցված է 2015 թ․ փետրվարի 28-ին.
  31. Bray, Brandon (2012 թ․ օգոստոսի 15). «Announcing the release of .NET Framework 4.5 RTM – Product and Source Code». .NET Framework Blog. Microsoft. Արխիվացված օրիգինալից 2016 թ․ հոկտեմբերի 4-ին. Վերցված է 2016 թ․ օգոստոսի 18-ին.
  32. «Announcing .NET 2015 Preview: A New Era for .NET». .NET Framework Blog. Microsoft. 2014 թ․ նոյեմբերի 12. Արխիվացված օրիգինալից 2016 թ․ օգոստոսի 19-ին. Վերցված է 2016 թ․ օգոստոսի 18-ին.
  33. Friedman, Nat (2016 թ․ մարտի 31). «Xamarin for Everyone». Xamarin Blog. Արխիվացված է օրիգինալից 2016 թ․ ապրիլի 12-ին. Վերցված է 2016 թ․ ապրիլի 12-ին.
  34. «.NET Core 5». dotnetfoundation.org. .NET Foundation. Արխիվացված է օրիգինալից 2015 թ․ փետրվարի 17-ին. Վերցված է 2015 թ․ փետրվարի 17-ին.
  35. «.NET Micro Framework». dotnetfoundation.org. .NET Foundation. Արխիվացված է օրիգինալից 2015 թ․ փետրվարի 17-ին. Վերցված է 2015 թ․ փետրվարի 17-ին.
  36. «Roslyn License». GitHub. .NET Foundation. 2020 թ․ փետրվարի 5. Արխիվացված օրիգինալից 2018 թ․ մարտի 24-ին. Վերցված է 2018 թ․ ապրիլի 14-ին.
  37. «ASP.NET MVC, Web API and Web Pages (Razor)». dotnetfoundation.org. .NET Foundation. Արխիվացված է օրիգինալից 2015 թ․ փետրվարի 17-ին. Վերցված է 2015 թ․ փետրվարի 17-ին.
  38. «ASP.NET Core License». GitHub. .NET Foundation. 2017 թ․ հուլիսի 5. Արխիվացված օրիգինալից 2021 թ․ փետրվարի 21-ին. Վերցված է 2018 թ․ ապրիլի 14-ին.
  39. «ASP.NET Ajax Control Toolkit». dotnetfoundation.org. .NET Foundation. Արխիվացված է օրիգինալից 2015 թ․ փետրվարի 17-ին. Վերցված է 2015 թ․ փետրվարի 17-ին.
  40. «ASP.NET SignalR». dotnetfoundation.org. .NET Foundation. Արխիվացված է օրիգինալից 2015 թ․ փետրվարի 17-ին. Վերցված է 2015 թ․ փետրվարի 17-ին.
  41. «Entity Framework». dotnetfoundation.org. .NET Foundation. Արխիվացված է օրիգինալից 2016 թ․ ապրիլի 18-ին. Վերցված է 2016 թ․ ապրիլի 16-ին.
  42. «NuGet». dotnetfoundation.org. .NET Foundation. Արխիվացված է օրիգինալից 2015 թ․ փետրվարի 17-ին. Վերցված է 2015 թ․ փետրվարի 17-ին.

Արտաքին հղումներ

[խմբագրել | խմբագրել կոդը]