Partilhar via


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.

Comments

  • Anonymous
    July 29, 2004
    How about support for memory mapped files?

    Although it is not that difficult to build yourself :)
  • Anonymous
    July 29, 2004
    Peter, that's certainly on our list of things to do in a near-future implementation. Probably not the next version of VS, but hopefully soon thereafter!
  • Anonymous
    July 30, 2004
    The comment has been removed
  • Anonymous
    July 30, 2004
    Yes.... thank you thank you thank you for the ACL support.
  • Anonymous
    July 30, 2004
    ACLs is certainly one of those areas that would love any feedback on as well, so let us know if there's anything missing that you expected to be there!
  • Anonymous
    August 01, 2004
    Before proceeding further, let me congratulate you folks for the excellent work in System.Security.Crytography!!!

    Here's a bug that I think you folks should address:

    For some reason, X509CertificateEx.Export() does not allow the option to export the entire certificate trust chain. This is a surprising omission considering that the X509IncludeOption parameter is available on classes like CmsSigner. Note that the absence of the entire trust chain is especially annoying when you are trying to generate x509/.pfx/pkcs12 files from X509Certificate because the user needs to import the trust chain separately after installing the exported file.

    This has already been submitted as bug #FDBK12912 on the Beta feedback site, but I wanted to make sure it gets noticed :)...

    Atul

  • Anonymous
    August 02, 2004
    Thanks Atul for the feedback. X509CertificateEx.Export only exports the certificate itself and does not build the certificate chain. It is however possible to export the whole certificate chain with the set of APIs available today: what you could do is build a chain using X509Chain.Build; then get the certificates in the chain by accessing X509Chain.ChainElements. Once you get the collection you want exports, you can call X509CertificateExCollection.Export: this method is the way to go if you need to export more than one certificate.

    Thanks,
    Tarik
  • Anonymous
    August 02, 2004
    Ah hah -- thanks for the clarification. I looked X509Chain but didn't make the association with X509CertificateExCollection.Export. I will give it a try...

    Atul
  • Anonymous
    August 03, 2004
    Excellent -- that worked like a charm!!!

    Atul
  • Anonymous
    April 21, 2009
    PingBack from http://64.85.11.8/wordpress_waltritscher/index.php/2004/07/31/net-20-whats-new-in-the-base-class-libraries/