Microsoft just released Windows 7 Beta yesterday and I thought I’d try it out. Now I’m sure most people are firing up VPC and installing it, but I wanted to put it on really hardware. I slapped a new hard drive in my Quad Core, 8 Gig, SLI development machine and ran it through my stack.
My typical installation goes something like this:
- Install OS and run updater
- Install Windows Home Server connector
- Run a Home Server Backup
- Install Paint.net -- “Don’t leave home without it!”
- Install SQL Server 2008 Express
- Install Visual Studio 2008 Team Systems and SP1
- Install ASP.NET MVC Framework Beta
- Install FireFox, Firebug, Web Developer, and YSlow
- Run another Home Server Backup
I connected Team Explorer to my MVC Club Site project on Codeplex (not published yet), compiled and fired up the application. Everything installed and ran perfectly.
Here are a few things I notice during installs:
- Windows Home Server connector works with Windows 7 out of the box.
- Windows Home Server labels Windows 7 Beta as Windows Vista.
- The SQL Server 2008 installer did not complain about Windows Installer 4.5, Powershell, or .Net 3.5 SP1; they must be built into Windows 7.
- IE 8 is the default browser.
In between installs I had a chance to take the OS for a spin. I have to say, this is what Vista should have been from the start. The nag screens are gone! The tool bar has some new features. We have native support for ISO files (FINALLY!). Everything just seems polished. I’ll be working with Windows 7 Beta over the next couple of days, but so far everything looks promising.
I can across an anamoly today when I tried to trigger an Update Panel from a control in a different ContentPlaceHolder. The IDE recognized the control in the designer as I was able to select the control ID from the dropdown. But, when I ran the page I received an error stating: "A control with ID 'Button1' could not be found for the trigger in UpdatePanel 'UpdatePanel1'."
This is something I think should be fixed in the AJAX framework. The Unique ID of the button is "ctl00$ContentPlaceHolder2$Button1", but the UpdatePanel is in ContentPlaceHolder1 so it assigned the controlID of the trigger to "ctl00$ContentPlaceHolder1$Button1" causing the YSOD ("Yellow Screen of Death").
The work around that I currently use is to dynamically add the trigger to the update panel.
AsyncPostBackTrigger trig = new AsyncPostBackTrigger();trig.ControlID = Button1.UniqueID; //Unique ID, not client ID trig.EventName = "Click";
UpdatePanel1.Triggers.Add(trig);