Pojdi na vsebino

Microsoft .NET

Iz Wikipedije, proste enciklopedije
Hierarhija komponent, ki sestavljajo ogrodje .NET.

Microsoft .NET je ogrodje za razvijanje programske opreme, ki teče pretežno na operacijskih sistemih Microsoft Windows. Najnovejša različica je 4.8. .NET vključuje obsežno knjižnico razredov (FCL) in zagotavlja medopravilnost jezikov (vsak programski jezik lahko uporablja kodo napisano v drugih programskih jezikih skladnih s specifikacijo CLI). Programi napisani za .NET se izvajajo v programskem okolju (v nasprotju s strojnim okoljem kot pri C ali C++) (CLR), vrsti aplikacijskega virtualnega računalnika, ki je definiran v specifikaciji CLI. Izvajalsko okolje CLR zagotavlja storitve kot so varnost, upravljanje s spominom (v obliki GC) in upravljanje z izjemami, zaradi česar je koda napisana za .NET upravljano kodo.

Osnovna knjižnica (FCL) in izvajalsko okolje (CLR) skupaj tvorita ogrodje .NET. FCL zagotavlja orodja za uporabniške vmesnike, podatkovni dostop, povezljivost z bazami podatkov, kriptografske postopke, funkcije za razvoj spletnih aplikacij, numerične postopke in spletno komunikacijo. Razvijalci izdelujejo knjižnice in aplikacije s kombiniranjem lastne izvorne kode s knjižnicami ogrodja .NET in drugimi knjižnicami. Za .NET je na voljo veliko odprtokodnih in komercialnih knjižnic, katerih velik del je prenosljiv na različne platforme. Prenosljivost je vgrajena v osnovne koncepte ogrodja in čeprav originalna Microsoftova izvedba cilja na operacijski sistem Windows, alternativne izvedbe kot je Mono zagotavljajo prenosljivost na številne sodobne platforme. Ovira za prenosljivost je lahko odvisnost knjižnic od sistemskih klicev ali od knjižnic v strojnem jeziku, ki niso napisane za .NET (primer je WPF). Ogrodje .NET je med drugim namenjeno uporabi v večini novejših aplikacij za platformo Windows. Za razvoj programov so na voljo številna integrirana razvojna okolja, od katerih je najbolj razširjena uporaba okolij Visual studio in MonoDevelop.

Razvoj ogrodja .NET se je začel v obliki zaprtega komercialnega sistema, vendar je podjetje že v začetnih fazah razvoja (pred prvo objavo) delovalo tudi v smeri standardizacije. Kljub standardizaciji pomembnih delov ogrodja so različni razvijalci (predvsem tisti iz odprtokodnih skupnosti) izražali bojazni pri uporabi ogrodja za razvoj aplikacij v povezavi s patenti in določenih delov implementacij. Microsoft je zato spreminjal strategijo razvoja okolja .NET na načine, ki so bolj skladni s sodobnimi modeli razvoja programske opreme na podlagi projektov v lasti skupnosti. Poleg izdajanja dodatni patentnih obljub, ki ščitijo razvijalce pred morebitnimi patentnimi tožbami, je Microsoft v zadnjem času večje dele razvoja okolja prenesel na model, pri kateremu se uporabljajo proste odprtokodne licence in je razvoj dostopen širši skupnosti razvijalcev.

Iz okolja .NET je izšla družina platformov skladnih z .NET za razvoj mobilnih aplikacij, vljučenih naprav, alternativnih operacijskih sistemov in vtičnikov za internetne brskalnike. Zmanjšana različica ".NET Compact Framework" je dostopna za platforme Windows CE (vključno z napravami na osnovi Windows Mobile). Ogrodje .NET Micro Framework je prilagojeno sistemom z zelo omejenimi strojnimi zmogljivostmi. SilverLight je bil razvit kot vtičnik za internetne brskalnike. Mono je na voljo za številne operacijske sisteme in je med drugim prilagojeno za operacijske sisteme za pametne telefone (Android in iOS) in igralne naprave. Ogrodje .NET Core ja namenjeno razvoju aplikacij prenosljivih med različimi platformami, razvoju v oblaku in Univerzalni Windows Platformi (UWP).

