The power of typed datasets is a very impressive feature in Visual Studio 2005 (VS). Creating a typed dataset is as easy as adding a dataset item to your project (an XSD file) which will launch a wizard to help you setup the dataset. This typed dataset file is actually an XML schema definition file that describes the dataset and will be compiled at runtime only when needed. After setting up a typed dataset, you are equipped with many standard abilities such as SELECT, INSERT, DELETE, and UPDATE capabilities. But in addition to these functions (which can be highly customized), there are many ways to increase the functionality of the dataset. One way is to add customized SQL queries into the TableAdapters created within the typed dataset. These SQL calls can be ad hoc statements or stored procedures (new or already existing). Each of these customized queries is referenced through a method call added to the typed dataset class. As can be imagined, there is quite a bit of auto-generated code being created by VS behind the scenes (switch to class view and you can analyze this code by choosing 'Go To Definition' from any of the methods that are part of the dataset's class). Make sure not to add any custom code into these auto-generated classes because it will be destroyed if the class is regenerated. Instead, with .NET 2.0's partial class functionality, it is fairly easy to add any code customization you may want to your own class files. In case you are new to the concept of partial classes, they make it possible to split a class's definition over two or more source files. So, VS uses the auto-generated file for its code and you can use your own file to add your methods, properties, etc. At compile time, all partial class definitions are merged to create a single class definition.
Typed datasets come in very handy when working with one of the most common asp.net controls, the gridview. The gridview can easily be tied to a typed dataset and many standard functions (e.g., sorting and paging) are setup for you. This saves the developer time as they no longer need to concentrate on this type of common, repetitive coding.
Another important aspect of typed datasets is type safety. Since typed datasets have a schema defining the dataset's data types, data mismatches will generate errors at compile time, making typed datasets much more robust.