Managed code: Difference between revisions

Content deleted Content added
No edit summary
Line 1:
{{RefImprove|date=April 2019}}
 
'''Managed code''' is computer program code that requires and will execute only under the management of a [[Common Language RuntimeInfrastructure]] (CLRCLI) [[Virtual Execution System]] (VES) [[virtual machine]], e.g. [[.NET Core]] [[CoreFX]], [[.NET Framework]] [[Common Language Runtime]] (CLR), or [[Mono (software)|Mono]]. The term was coined by [[Microsoft]].
 
Managed code is the compiler output of [[source code]] written in one of over twenty{{Which|date=April 2019}} high-level programming languages, including [[C Sharp (programming language)|C#]], [[J Sharp|J#]] and [[Visual Basic .NET]].
 
== Terminology ==
The distinction between managed and unmanaged code is prevalent and only relevant when developing applications that interact with CLR implementations. Since many{{Which|date=April 2019}} older programming languages have been ported to the CLR, the differentiation is needed to identify managed code, especially in a mixed setup. In this context, code that does not rely on the CLR is termed "unmanaged".
 
A source of confusion was created when Microsoft started connecting the .NET Framework with [[C++]], and the choice of how to name the [[Managed Extensions for C++]]. It was first named Managed C++ and then renamed to [[C++/CLI]]. The creator of the C++ programming language and member of the C++ standards committee, [[Bjarne Stroustrup]], even commented on this issue, "On the difficult and controversial question of what the CLI binding/extensions to C++ is to be called, I prefer C++/CLI as a shorthand for "The CLI extensions to ISO C++". Keeping C++ as part of the name reminds people what is the base language and will help keep C++ a proper subset of C++ with the C++/CLI extensions."<ref name="Stroustrup">{{cite web |author=Stroustrup, Bjarne |title=Bjarne Stroustrup's FAQ: What do you think of C++/CLI? |date=2009-06-29 |url=http://www.stroustrup.com/bs_faq.html#CppCLI |accessdate=2009-06-29 }}</ref>
 
== Uses ==
 
The [[Microsoft Visual C++]] compiler can produce both managed code, running under CLR, or unmanaged binaries, running directly on Windows.<ref name="Gregory">{{cite web |author=Gregory, Kate |title=Managed, Unmanaged, Native: What Kind of Code Is This? |date=2003-04-28 |url=http://www.developer.com/net/cplus/article.php/2197621 |accessdate=2009-04-22 }}</ref>