You are on page 1of 12

.

NETFramework
FromWikipedia,thefreeencyclopedia

.NETFramework(pronounceddotnet)isasoftware
frameworkdevelopedbyMicrosoftthatrunsprimarily
onMicrosoftWindows.Itincludesalargeclasslibrary
knownasFrameworkClassLibrary(FCL)andprovides
languageinteroperability(eachlanguagecanusecode
writteninotherlanguages)acrossseveralprogramming
languages.Programswrittenfor.NETFramework
executeinasoftwareenvironment(ascontrastedto
hardwareenvironment),knownasCommonLanguage
Runtime(CLR),anapplicationvirtualmachinethat
providesservicessuchassecurity,memorymanagement,
andexceptionhandling.FCLandCLRtogether
constitute.NETFramework.

.NETFramework

FCLprovidesuserinterface,dataaccess,database
connectivity,cryptography,webapplication
development,numericalgorithms,andnetwork
communications.Programmersproducesoftwareby
combiningtheirownsourcecodewith.NETFramework
andotherlibraries..NETFrameworkisintendedtobe
usedbymostnewapplicationscreatedfortheWindows
platform.Microsoftalsoproducesanintegrated
developmentenvironmentlargelyfor.NETsoftware
calledVisualStudio.
.NETFrameworkstartedoutasaproprietary
framework,althoughthecompanyworkedtostandardize
thesoftwarestackalmostimmediately,evenbeforeits
firstrelease.Despitethestandardizationefforts,
developersparticularlythoseinthefreeandopen
sourcesoftwarecommunitiesexpressedtheir
uneasinesswiththeselectedtermsandtheprospectsof
anyfreeandopensourceimplementation,especiallywith
regardtosoftwarepatents.Sincethen,Microsofthas
changed.NETdevelopmenttomorecloselyfollowa
contemporarymodelofacommunitydeveloped
softwareproject,includingissuinganupdatetoitspatent
thatpromisestoaddresstheconcerns.
.NETFrameworkfamilyalsoincludestwoversionsfor
mobileorembeddeddeviceuse.Areducedversionof
theframework,.NETCompactFramework,isavailable
onWindowsCEplatforms,includingWindowsMobile
devicessuchassmartphones.Additionally,.NETMicro
Frameworkistargetedatseverelyresourceconstrained
devices.

Contents

.NETFrameworkcomponentstack
Developer(s)

Microsoft

Initialrelease

13February2002

Stablerelease

4.6.1/17November2015[1]

Operatingsystem Windows98orlater,Windows
NT4.0orlater
Type

Softwareframework

License

MixedseeLicensing

Website

