LINQPad supports everything in C# 3.0 and Framework 3.5:

  • LINQ to SQL
  • LINQ to Objects
  • LINQ to XML

LINQPad is also a terrific tool for learning LINQ: it comes preloaded with 200 examples from the recently released C# 3.0 in a Nutshell.  There’s no better way to experience the coolness of LINQ and functional programming.



Visual Studio 2008 Training Kit Videos Sessions


Aavailable on Channel 9

New additions to BCL


  • DateTimeOffset is a new date time data structure that specifies an exact point in time relative to the UTC time zone.  It is made up of a date time and offset relative to the UTC time zone.  DateTimeOffset includes most of the functionality of the current DateTime and allows seamless conversion to DateTime.  DateTimeOffset also works great with TimeZoneInfo which is also new in .NET 3.5. DateTimeOffset becomes the preferred format in NET 3.5
  • Pipes
    • Anonymous Pipes are character-based and are half-duplex.  They cannot communicate over the network and support only a single server instance.  These pipes are most useful for communication between threads or between parent and child processes where the pipe handles can be easily passed when the child process is created.
    • Named pipes are far more powerful than anonymous pipes.  They can be duplex, over the network, and can support multiple server instances of a single name, making them ideal for quick-to-build, and easy to connect to, multithreaded servers.  Furthermore, they support message based communication so that a reading process can read varying-length messages precisely as sent by the writing process.  Finally, named pipes support impersonation allowing connecting processes to use their own set of permissions on remote servers.

    • Pipes are a lower level channel the WCF could be built on top of. WCF actually has its own internal pipe implementation that it uses to achieve IPC.  In the future, WCF may switch to using the public pipe implementation that we’re now providing.

  • HashSet<T> is an unordered collection containing unique elements. It has the standard collection operations Add, Remove, Contains, but since it uses a hash-based implementation, these operation are O(1). (As opposed to List<T> for example, which is O(n) for Contains and Remove.) HashSet also provides standard set operations such as union, intersection, and symmetric difference.

Via BCL Team Blog

Coding4Fun Developer Resources for Visual Studio 2008

Coding4Fun Developer Kits!

  • The C4F Developer Kit is an offering of 20+ components and controls that offer developers a great opportunity to create cool, fun applications with technology that may be otherwise too complex or require countless hours of research and coding.  The toolkit hosts controls for things like Bluetooth, Speech, TAPI, Calendar and much, much more.  We’ve rolled this out on CodePlex ( to allow the community to share and add to it. 
    • e.g. Web Services
      Managed code wrappers for sites like:

      • Yahoo Traffic
      • Flickr
      • MySpace
      • Craig’s List
      • Delicious
      • Digg
      • YouTube
      • And more
  • The C4F Vista P2P Toolkit offers developers the ability to create peer-to-peer applications for WinForms and WPF with no lines of codeBuilt on top of the WCF, we created a set of controls that developers simply drag ‘n drop on their design surface and simply select from the Smart Tags which pieces to hook up.  They have prebuilt controls for Chat, file sharing and streaming audio and video.  This too can be found on CodePlex ( 
  • Finally, to bring the above apps & samples altogether, we’ve created the C4F Dashboard which is part of the C4F Developer Kit.  This simple WPF application allows developers to launch the samples, source code or documents for a single dashboard.  

Via Visual Studio 2008 is released and much more

Deleting rows from a table with an Identity Column

If you delete all the records from a table it won’t reset the identity.

To reset the identity seed you need to use a DBCC command.

// DBCC CHECKIDENT (table_name, RESEED, new_reseed_value)
Setting new_reseed_value to 0 will cause the next INSERT with an identity = 1
This T-SQL applies to MS SQL Server 2000+