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

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)-ն ապահովում է ծրագրերի մշակման և գործարկման համար լեզվից անկախ հարթակ։ 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]։
Class library
[խմբագրել | խմբագրել կոդը].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]:

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