microsoft.com/net
(http://microsoft.com/net)

Contents
1 History
2 Releasehistory
3 Architecture
3.1 CommonLanguageInfrastructure
3.2 Classlibrary
3.3 Assemblies
3.4 .NETCore
3.5 C++/CLI
4 Designprinciples
4.1 Interoperability
4.2 Languageindependence
4.3 Portability
4.4 Security
4.5 Memorymanagement
4.6 Simplifieddeployment
4.7 Performance
5 Licensing
6 Alternativeimplementations
7 Notes
8 References
9 Externallinks

History
Microsoftstarteddevelopmentof.NETFrameworkinthelate1990s,originallyunderthenameofNext
GenerationWindowsServices(NGWS).Bylate2000,thefirstbetaversionsof.NET1.0werereleased.
InAugust2000,Microsoft,HewlettPackard,andIntelworkedtostandardizeCommonLanguage
Infrastructure(CLI)andC#.ByDecember2001,bothwereratifiedECMAstandards.[2][3]ISOfollowedin
April2003.ThecurrentversionofISOstandardsareISO/IEC23271:2012andISO/IEC23270:2006.[4][5]
WhileMicrosoftandtheirpartnersholdpatentsforCLIandC#,ECMAandISOrequirethatallpatents
essentialtoimplementationbemadeavailableunder"reasonableandnondiscriminatoryterms".Inadditionto
meetingtheseterms,thecompanieshaveagreedtomakethepatentsavailableroyaltyfree.However,thisdid
notapplyforthepartof.NETFrameworknotcoveredbyECMA/ISOstandards,whichincludedWindows
Forms,ADO.NET,andASP.NET.PatentsthatMicrosoftholdsintheseareasmayhavedeterrednon
Microsoftimplementationsofthefullframework.[6]
On3October2007,Microsoftannouncedthatthesourcecodefor.NETFramework3.5librarieswasto
becomeavailableundertheMicrosoftReferenceLicense(MsRSL[a]).[7]Thesourcecoderepositorybecame
availableonlineon16January2008andincludedBCL,ASP.NET,ADO.NET,WindowsForms,WPF,and
XML.ScottGuthrieofMicrosoftpromisedthatLINQ,WCF,andWFlibrarieswerebeingadded.[8]

On12November2014,Microsoftannounced.NETCore,inan
efforttoincludecrossplatformsupportfor.NET,thesourcerelease
ofMicrosoft'sCoreCLRimplementation,sourceforthe"entire[...]
librarystack"for.NETCore,andtheadoptionofaconventional
("bazaar"like)opensourcedevelopmentmodelunderthe
stewardshipofthe.NETFoundation.MigueldeIcazadescribes
.NETCoreasa"redesignedversionof.NETthatisbasedonthe

Microsoft.NETFrameworkv4.5
logo

simplifiedversionoftheclasslibraries",[9]andMicrosoft'sImmoLandwerthexplainedthat.NETCorewould
be"thefoundationofallfuture.NETplatforms".Atthetimeoftheannouncement,theinitialreleaseofthe.NET
Coreprojecthadbeenseededwithasubsetofthelibraries'sourcecodeandcoincidedwiththerelicensingof
Microsoft'sexisting.NETreferencesourceawayfromtherestrictionsoftheMsRSL.Landwerth
acknowledgedthedisadvantagesofthepreviouslyselectedsharedsourcelicense,explainingthatitmade
codenameRotor"anonstarter"asacommunitydevelopedopensourceprojectbecauseitdidnotmeetthe
criteriaofanOSIapprovedlicense.[10][11][12]
Microsoftalsoproducedanupdatetoitspatentgrants,whichfurtherextendsthescopebeyonditsprevious
pledges.PriorprojectslikeMonoexistedinalegalgreyareabecauseMicrosoft'searliergrantsappliedonlyto
thetechnologyin"coveredspecifications",includingstrictlythe4theditionseachofECMA334andECMA
335.Thenewpatentpromise,however,placesnoceilingonthespecificationversion,andevenextendstoany
.NETruntimetechnologiesdocumentedonMSDNthathavenotbeenformallyspecifiedbytheECMAgroup,
ifaprojectchoosestoimplementthem.ThispermitsMonoandotherprojectstomaintainfeatureparitywith
modern.NETfeaturesthathavebeenintroducedsincethe4theditionwaspublishedwithoutbeingatriskof
patentlitigationovertheimplementationofthosefeatures.Thenewgrantdoesmaintaintherestrictionthatany
implementationmustmaintainminimumcompliancewiththemandatorypartsoftheCLIspecification.[13]
Microsoft'spressreleasehighlightsthatthecrossplatformcommitmentnowallowsforafullyopensource,
modernserverside.NETstack.However,MicrosoftdoesnotplantoreleasethesourceforWPForWindows
Forms.[14][15]

Releasehistory

Overviewof.NETFrameworkreleasehistory[16][17]
Includedin
Version CLR Release
Developmenttool
number version
date
Windows
WindowsServer
VisualStudio
.NET[18]

1.0

1.0

200202
13

1.1

1.1

200304 VisualStudio.NET
24
2003[18]

2.0

2.0

200511
07

3.0

2.0

3.5

Replaces

XP[a]

N/A

N/A

N/A

2003

1.0[19]

VisualStudio
2005[20]

N/A

2003,2003R2,[21]2008SP2,
2008R2SP1

N/A

200611
06

Expression
Blend[22][b]

Vista

2008SP2,2008R2SP1

2.0[16]

2.0

200711
19

VisualStudio
2008[23]

7,8[c],
8.1[c],10[c]

2008R2SP1

2.0,
3.0[16]

4.0

201004
12

VisualStudio
2010[24]

N/A

N/A

N/A

4.5

201208
15

VisualStudio
2012[25]

2012

4.0[16]

4.5.1

201310
17

VisualStudio
2013[26]

8.1

2012R2

4.0,
4.5[16]

4.5.2

201405
05

N/A

N/A

N/A

4.0
4.5.1[16]

4.6

201507
20

VisualStudio
2015[27]

10

N/A

4.0
4.5.2[16]

4.6.1

201511 VisualStudio2015
Update1
17[28]

10Version
1511

N/A

4.0
4.6[16]

Notes:
a.^.NETFramework1.0isintegralOScomponentofWindowsXPMediaCentereditionorTabletPCedition.
InstallationCDsfortheHomeeditionsandtheProfessionaleditionsofWindowsXPSP1,SP2orSP3comes
with.NETFrameworkinstallationpackages.[17]
b.^ExpressionBlendonlycoverstheWindowsPresentationFoundationpartof.NETFramework3.0.
c.^^^.NETFramework3.5isnotautomaticallyinstalledwithWindows8,8.1or10.Itmustbeinstalled
eitherfromaWindowsinstallationmediaorfromtheInternetondemand.ControlPanelalwaysattemptsthe
latter.[29]

Architecture
CommonLanguageInfrastructure

CommonLanguageInfrastructure(CLI)providesa
languageneutralplatformforapplicationdevelopment
andexecution,includingfunctionsforexceptionhandling,
garbagecollection,security,andinteroperability.By
implementingthecoreaspectsof.NETFramework
withinthescopeofCLI,thisfunctionalitywillnotbetied
toasinglelanguagebutwillbeavailableacrossthemany
languagessupportedbytheframework.Microsoft's
implementationofCLIisCommonLanguageRuntime
(CLR).Itservesastheexecutionengineof.NET
Framework.All.NETprogramsexecuteunderthe
supervisionofCLR,guaranteeingcertainpropertiesand
behaviorsintheareasofmemorymanagement,security,
andexceptionhandling.
ForcomputerprogramstorunonCLI,theyneedtobe
compiledintoCommonIntermediateLanguage(CIL)
asopposedtobeingcompiledintomachinecode.Upon
execution,anarchitecturespecificjustintimecompiler
(JIT)turnstheCILcodeintomachinecode.Toimprove
performance,however,.NETFrameworkcomeswith
NativeImageGenerator(NGEN),whichperforms
aheadoftimecompilation.

VisualoverviewoftheCommonLanguage
Infrastructure(CLI)

Classlibrary
.NETFrameworkincludesasetofstandardclasslibraries.Theclasslibraryisorganizedinahierarchyof
namespaces.MostofthebuiltinAPIsarepartofeitherSystem.*orMicrosoft.*namespaces.Theseclass
librariesimplementalargenumberofcommonfunctions,suchasfilereadingandwriting,graphicrendering,
databaseinteraction,andXMLdocumentmanipulation,amongothers..NETclasslibrariesareavailableforall
CLIcompliantlanguages..NETFrameworkclasslibraryisdividedintotwoparts:BaseClassLibrary(BCL)
andFrameworkClassLibrary(FCL).
BCLincludesasmallsubsetoftheentireclasslibraryandisthecoresetofclassesthatserveasthebasicAPI
ofCLR.[30]Classesinmscorlib.dllandsomeclassesinSystem.dllandSystem.core.dllarepartof
BCL.BCLclassesareavailablein.NETFrameworkaswellasitsalternativeimplementationsincluding.NET
CompactFramework,MicrosoftSilverlight,andMono.
FCLisasupersetofBCLandreferstotheentireclasslibrarythatshipswith.NETFramework.Itincludesan
expandedsetoflibraries,includingWindowsForms,ADO.NET,ASP.NET,LanguageIntegratedQuery
(LINQ),WindowsPresentationFoundation(WPF),WindowsCommunicationFoundation(WCF),and
WorkflowFoundation(WF).BCLismuchlargerinscopethanstandardlibrariesforlanguageslikeC++,and
comparableinscopetostandardlibrariesofJava.

Assemblies
CompiledCILcodeisstoredinCLIassemblies.Asmandatedbythespecification,assembliesarestoredin
PortableExecutable(PE)fileformat,commononWindowsplatformforallDLLandEXEfiles.Eachassembly
consistsofoneormorefiles,oneofwhichmustcontainamanifestbearingthemetadatafortheassembly.The

completenameofanassembly(nottobeconfusedwiththefilenameondisk)containsitssimpletextname,
versionnumber,culture,andpublickeytoken.Assembliesareconsideredequivalentiftheysharethesame
completename,excludingtherevisionoftheversionnumber.
Aprivatekeycanalsobeusedbythecreatoroftheassemblyforstrongnaming.Thepublickeytokenidentifies
whichprivatekeyanassemblyissignedwith.Onlythecreatorofthekeypair(typically.NETdevelopersigning
theassembly)cansignassembliesthathavethesamestrongnameasapreviousversionassembly,sincethe
creatorisinpossessionoftheprivatekey.StrongnamingisrequiredtoaddassembliestoGlobalAssembly
Cache.

.NETCore
.NETCoreisafreeandopensourcecrossplatformimplementationofthe.NETFramework.Itconsistsof
CoreCLRacompletecrossplatformruntimeimplementationofCLR,thevirtualmachinethatmanagesthe
executionof.NETprograms..NetCorealsoincludesCoreFX,whichisapartialforkofBCLandwillsupport
ASP.NET.[31]CoreCLRcomeswithanimprovedjustintimecompiler,calledRyuJIT.[32]
.NetCorerunsconsoleandASP.NETsoftwareinWindows,LinuxandOSX.ItdoesnotimplementWindows
FormsorWPFwhichrenderthestandardGUIfordesktopsoftwareonWindows,as.NETCoreisdesigned
toworkwithUniversalWindowsPlatforminstead.[33].NETCoreisalsomodular,meaningthatinsteadof
assemblies,developersdealwithpackages.[33]

C++/CLI
MicrosoftintroducedC++/CLIinVisualStudio2005,whichisalanguageandmeansofcompilingVisualC++
programstorunwithinthe.NETFramework.CertainportionsoftheC++programstillrunwithinan
unmanagedVisualC++Runtime,whilespeciallymodifiedportionsaretranslatedintoCILcodeandrunwiththe
.NETFramework'sCLR.
AssembliescompiledusingtheC++/CLIcompilerareknownasmixedmodeassemblies,sincetheycontain
nativeandmanagedcodewithinthesameDLL.[34]Suchassembliesarealsodifficulttoreverseengineer,since
.NETdecompilerssuchas.NETReflectoronlyrevealthemanagedcode.

Designprinciples
Interoperability
Becausecomputersystemscommonlyrequireinteractionbetweennewerandolderapplications,.NET
Frameworkprovidesmeanstoaccessfunctionalityimplementedinnewerandolderprogramsthatexecute
outside.NETenvironment.AccesstoCOMcomponentsisprovidedinSystem.Runtime.InteropServices
andSystem.EnterpriseServicesnamespacesoftheframework.Accesstootherfunctionalityisachieved
usingtheP/Invokefeature.

Languageindependence
.NETFrameworkintroducesaCommonTypeSystem(CTS)thatdefinesallpossibledatatypesand
programmingconstructssupportedbyCLRandhowtheymayormaynotinteractwitheachotherconforming
toCLIspecification.Becauseofthisfeature,.NETFrameworksupportstheexchangeoftypesandobject
instancesbetweenlibrariesandapplicationswrittenusinganyconforming.NETlanguage.

Portability
WhileMicrosofthasneverimplementedthefullframeworkonanysystemexceptMicrosoftWindows,ithas
engineeredtheframeworktobeplatformagnostic,[35]andcrossplatformimplementationsareavailablefor
otheroperatingsystems(seeSilverlightandAlternativeimplementations).Microsoftsubmittedthe
specificationsforCLI(whichincludesthecoreclasslibraries,CTS,andCIL),[36][37][38]C#,[39]and
C++/CLI[40]tobothECMAandISO,makingthemavailableasofficialstandards.Thismakesitpossiblefor
thirdpartiestocreatecompatibleimplementationsoftheframeworkanditslanguagesonotherplatforms.

Security
.NETFrameworkhasitsownsecuritymechanismwithtwogeneralfeatures:CodeAccessSecurity(CAS),and
validationandverification.CASisbasedonevidencethatisassociatedwithaspecificassembly.Typicallythe
evidenceisthesourceoftheassembly(whetheritisinstalledonthelocalmachineorhasbeendownloadedfrom
theintranetorInternet).CASusesevidencetodeterminethepermissionsgrantedtothecode.Othercodecan
demandthatcallingcodebegrantedaspecifiedpermission.ThedemandcausesCLRtoperformacallstack
walk:everyassemblyofeachmethodinthecallstackischeckedfortherequiredpermissionifanyassemblyis
notgrantedthepermissionasecurityexceptionisthrown.
ManagedCILbytecodeiseasiertoreverseengineerthannativecode,unlessobfuscated.[41][42]NET
decompilerprogramsenabledeveloperswithnoreverseengineeringskillstoviewthesourcecodebehind
unobfuscated.NETassemblies.Incontrast,appscompiledtonativemachinecodearemuchhardertoreverse
engineer,andsourcecodeisalmostneverproducedsuccessfully,mainlybecauseofcompileroptimizationsand
lackofreflection.Oneconcernisoverpossiblelossoftradesecretsandthebypassingoflicensecontrol
mechanisms.Tomitigatethis,MicrosofthasincludedDotfuscatorCommunityEditionwithVisualStudio.NET
since2002.[b]Thirdpartyobfuscationtoolsarealsoavailablefromvendorssuchasvmware,V.i.Labs,
Xenocode,andRedGateSoftware.Methodlevelencryptiontoolsfor.NETcodeareavailablefromvendors
suchasSafeNet.

Memorymanagement
CLRfreesthedeveloperfromtheburdenofmanagingmemory(allocatingandfreeingupwhendone)ithandles
memorymanagementitselfbydetectingwhenmemorycanbesafelyfreed.Instantiationsof.NETtypes
(objects)areallocatedfromthemanagedheapapoolofmemorymanagedbyCLR.Aslongasthereexistsa
referencetoanobject,whichmightbeeitheradirectreferencetoanobjectorviaagraphofobjects,theobject
isconsideredtobeinuse.Whenthereisnoreferencetoanobject,anditcannotbereachedorused,it
becomesgarbage,eligibleforcollection.
.NETFrameworkincludesagarbagecollector(GC)whichrunsperiodically,onaseparatethreadfromthe
application'sthread,thatenumeratesalltheunusableobjectsandreclaimsthememoryallocatedtothem.Itisa
nondeterministic,compacting,markandsweepgarbagecollector.GCrunsonlywhenacertainamountof
memoryhasbeenusedorthereisenoughpressureformemoryonthesystem.Sinceitisnotguaranteedwhen
theconditionstoreclaimmemoryarereached,GCrunsarenondeterministic.Each.NETapplicationhasaset
ofroots,whicharepointerstoobjectsonthemanagedheap(managedobjects).Theseincludereferencesto
staticobjectsandobjectsdefinedaslocalvariablesormethodparameterscurrentlyinscope,aswellasobjects
referredtobyCPUregisters.[43]WhenGCruns,itpausestheapplicationandthen,foreachobjectreferredto
intheroot,itrecursivelyenumeratesalltheobjectsreachablefromtherootobjectsandmarksthemas
reachable.ItusesCLImetadataandreflectiontodiscovertheobjectsencapsulatedbyanobject,andthen
recursivelywalkthem.Itthenenumeratesalltheobjectsontheheap(whichwereinitiallyallocatedcontiguously)

usingreflection.Allobjectsnotmarkedasreachablearegarbage.[43]Thisisthemarkphase.[44]Sincethe
memoryheldbygarbageisnotofanyconsequence,itisconsideredfreespace.However,thisleaveschunksof
freespacebetweenobjectswhichwereinitiallycontiguous.Theobjectsarethencompactedtogethertomake
freespaceonthemanagedheapcontiguousagain.[43][44]Anyreferencetoanobjectinvalidatedbymovingthe
objectisupdatedbyGCtoreflectthenewlocation.[44]Theapplicationisresumedafterthegarbagecollection
isover.Thelatestversionof.NETframeworkusesconcurrentgarbagecollectionalongwithusercode,making
pausesunnoticeable,becauseitisdoneinbackground.[45]
GCusedby.NETFrameworkisalsogenerational.[46]Objectsareassignedagenerationnewlycreated
objectsbelongtoGeneration0.TheobjectsthatsurviveagarbagecollectionaretaggedasGeneration1,and
theGeneration1objectsthatsurviveanothercollectionareGeneration2objects..NETFrameworkusesupto
Generation2objects.[46]Highergenerationobjectsaregarbagecollectedlessfrequentlythanlowergeneration
objects.Thishelpsincreasetheefficiencyofgarbagecollection,asolderobjectstendtohavealongerlifetime
thannewerobjects.[46]Thus,byeliminatingolder(andthusmorelikelytosurviveacollection)objectsfromthe
scopeofacollectionrun,fewerobjectsneedtobecheckedandcompacted.[46]

Simplifieddeployment
.NETFrameworkincludesdesignfeaturesandtoolswhichhelpmanagetheinstallationofcomputersoftwareto
ensurethatitdoesnotinterferewithpreviouslyinstalledsoftware,andthatitconformstosecurityrequirements.

Performance
Whenanapplicationisfirstlaunched,the.NETFrameworkcompilestheCILcodeintoexecutablecodeusing
itsjustintimecompiler,andcachestheexecutableprogramintothe.NETNativeImageCache.[47][48]Dueto
caching,theapplicationlaunchesfasterforsubsequentlaunches,althoughthefirstlaunchisusuallyslower.To
increasespeedofthefirstlaunch,developersmayusetheNativeImageGeneratorutilitytomanuallycompile
andcacheany.NETapplication,aheadoftime.[48]
Thegarbagecollector,whichisintegratedintotheenvironment,canintroduceunanticipateddelaysofexecution
overwhichthedeveloperhaslittledirectcontrol."Inlargeapplications,thenumberofobjectsthatthegarbage
collectorneedstodealwithcanbecomeverylarge,whichmeansitcantakeaverylongtimetovisitand
rearrangeallofthem."[49]
.NETFrameworkprovidessupportforcallingStreamingSIMDExtensions(SSE)viamanagedcodefromApril
2014inVisualStudio2013Update2.However,MonohasprovidedsupportforSIMDExtensionsasof
version2.2withintheMono.Simdnamespacebefore.Mono'sleaddeveloperMigueldeIcazahasexpressed
hopethatthisSIMDsupportwillbeadoptedbyCLR'sECMAstandard.[50]StreamingSIMDExtensionshave
beenavailableinx86CPUssincetheintroductionofthePentiumIII.SomeotherarchitecturessuchasARM
andMIPSalsohaveSIMDextensions.IncasetheCPUlackssupportforthoseextensions,theinstructionsare
simulatedinsoftware.

Licensing
Componentsof.NETFrameworkarelicensedasfollows:

Component
.NETCore
CoreFXandCoreCLR

License
MITLicense[51]

.NETMicroFramework

ApacheLicense2.0[52]

.NETCompilerPlatform(codename"Roslyn")

ApacheLicense2.0[53]

ASP.NET

ApacheLicense2.0[54]

ASP.NETWebStack

ApacheLicense2.0[55]

ASP.NETAjaxControlToolkit

BSDLicense[56]

ASP.NETSignalR

ApacheLicense2.0[57]

EntityFramework

ApacheLicense2.0[58]

NuGet

ApacheLicense2.0[59]

Referencesourcecodeof.NETFramework4.5andearlier MicrosoftReferenceLicense(MsRSL[a])[7][60]
Referencesourcecodeof.NETFramework4.6

MITLicense[61]

.NETFrameworkredistributablepackage

Proprietarysoftware[62]

Alternativeimplementations
.NETFrameworkisthepredominantimplementationof.NETtechnologies.Otherimplementationsforpartsof
theframeworkexist.AlthoughtheruntimeengineisdescribedbyanECMA/ISOspecification,other
implementationsofitmaybeencumberedbypatentissuesISOstandardsmayincludethedisclaimer,"Attention
isdrawntothepossibilitythatsomeoftheelementsofthisdocumentmaybethesubjectofpatentrights.ISO
shallnotbeheldresponsibleforidentifyinganyorallsuchpatentrights."[63]Itismoredifficulttodevelop
alternativestoFCL,whichisnotdescribedbyanopenstandardandmaybesubjecttocopyrightrestrictions.
Additionally,partsofFCLhaveWindowsspecificfunctionalityandbehavior,soimplementationonnon
Windowsplatformscanbeproblematic.
Somealternativeimplementationsofpartsoftheframeworkarelistedhere.
.NETMicroFrameworkisa.NETplatformforextremelyresourceconstraineddevices.Itincludesa
smallversionofCLRandsupportsdevelopmentinC#(thoughsomedeveloperswereabletouse
VB.NET,[64]albeitwithanamountofhacking,andwithlimitedfunctionalities)anddebugging(inan
emulatororonhardware),bothusingMicrosoftVisualStudio.Italsofeaturesasubsetof.NET
FrameworkClassLibrary(about70classeswithabout420methods),aGUIframeworklooselybased
onWPF,andadditionallibrariesspecifictoembeddedapplications.
MonoisanimplementationofCLIandFCL,andprovidesadditionalfunctionality.Itisduallicensed
underfreesoftwareandproprietarysoftwarelicenses.ItincludessupportforASP.NET,ADO.NET,and
WindowsFormslibrariesforawiderangeofarchitecturesandoperatingsystems.ItalsoincludesC#and
VB.NETcompilers.
Portable.NET(partofDotGNU)providesanimplementationofCLI,portionsofFCL,andaC#
compiler.ItsupportsavarietyofCPUsandoperatingsystems.
MicrosoftSharedSourceCommonLanguageInfrastructureisanonfreeimplementationofCLR.
However,thelastversiononlyrunsonMicrosoftWindowsXPSP2,andhasnotbeenupdatedsince

