Contents 1 Overview 2 Standardization and licensing 3 Implementations 4 See also 5 Notes 6 References


Overview[edit] Visual overview of the Common Language Infrastructure (CLI) Among other things, the CLI specification describes the following four aspects: The Common Type System (CTS) A set of data types and operations that are shared by all CTS-compliant programming languages. The Metadata Information about program structure is language-agnostic, so that it can be referenced between languages and tools, making it easy to work with code written in a language the developer is not using. The Common Language Specification (CLS) A set of base rules to which any language targeting the CLI should conform in order to interoperate with other CLS-compliant languages. The CLS rules define a subset of the Common Type System. The Virtual Execution System (VES) The VES loads and executes CLI-compatible programs, using the metadata to combine separately generated pieces of code at runtime. All compatible languages compile to Common Intermediate Language (CIL), which is an intermediate language that is abstracted from the platform hardware. When the code is executed, the platform-specific VES will compile the CIL to the machine language according to the specific hardware and operating system.


Standardization and licensing[edit] In August 2000, Microsoft, Hewlett-Packard, Intel, and others worked to standardize CLI. By December 2001, it was ratified by the ECMA, with ISO standardization following in April 2003. Microsoft and its partners hold patents for CLI. ECMA and ISO require that all patents essential to implementation be made available under "reasonable and non-discriminatory (RAND) terms." It is common for RAND licensing to require some royalty payment, which could be a cause for concern with Mono. As of January 2013, neither Microsoft nor its partners have identified any patents essential to CLI implementations subject to RAND terms. As of July 2009,[3] Microsoft added C# and CLI to the list of specifications that the Microsoft Community Promise applies to,[4] so anyone can safely implement specified editions of the standards without fearing a patent lawsuit from Microsoft. To implement the CLI standard requires conformance to one of the supported and defined profiles of the standard, the minimum of which is the kernel profile. The kernel profile is actually a very small set of types to support in comparison to the well known core library of default .NET installations. However, the conformance clause of the CLI allows for extending the supported profile by adding new methods and types to classes, as well as deriving from new namespaces. But it does not allow for adding new members to interfaces. This means that the features of the CLI can be used and extended, as long as the conforming profile implementation does not change the behavior of a program intended to run on that profile, while allowing for unspecified behavior from programs written specifically for that implementation. In 2012, ECMA and ISO published the new edition of the CLI standard,[1][2] which is not covered by the Community Promise.[4]


Implementations[edit] .NET Framework is Microsoft's original commercial implementation of the CLI. Its Virtual Execution System is the Common Language Runtime and its implementation of the Standard Libraries is the Framework Class Library. .NET Compact Framework is Microsoft's commercial implementation of the CLI for portable devices and Xbox 360. .NET Micro Framework is an open source implementation of the CLI for resource-constrained devices. Shared Source Common Language Infrastructure is a reference implementation of the CLI available from Microsoft, under the Shared Source licensing program. .NET Core is a portable and modular free and open-source fork of Microsoft's .NET Framework by the .NET Foundation under an MIT license Mono development platform is an open source implementation of CLI and accompanying technologies, sponsored by Xamarin. Portable.NET, part of the dotGNU project, is a free software implementation of ECMA-335 by Free Software Foundation.


See also[edit] Standard Libraries (CLI) List of CLI languages


Notes[edit] ^ a b ISO/IEC 23271:2012 - Information technology -- Common Language Infrastructure (CLI) ^ a b Standard ECMA-335 - 6th edition (June 2012) ^ "The ECMA C# and CLI Standards - Port 25: The Open Source Community at Microsoft". 2009-07-06.  ^ a b Covered Specifications | Microsoft Open Specifications


