Windows Vista went RTM last Thursday, 11/16 and the global launch is scheduled for 11/26. So why does it matter?
As a .NET architect and developer, perhaps the most exciting feature in Windows Vista is the fact that it comes with CLR 2.0 and .NET Framework 2.0 and 3.0. This is important for a number of reasons. One of the most obvious is that by making the framework an integral part of the operation system, the framework naturally becomes pervasive throughout the user base. This means that bootstrapping the framework is no longer necessary, but this is minor compared to some of the other intangibles. Imbedding .NET as part of the operating system, it becomes, well, part of the operating system. This is a strategic move by Microsoft that benefits both the customer and the ISV in that installation scenarios are greatly simplified. It demonstrates Microsoft’s commitment to the framework as the underlying platform for developing Windows products and services. Before this, the only Windows OS that benefited from integrating the framework was Windows Server 2003, essentially limiting these benefits to the enterprise and at the same time, telling the real story of just how entrenched the framework is outside of the enterprise (the answer, I believe is not very).
But, I believe that Vista will change all of this. Joe User, who is simply trying to install a commercial product will not have to worry about installing the .NET Framework as a prerequisite. Its already there which is a good thing, because if you ask Joe to do more than hit next, next, finish, your product may find yourself in a market penetration dilemma.
Interesting side note: Anytime that I come across a commercial application that requires the framework I am both pleased and surprised. Pleased because it is a sign that ISVs are making the move from Win32 to .NET, and surprised because, well, its not too common to find these out there even today. Imagine my surprise, when, after trying to install Norton Ghost on Windows XP running .NET Framework 1.1 and 2.0 side-by-side, I figured out that the reason Ghost thought that 1.1 was not installed was because it was simply using the default runtime behavior where, unless otherwise specified in the app.config, an application will naturally target the latest version of the framework. This was resolved by adding a the following elements to the Ghost app.config:
<startup>
<requiredRuntime version="v1.1.4322"/>
<supportedRuntime version="v1.1.4322"/>
</startup>
While most folks I talk to seem somewhat un-motivated by this release and still seem focused on what Vista lacks (compared to what was at one point intended to ship), I believe that it is time to shift our mindset from what Vista could have been to what Vista is. Vista is the next generation of Windows and represents a tremendous effort by Microsoft to fix what has been broken for so long with regard to security, compatibility, installation, configuration and reliability. Be it instinct for survival, or simply a penchant for doing the right thing (I believe it is a combination of both), Microsoft essentially re-wrote Windows from scratch, not because it wanted to, but because it HAD to. Sometimes this is required to evolve and innovate and I applaud Microsoft for recognizing and taking this step.
I just finished attending a Microsoft Partner Vista Certification training event geared for ISVs who will be targeting the Vista platform and are interested in attaining the Works with Windows Vista and Certified for Windows Vista logos (shown below), the following guidelines were discussed at length:
1. Run securely
Notice that this is number 1. The de-facto guidance is to use least-privileged user accounts (LUAs) and limit elevation requests via a prescribed approach for elevating security permissions called UAC (User Account Control). By using a security shield icon on any activity that requires elevated security, the user is better educated to understand the consequences of their actions (both intentional and unintentional). In addition, Code Access Security (first introduced in .NET 1.0) is a foundational aspect of security in Vista.
2. Design for reliability and manageability
Doing the right thing begins with installation. All installation packages should adhere to a strict set of guidelines that require, among other things, that installations can be rolled back, in-use files are disposed of (temporarily) without bothering the user, and, post-install restarts are minimized using a new service called the Restart Manager. Windows Installer (msi) and ClickOnce are the premier choice for creating installation packages in Windows Vista.
3. Establish a customer feedback loop
The Windows Feedback Platform provides ISVs visibility to crash logs by making the crash dumps available to subscribing ISVs via the Windows Developer Portal. Subscribing partners are required to fix 60% of all defects to remain in the program!
4. Follow the Windows Vista User Experience Guidelines
Consistency is important because perception is reality. Guidelines for look and feel include “[Creating] a great-looking Windows Vista application by using the common file dialogs and by providing high-resolution icons, preview controls, and live icons for the shell”.
5. Enrich the user experience
Windows Presentation Foundation is the technology of choice for creating UI in Vista. Some of the things that can be done with this new technology are truly incredible, and I’m not talking merely about Aero glass. The productivity benefits of transformation and the declarative XAML model in and of themselves are amazing.
6. Enable users to visualize, organize, and search
This is all about metadata for indexing, optimization and searchability. Vista ships with an OLE DB Provider for Windows Search which allows the file system to be queried in a natural and procedural manner. While WinFS may be dead, the survival of this feature and API is awesome.
7. Build for connected systems
Windows Communication Foundation, partnered with Windows Workflow will bring the next generation of interconnected, distributed systems to the desktop. I could elaborate on this one for pages and pages, but I’ll save it for a later time.
8. Bring data to the user with RSS
RSS hits the mainstream in Windows Vista via the Windows Vista RSS feed APIs, Common Feed List, shared data store, synch and parsing engines, and list extensions. A fair criticism might be “Well, Microsoft, its about time”, but remember that although sometimes Redmond is a bit late in platform wide adoption of technologies due to release plans and schedules (you can’t always see into the future, nor can you release an OS every two years), once they do, they do it very, very well. If you have significant investments in RSS technology, you should be able to sleep better tonight knowing that its survivability as a syndication technology just increased by orders of magnitude.
9. Make document data-accessible
Sorry folks, XML ain’t going away anytime soon ;-)
10. Build for mobility
I can walk into my local electronics superstore and pick up a very decent Vista Capable laptop for under $600. Even 2 years ago this was unheard of. Mobility is here, and Vista introduces the new Sideshow, advances in power management, and network awareness APIs for maximizing the user’s mobile experience.
The bottom line, is that if your make your living from working with Microsoft .NET, you should be ecstatic about this release! This release is all about delivering .NET 2.0 and .NET 3.0 to your customers on a silver platter. It is about evolving as an operating system, as a platform and as an industry.
Kudos to Microsoft! It is well deserved.