.NET 2.0 Only 99.9% backwards compatible?

While re-writing a few WebServices for .NET 2.0 i ran across following: ...public static void WaitProc(object state, bool timedOut){   MyAsyncResult myAsyncResult = (MyAsyncResult)state;   myAsyncResult.OriginalCallback.Invoke(myAsyncResult);}... This compiles without any problems in Visual Studio .NET 2003 but makes the compiler scream (Invoke cannot be called directly on a delegate) untill you change the lines to the following: ...public static void WaitProc(object state, bool timedOut){   MyAsyncResult myAsyncResult = (MyAsyncResult)state;   myAsyncResult.OriginalCallback(myAsyncResult);}...

Project myNewProject = new Project("eCommerceSolution");

I started a new project. A e-commerce solution i wrote once in VB6 as a COM+ component and that is still used by Philips (Consumer Communications). I decided to use a generic DAL i wrote that works like the Microsoft Application Block but supports OleDB, ODBC, Oracle ans SqlServer. The objects (e.g. product etc.) are structs that are filled by my BusinessObjectManager, that uses Attributes and dynamicly generates SQL-Statements, fills, caches, creates and updates objects. I'am still playing around with the UI of the BackOffice but the most data should be published to the database by ASP.NET Webservices. And of course it will be all written in pure C#.