Coming from a Linux/Java/Web-based development background, I am looking to learn Windows app development. There seem to be three camps -- Win32 API, MFC, and now .NET (Forms,etc.). I was wondering what is the "best practice"as far as new development goes. Is .NET usurping all others now as the de facto standard for Windows application development, or ar all "real" apps still being written using only with Win32 API (or with MFC ).

Don't want to waste my time learning a technology that is considered dated and deprecated.

Any feedback would be most welcome.
~ed