RDN Express Blog

Blog archive

.NET and Windows 7: It's a Wrap!

Microsoft is pulling out all the stops to get developers -- both native and managed coders -- on board the Windows 7 roll out.

Last week, along with the availability of the Windows 7 RTM (in English) to MSDN and TechNet subscribers, Microsoft released RTM versions of the Windows 7 SDK, Windows API Code Pack for the .NET Framework and the Windows 7 Training Kit for Developers.

The Windows API Code Pack for .NET is essentially a library of managed code wrappers that enables .NET programmers to access some of Windows 7's features along with functionality in earlier versions of Windows. It is the successor to the Windows Vista Bridge project.

Version 1.0 includes the Windows 7 Taskbar (Jump lists, Progress Bar, Overlay), Windows 7 Libraries and Shell, Explorer Browser, Sensor Platform APIs, Direct 3D 11.0 and earlier, Windows 7 and Vista Common File and Task dialogs and much more.

As a reminder, the definition of a "library" is expanded to include an end user perspective in the new operating system. "A Windows 7 Library is a user-defined collection of content that represents the user's data independently from the folder hierarchy," explains Yochay Kiriaty, Microsoft technical evangelist, in a blog on the subject.

The Windows API Code Pack for .NET RTM update adds support for Shell Search API and Direct 3D and 2D interoperability, among other enhancements. It does not include the Windows Ribbon, which Microsoft says will not be in Version 1.0, or multi-touch support.

The Windows 7 Training Kit for Developers, which offers hands-on labs to both native and .NET programmers, has been updated and features a new user interface. It also adds labs on common app compatibility issues: Version Checking, Data Redirection, UIPI, Installer Detection, Session 0 Isolation, and High DPI.

The always entertaining Scott Hanselman offers 10 tips to Windows 7 developers in his ComputerZen.com blog. He says that developers can write the same app and have it run on Windows XP, Vista and Windows 7 and points to a sample app. There's more to come on that topic, he promises.

As Hanselman's blog attests, Microsoft is indeed calling on .NET programmers to optimize or build apps for the new operating system, but is .NET still a second class citizen in the Windows world? The .NET Framework was lauded as the third generation of Windows development when it debuted in 2002. Almost a decade later, the .NET framework that ships with the operating system still lags behind the latest version of the framework and we won't get started on the abyss that is native and managed interoperability.

Windows 7 ships with .NET 3.5 SP1, it does not support .NET 4, expected to RTM later this year or in early 2010. The Windows API Code Pack for .NET offers a workaround of sorts, but will these libraries be part of .NET 4? Not if .NET 4 Beta 1 is any indication. Developers are left with a quandary, build apps with the not-so-new framework for the latest operating system or deal with issues related to getting the latest version of .NET on Windows 7 users' desktops when many Windows 7 apps are ready for prime time in 2010 and beyond.

Microsoft is offering lots of resources for .NET Windows 7 programming but should the folks in Redmond do more? Express your thoughts below or drop me a line at krichards@reddevnews.com.

Posted by Kathleen Richards on 08/11/2009 at 12:09 PM


Reader Comments:

Thu, Aug 20, 2009 Mat

Dave - I'm happy that the operating system libraries are not .NET - I don't see the need for it, it would be much more of a disadvantage than anything else.

Thu, Aug 13, 2009 Kevin Daly New Zealand

This is a bugbear of mine. I attended PDC 2003 where we were given a very clear message that Microsoft expected developers to go with .NET over native code for everything above the level of device drivers and so on. The term WinFX embodied that notion: .NET as the new API for programming Windows. This was an excellent idea, but sadly it was abandoned. Vista shipped with more native libraries, and Windows 7 (which I love by the way) with a truckload...the .NET wrappers are an afterthought. I won't even mention Windows Mobile (where there would have been a real opportunity to break with an unsatisfactory past). I'm not saying "Use .NET for everything" or "Don't support native code", but the truth is that all of the documentation for every current version of Windows makes it clear that the assumption is that by default people are programming in C/C++, and all new features are implemented with that in mind. We are given excuses about efficiency and so on, but in most cases those reflect the prejudices of the people involved. I think the primacy of native interfaces is a symptom of Real Programmerism: the OS teams are dominated by people who think "Real Programmers Use C++". What really bothers me is that .NET seems to have been shuffled into the same mental pigeonhole that VB occupied in the pre-.NET era: little more than a scripting tool for corporate developers working on in-house projects. As someone who believes C# is God's Programming Language, that makes me a very grumpy old man.

Tue, Aug 11, 2009

Microsoft should offer more free things to help us get up to speed on the platform as quick as possible. Free Win 7 OS perhaps? Free VS. Kind of like the Dramespark idea, but for any developer. I work in .NET all day long at work, but my company doesn't have the funds right now to dive into this new OS. I could use a little help at home to dive into it myself.

Add Your Comments Now:

Your Name:(optional)
Your Email:(optional)
Your Location:(optional)
Comment:
Please type the letters/numbers you see above