User:Soumyasch/Incubator/.NET Class Libraries

Microsoft .NET Framework includes a set of standard class libraries. The class library organized in a hierarchy of namespaces. Most of the built in APIs are part of either System.* or Microsoft.* namespaces. It encapsulates a large number of common functions, such as file reading and writing, graphic rendering, database interaction, and XML document manipulation, among others. The .NET class libraries are available to all .NET languages. The .NET Framework class library is divided into two parts: the Base Class Library and the Framework Class Library.

Base Class Library

edit

The .NET Framework Base Class Library (BCL) includes a small subset of the entire class library and serves as the basic API of the Common Language Runtime.[1] The BCL classes are available in both .NET Framework as well as its alternative implementations including .NET Compact Framework, Microsoft Silverlight and Mono. The BCL Class libraries include:

  • System
  • System.CodeDom
  • System.Collection
  • System.Diagnostics
  • System.Globalization
  • System.IO
  • System.Resources
  • System.Text
  • System.Text.RegularExpressions

Framework Class Library

edit

The .NET Framework Framework Class Library (FCL) includes an expanded set of libraries, including WinForms, ADO.NET, ASP.NET as well as several other namespaces. It consists of around 2500 classes and interfaces in around 240 namespaces. The FCL is much larger in scope than standard libraries for languages like C++, and comparable in scope to the standard libraries of Java.

System.* Namespaces

edit
Libraries in the System.* namespace
Namespace .NET Fx .NET CF .NET MF SL 2.0+ Mono
System Yes Yes Yes Yes Yes
This namespace includes the core needs for programming. It includes base types like String, DateTime, Boolean, and so forth, support for environments such as the console, math functions, and base classes for attributes, exceptions, and arrays.
System.CodeDom Yes n/a n/a n/a n/a
This library provides the ability to create code and run it, at runtime.[2]
System.Collections Yes Yes n/a n/a n/a
Defines many common containers or collections used in programming, such as lists, queues, stacks, hashtables, and dictionaries. It includes support for generics.
System.ComponentModel Yes Yes n/a n/a n/a
Provides the ability to implement the run-time and design-time behavior of components and controls. It contains the infrastructure "for implementing attributes and type converters, binding to data sources, and licensing components".[3]
System.Configuration Yes Yes n/a n/a n/a
Provides the infrastructure for handling configuration data.
System.Data Yes n/a n/a n/a n/a
This namespace represents the ADO.NET architecture, which is set of computer software components that can be used by programmers to access data and data services.
System.Deployment Yes n/a n/a n/a n/a
Allows you to customize the way your application upgrades when using ClickOnce.
System.Diagnostics Yes Yes n/a n/a n/a
Gives you the ability to diagnose your application. It includes event logging, performance counters, tracing, and interaction with system processes.
System.DirectoryServices Yes n/a n/a n/a n/a
Provides easy access to Active Directory from managed code.
System.Drawing Yes n/a n/a n/a n/a
Provides access to GDI+ graphics functionality, including support for 2D and vector graphics, imaging, printing, and text services.
System.EnterpriseServices Yes n/a n/a n/a n/a
"Provides .NET objects with access to COM+ services making the .NET Framework objects more practical for enterprise applications."[4]
System.Globalization Yes Yes n/a n/a n/a
Provides help for writing internationalized applications. "Culture-related information, including the language, the country/region, the calendars in use, [and] the format patterns for dates, currency, and numbers" can be defined.[5]
System.IO Yes Yes n/a n/a n/a
Allows you to read from and write to different streams, such as files or other data streams. Also provides a connection to the file system.
System.Management Yes n/a n/a n/a n/a
Allows you to query for information, "such as how much free space is left on the disk, what is the current CPU utilization, which database a certain application is connected to, and much more."[6]
System.Media Yes Yes n/a n/a n/a
Provides you the ability to play system sounds and .wav files.
System.Messaging Yes Yes n/a n/a n/a
Allows you "to connect to, monitor, and administer message queues on the network and send, receive, or peek messages."[7] .NET Remoting is another name for some of the functionality provided. This namespace is being superseded by Windows Communication Foundation.
System.Net Yes Yes n/a n/a n/a
Provides an interface "for many of the protocols used on networks today",[8] such as HTTP, FTP, and SMTP. Secure communication is supported by protocols such as SSL.
System.Linq 3.5 No No Yes n/a
Defines the IQueryable<T> interface and related methods, that lets LINQ providers to be plugged in.
System.Reflection Yes Yes n/a n/a n/a
Provides an object view of types, methods, and fields. You have "the ability to dynamically create and invoke types".[9] It exposes the API to access the Reflective programming capabilities of CLR.
System.Resources Yes n/a n/a n/a n/a
Allows you to manage many different resources in the application in order to internationalize an application for different cultures and languages.
System.Runtime Yes n/a n/a n/a n/a
Allows you to manage the runtime behavior of an application or the CLR. Some of the included abilities are interoping with COM or other native code, writing distributed applications, and serializing objects into binary or SOAP.
System.Security Yes n/a n/a n/a n/a
"Provides the underlying structure of the common language runtime security system."[10] This namespace allows you to build security into your application based on policy and permissions. It provides services such as cryptography.
System.ServiceProcess Yes n/a n/a n/a n/a
Allows you to create applications that run as a service within Windows.
System.Text Yes Yes n/a n/a n/a
Supports various encodings, regular expressions, and a more efficient mechanism for manipulating strings (StringBuilder).
System.Threading Yes Yes n/a n/a n/a
Helps facilitate multithreaded programming. It allows the synchronizing of "thread activities and access to data" and provides "a pool of system-supplied threads".[11]
System.Timers Yes n/a n/a n/a n/a
"Allows you to raise an event on a specified interval."[12]
System.Transactions Yes n/a n/a n/a n/a
Provides support for local or distributed transactions.

References

edit
  1. ^ "Base Class Library". Retrieved 2007-12-12.
  2. ^ MSDN Documentation - System.CodeDom Namespace
  3. ^ MSDN Documentation - System.ComponentModel Namespace
  4. ^ MSDN Documentation - System.EnterpriseServices Namespace
  5. ^ MSDN Documentation - System.Globalization Namespace
  6. ^ MSDN Documentation - System.Management Namespace
  7. ^ MSDN Documentation - System.Messaging Namespace
  8. ^ MSDN Documentation - System.Net Namespace
  9. ^ MSDN Documentation - System.Reflection Namespace
  10. ^ MSDN Documentation - System.Security Namespace
  11. ^ MSDN Documentation - System.Threading Namespace
  12. ^ MSDN Documentation - System.Timers Namespace