To date I've done a lot of low-level programming (kernel-mode device drivers, native code, etc.) on both Windows and UNIX with C++, C and Ada95. I'm considering to make a career jump to application-specific programming where I can learn a business alongside software development and not just be a low-level hardware interface guy.
Besides learning SQL and basic databases, for various reasons, I've decided to go with the .NET stack rather than the Java stack. I'm not really interested in UIs, but more so server and back-end development for the time being, so I'm trying to avoid tech like WPF and CSS/Javascript/AJAX for now.
What .NET technologies should I be trying to learn to make myself more "modern" and competitive in the job market? Do I need to try to master linq, ADO.NET, ASP.NET, and WCF as well?