Thoughts about setup and deployment issues, WiX, XNA, the .NET Framework and Visual Studio
All postings are provided AS IS
with no warranties, and confer no rights. Additionally, views expressed
herein are my own and not those of my employer, Microsoft.
After several months of periodic nagging, my friend and co-worker David Fleischman has finally re-entered the world of blogging this week with a couple of posts. His most recent post describes a few features that have caught his eye while using Windows Vista in recent months. This post has inspired me to write a similar post.
I've been using builds of Windows Vista on my test systems for the past 2+ years, but I've taken a couple of key in recent months. About 3 months ago I stopped using the built-in Administrator account on all of my test systems to force myself to experience Windows Vista like most end users will - with User Account Control (UAC) in full effect. In addtion, about a month ago I installed Windows Vista on the laptop I use all the time in meetings at work and at home.
After experiencing Windows Vista like this for the past few weeks, I've made some personal observations and developed a list of pet peeves and likes/dislikes about Windows Vista. I want to emphasize that these items are my own personal opinions, and a lot of these opinions are formed by my personal work style and things I've trained myself to do over the years, so they should be taken with several grains of salt....
I really like how Aero glass looks on my system, and it is especially cool to press Windows+Tab and see the 3D flipping of open windows on my system. That makes things much easier when I have multiple copies of an application open. The thing that has been frustrating me about Aero is my inability to easily identify which window currently has focus when I have multiple windows open on my desktop. More than once, I have started typing or pressing Ctrl+V to paste text into a Notepad window or cmd prompt, only to find that the Windows I thought had focus actually didn't.
I also find it confusing that the desktop itself appears as a "window" when pressing Alt+Tab or Windows+Tab to switch between applications. I understand why it is there - to make it easier to get to the desktop to use shortcuts that have been placed there. However, I've trained myself to press Windows+D to get to the desktop and it is a little disconcerting to see an extra window in the Alt+Tab list if I only have 1 or 2 items currently running.
I use keyboard shortcuts a lot in my day-to-day computing, especially on my laptop because it is a lot faster than the eraserhead and the touch panel. I trained myself to click Ctrl+Esc to bring up the Start menu and then press R to bring up the run dialog to launch a new app, or press U to bring up the shutdown menu. Neither of these shortcut combinations work in Windows Vista. I can use Windows + R to bring up the run dialog as an alternative, but the problem with that on my laptop is that the Windows key is in the top right of my keyboard, so Windows + R requires both hands, whereas Ctrl+Esc+R required only the left hand and I could continue to use the mouse with my right hand.
I haven't found a workaround for bringing up the shutdown menu so far, so I actually created a batch file to call shutdown.exe so I could get to it quicker and not have to tab around the start menu to try to navigate to the shutdown menu with only the keyboard.
Internet Explorer 7
I know that tabbed browsing has been around in other browsers for a little while, but IE7 is the first time I've experienced tabbed browsing. I like the idea in general, but it takes some getting used to because I typically have many browser windows open and Alt+Tab around a lot. The annoying thing I've run into so far is that when I click on the New Tab, it opens a blank page instead of using my default home page. I use a local page I wrote with a list of my most commonly used links as my home page, and so I typically open a new browser window or tab and then want to click on one of my home page links. Because a new tab opens a blank page, I have to go and click the home button after opening a new tab to get to my default home page.
I enabled the anti-phishing filter when I first launched IE7, but then later on the filter flagged my own blog as a phishing site, even though it is hosted by Microsoft and I have no control over what user data it does or doesn't ask for behind the scenes. Fortunately, there is an easy mechanism to appeal the reporting of a site as a phishing site, and so I clicked the link and reported my blog. The next morning I checked my email and I had an automated mail indicating that my report was received and my blog would no longer be flagged as a phishing risk.
User Account Control (UAC, formerly LUA)
A lot of work has been done to make this feature less intrusive, but this still drives me crazy. I understand protecting some system resources, like applications that try to write to the Windows directory or HKEY_LOCAL_MACHINE, but I don't understand why I should have to elevate Visual Studio in order to compile a sample application because that sample is installed under Program Files and Visual Studio tries to build in a relative path under the project directory by default.
I also get frustrated by the screen dimming to show me that a UAC prompt has appeared. It causes a lot of flashing and disorientation when UAC prompts appear on my system. In some cases, the UAC dialog appears minimized or behind other windows I have open on my screen, so I am stuck with a dimmed display and I have to hunt for the reason.
Some types of applications don't have "Run as administrator" in their context menues, so I have resorted to pinning the cmd prompt to my start menu in order to have an easy shortcut to create an administrator cmd prompt that I can then launch other elevated applications from without needing to specifically allow them each time I run them.
I have also found some control panels that contain a mix of settings that do and do not require elevation, and this really confused me the first time. For example, the Power Options | System Settings control panel has a set of radio buttons where you can tell Windows whether or not to require a password when resuming from standby. By default, that radio button group is grayed out. You have to click the link at the top of the control panel that says "Change settings that are currently unavailable." That will prompt you for elevation, and if you choose to allow it, the control panel refreshes and the radio buttons are now active. I'm having a hard time getting used to this kind of behavior.
The general philosophy of Windows Vista seems to be to hide system menus by default. I have already found myself frustrated in Windows Explorer and IE7 by the lack of File, Edit, etc menus at the top of the screen.
There are a lot of changes in the system that make me feel like I have to re-learn things I've gotten used to doing in previous versions of Windows. In particular, the system of control panels seems almost universally different. I can't decide if this change is for the better or not. The other particularly annoying (though very minor) thing I've seen is the Windows default save as dialog. Instead of Yes, No, Cancel, the buttons are now Save, Don't Save and Cancel. I've gotten used to closing Notepad and pressing Y to save it, but now I have to press S. Fortunately, the keyboard shortcut for Don't Save is N, which is the same as the No button I have been used to.
I've also seen a couple of odd things related to the .NET Framework. I installed the .NET Framework 1.1 and got a scary application compatibility dialog stating that I need to install the .NET Framework 1.1 SP1. The dialog is accurate, because you could be affected by bugs like this and this (except that those bugs will block setup from working correctly, which makes it tricky to workaround them). The problem is that the same dialog appears when trying to install .NET 1.1 SP1.
Also, after I install .NET 1.1 SP1 and reboot, I get a system tray balloon from Windows Defender saying that some operations that are scheduled to happen at startup have been blocked. One of the items in that list is an unclassified action that I know is the post-reboot process to re-NGEN .NET Framework 1.1 assemblies. I can't find any way to change the Classification of that action in the Windows Defender dialog, so I'm not really sure if my system is in a state where nothing in the .NET Framework 1.1 is NGEN'ed or not.
Overall, I have been happy with my Windows Vista experience as I use it more and more in day-to-day work, despite the pet peeves listed above. This is a huge OS overhaul (approximately analogous to the upgrade from Windows 3.1 to Windows 95), so I expect a learning curve for things that behave differently. As much as I like the tricks I've learned in the past, it would also really tie our hands to try to maintain complete parity with previous behaviors, and I think we're getting to a good balance between making worthwhile changes while also making the new features relatively easy to learn and understand.
Also, I know I'm biased, but it is really cool that I can just install Windows Vista Home Premium or Ultimate on my laptop and get Windows Media Center features by default. I don't have to install a special edition of Windows like I did in XP, and if I install Ultimate, I can also join my system to a domain and have Windows Media Center and not have to choose between those features like in XP. The UI changes within Windows Media Center really frustrated me at first, but I really like the color scheme now, and the work we've done to improve mouse controls really makes me happy, especially on my laptop that I am not using as a living room PC. And I am most happy about the built-in codec so I don't have to install any special software to be able to watch a DVD in Windows Media Center in Windows Vista like I did for XP Media Center Edition.
Again, I want to emphasize that all of these are my own personal opinions based on my personal preferences and the ways I've taught myself to use Windows to optimize my own personal efficiency.