The main standard libraries are organized into two Standard Profiles, the Kernel Profile, and the Compact Profile.1 The following standard libraries do not belong to any profile: the Extended Array Library, the Extended Numerics Library, the Parallel Library and the Vararg Library.2345
The Kernel Profile is a subset of the Compact Profile. The Kernel Profile contains the Base Class Library (BCL) and Runtime Infrastructure Library.6
The Compact Profile contains those libraries in the Kernel Profile as well as the Network Library, the Reflection Library and the XML Library.7
See also: Data types of the Base Class Library
The Base Class Library is a simple runtime library for modern programming languages. It serves as the Standard for the runtime library for the language C# as well as one of the CLI Standard Libraries. It provides types to represent the built-in data types of the CLI, simple file access, custom attributes, security attributes, string manipulation, formatting, streams, collections, among other things.8 It defines types in the following namespaces:
See also: Data types of the Runtime Infrastructure Library
The Runtime Infrastructure Library provides the services needed by a compiler to target the CLI and the facilities needed to dynamically load types from a stream in a specified file format.9 It defines types in the following namespaces:
See also: Data types of the Network Library
The Network Library provides simple networking services including direct access to network ports as well as HTTP support.10 It defines types in the following namespaces:
See also: Data types of the Reflection Library
The Reflection Library provides the ability to examine the structure of types, create instances of types and invoke methods on types, all based on a description of the type.11 It defines types in the following namespaces:
See also: Data types of the XML Library
The XML Library provides a simple "pull-style" parser for XML. It is designed for resource-constrained devices, yet provides a simple user model.12 It defines types in the following namespace.
See also: Data types of the Extended Array Library
The Extended Array Library provides support for non-vector arrays. That is, arrays that have more than one dimension or arrays that have non-zero lower bounds.13 The Extended Array Library doesn't add any extra types, but it does extend the array-handling mechanism.14
See also: Data types of the Extended Numerics Library
The Extended Numerics Library provides support for floating-point (System.Single, System.Double) and extended-precision (System.Decimal) data types. Like the Base Class Library, this library is directly referenced by the C# standard.15
See also: Data types of the Parallel Library
The Parallel Library provides easy parallelism for non-expert programmers, so that multithreaded CPUs can be exploited.16
See also: Data types of the Vararg Library
The Vararg Library provides support for dealing with variable-length argument lists.17
"IV.3 The Standard Profiles". Standard ECMA-335 – Common Language Infrastructure (CLI) (Technical report) (6th ed.). Ecma International. June 2012. p. 437. http://ecma-international.org/publications/standards/Ecma-335.htm ↩
"IV.5.8 Extended array library". Standard ECMA-335 – Common Language Infrastructure (CLI) (Technical report) (6th ed.). Ecma International. June 2012. p. 441. http://ecma-international.org/publications/standards/Ecma-335.htm ↩
"IV.5.7 Extended numerics library". Standard ECMA-335 – Common Language Infrastructure (CLI) (Technical report) (6th ed.). Ecma International. June 2012. p. 441. http://ecma-international.org/publications/standards/Ecma-335.htm ↩
"IV.5.10 Parallel library". Standard ECMA-335 – Common Language Infrastructure (CLI) (Technical report) (6th ed.). Ecma International. June 2012. p. 441. http://ecma-international.org/publications/standards/Ecma-335.htm ↩
"IV.5.9 Vararg library". Standard ECMA-335 – Common Language Infrastructure (CLI) (Technical report) (6th ed.). Ecma International. June 2012. p. 441. http://ecma-international.org/publications/standards/Ecma-335.htm ↩
"IV.3.1 The Kernel Profile". Standard ECMA-335 – Common Language Infrastructure (CLI) (Technical report) (6th ed.). Ecma International. June 2012. p. 437. http://ecma-international.org/publications/standards/Ecma-335.htm ↩
"IV.3.2 The Compact Profile". Standard ECMA-335 – Common Language Infrastructure (CLI) (Technical report) (6th ed.). Ecma International. June 2012. p. 437. http://ecma-international.org/publications/standards/Ecma-335.htm ↩
"IV.5.3 Base Class Library (BCL)". Standard ECMA-335 – Common Language Infrastructure (CLI) (Technical report) (6th ed.). Ecma International. June 2012. p. 440. http://ecma-international.org/publications/standards/Ecma-335.htm ↩
"IV.5.2 Runtime infrastructure library". Standard ECMA-335 – Common Language Infrastructure (CLI) (Technical report) (6th ed.). Ecma International. June 2012. p. 440. http://ecma-international.org/publications/standards/Ecma-335.htm ↩
"IV.5.4 Network library". Standard ECMA-335 – Common Language Infrastructure (CLI) (Technical report) (6th ed.). Ecma International. June 2012. p. 440. http://ecma-international.org/publications/standards/Ecma-335.htm ↩
"IV.5.5 Reflection library". Standard ECMA-335 – Common Language Infrastructure (CLI) (Technical report) (6th ed.). Ecma International. June 2012. p. 440. http://ecma-international.org/publications/standards/Ecma-335.htm ↩
"IV.5.6 XML library". Standard ECMA-335 – Common Language Infrastructure (CLI) (Technical report) (6th ed.). Ecma International. June 2012. p. 440. http://ecma-international.org/publications/standards/Ecma-335.htm ↩
King, Jason; Easton, Mark (2004). "Chapter 4: The NET Framework Dissected". In Gilmore, Jason (ed.). Cross-Platform .NET Development: Using Mono, Portable.NET, and Microsoft .NET. Apress. p. 110. ISBN 1-59059-330-8. LCCN 2004018339. 1-59059-330-8 ↩