Zgodovina

[uredi | uredi kodo]

Čeprav nekateri verjamejo, da je tehnologijo .NET razvil Microsoft kot njihovo verzijo ogrodja Java, je v resnici dosti skupin, ki so delali na .NET ogrodju, nameravalo izdelati COM+ 2.5. Ostali oddelki so prav tako izboljševali druge Microsoftove tehnologije - oddelek za mrežne strežnike je, na primer, razvijal ASP 4.0 in ostali oddelki so razvijali »Next-Generation Web Services«. Delo različnih oddelkov se je na koncu združilo v en sistem, ki se sedaj imenuje .NET.

Ko se je Microsoft leta 1998 odločil, da bo prenehal z uporabo Sun-ove tehnologije Java, se je začela transformacija Microsoftovega produkta J++ v začetke projekta .NET. Za razliko od aplikacij v Javi, ki so napisane v enem jeziku za mnogo različnih platform, so bile na začetku razvoja aplikacije v .NET lahko napisane v več različnih jezikih, toda samo za en operacijski sistem (Windows). Pozneje se je s pojavom alternativnih izvedb ogrodja .NET (predvsem okolja Mono s prvim izidom leta 2003) pojavila možnost pisanja aplikacij za različne platforme.

Premik k odprtokodnemu razvoju

[uredi | uredi kodo]

Decembra 2001 sta bila CLI in C# ratificirana kot ECMA standarda. [1] Ustrezna ISO standarda sta sledila aprila 2003. Trenutni verziji standarda sta ISO/IEC 23271:2012 in ISO/IEC 23270:2006.[2][3]


12. novembra 2014 je Microsoft najavil izdajo .NET Core pod odprtokodno licenco, kot del naporov za prenosljivo podporo .NET na različnih platformah in odprtokodni model razvoja pod okriljem .NET Foundation.[4] .NET Core naj bi bila osnova prihodnjih platform .NET. Istočasno je bila najavljena sprememba licence za referenčno izvorno kodo .NET v bolj odprto licenco kot je Ms-RSL.[5][6][7]

V novembru 2014, je Microsoft naznanil tudi izdajo prenovljenih patentnih obljub (zagotovila, da Microsoft ne bo pravno uporabil patentne zaščite proti razvijalcem tehnologij temelječih na .NET). Zaradi omejitev v prejšnjih zagotovilih glede patentov povezanih z .NET so bili projekti kot je Mono v pravni sivini, ker so se zagotovila nanašala striktno na 4. edicijo standardov ECMA-334 in ECMA-335. Nova patentna obljuba ni vezana na določeno verzijo standarda in razširi pokritje na vse .NET tehnologije, ki so dokumentirane v MSDN, tudi, če te niso specifirane v standardih ECMA. To omogoča Monu in sorodnim projektom, da so v koraku z novimi značilnostmi ogrodja .NET, ne da bi njihovi razvijalci tvegali tožbe na osnovi patentnih zahtev. Zagotovilo pa zahteva, da mora vsaka impementacija ogrodja .NET ohranjati minimalno skladnost z obveznimi določili specifikacije CLI.[8]

31. marca 2016 je Microsoft na svoji letni konferenci oznanil, da bodo v celoti licencirali ogrodje Mono pod Licenco MIT, tudi v delih, ko je bila prej potrebna komercialna licenca. [9] Microsoft je dodatno razširil svojo prejšnjo patentno obljubo za Mono z izjavo, da ne bo sprožil patentnih zahtev proti nikomur, ki bo "uporabljal, prodajal, ponujal v prodajo, uvažal ali distribuiral okolje Mono". [10][11] Projekt Mono je bil prenešen pod skrbništvo organizacije .NET Foundation. Microsoftovo sporočilo za javnost poudarja, da bo strežniški del ogrodja .NET v celoti odprtokoden in bo omogočal razvoj prenosljiv med različnimi platformami, da pa Microsoft nima načrtov izdati ogrodj WPF ali Windows Forms pod odprtokodno licenco. [12][13]

