.NET lets us easily serialize an object into XML and deserialize XML into its
corresponding object. This functionality has been available since .NET 1.0.
The introduction of new data type called XML in SQL Server 2005 gives us even
more advantages that come in handy with Stored Procedures that attempt to
insert/update records in multiple but related tables.
Usually this involves passing a huge number of parameters that make up the
individual objects to the Stored Procedure; but with SQL Server 2005 we could
potentially serialize the object(s) into an XML string and pass it as the
input parameter, leaving us with cleaner code that's easy to read and
maintain.
Consider the case of having a Person object with list of Address and Phone
objects. The corresponding database schema would have tables for Person,
Address, and Phone. When a new Person is inserted into the data... (more)
Predicate is a new feature introduced in .NET 2.0 in conjunction with Generic
collections. Generics are also new in .NET 2.0; Generic collections are by
nature strong-typed. What that means is that if we declare a generic list of
Address objects, we can only insert an Address type of object. If you try to
insert an object that's not an Address type of object or a derived class of
it, you'd get a compilation error. So using Generic collections ensures
type-safety. In .NET 1.1, we'd have to use an ArrayList (which is a list of
"object"-type items). There are two imminent drawbacks ... (more)