Winan,
There are a lot of differences, if I had to choose the most important it would be these:-
1] Grammar - C++ and C# have different language grammars. C# is based on the C++ language but its not C++, for example look at the difference between these examples.
C++ Example
#include "iostream"
using namespace std;
void main(void)
{
cout << "Hello from Visual C++";
}
C# Example
using System;
class Sample {
public static void Main()
{
Console.WriteLine("Hello from C#");
}
}
2] C# runs in a garbage collected (managed) environment, you can still use unmanaged blocks of code however MS don't really encourage this practice in C# or the other .NET languages. Visual C++ has managed extensions allowing it to play in the .NET sandbox, however it is still primarily a C++ compiler and will still allow you to hit the metal directly.
3] The .NET Runtime is designed to give firstclass support for modern component-based programming. C++ only partly provides a solution for this, C# (or more specifically .NET) has direct support for things like events and properties.
Bottom line, there are a LOT of great reasons for continuing with both languages (IMHO) and I could type for ever :-). As for a release date your guess is as good as mine, however MS have said that beta 2 is the last before production? Again its one of those things that they need to take there time on and get right, .NET has a lot going for it and I for one want to use it.
HTH
Neil