Zgradba

[uredi | uredi kodo]

Common Language Infrastructure

[uredi | uredi kodo]

"Common Language Infrastructure" (CLI) zagotavlja platformo za razvoj in izvajanje aplikacij, ki je neodvisna od jezika. CLI vsebuje funkcije za ravnanje z izjemami (angleško "exception handling"), avtomatično čiščenje spomina (angleško "garbage collection"), varnost in medopravilnost (izvajanje kode, ki je napisana v ratzličnih programskih jezikih). Specifična Microsoftova izvedba CLI, ki se uporablja v ogrodju .NET, se imenuje Common Language Runtime (CLR) in služi kot izvajalsko okolje ogrodja .NET. Vsi programi za .NET se izvajajo pod nadzorom CLR, kar zagotavlja določene lastnosti na področjih upravljanja s spominom, varnosti in upravljanja z izjemami.

Programi, ki se izvajajo na CLI, so najprej prevedeni v vmesni jezik (Common Intermediate Language, CIL, v nasprotju s prevajanjem v strojno kodo pri jezikih kot je C++). Ob izvedbi programa poseben prevajalnik ("just-in-time compiler", JIT) pretvori kodo v CIL v strojno kodo. JIT lahko posamezne dele kode prevede ločeno, šele takrat, ko se zares izvedejo. Deli programa, ki se v določeni seansi nikoli ne izvedejo, se zaradi tega ne prevedejo, hkrati pa se vsak del kode ob izvajanju programa prevede v strojno kodo le enkrat, pri vseh nadaljnjih klicih v ta del kode se uporabi že prevedena strojna koda.