2006,thereforeitdoesnotcontainallfeaturesofversion2.0of.NETFramework.
CrossNet[65]isanimplementationofCLIandportionsofFCL.Itisfreesoftwareusingtheopensource
MITLicense.

Notes
a.ThelicensehaspreviouslybeenabbreviatedMsRL,butMsRLnowreferstotheMicrosoftReciprocal
License.
b.DotfuscatorCommunityEdition4.0

References
1."Microsoft.NETFramework4.6.1(OfflineInstaller)forWindows7SP1,Windows8,Windows8.1,
Windows10,WindowsServer2008R2SP1,WindowsServer2012andWindowsServer2012R2".Download
Center.Microsoft.17November2015.
2."StandardECMA335:CommonLanguageInfrastructure(CLI)".ecmainternational.org(6ed.).ECMA.June
2012.
3."StandardECMA334:C#LanguageSpecification".ecmainternational.org(4ed.).ECMA.June2006.
4."ISO/IEC23271:2012InformationtechnologyCommonLanguageInfrastructure".iso.org(3ed.).
InternationalOrganizationforStandardization.13February2012.
5."ISO/IEC23270:2006InformationtechnologyProgramminglanguagesC#".iso.org(2ed.).International
OrganizationforStandardization.26January2012.
6."Microsoft'sEmptyPromise".FreeSoftwareFoundation.16July2009.Archivedfromtheoriginalon5
August2009.Retrieved3August2009."However,thereareseverallibrariesthatareincludedwithMono,and
commonlyusedbyapplicationslikeTomboy,thatarenotrequiredbythestandard.Andjusttobeclear,we're
nottalkingaboutWindowsspecificlibrarieslikeASP.NETandWindowsForms.Instead,we'retalkingabout
librariesundertheSystemnamespacethatprovidecommonfunctionalityprogrammersexpectinmodern
programminglanguages"
7.Guthrie,Scott(3October2007)."ReleasingtheSourceCodefortheNETFramework".ScottGuthrie'sBlog.
Microsoft.Archivedfromtheoriginalon7September2010.Retrieved15September2010.
8.Guthrie,Scott(16January2008).".NETFrameworkLibrarySourceCodenowavailable".ScottGuthrie's
Blog.Microsoft.Retrieved28February2015.
9.deIcaza,Miguel."MicrosoftOpenSources.NETandMono".PersonalblogofMigueldeIcaza.Retrieved
16November2014.
10.Landwerth,Immo(12November2014).".NETCoreisOpenSource"..NETFrameworkBlog.Microsoft.
Retrieved30December2014.
11."dotnet/corefx".GitHub.Retrieved16November2014.
12."Microsoft/referencesource".GitHub.Retrieved16November2014.
13."MicrosoftPatentPromisefor.NETLibrariesandRuntimeComponents".Retrieved16November2014.
14."Microsofttakes.NETopensourceandcrossplatform,addsnewdevelopmentcapabilitieswithVisualStudio
2015,.NET2015,andVisualStudioOnline".NewsCenter.Microsoft.Retrieved16November2014.
15.Foley,MaryJo."Microsofttoopensourcemoreof.NET,andbringittoLinux,MacOSX".ZDNet.Retrieved
16November2014.
16.".NETFrameworkVersionsandDependencies".MSDN.Microsoft.Retrieved17January2014.
17.Stebner,Aaron(14March2007)."Mailbag:Whatversionofthe.NETFrameworkisincludedinwhatversion
oftheOS?".AaronStebner'sWebLog.Microsoft.
18."What'sNewinVisualStudio.NET2003".MSDN.Microsoft.Retrieved1September2014."VisualStudio
.NET2002shippedwiththeMicrosoft.NETFrameworkSDKversion1.0.VisualStudio.NET2003ships
with.NETFrameworkSDKversion1.1."
19.".NETFrameworkDeveloperCenterFrequentlyAskedQuestions".ArchivedfromtheoriginalonJuly24,
2012.
20."What'sNewinVisualStudio2005".MSDN.Microsoft.Retrieved1September2014.
21."What'sNewinWindowsServer2003R2".TechNet.Microsoft.22August2005.Retrieved5January2015.
22.Chinnathambi,Kirupa(4December2006)."ExpressionBlendWhatIsThat?".ExpressionBlendandDesign.
Microsoft.Retrieved1September2014.