References[edit] "Standard ECMA-335, Common Language Infrastructure (CLI)". ECMA International. Retrieved August 31, 2005.  "ISO/IEC 23271, Common Language Infrastructure". ISO. Retrieved September 27, 2006.  "ECMA C# and Common Language Infrastructure Standards". Microsoft Corporation. Retrieved October 13, 2009.  v t e Common Language Infrastructure Architecture Application domain Code Access Security Common Intermediate Language (CIL) CIL instructions Common Type System (CTS) Platform Invocation Services (P/Invoke) Virtual Execution System (VES) Components Assembly Delegate Global Assembly Cache (GAC) Manifest Metadata Standard Libraries Kernel Profile Base Class Library (BCL) Runtime Infrastructure Library Compact Profile Network Library Reflection Library XML Library Extended Array Library Extended Numerics Library Parallel Library Vararg Library Implementations Microsoft .NET Framework .NET Compact Framework .NET Micro Framework Shared Source Common Language Infrastructure Other .NET Core Mono Portable.NET Languages Microsoft C# Visual Basic .NET C++/CLI Managed F# Q# J# JScript .NET PowerShell Other Axum A# Boo Cobra IronScheme IronLisp IronPython IronRuby Nemerle Oxygene Phalanger P# Scala Comparison C# and Java C# and Visual Basic .NET Java and .NET platforms Visual Basic and Visual Basic .NET Organizations .NET Foundation DotGNU Microsoft Xamarin v t e Standards of Ecma International Application interfaces ANSI escape code Common Language Infrastructure Office Open XML OpenXPS File systems (tape) Advanced Intelligent Tape DDS DLT Super DLT Holographic Versatile Disc Linear Tape-Open (Ultrium-1) VXA File systems (disk) CD-ROM CD File System (CDFS) FAT FAT12 FAT16 FAT16B FD UDF Ultra Density Optical Universal Media Disc Graphics Universal 3D Programming languages C++/CLI C# Eiffel JavaScript (E4X, ECMAScript) Radio link interfaces NFC UWB Other ECMA-35 List of Ecma standards (1961 - Present) v t e ISO standards by standard number List of ISO standards / ISO romanizations / IEC standards 1–9999 1 2 3 4 5 6 7 9 16 31 -0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 128 216 217 226 228 233 259 269 302 306 428 518 519 639 -1 -2 -3 -5 -6 646 690 732 764 843 898 965 1000 1004 1007 1073-1 1413 1538 1745 1989 2014 2015 2022 2047 2108 2145 2146 2240 2281 2709 2711 2788 2848 2852 3029 3103 3166 -1 -2 -3 3297 3307 3602 3864 3901 3977 4031 4157 4217 4909 5218 5428 5775 5776 5800 5964 6166 6344 6346 6385 6425 6429 6438 6523 6709 7001 7002 7098 7185 7200 7498 7736 7810 7811 7812 7813 7816 8000 8178 8217 8571 8583 8601 8632 8652 8691 8807 8820-5 8859 -1 -2 -3 -4 -5 -6 -7 -8 -8-I -9 -10 -11 -12 -13 -14 -15 -16 8879 9000/9001 9075 9126 9293 9241 9362 9407 9506 9529 9564 9594 9660 9897 9899 9945 9984 9985 9995 10000–19999 10005 10006 10007 10116 10118-3 10160 10161 10165 10179 10206 10218 10303 -11 -21 -22 -28 -238 10383 10487 10585 10589 10646 10664 10746 10861 10957 10962 10967 11073 11170 11179 11404 11544 11783 11784 11785 11801 11898 11940 (-2) 11941 11941 (TR) 11992 12006 12182 12207 12234-2 13211 -1 -2 13216 13250 13399 13406-2 13450 13485 13490 13567 13568 13584 13616 14000 14031 14224 14289 14396 14443 14496 -2 -3 -6 -10 -11 -12 -14 -17 -20 14644 14649 14651 14698 14750 14764 14882 14971 15022 15189 15288 15291 15292 15398 15408 15444 -3 15445 15438 15504 15511 15686 15693 15706 -2 15707 15897 15919 15924 15926 15926 WIP 15930 16023 16262 16612-2 16750 16949 (TS) 17024 17025 17100 17203 17369 17442 17799 18000 18004 18014 18245 18629 18916 19005 19011 19092 (-1 -2) 19114 19115 19125 19136 19439 19500 19501 19502 19503 19505 19506 19507 19508 19509 19510 19600:2014 19752 19757 19770 19775-1 19794-5 19831 20000+ 20000 20022 20121 20400 21000 21047 21500 21827:2002 22000 23270 23271 23360 24517 24613 24617 24707 25178 25964 26000 26300 26324 27000 series 27000 27001 27002 27006 27729 28000 29110 29148 29199-2 29500 30170 31000 32000 38500 40500 42010 55000 80000 -1 -2 -3 Category Retrieved from "https://en.wikipedia.org/w/index.php?title=Common_Language_Infrastructure&oldid=803630831" Categories: Common Language InfrastructureEcma standardsIEC standardsISO standards