Zaradi načina izvajanja pravimo, da je koda programov za .NET (in sorodna okolja) upravljana koda (angleško managed code). Izraz se uporablja tako za izvorno kodo (npr. v jeziku C#) kot tudi za kodo v CIL. Kodi v vmesnem jeziku pravimo tudi bitna koda (angleško "byte code", podoben koncept pozna tudi Java). Sprotno prevajanje iz vmesnega jezika povzroča zakasnitve pri izvajanju. Za izboljšanje učinkovitosti je v ogrodju .NET na voljo "Native Image Generator" (NGEN), ki celoten program s pripadajočimi knjižnicami vnaprej prevede v strojno kodo (angleško temu postopku pravijo "ahead-of-time compilation").

Sklopi

[uredi | uredi kodo]

Prevedena koda v vmesnem jeziku (CIL) je shranjena v CLI sklopih (angleško "CLI Assemblies"). Po specifikaciji morajo biti sklopi v datotečnem formatu Portable Executable (PE), v katerem so npr. datoteke .dll (dinamične knjižnice) in .exe (programi, ki se izvajajo) na operacijskem sistemu Windows. Vsak sklop je sestavljen iz ene ali več datotek, od katerih mora ena vsebovati manifest, v katerem so meta podatki za ta sklop. Polno ime sklopa (ki je različno od imena vsebujoče datoteke na disku) je sestavljeno iz enostavnega imena, številke verzije, kulture in simbola javnega ključa. Sklopi so za izvajalsko okolje (CLR) ekvivalentni, kadar imajo enako polno ime. Polno ime sklopa je lahko na primer:

 mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

V tem primeru je "mscorlib" enostavno ime sklopa. Niz "b77a5c561934e089" je simbol javnega ključa, ki enolično identificira pripadajoči javni ključ. Ta javni del para ključev za asimetrično enkripcijo, s katerim je bil sklop podpisan.

Sklopi so lahko podpisani s privatnim ključem razvijalca sklopa (vendar to ni nujno). V tem primeru vsebuje polno ime sklopa simbol javnega ključa, ki pripada paru ključev razvijalca, s katerim je bil sklop podpisan. Na ta način lahko izvajalsko okolje (CLI oz. CLR v primeru Microsoftove izvedbe .NET) preveri izvirnost (avtentičnost) sklopa. Pri povezovanju (angleško "linking") povezovalnik pri klicih v povezane sklope pove s polnim imenom, v katerem sklopu je koda, ki se bo izvedla (pri izvajanju se ta sklop naloži, če do trenutka klica še ni bil naložen, za to poskrbi izvajalsko okolje, CLI). Ker polno ime vsebuje simbol javnega ključa, lahko izvajalsko okolje pred nalaganjem sklopa preveri, ali gre resnično za pravi sklop, ki ga je podpisal določen razvijalec. Če bi nekdo na mesto izvirnega sklopa podtaknil ponarejen sklop z zlonamerno kodo, bi izvajalsko okolje zaznalo, da ne gre za izviren sklop (čeprav bi bilo polno ime in številne druge lastnosti enake), ker podpis sklopa ne bi ustrezal pravemu paru ključev. To je možno preveriti iz simbola javnega ključa (ki je del polnega imena), ker ta enolično identificira par ključev, od katerih je bil privatni ključ uporabljen pri podpisovanju izvirnega sklopa. Ta sistem preprečuje napade z zamenjavo sklopov z nepravimi sklopi, ki lahko vsebujejo škodljivo kodo.

To, da sta številka verzije in simbol javnega ključa del polnega imena sklopa, omogoča, da lahko imamo v isti shrambi več različic istega sklopa različnih razvijalcev. Tako lahko imamo programe, ki so odvisni od različnih izvedb nekega sklopa (npr. različnih verzij sklopa ali sklopa, ki izvira od različnih razvijalcev). Na primer, skupaj lahko hranimo sklop mscorlib, ki je del Microsoftove izvedbe .NET in ekvivalenten sklop, ki je del ogrodja Mono. Če isti program prevedemo najprej z uporabo .NET in nato z uporabo Mono, bosta tako narejeni različici naložili različni izvedbi sklopa, ki se morda razlikujeta le po simbolu javnega ključa. Takšnih različnih izvedb istega sklopa ne moremo hraniti v istem direktoriju, ker bi imele različne izvedbe tipično enako ime datoteke (to se navadno ujema z enostavnim imenom sklopa, vendar to po specifikaciji CLI ni nujno, razvijalci se lahko odločijo za nepovezana imena datotek). Zaradi tega imajo .NET in druge izvedbe posebno hrambo sklopov - Global Assembly Cache (GAC). CLI to shrambo obravnava, kot da gre za en direktorij, vendar je v resnici sestavljena iz vgnezdenih direktorijev, kjer je lahko shranjenih več različic istega sklopa.

Program v .NET lahko ima vse sklope (običajno s končnico .exe), od katerih je odvisen, skopirane v isti direktorij, v katerem je program (običajno s končnico .exe), lahko pa uporablja tudi sklove v GAC. V .NET lahko programi (ki so v sklopiih s končnico .exe) poleg dinamičnih knjižnic s končnico .dll uporalbjajo tudi kodo v drugih programih, torej v drugih sklopih s končnico .exe.

Različice

[uredi | uredi kodo]
Pregled različic ogrodja .NET[14][15]
Različica
Verzija
CLR
Dadum
izdaje
Razvojno orodje Vključena v: Nadomesti
Windows Windows Server
1.0 1.0 2002-02-13 Visual Studio .NET[16] XP[a] Ni na voljo Ni na voljo
1.1 1.1 2003-04-24 Visual Studio .NET 2003[16] Ni na voljo 2003 1.0[17]
2.0 2.0 2005-11-07 Visual Studio 2005[18] Ni na voljo 2003, 2003 R2,[19] 2008 SP2, 2008 R2 SP1 Ni na voljo
3.0 2.0 2006-11-06 Expression Blend[20][b] Vista 2008 SP2, 2008 R2 SP1 2.0[14]
3.5 2.0 2007-11-19 Visual Studio 2008[21] 7, 8[c], 8.1[c], 10[c] 2008 R2 SP1 2.0, 3.0[14]
4.0 4 2010-04-12 Visual Studio 2010[22] Ni na voljo Ni na voljo Ni na voljo
4.5 4 2012-08-15 Visual Studio 2012[23] 8 2012 4.0[14]
4.5.1 4 2013-10-17 Visual Studio 2013[24] 8.1 2012 R2 4.0, 4.5[14]
4.5.2 4 2014-05-05 Ni na voljo Ni na voljo Ni na voljo 4.0–4.5.1[14]
4.6 4 2015-07-20 Visual Studio 2015[25] 10 Ni na voljo 4.0–4.5.2[14]
4.6.1 4 2015-11-17[26] Visual Studio 2015 Update 1 10 verzija 1511 Ni na voljo 4.0–4.6[14]

Opombe:

a.^ .NET 1.0 je sestavna komponenta operacijskega sistema Windows XP "Media Center edition" ali "Tablet PC edition". Inštalacijski CDji za "Home edition" in "Professional editions" Windows XP SP1, SP2 ali SP3 imajo vključen inštalacijski paket ogrodja .NET.[15]
b.^ Expression Blend pokriva le modul Windows Presentation Foundation ogrodja .NET 3.0.
c.^ ^ ^ Ogrodje .NET 3.5 ni avtomatično inštalirano z Windows 8, 8.1 ali 10. Inštalira za na zahtevo z inštalacijskih medijev sistema ali z interneta. Nadzorna plošča vedno poskuša slednje.[27]

Licenciranje

[uredi | uredi kodo]

Microsoftova ogrodja in njihove komponente so licencirane na naslednje načine:

Komponenta Licenca
Ogrodje .NET (redistributable) Komercialna licenca[28]
Referenčna izvorna koda ogrodij .NET 4.5 in zgodnejših Microsoftova licenca za referenčno kodo (Ms-RSL)[29]
Referenčna izvorna koda ogrodja .NET 4.6 Licenca MIT[30]
Mono Licenca MIT[31]
.NET Core
CoreFX, CoreCLR in CLI
Licenca MIT[32]
Ogrodje .NET Mikro Licenca Apache 2.0[33]
Prevajalniška platforma .NET (kodno ime "Roslyn") Licenca Apache 2.0[34]
ASP.NET MVC, Web API in Web Pages (Razor) Licenca Apache 2.0[35]
ASP.NET Core Licenca Apache 2.0[36]
ASP.NET Ajax Control Toolkit Licenca BSD[37]
ASP.NET SignalR Licenca Apache 2.0[38]
Entity Framework Licenca Apache 2.0[39]
NuGet Licenca Apache 2.0[40]

Druge izvedbe

[uredi | uredi kodo]

Microsoftova polna komercialna implementacija ogrodja .NET je vezana predvsem na operacijske sisteme Windows. Poleg te obstajajo številne druge implementacije, od katerih nekatere delijo del izvorne kode s polno implementacijo in so lahko prenosljive med različnimi sistemi:

  • Mono je odprtokodna izvedba prenosljiva na večino pomembnih platform, ki se razvija v okviru projekta pod okriljem podjetja Xamarin. Mono vključuje lastno integrirano razvojno okolje MonoDevelop z velikim delom funkcionalnosti Visual Studia.
  • .NET Core je alternativna Microsoftova aplikacija ogrodja, ki je podobna ogrodju .NET in deli z ogrodjem del aplikacijskega programskega vmesnika, vendar je zasnovana na drugačnih načelih - kot prenosljjivo in odprtokodno ogrodje.
  • Ogrodje .NET Micro je okrnjeno ogrodje .NET za naprave z zelo omejenimi strojnimi zmogljivostmi. Vključuje manjšo implementacijo CLR in podpira razvoj v jeziku C# ter razhroščevanje na emulatorju strojne opreme. Razvoj je možen v okolju Visual Studio .
  • .NET Compact Framework je Microsoftova implementacija ogrodja namenjena razvoju poganjanju aplikacij na platformah z omejenimi strojnimi viri, na primer telefonih ali tovarniških kontrolerjih. Ogrodje vsebuje iste knjižnice kot polno ogrodje .NET, poleg tega pa še nekaj dodatnih knjižnic za mobilne naprave, kot na primer .NET Compact Framework controls.

Glej tudi

[uredi | uredi kodo]

Zunanje povezave

[uredi | uredi kodo]

Sklici

[uredi | uredi kodo]
  1. Guthrie, Scott (3. oktober 2007). »Releasing the Source Code for the NET Framework«. Scott Guthrie's Blog. Microsoft. Arhivirano iz spletišča dne 7. septembra 2010. Pridobljeno 15. septembra 2010.
  2. »ISO/IEC 23271:2012 Information technology – Common Language Infrastructure«. iso.org (3 izd.). International Organization for Standardization. 13. februar 2012.
  3. »ISO/IEC 23270:2006 – Information technology – Programming languages – C#«. iso.org (2 izd.). International Organization for Standardization. 26. januar 2012.
  4. de Icaza, Miguel. »Microsoft Open Sources .NET and Mono«. Personal blog of Miguel de Icaza. Pridobljeno 16. novembra 2014.
  5. Landwerth, Immo (12. november 2014). ».NET Core is Open Source«. .NET Framework Blog. Microsoft. Pridobljeno 30. decembra 2014.
  6. »dotnet/corefx«. GitHub. Pridobljeno 16. novembra 2014.
  7. »Microsoft/referencesource«. GitHub. Pridobljeno 16. novembra 2014.
  8. »Microsoft Patent Promise for .NET Libraries and Runtime Components«. Pridobljeno 16. novembra 2014.
  9. Krill, Paul (1. april 2016). »Xamarin's Mono runtime gets a looser license«. Infoworld. IDG.
  10. Ferraira, Bruno (31. marec 2016). »Xamarin now comes free with Visual Studio«. The Tech Report.
  11. »Microsoft Patent Promise for Mono«. Mono on GitHub. Mono Project. 28. marec 2016. Arhivirano iz spletišča dne 16. aprila 2016. Pridobljeno 16. aprila 2016.
  12. »Microsoft takes .NET open source and cross-platform, adds new development capabilities with Visual Studio 2015, .NET 2015, and Visual Studio Online«. News Center. Microsoft. Pridobljeno 16. novembra 2014.
  13. Foley, Mary Jo. »Microsoft to open source more of .NET, and bring it to Linux, Mac OS X«. ZDNet. Pridobljeno 16. novembra 2014.
  14. 14,0 14,1 14,2 14,3 14,4 14,5 14,6 14,7 ».NET Framework Versions and Dependencies«. MSDN. Microsoft. Pridobljeno 17. januarja 2014.
  15. 15,0 15,1 Stebner, Aaron (14. marec 2007). »Mailbag: What version of the .NET Framework is included in what version of the OS?«. Aaron Stebner's WebLog. Microsoft.
  16. 16,0 16,1 »What's New in Visual Studio .NET 2003«. MSDN. Microsoft. Pridobljeno 1. septembra 2014. Visual Studio .NET 2002 shipped with the Microsoft .NET Framework SDK version 1.0. Visual Studio .NET 2003 ships with .NET Framework SDK version 1.1.
  17. ».NET Framework Developer Center – Frequently Asked Questions«. Arhivirano iz spletišča dne 24. julija 2012. Pridobljeno 26. aprila 2016.
  18. »What's New in Visual Studio 2005«. MSDN. Microsoft. Pridobljeno 1. septembra 2014.
  19. »What's New in Windows Server 2003 R2«. TechNet. Microsoft. 22. avgust 2005. Pridobljeno 5. januarja 2015.
  20. Chinnathambi, Kirupa (4. december 2006). »Expression Blend -- What Is That?«. Expression Blend and Design. Microsoft. Pridobljeno 1. septembra 2014.
  21. Guthrie, Scott (19. november 2007). »Visual Studio 2008 and .NET 3.5 Released«. Scott Gu's Blog. Microsoft. Pridobljeno 1. septembra 2014.
  22. »What's New in Visual Studio 2010«. MSDN. Microsoft. Pridobljeno 1. septembra 2014.
  23. »What's New in Visual Studio 2012«. MSDN. Microsoft. Pridobljeno 1. septembra 2014.
  24. »What's New in Visual Studio 2013«. MSDN. Microsoft. Pridobljeno 1. septembra 2014.
  25. Somasegar, S (29. junij 2015). »Save the Date: Visual Studio 2015 RTM on July 20th«. Somasegar’s blog. Microsoft.
  26. »Microsoft .NET Framework 4.6.1 (Offline Installer) for Windows 7 SP1, Windows 8, Windows 8.1, Windows 10, Windows Server 2008 R2 SP1, Windows Server 2012 and Windows Server 2012 R2«. Download Center. Microsoft. 17. november 2015.
  27. »Installing the .NET Framework 3.5 on Windows 8, Windows 8.1 and Windows 10«. MSDN. Microsoft. Arhivirano iz spletišča dne 27. aprila 2015. Pridobljeno 26. aprila 2016.
  28. »Microsoft .NET Framework Redistributable EULA«. MSDN. Microsoft. Pridobljeno 28. februarja 2015.
  29. Bray, Brandon (15. avgust 2012). »Announcing the release of .NET Framework 4.5 RTM – Product and Source Code«. .NET Framework Blog. Microsoft.
  30. »Announcing .NET 2015 Preview: A New Era for .NET«. .NET Framework Blog. Microsoft. 12. november 2014.
  31. »Xamarin for Everyone«. Xamarin Blog. Microsoft. 17. april 2016. Arhivirano iz prvotnega spletišča dne 12. aprila 2016. Pridobljeno 26. aprila 2016.
  32. ».NET Core 5«. dotnetfoundation.org. .NET Foundation. Arhivirano iz prvotnega spletišča dne 17. februarja 2015. Pridobljeno 17. februarja 2015.
  33. ».NET Micro Framework«. dotnetfoundation.org. .NET Foundation. Arhivirano iz prvotnega spletišča dne 17. februarja 2015. Pridobljeno 17. februarja 2015.
  34. ».NET Compiler Platform ("Roslyn")«. dotnetfoundation.org. .NET Foundation. Arhivirano iz prvotnega spletišča dne 13. novembra 2014. Pridobljeno 17. februarja 2015.
  35. »ASP.NET MVC, Web API and Web Pages (Razor)«. dotnetfoundation.org. .NET Foundation. Arhivirano iz prvotnega spletišča dne 17. februarja 2015. Pridobljeno 17. februarja 2015.
  36. »ASP.NET 5«. dotnetfoundation.org. .NET Foundation. Arhivirano iz prvotnega spletišča dne 23. novembra 2014. Pridobljeno 17. februarja 2015.
  37. »ASP.NET Ajax Control Toolkit«. dotnetfoundation.org. .NET Foundation. Arhivirano iz prvotnega spletišča dne 17. februarja 2015. Pridobljeno 17. februarja 2015.
  38. »ASP.NET SignalR«. dotnetfoundation.org. .NET Foundation. Arhivirano iz prvotnega spletišča dne 17. februarja 2015. Pridobljeno 17. februarja 2015.
  39. »Entity Framework«. dotnetfoundation.org. .NET Foundation. Arhivirano iz prvotnega spletišča dne 18. aprila 2016. Pridobljeno 16. aprila 2016.
  40. »NuGet«. dotnetfoundation.org. .NET Foundation. Arhivirano iz prvotnega spletišča dne 17. februarja 2015. Pridobljeno 17. februarja 2015.