New BCL features in Beta1

[Ahmed AbouTaleb]

Here is a list of all the new BCL features that shipped in Visual studio 2005 Beta1

Regular Expressions

We added the ability to use character class subtraction to regular expressions. The specification is publicly available here.

Compression Support

We have added the ability to compress, and decompress streams using the standard GZip and Deflate formats. Check the System.IO.Compression namespace for the classes you need to leverage this functionality.

ACLs support

We have now exposed the ability to manipulate and manage ACLs from managed code. The basic support is available in the security space, while specific support for various object types is available via the classes that expose the ACL, such as FileStream, or RegistryKey.

DateTime Changes

In order to better enable users to pass DateTime’s around and know the style of the DateTime, the DateTime class now exposes a ‘Kind’ property (and a SpecifyKind method), which uses a DateTimeKind enum to let you know if the DateTime is a local, universal, or unknown (the current behavior) DateTime.

Math Rounding

We’ve expanded the rounding capabilitites on the Math, and Decimal classes.

Nullable

We’ve added a new class, which can be used to add the null concept to structs.

SecureString

We have a new class which allows someone to avoid putting confidential data into a String type.

Debugger Display Attributes

We have a variety of new attributes you can decorate your code with, so that they are more useful, and have better information when viewed in a debugger.

Various System Work

We’ve added a variety of small features to System classes, such as the ability to set environment variables (via the Environment class), some new generic classes such as EventHandler<T> and ArraySegment<T>, new methods on String (new overloads for Split, EndsWith, and BeginsWith are some examples), and additional information available on the OSVersion (from Environment).

UnmanagedMemoryStream

We’ve added a new stream to be able to access memory from an unmanaged source.

Base Collections

System.Collections namespace now contains collections intended for scenarios where a collection needs to be exposed from an object model. For example Directory.Files property returning a collection of files in a directory. The collections are called Collection<T>, ReadOnlyCollection<T>, and KeyedCollection<K,T>.

Delegate Based Members on List<T> and Array.

A good description of the feature can be found at https://blogs.msdn.com/kcwalina/archive/2004/06/22/162533.aspx

LinkedList

See System.Collections.Generic.LinkedList<T>

Resources

  • Strongly Typed Resources which enables the developers to access resources easily without the need to remember the resources IDs.
  • ResourceManager.GetStream a method to enhance the performance of resources retrieval if they are stored as memory stream.

Diagnostics

  • New tracing infrastructure to enable developers to better instrument their apps with new classes like TraceSource and SourceSwitch and new listeners like XmlTraceListener and DelimitedListTraceListener.
  • Create process as a user in the process class.

Threading

  • Semaphore class which was a missing functionality in the framework.
  • Named Events to enhance the cross-process communication.
  • Abandoned mutex detection.