Navigation menu Personal tools Not logged inTalkContributionsCreate accountLog in Namespaces ArticleTalk Variants Views ReadEditView history More Search Navigation Main pageContentsFeatured contentCurrent eventsRandom articleDonate to WikipediaWikipedia store Interaction HelpAbout WikipediaCommunity portalRecent changesContact page Tools What links hereRelated changesUpload fileSpecial pagesPermanent linkPage informationWikidata itemCite this page Print/export Create a bookDownload as PDFPrintable version Languages العربيةČeštinaDanskDeutschEspañolفارسیFrançais한국어ItalianoMagyarNederlands日本語PolskiPortuguêsРусскийSlovenščinaСрпски / srpskiSvenska中文 Edit links This page was last edited on 3 October 2017, at 18:01. Text is available under the Creative Commons Attribution-ShareAlike License; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization. Privacy policy About Wikipedia Disclaimers Contact Wikipedia Developers Cookie statement Mobile view (window.RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgPageParseReport":{"limitreport":{"cputime":"0.136","walltime":"0.181","ppvisitednodes":{"value":564,"limit":1000000},"ppgeneratednodes":{"value":0,"limit":1500000},"postexpandincludesize":{"value":81430,"limit":2097152},"templateargumentsize":{"value":205,"limit":2097152},"expansiondepth":{"value":10,"limit":40},"expensivefunctioncount":{"value":0,"limit":500},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 109.543 1 -total"," 55.75% 61.069 1 Template:Reflist"," 53.61% 58.731 4 Template:Cite_web"," 34.69% 37.999 6 Template:Navbox"," 17.25% 18.891 1 Template:ISO_standards"," 14.40% 15.773 1 Template:Common_Language_Infrastructure"," 7.12% 7.803 1 Template:Icon"," 4.59% 5.030 1 Template:Ecma_International_Standards"," 3.35% 3.672 1 Template:Nobold"," 1.92% 2.101 1 Template:Smaller"]},"scribunto":{"limitreport-timeusage":{"value":"0.047","limit":"10.000"},"limitreport-memusage":{"value":2897106,"limit":52428800}},"cachereport":{"origin":"mw1325","timestamp":"20180111154820","ttl":1900800,"transientcontent":false}}});});(window.RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgBackendResponseTime":78,"wgHostname":"mw1220"});});


Common_Language_Infrastructure - Photos and All Basic Informations

Common_Language_Infrastructure More Links

SpecificationMicrosoftInternational Organization For StandardizationEcma International.NET Framework.NET CoreMono (software)DotGNUPortable.NETEnlargeCommon Type SystemData TypeProgramming LanguageMetadata (CLI)Language-independent SpecificationVirtual Execution SystemCommon Intermediate LanguageIntermediate LanguageMachine LanguageMicrosoftHewlett-PackardIntelEcma InternationalInternational Organization For StandardizationReasonable And Non Discriminatory LicensingMicrosoftC Sharp (programming Language)Microsoft Community Promise.NET FrameworkVirtual Execution SystemCommon Language RuntimeStandard Libraries (CLI)Framework Class Library.NET Compact FrameworkXbox 360.NET Micro FrameworkShared Source Common Language InfrastructureShared Source.NET Core.NET FoundationMIT LicenseMono (software)Open SourceXamarinPortable.NETDotGNUFree SoftwareFree Software FoundationStandard Libraries (CLI)List Of CLI LanguagesTemplate:Common Language InfrastructureTemplate Talk:Common Language InfrastructureApplication DomainCode Access SecurityCommon Intermediate LanguageList Of CIL InstructionsCommon Type SystemPlatform Invocation ServicesVirtual Execution SystemAssembly (CLI)Delegate (CLI)Global Assembly CacheManifest (CLI)Metadata (CLI)Standard Libraries (CLI)Standard Libraries (CLI)Standard Libraries (CLI)Standard Libraries (CLI)Standard Libraries (CLI)Standard Libraries (CLI)Standard Libraries (CLI)Standard Libraries (CLI)Standard Libraries (CLI)Standard Libraries (CLI)Standard Libraries (CLI)Standard Libraries (CLI).NET Framework.NET Compact Framework.NET Micro FrameworkShared Source Common Language Infrastructure.NET CoreMono (software)Portable.NETList Of CLI LanguagesC Sharp (programming Language)Visual Basic .NETC++/CLIManaged Extensions For C++F Sharp (programming Language)Q SharpJ SharpJScript .NETPowerShellAxum (programming Language)A Sharp (.NET)Boo (programming Language)Cobra (programming Language)IronSchemeIronLispIronPythonIronRubyNemerleOxygene (programming Language)Phalanger (compiler)P SharpScala (programming Language)Comparison Of C Sharp And JavaComparison Of C Sharp And Visual Basic .NETComparison Of The Java And .NET PlatformsComparison Of Visual Basic And Visual Basic .NET.NET FoundationDotGNUMicrosoftXamarinTemplate:Ecma International StandardsTemplate Talk:Ecma International StandardsEcma InternationalANSI Escape CodeOffice Open XMLOpen XML Paper SpecificationAdvanced Intelligent TapeDigital Data StorageDigital Linear TapeDigital Linear TapeHolographic Versatile DiscLinear Tape-OpenVXACD-ROMISO 9660File Allocation TableFAT12FAT16FAT16BFloppy DiskUniversal Disk FormatUltra Density OpticalUniversal Media DiscUniversal 3DC++/CLIC Sharp (programming Language)Eiffel (programming Language)JavaScriptECMAScript For XMLECMAScriptNear Field CommunicationUltra-widebandISO/IEC 2022List Of Ecma StandardsTemplate:ISO StandardsTemplate Talk:ISO StandardsInternational Organization For StandardizationList Of International Organization For Standardization StandardsList Of ISO RomanizationsList Of IEC StandardsISO 1ISO 2Preferred NumberISO 4ISO 5ISO 6ISO 7ISO 9A440 (pitch Standard)ISO 31ISO 31-0ISO 31-1ISO 31-2ISO 31-3ISO 31-4ISO 31-5ISO 31-6ISO 31-7ISO 31-8ISO 31-9ISO 31-10ISO 31-11ISO 31-12ISO 31-13ISO 128ISO 216ISO 217ISO 226British Standard Pipe ThreadISO 233ISO 259EnvelopeKappa NumberVicat Softening PointISO 428ISO 518ISO 519ISO 639ISO 639-1ISO 639-2ISO 639-3ISO 639-5ISO 639-6ISO/IEC 646ISO 690ISO 732Antimagnetic WatchISO 843ISO 898ISO 965ISO 1000Magnetic Ink Character Recognition135 FilmOCR-A FontISO 1413ALGOL 60ISO 1745ISO 1989ISO 2014ISO 2015ISO/IEC 2022ISO 2047International Standard Book NumberISO 2145ISO 2146ISO 2240Water Resistant MarkISO 2709ISO 2711ISO 2788ISO 2848ISO 2852126 FilmISO 3103ISO 3166ISO 3166-1ISO 3166-2ISO 3166-3International Standard Serial NumberISO 3307Kunrei-shiki RomanizationISO 3864International Standard Recording CodeISO 3977ISO 4031ISO 4157ISO 4217ISO/IEC 4909ISO/IEC 5218ISO 5428ISO 5775ISO 5776ISO 5800ISO 5964ISO 6166ISO 6344ISO 6346ISO 6385Water Resistant MarkANSI Escape CodeISO 6438ISO 6523ISO 6709ISO 7001ISO 7002PinyinPascal (programming Language)ISO 7200OSI ModelISO 7736ISO/IEC 7810ISO/IEC 7811ISO/IEC 7812ISO/IEC 7813ISO/IEC 7816ISO 8000ISO 8178Fuel OilFTAMISO 8583ISO 8601Computer Graphics MetafileISO/IEC 8652ISO 8691Language Of Temporal Ordering SpecificationISO/IEC 8820-5ISO/IEC 8859ISO/IEC 8859-1ISO/IEC 8859-2ISO/IEC 8859-3ISO/IEC 8859-4ISO/IEC 8859-5ISO/IEC 8859-6ISO/IEC 8859-7ISO/IEC 8859-8ISO-8859-8-IISO/IEC 8859-9ISO/IEC 8859-10ISO/IEC 8859-11ISO/IEC 8859-12ISO/IEC 8859-13ISO/IEC 8859-14ISO/IEC 8859-15ISO/IEC 8859-16Standard Generalized Markup LanguageISO 9000SQLISO/IEC 9126File Allocation TableISO 9241ISO 9362Shoe SizeManufacturing Message SpecificationISO 9529ISO 9564X.500ISO 9660ISO 9897C (programming Language)POSIXISO 9984ISO 9985ISO/IEC 9995ISO 10005ISO 10006ISO 10007ISO/IEC 10116Whirlpool (cryptography)ISO 10160ISO 10161Guidelines For The Definition Of Managed ObjectsDocument Style Semantics And Specification LanguageISO 10206ISO 10218ISO 10303EXPRESS (data Modeling Language)ISO 10303-21ISO 10303-22ISO 10303-28STEP-NCISO 10383ISO 10487ArmSCIIIS-ISUniversal Coded Character SetTorxRM-ODPMultibusInternational Standard Music NumberISO 10962ISO/IEC 10967ISO/IEEE 11073ISO 11170ISO/IEC 11179ISO/IEC 11404JBIGISO 11783ISO 11784 & 11785ISO 11784 & 11785ISO/IEC 11801ISO 11898ISO 11940ISO 11940-2ISO/TR 11941ISO/TR 11941ISO 11992ISO 12006ISO/IEC TR 12182ISO/IEC 12207Tag Image File Format / Electronic PhotographyPrologPrologPrologIsofixTopic MapsISO 13399ISO 13406-2110 FilmISO 13485ISO 13490ISO 13567Z NotationISO 13584International Bank Account NumberISO 14000ISO 14031ISO 14224PDF/UAHorsepowerISO/IEC 14443MPEG-4MPEG-4 Part 2MPEG-4 Part 3Delivery Multimedia Integration FrameworkH.264/MPEG-4 AVCMPEG-4 Part 11MPEG-4 Part 12MPEG-4 Part 14MPEG-4 Part 14MPEG-4 Part 14ISO 14644STEP-NCISO 14651ISO 14698ISO 14750Software MaintenanceC++ISO 14971ISO 15022ISO 15189ISO/IEC 15288Ada Semantic Interface SpecificationISO 15292ISO 15398Common CriteriaJPEG 2000Motion JPEG 2000HTMLPDF417ISO/IEC 15504International Standard Identifier For Libraries And Related OrganizationsISO 15686ISO/IEC 15693International Standard Audiovisual NumberISO 15706-2International Standard Musical Work CodeISO 15897ISO 15919ISO 15924ISO 15926ISO 15926 WIPPDF/XMaxiCodeECMAScriptPDF/VTISO 16750ISO/TS 16949ISO/IEC 17024ISO/IEC 17025ISO 17100:2015Open Virtualization FormatSDMXLegal Entity IdentifierISO/IEC 27002ISO/IEC 18000QR CodeISO/IEC 18014ISO 18245Process Specification LanguagePhotographic Activity TestPDF/AISO 19011ISO 19092-1ISO 19092-2ISO 19114ISO 19115Simple Feature AccessISO 19136ISO 19439Common Object Request Broker ArchitectureUnified Modeling LanguageMeta-Object FacilityXML Metadata InterchangeUnified Modeling LanguageKnowledge Discovery MetamodelObject Constraint LanguageMeta-Object FacilityXML Metadata InterchangeBusiness Process Model And NotationISO 19600:2014ISO/IEC 19752RELAX NGISO/IEC 19770X3DISO/IEC 19794-5Cloud Infrastructure Management InterfaceISO/IEC 20000ISO 20022ISO 20121ISO 20400MPEG-21International Standard Text CodeISO 21500ISO/IEC 21827ISO 22000C Sharp (programming Language)Linux Standard BasePDF/ELexical Markup FrameworkISO-TimeMLCommon LogicISO 25178ISO 25964ISO 26000OpenDocumentDigital Object IdentifierISO/IEC 27000-seriesISO/IEC 27000ISO/IEC 27001ISO/IEC 27002ISO/IEC 27006International Standard Name IdentifierISO 28000ISO 29110Requirements EngineeringJPEG XROffice Open XMLRuby (programming Language)ISO 31000Portable Document FormatISO/IEC 38500Web Content Accessibility GuidelinesISO/IEC 42010ISO 55000ISO/IEC 80000ISO 80000-1ISO 80000-2ISO 80000-3Category:ISO StandardsHelp:CategoryCategory:Common Language InfrastructureCategory:Ecma StandardsCategory:IEC StandardsCategory:ISO StandardsDiscussion About Edits From This IP Address [n]A List Of Edits Made From This IP Address [y]View The Content Page [c]Discussion About The Content Page [t]Edit This Page [e]Visit The Main Page [z]Guides To Browsing WikipediaFeatured Content – The Best Of WikipediaFind Background Information On Current EventsLoad A Random Article [x]Guidance On How To Use And Edit WikipediaFind Out About WikipediaAbout The Project, What You Can Do, Where To Find ThingsA List Of Recent Changes In The Wiki [r]List Of All English Wikipedia Pages Containing Links To This Page [j]Recent Changes In Pages Linked From This Page [k]Upload Files [u]A List Of All Special Pages [q]Wikipedia:AboutWikipedia:General Disclaimer



view link view link view link view link view link