.NET Framework (okulfrapa punktoreto) estas softvarkadro evoluigita fare de Mikrosofto kiu funkcias ĉefe per Vindozo.
Ĝi inkludas grandan klasbibliotekon nomitan Framework Class Library (FCL) kaj disponigas lingvokunfunkcieblecon (ĉiu lingvo povas utiligi kodon skribitan en aliaj lingvoj) trans pluraj programlingvoj.
RETA Kadro efektivigas en softvarmedio (kontraste al hardvar medion) nomita Common Language Runtime (CLR), aplikiĝa virtuala maŝino kiu disponigas servojn kiel ekzemple sekureco, memoradministracio, kaj esceptomanipulado.
(Kiel tia, komputilkodo skriba uzanta.
RETA Kadro estas nomita " administrita kodo ".
#000001
FCL disponigas uzanto-interfacon, datenaliron, datumbazkonekteblecon, kriptografion, retoprogram evoluon, numerajn algoritmojn, kaj sendostaciajn komunikadojn.
Programistoj produktas softvaron kombinante sian fontkodon kun.
RETA Kadro kaj aliaj bibliotekoj.
La kadro estas celita esti uzita per la plej multaj novaj aplikoj kreitaj por la Vindozo-platformo.
Mikrosofto ankaŭ produktas iDE plejparte por.
RETA softvaro nomita Visual Studio.
#000002
RETA Kadro komenciĝis kiel proprieta softvaro, kvankam la firmao laboris por normigi la softvarstakon preskaŭ tuj, eĉ antaŭ ĝia unua eldono.
Malgraŭ la normigadklopodoj, programistoj, plejparte tiujn en la liberaj kaj malfermfontaj softvar komunumoj, esprimis sian maltrankvilon kun la elektitaj esprimoj kaj la perspektivoj de iu libera kaj malfermfonta efektivigo, precipe koncerne softvarpatentojn.
RETA evoluo pli atente sekvi nuntempan modelon de komunum-evoluinta softvarprojekto, inkluzive de eldonado de ĝisdatigo al ĝia patento promesante alparoli la konzernojn.
#000003
RETA Kadro kondukis al familio de.
RETA platformaj celada mova komputiko, integriĝintaj aparatoj, alternativaj operaciumoj, kaj tTT-legilaldonaĵoj.
Reduktita versio de la kadro, .NET Compact Framework, estas havebla en Windows CE platformoj, inkluzive de Windows Mobile aparatoj kiel ekzemple dolortelefonoj.
.NET Micro Framework estas laŭcela ĉe tre rimed-limigitajn integriĝintajn aparatojn.
Silverlight estis havebla kiel tTT-legil aldonaĵo.
Monofonio estas havebla por multaj operaciumoj kaj estas adaptita en popularajn dolortelefonajn operaciumojn ( Androido kaj iOS) kaj ludmaŝinoj.
.NET Core celas la Universal Windows Platform (UWP), kaj transsistemajn kaj nubkomputik laborkvantojn.
#000004
RETA Kadro en la malfruaj 1990-aj jaroj, originale sub la nomo de Next Generation Windows Services (NGWS).
Antaŭ malfrua 2000, la unuaj beta-versioj da.
#000005
Dum Mikrosofto kaj iliaj partneroj tenas patentojn por CLI kaj C nombro, ECMA kaj ISO postulas ke ĉiuj patentoj esenca al efektivigo fariĝu haveblaj sub " akcepteblaj kaj nediskriminantaj esprimoj ".
La firmaoj jesis renkonti tiujn esprimojn, kaj igi la patentojn haveblaj tantiem-libera.
Tamen, tio ne petis pri la parto de.
Patentoj kiujn tiu Mikrosofto tenas en tiuj lokoj eble malinstigis ne-Mikrosoftajn efektivigojn de la plena kadro.
#000007
La 3an de oktobro 2007, Mikrosofto sciigis ke la fontkodo por.
3.5 bibliotekoj devis iĝi haveblaj sub la Microsoft Reference Source License (Mikrosofto Reference Source License) (Ms-RSL [ a ] ).
La fontkoddeponejo iĝis havebla rete la 16an de januaro 2008 kaj inkludis BCL, TREMOLON.
Scott Guthrie de Mikrosofto promesis ke LINQ, WCF, kaj Wf-bibliotekoj estis aldonitaj.
#000008
En novembro 2014, Mikrosofto ankaŭ produktis ĝisdatigon al ĝiaj malfermitaj stipendioj, kiu plue etendas la amplekson preter siaj antaŭaj promesoj.
Antaŭaj projektoj kiel Monofonio ekzistis en laŭleĝa griza areo ĉar la pli fruaj stipendioj de Mikrosofto validis nur por la teknologio en "kovritaj specifoj", inkluzive de strikte la 4-a eldonoj ĉiu el ECMA-334 kaj ECMA-335. La nova patentopromeso, aliflanke, metas neniun plafonon en la specifoversion, kaj eĉ etendiĝas al iu.
RETAJ rultempaj teknologioj dokumentitaj sur MSDN kiuj ne estis formale precizigitaj fare de la ECMA-grupo, ĉu projekto elektas efektivigi ilin.
Tio permesas al Mono kaj al aliaj projektoj konservi trajtegalecon kun modernulo.
RETO havas tion estis lanĉita ĉar la 4-a eldono estis publikigita sen estado ĉe risko de malfermita proceso super la efektivigo de tiuj ecoj.
La nova stipendio asertas la restrikton ke ĉiu efektivigo devas konservi minimuman konformec kun la devigaj partoj de la CLI-specifo.
#000010
La 31an de marto 2016, Mikrosofto sciigis en Microsoft Build ke ili tute relicenseos Mono sub MIT-permesilo eĉ en scenaroj kie antaŭe komerca licenco estis necesa.
Mikrosofto ankaŭ kompletigis ĝian antaŭan malfermitan promeson por Mono, deklarante ke ili ne asertos iujn ajn "uzeblajn patentojn" kontraŭ partioj kiuj "uzas, vendado, proponon por vendo, importado, aŭ distribuas Mono."
Estis sciigite ke la Monoa Projekto estis kontribuita al la.
Tiuj evoluoj sekvis la akiron de Xamarin, kiu komenciĝis en februaro 2016 kaj estis finita la 18an de marto 2016.
#000011
La gazetara komuniko de Mikrosofto elstarigas ke la transsistema engaĝiĝo nun enkalkulas tute malfermfontan, modernan servilo-flankon.
Tamen, Mikrosofto ne planas publikigi la fonton por WPF aŭ Windows Forms.
#000012
RETA Kadro 3.5 ne estas aŭtomate instalita kun Fenestroj 8, 8.1 aŭ 10-a Ĝi devas esti instalita aŭ de Vindozo-instalaĵamaskomunikilaro aŭ de la Interreto sur postulo.
#000016
Ke komputilaj programoj por funkcius per CLI, ili devas esti kompilitaj en Common Intermediate Language (CIL) - kontraste al estado kompilitaj en maŝinkodon.
Sur ekzekuto, arkitektur-specifa ekzakte ĝustatempa kompililo (JIT) iĝas la CIL-kodon maŝinkodo.
RETA Kadro venas kun Native Image Generator (NGEN), kiu elfaras antaŭe-de-tempan kompilon.
#000018
Kompilis CIL-kodon estas stokita en CLI-asembleoj.
Kiel postulite per la specifo, kunigoj estas stokitaj en Portable Executable (gimnastiko) dosierformato, ofta en Fenestroplatformo por ĉiu dinamik-liga biblioteko (DLL) kaj efektivigeblaj EXE dosieroj.
Ĉiu kunigo konsistas el unu aŭ pluraj dosieroj, unu el kiuj devas enhavi manifeston portantan la metadatenojn por la kunigo.
La kompleta nomo de kunigo (malsama al la dosiernomo sur vendotablo) enhavas it simplan tekstonomon, versinumeron, kulturon, kaj publikŝlosilan ĵetonon.
Asembleoj estas konsideritaj ekvivalentaj ĉu ili dividas la saman kompletigas nomon.
#000019
Privata ŝlosilo ankaŭ povas esti utiligita fare de la kreinto de la kunigo por forta nomado.
La publikŝlosila ĵetono identigas kun kiun privatan ŝlosilon kiun asembleo estas subskribita.
Nur la kreinto de la ŝlosilparo (tipe.
RETA ellaboranto subskribanta la kunigon) povas subskribi kunigojn kiuj havas la saman fortan nomon kiel antaŭa versiasembleo, ĉar la kreinto posedas la privatan ŝlosilon.
Forta nomado estas postulata por aldoni kunigojn al Global Assembly Cache.
#000020
RETA Kadro inkludas aron de normaj klasbibliotekoj.
La klasbiblioteko estas fakorganizita en hierarkio de Nomspacoj.
La plej granda parto de la enkonstruita aplikiĝo programadointerfacojn (APIoj) estas parto de ĉiu el ambaŭSystem.*aŭMicrosoft.*Nomspacoj.
Tiuj klasbibliotekoj efektivigas multajn komunajn funkciojn, kiel ekzemple dosierlegado kaj skribo, grafika interpreto, datumbazinteragado, kaj XML-dokumentmanipulado.
La klasbibliotekoj estas disponeblaj por ĉiuj CLI-observemaj lingvoj.
La klasbiblioteko estas dividita en du partojn (kun neniu klara limo):
#000021
BCL inkludas malgrandan subaron de la tuta klasbiblioteko kaj estas la kernaro de klasoj kiuj funkcias kiel la bazaĵo API de CLR.
RETA Kadro kiun la plej multaj klasoj pripensis esti parto de BCL baziĝas surmscorlib.dll, System.dllkajSystem.Core.dll.
RETA Kadro same kiel ĝiaj alternativaj efektivigoj inkluzive de .NET Compact Framework, Microsoft Silverlight, .NET Core kaj Mono.
#000022
FCL estas superaro de BCL kaj rilatas al la tuta klasbiblioteko kun kiu ŝipoj.
Ĝi inkludas vastigitan aron de bibliotekoj, inkluzive de la Vindozo-Formoj, ASP.NET, kaj Windows Presentation Foundation (WPF) sed ankaŭ etendaĵoj al la bazklasbibliotekoj ADO.NET, Language Integrated Query (LINQ), Windows Communication Foundation (WCF), kaj Workflow Foundation (Wf).
FCL estas multe pli granda ene de aplikeco ol normaj bibliotekoj ĉar lingvoj ŝatas C++, kaj komparebla ene de aplikeco al normaj bibliotekoj de Java.
#000023
Kun la enkonduko de alternativaj efektivigoj (ekz., Silverlight), Mikrosofto lanĉis la koncepton de Portable Class Libraries (PCL) permesanta konsumantan bibliotekon funkcii per pli ol unu platformo.
Kun la plia proliferado de.
RETAJ platformoj, la PCL-aliro malsukcesa por skali (PCLoj estas difinitaj intersekciĝoj de Api-surfaco inter du aŭ pli da platformoj).
Kiel la venonta evolua paŝo de PCL, la.
RETO kiun Standard Library estis kreita retroaktive surbaze de laSystem.Runtime.dllbazitaj APIoj trovite en UWP kaj Silverlight.
RETAJ platformoj estas apogitaj por efektivigi version de la norma biblioteko permesante al ili recikligi pluekzistantajn triapartajn bibliotekojn por kuri sen novaj versioj de ili.
RETO kiun Standard Library permesas al sendependa evoluo de la biblioteko kaj programmodelo tavoligas ene de la.
#000024
NuGet estas la pakaĵmanaĝero por ĉio.
Kutimas preni triapartajn bibliotekojn en.
RETA projekto kun tutmonda biblioteksendo ĉe .
Privataj furaĝoj povas esti konservitaj aparte, ekz., per konstruoservilo aŭ dosiersistemadresaro.
#000025
Sur la klasbibliotekoj, multoblaj programmodeloj estas utiligitaj por krei programojn.
RETA Kadro apogas Console, Windows Forms, Windows Presentation Foundation, ASP.NET kaj ASP.NET Core programojn defaŭlte.
Aliaj programmodeloj estas ofertitaj per alternativaj efektivigoj de la.
Monofonio kutimas funkciigi Xamarin-programmodelojn por Android, iOS, kaj macOS.
La retroaktiva arkitektura difino de programmodeloj montris supren frue en 2015 kaj ankaŭ estis aplikita al antaŭaj teknologioj kiel Windows Forms aŭ WPF.
#000026
Mikrosofto lanĉis C++/CLI en Visual Studio 2005, kio estas lingvo kaj rimedoj de kompilado de Visual C+ programoj por kuri ene de la.
Kelkaj partoj de la C++-programo daŭre kuras ene de neadministrita Visual C+ Rultempo, dum aparte modifitaj partoj estas tradukitaj en CIL-kodon kaj kuras kun la.
#000027
Asembleoj kompilis uzi la C++/CLI-kompililo estas nomita miksit-reĝimaj kunigoj, ĉar ili enhavas indiĝenon kaj administris kodon en la sama DLL.
Tiajn kunigojn ankaŭ malfacilas inversigi inĝenieron, poste.
RETAJ malkompilantoj kiel ekzemple .NET Reflector rivelas nur la administritan kodon.
#000028
Ĉar komputilsistemoj ofte postulas interagadon inter pli novaj kaj pli malnovaj aplikoj,.
RETA Kadro disponigas rimedojn por aliri funkciojn efektivigitajn en pli novaj kaj pli malnovaj programoj kiuj efektivigas ekstere.
Aliro al Component Object Model (COM) komponentoj estas disponigita enenSystem.Runtime.InteropServiceskajSystem.EnterpriseServicesNomspacoj de la kadro.
Aliro al aliaj funkcioj estas tra Platform Invocation Services (P/Invoke).
RETO funkcias de indiĝenaj aplikoj estas per inversa P/Invoke-funkcio.
#000029
RETA Kadro lanĉas Common Type System (CTS) kiu difinas ĉiajn ajn datentipojn kaj programadajn konstruojn apogitajn fare de CLR kaj kiel ili povas aŭ eble ne interagas kun unu la alian harmoniante kun CLI-specifo.
RETA Kadro apogas la interŝanĝon de tipoj kaj objektokazojn inter bibliotekoj kaj aplikoj skribaj uzantan ajnan konforman.NET lingvon.
#000030
RETA Kadro ankaŭ devigas tipsekurecon.
Tio malhelpas malklare difinitajn rolantarojn, malĝustajn metodalvokadojn, kaj memorajn grandectemojn dum alirado de objekto.
Tio ankaŭ faras plej multe de la CLI kiun lingvoj statike tajpis (kun aŭ sen tipinferenco).
RETA Kadro 4.0, la Dinamika Lingvo-Rultempo etendis la CLR, permesante dinamike al maŝinskribitaj lingvoj esti efektivigitaj sur la CLI.
#000031
Dum Mikrosofto neniam efektivigis la plenan kadron sur iu sistemo krom Vindozo, realigis la kadron por esti transsistema, [43] kaj efektivigoj estas haveblaj por aliaj operaciumoj (vidu Silverlight kaj § Alternativajn efektivigojn).
Mikrosofto alsendis la specifojn por CLI (kiu inkludas la kernajn klasbibliotekojn, CTS, kaj CIL), [44] [45] [46]
C da nombro, [47] kaj C++/CLI [48] al kaj Ecma International (ECMA) kaj Internacia Organizaĵo por Normigado (ISO), igante ilin haveblaj kiel oficialaj normoj.
Tio igas ĝin ebla ke triaj partioj por kreus kongruajn efektivigojn de la kadro kaj ĝiaj lingvoj en aliaj platformoj.
#000032
Administris CIL Bajtkodon estas pli facila por invers-realigi ol indiĝena kodo, krom se malklarigite.
RETAJ malkompilanto programoj rajtigas programistojn kun neniuj invers-inĝenieraj kapabloj rigardi la fontkodon malantaŭ nemalklarigita.
En kontrasto, programoj kompilitaj al indiĝena maŝinkodo estas multe pli duraj invers-realigi, kaj fontkodo preskaŭ estas neniam produktita sukcese, plejparte pro Kompililoptimumigoj kaj manko de reflektado.
Tio kreas konzernojn en la komercistaro super la ebla perdo de industrisekretoj kaj la preteriro de licencaj stirmekanismoj.
Por mildigi tion, Mikrosofto inkludis Dotfuscator Community Edition kun Vida Studio.NET ekde 2002.
[b] Triapartaj malklarigadiloj ankaŭ estas haveblaj de vendistoj kiel ekzemple VMware, V-i. Laboratorioj, Xenocode, kaj Red Gate Software.
RETA kodo estas havebla de vendistoj kiel ekzemple SafeNet.
#000034
CLR liberigas la ellaboranton de la ŝarĝo de administrado de memoro (asignado kaj liberigo supren kiam farite);
ĝi pritraktas memoradministracion mem per detektado kiam memoro povas esti sekure liberigita.
RETAJ specoj (objektoj) estas asignitaj de la administrita stako;
naĝejo de memoro administrita fare de CLR.
Tiel longe kiel referenco al objekto ekzistas, kiu povas esti aŭ rekta, aŭ per grafeo de objektoj, la objekto estas konsiderita kiel en uzo.
Kiam neniu referenco al objekto ekzistas, kaj ĝi ne povas esti atingita aŭ uzita, ĝi iĝas rubo, elektebla por kolekto.
#000035
Kiam aplikiĝo unue estas lanĉita, la.
RETA Kadro kompilas la CIL-kodon en efektivigeblan kodon uzanta sian ekzakte ĝustatempan kompililon, kaj konservas la ruligeblan programon en la.
Pro konservado, la aplikiĝlanĉoj pli rapide por postaj lanĉoj, kvankam la unua lanĉo estas kutime pli malrapida.
Por akceli la unuan lanĉon, programistoj povas uzi la Native Image Generator servaĵon mane antaŭe-de-tempigi kompilas kaj konservas ajnan.
#000038
La rubforigisto, kiu laboras integra pri la medio, povas lanĉi neantaŭviditajn prokrastojn de ekzekuto super kiu la ellaboranto havas malmulte da rekta kontrolo.
"En grandaj aplikoj, la nombro da objektoj ke la rubforigisto devas labori kun povas iĝi tre granda, kio signifas ke povas preni tre longan tempon viziti kaj rearanĝi ĉion el ili."
#000039
RETA Kadro disponigas subtenon por nomi SSE (SSE) per administrita kodo de aprilo 2014 en Visual Studio 2013 Ĝisdatigo 2-a Tamen, Mono disponigis subtenon por SIMD Etendaĵoj nun en 2.2 ene de la Monofonio.
La plumbellaboranto de Mono Miguel de Icaza esprimis esperon ke tiu SIMD-subteno estos adoptita per la ECMA-normo de CLR.
SSE estis havebla en X86 arkitektura CPUoj ekde la enkonduko de la Pentium III.
Iuj aliaj arkitekturoj kiel ekzemple BRAKO kaj MIPS ankaŭ havas SIMD-etendaĵojn.
En kazo la CPU-mankoj apogas por tiuj etendaĵoj, la instrukciaĵo estas ŝajniga en softvaro.
#000040
[ citaĵo bezonis ] Alternativaj efektivigoj
#000041
RETA Kadro estas la superrega efektivigo de.
Aliaj efektivigoj por partoj de la kadro ekzistas.
Kvankam la rultempa motoro estas priskribita per ECMA-ISspecifo, aliaj efektivigoj de ĝi povas esti malhelpitaj per malfermitaj temoj;
ISO normoj povas inkludi la senrespondecigon, "Atento estas tirita al la ebleco ke kelkaj el la elementoj de tiu dokumento povas esti la temo de patentrajtoj.
ISO ne devas esti tenita respondeca por identigado de iujn ajn aŭ tute tiaj patentrajtoj."
Estas pli forte evoluigi alternativojn al FCL, kiu ne estas priskribita per malferma normo kaj povas esti submetata kopirajtigi restriktojn.
Ankaŭ, partoj de FCL havas Vindoz-specifajn funkciojn kaj konduton, tiel ke efektivigo en ne-fenestroplatformoj povas esti problema.
#000042
Kelkaj alternativaj efektivigoj de partoj de la kadro estas listigitaj ĉi tie.
#000043
RETA Kerno apogas kvar transsistemajn scenarojn:
interretprogramoj, komandlinioprogramoj, bibliotekoj, kaj Universalaĵaj Windows Platform-programoj.
Ĝi ne efektivigas Windows Forms aŭ WPF kiuj igas la norman GUI por skribtabla softvaro sur Fenestroj.
RETA Kerno ankaŭ estas modula, signifante ke anstataŭe de kunigoj, programistoj laboras kun NuGet pakaĵoj.
RETA Kadro, kiu estas servita uzante Windows Update,.
RETA Kerno dependas de sia pakaĵmanaĝero por ricevi ĝisdatigojn.
#000046
RETA Kerno 1.0 estis liberigita la 27an de junio 2016, [71] kune kun Visual Studio 2015 Ĝisdatigo 3, kiu ebligas.
1 estis liberigita kune kun.
RETO Kerno-Iloj 1.0 kaj Visual Studio 2017 la 7an de marto 2017.
#000047
Mikrosofto administris kodkadrojn kaj iliaj komponentoj estas aprobitaj kiel sekvas:
#000048
^ a b La licenco antaŭe estis mallongigita Ms-RL, sed Ms-RL nun rilatas al la Mikrosofto Reciproka Licenco.
^ Dotfuscator Community Edition 4,0
^ The prefix " Ryu " is the Japanese word for " dragon " (竜, ryū ), and comes from The Dragon Book .
#000049
Komuna Fonta Ordinara lingva Infrastrukturo
#000053