A great place to check out all the PDC action (whether you’ll be at the Convention Center with us or not) is PDCBloggers.net. They have aggregated feeds from speakers, staff, attendees, and community members. I expect that you’ll see tons of good WPF content over there during the coming week.
Author: lauren
Why Doesn’t WPF Support MDI?
A few people have asked me why the WPF builds that we’ve released don’t include support for MDI. On one hand, I still want to do this for V1. On the other, I can’t imagine making people wait any longer before we ship this thing, on account of adding “just one more feature.”
I do want to call out that the absence of MDI support in WPF does not at all imply that we don’t think this is important. Nor does it mean that we can’t add it in the next version if it doesn’t make it in for V1. There are a couple of factors influencing this decision:
- Shipping. As I’m sure you know, software projects are always a game of making tradeoffs. Tradeoffs between features and other features, between features and bug fixes, between features and ship dates, and so on. MDI will be a huge feature if we implement it right (and implementing it right in this case means making it a true first-class citizen of WPF, so that it integrates well with styling, the property system, etc.), and at some point we had to decide between adding this new large feature and shipping the product.
- Chocolate or vanilla? There are probably about 20 “flavors” of MDI. Word does MDI differently from Excel, Excel does MDI differently from Visual Studio, Visual Studio does MDI differently from Firefox (and yes, you might have caught on to my implication that I think tabbed browsing is just another flavor of MDI), Firefox does MDI differently from OneNote. In fact, a lot of apps use their own custom plumbing for MDI because the flavor provided by the API platform isn’t quite the right one. Before we go implement something as monolithic as MDI, we want to make sure that we choose the right flavor — or do it in a flexible enough way so that our developers can customize it to meet their needs. I don’t think any of us really knows the right way to do this yet — a big part of this needs to come from understanding the needs of customers who are actually building on WPF (that’s you, and hence the ask for feedback at the end of this post).
So what if you want to build an MDI app now? Not all is lost, because there are ways around the limitation. Here are the two that I expect to be most common:
- Use Windows Forms interop. Nick Kramer describes how to do this, with a quick code sample, in this blog post.
- Bake it yourself. This is not as impossible as it sounds. In fact, a lot of apps out there do this today, because they want a different “flavor” of MDI than what comes out of the box with Win32/MFC/WinForms. Chris Anderson’s AvPad makes use of a custom implementation of a child window manager, and Chris claims it wasn’t hard to do. <g>
If there is sufficient interest, I’d be very happy to write up a sample for current external bits showing #2 above — using Chris’s AvPad as a starting point, but really highlighting how to write the child window manager code. My only caveat is that this would happen after PDC. :)
I’d also love feedback from those of you who are hurting by not having this support now. In particular — what’s your scenario, and what “flavor” of MDI are you looking to produce? Is it more like Excel, Word, Visual Studio, or something else entirely?
PDC Panel: What’s Next for Microsoft’s Web Platform
I’ll be participating in the following panel at the PDC next week:
PNL06 – What’s Next for Microsoft’s Web Platform
September 16, 8:30 AM – 10:00 AM
152/153 (Hall F)
Eric Deily, Eric Feagler, Lauren Lavoie, Mike Volodarsky, Nikhil Kothari, Omar Khan, Shanku NiyogiWill emerging technologies such as Atlas and IIS7 create an environment for new types of web applications, if so what challenges and opportunities will developers face? How is ASP.NET evolving? What role will Avalon Express play in this space? Join us for a conversation with a panel of Microsoft experts on what promises to be a lively discussion on the state of web application development.
This should be an exciting panel. We plan to make it worth getting up early for. :)
If you have any questions that you’d like to hear us answer during this panel, please either leave a comment or drop me a line.
Dispatches from Slidell, Louisiana
Kenny‘s dad lives in Slidell, LA, one of the cities that was hit the hardest by Hurricane Katrina. Gary actually stayed in Slidell during the hurricane because he was on call at the hospital (he is a general surgeon there). His wife, Lynn, went to stay with her family in another part of the state.
As you might expect, we had a couple of rather anxious days directly before, during, and after the hurricane. There was no telephone access to the hospital (and there still isn’t), and we didn’t have any indication of whether it was even still standing. We all just assumed that their house must be gone.
Little by little, we’ve learned more about the situation at the hospital in Slidell: first, Lynn saw a news broadcast including footage of the hospital, which confirmed that it was still standing. Then, she got a second-hand message from Gary that not only was everyone at the hospital okay, but their house was still standing! (presumably he was able to get out of the hospital to go check it out? We’re all still confused by that one, because all of the articles I’ve read state that there’s still about 8 ft of flooding outside the hospital).
And today, I got the following updates from Kenny (via Lynn):
Dad fixed the hospital generator so they have power again and they have hot water (he was able to get a shower in), plus he fixed the roof of the house. :)
Lynn’s supposedly working out of the Baton Rouge office and is going to go back to Slidell with a generator and air conditioning unit for Dad and they’re going to either set up shop at the house or both stay at the hospital. Supposedly he’s enjoying all the help he’s able to provide here.
Awesome.
Start Me Up
Today was the 10-year anniversary of Windows 95. I wouldn’t have known, if not for the out of office message from someone on my team this afternoon, who was attending a 10-year anniversary celebration. His OOF message also had a link to a great little tidbit from Raymond Chen describing his experience at the launch party 10 years ago.
And one of the comments on Raymond’s blog post was pretty amazing too:
As I have for the last 5 or 6 years, I’m having a “birthday party” for Windows95 today. For real. I know that sounds totally nuts (and it probably is to some degree), but Windows95 took us all out of the dark ages and into the new frontier. Me and my co-coders will get some cake and soda and play “Start Me Up” from a Win95 CD… Nerds at their worst… I mean best.
I hope that the release of Vista meets with some excitement as well. :)