23.Guthrie,Scott(19November2007)."VisualStudio2008and.NET3.5Released".ScottGu'sBlog.Microsoft.
Retrieved1September2014.
24."What'sNewinVisualStudio2010".MSDN.Microsoft.Retrieved1September2014.
25."What'sNewinVisualStudio2012".MSDN.Microsoft.Retrieved1September2014.
26."What'sNewinVisualStudio2013".MSDN.Microsoft.Retrieved1September2014.
27.Somasegar,S(29June2015)."SavetheDate:VisualStudio2015RTMonJuly20th".Somasegarsblog.
Microsoft.
28."Microsoft.NETFramework4.6.1(OfflineInstaller)forWindows7SP1,Windows8,Windows8.1,
Windows10,WindowsServer2008R2SP1,WindowsServer2012andWindowsServer2012R2".Download
Center.Microsoft.17November2015.
29."Installingthe.NETFramework3.5onWindows8,Windows8.1andWindows10".MSDN.Microsoft.
Archivedfromtheoriginalon27April2015.
30."BaseClassLibrary".Retrieved1June2008.
31.Landwerth,Immo(4December2014)."Introducing.NETCore"..NETFrameworkBlog.Microsoft.Retrieved
27February2015.
32.Landwerth,Immo(3February2015)."CoreCLRisnowOpenSource"..NETFrameworkBlog.Microsoft.
Retrieved27February2015.
33.Schmelzer,Jay(18November2015).".NET2015Overview".Channel9.Microsoft.0:07:32.
34.Mixed(NativeandManaged)Assemblies(https://msdn.microsoft.com/enus/library/x0w2664k.aspx),MSDN
35."ScottGuthrie:SilverlightandtheCrossPlatformCLR".Channel9.30April2007.Archivedfromtheoriginal
on20150325.Retrieved20150220.
36."ECMA335StandardECMA335CommonLanguageInfrastructure(CLI)4thedition(June2006)".ECMA.1
June2006.Archivedfromtheoriginalon14June2008.Retrieved1June2008.
37."ISO/IEC23271:2006".Standards.iso.org.29September2006.Retrieved17April2012.
38."TechnicalReportTR/84CommonLanguageInfrastructure(CLI)InformationDerivedfromPartitionIV
XMLFile".ECMA.1June2006.Archivedfromtheoriginalon20150325.Retrieved20150220.
39."ECMA334C#LanguageSpecification".ECMA.1June2006.
40."StandardECMA372C++/CLILanguageSpecification".ECMA.1December2005.
41."ReverseEngineeringRiskAssessment"(PDF).
42.Gartner,Inc.asreportedin"HypeCycleforCyberthreats,2006",September2006,NeilMacDonaldAmrit
Williams,etal.
43."GarbageCollection:AutomaticMemoryManagementintheMicrosoft.NETFramework".Archivedfromthe
originalon3July2007.Retrieved1June2008.
44."Garbagecollectionin.NET".Archivedfromtheoriginalon25May2008.Retrieved1June2008.
45."The.NETFramework4.5includesnewgarbagecollectorenhancementsforclientandserverapps".Retrieved
2Oct2015.
46."GarbageCollectionPart2:AutomaticMemoryManagementintheMicrosoft.NETFramework".Archived
fromtheoriginalon26June2007.Retrieved1June2008.
47.Understanding.NETJustInTimeCompilation(http://blogs.telerik.com/justteam/posts/130528/understanding
netjustintimecompilation),Telerik
48.CompilingMSILtoNativeCode(https://msdn.microsoft.com/enus/library/ht8ecch6(v=vs.90).aspx),MSDN,
Microsoft
49."UnderstandingGarbageCollectionin.NET".
50."Mono'sSIMDSupport:MakingMonosafeforGaming".Tirania.org.3November2008.Retrieved17April
2012.
51.".NETCore5".dotnetfoundation.org..NETFoundation.Retrieved17February2015.
52.".NETMicroFramework".dotnetfoundation.org..NETFoundation.Retrieved17February2015.
53.".NETCompilerPlatform("Roslyn")".dotnetfoundation.org..NETFoundation.Retrieved17February2015.
54."ASP.NET5".dotnetfoundation.org..NETFoundation.Retrieved17February2015.
55."ASP.NETMVC,WebAPIandWebPages(Razor)".dotnetfoundation.org..NETFoundation.Retrieved
17February2015.
56."ASP.NETAjaxControlToolkit".dotnetfoundation.org..NETFoundation.Retrieved17February2015.
57."ASP.NETSignalR".dotnetfoundation.org..NETFoundation.Retrieved17February2015.
58."EntityFramework6".dotnetfoundation.org..NETFoundation.Retrieved17February2015.
59."NuGet".dotnetfoundation.org..NETFoundation.Retrieved17February2015.
60.Bray,Brandon(15August2012)."Announcingthereleaseof.NETFramework4.5RTMProductandSource
Code"..NETFrameworkBlog.Microsoft.

61."Announcing.NET2015Preview:ANewErafor.NET"..NETFrameworkBlog.Microsoft.12November
2014.
62."Microsoft.NETFrameworkRedistributableEULA".MSDN.Microsoft.Retrieved28February2015.
63.ISO9001:2008,Foreword
64."UsingVB.NETwiththe.NETMicroFramework/dev/mobile".Christec.co.nz.1April2008.Retrieved
17April2012.
65."CrossNet".Codeplex.com.Retrieved17April2012.

Externallinks
Officialwebsite(http://www.microsoft.com/net)
.NETFrameworkDeveloperCenter
(https://msdn.microsoft.com/netframework/)onMSDN
Library
.NETFrameworkIndex
(http://dotnetindex.appspot.com/home.html)
Overviewof.NETFramework(MSDN)
(https://msdn.microsoft.com/enus/library/zw4w595w.aspx)
.NETFrameworkFAQ(http://www.dotnetcodes.com/frmArticlesTyp.aspx?
Cat=Interview%20Questions)
.NETGithubrepository(https://github.com/Microsoft/dotnet)

Wikibookshasabookon
thetopicof:.NET
DevelopmentFoundation
Wikiversityhaslearning
materialsabout
Introductionto
Microsoft.NET

Retrievedfrom"https://en.wikipedia.org/w/index.php?title=.NET_Framework&oldid=706615277"
Categories: .NETFramework 2002software Computingplatforms Microsoftdevelopmenttools
Microsoftapplicationprogramminginterfaces Crossplatformsoftware Microsoftfreesoftware
Thispagewaslastmodifiedon24February2016,at08:46.
TextisavailableundertheCreativeCommonsAttributionShareAlikeLicenseadditionaltermsmay
apply.Byusingthissite,youagreetotheTermsofUseandPrivacyPolicy.Wikipediaisaregistered
trademarkoftheWikimediaFoundation,Inc.,anonprofitorganization.

You might also like