Technical Content of this issue - 4 out of 5
The Conference BeginsEvery year I go to the pre-sessions and find them to be mildly informative and interesting, but I'm left wondering if maybe I'm burned out on these conferences. Then the main event begins and reminds me just why I love the PDC. The general session this morning reinforced that fact that Microsoft really saves all the really good stuff for the main conference, everything else is just warmup. Later in this issue we will go deeper into the general session and breakouts, both technical content and commentary on the presentation. A word on this year. In 2003, the main technologies covered were Indigo, Whidbey and Longhorn. This year, the main technologies are Windows Communication Foundation (formerly Indigo), ASP.NET 2.0/.NET 2.0 (formerly Whidbey) and Windows Vista (formerly Longhorn). I do not know if they have chosen a theme song for this year, but I would like to suggest an old swing tune called "There, I've Said It Again," actual lyric snippet-
I've said it, what more can I say,
believe me, there's no there way..."
I made this suggestion to one of the Softies I saw in the corridor, but he didn't seem amenable to the idea. By the way, the security folks they have here at the convention center are extremely polite and relatively gentle.
To be fair, there's a couple new things. Office 12 is getting a first showing this week and Microsoft is unveiling a new technology called Windows Workflow Services (WWF).
I'm writing this sitting at a table in the "Big Hall" (unlike the Wilshire, this is a very accurate name). It's the annual exhibitor reception, with 5000 geeks seeking free food and drink and cheap plastic crap with corporate logos on it. As George C. Scott said in Patton, "God help me, I love it so!" I'm sipping a complimentary wine waiting for the crowd to die down. I actually want to speak to the K2.NET folks about their workflow product, but when I went over there I couldn't get near the booth because they were giving away T-Shirts and they were mobbed. That one seemed to kind of backfire, huh? Maybe later on the shirts will run out and I can get some info. Seems that Code magazine is having some sort of contest where you have to put a (hopefully) fake tatoo with their logo on your body where it can be seen so you win something. A bunch of folks just starting screaming and yelling over in the corner with these tatoos on. Geeks and alcohol - someone save us.
A random observation - at breakfast I saw a group of about 6 guys wearing T-Shirts that said "Icelandic developers are the coolest." That may or may not be true, but I bet they are the only developers who can spell Reykjavik.
This year Microsoft commissioned the the production of several videos starring a kind of bizarre character called "channel 9 guy." These are made available on the web as promotions for the PDC and are also being shown on the monitors in the hallway throughout the course of the conference. Interestingly enough, the videos were produced by Bruce Hanson's company, Digital Kitchen. The can be seen here - http://channel9.msdn.com/ShowPost.aspx?PostID=79591
Today's Sessions - General SessionThe highight of today was definitely the general session, where high ranking officials at Microsoft show all the new stuff and (presumably) get the crowd all jazzed up to learn all about it. On the way in to the hall, there were signs warning, "The General Session features flashing lights and Very Loud Music." I purposefully sat in the worst seat in the house, in the very back all the way over on the side so that I wouldn't be squashed in amongst the masses (I really disdain the masses). Also, this made it very easy for Dmytro to find me. To give you an idea of the size of the room, I figure there were about 8000 seats and 11 giant video screens. Real big. While we were waiting for the session to start, Channel 9 Guy (see above) was walking around for pictures (sorry, our artists didn't capture that one). Music included lots of early 80's R&B and Pop, such as "Good Times," "Stayin' Alive," "Da Do Do Do," etc. I think the sound guy raided Bill Gates' album collection. How many readers remember albums? How many readers remember the Apple II?
On comes The Man, Bill Gates. The highlight of Bill Gates' talk every year seems to be the video they produce for the conference. Although not as good as previous years, the video was again very entertaining. The premise was that Bill Gates got hooked up with this college student slacker on a recruiting trip and together they survive several misadventures and wacky situations. I did not recognize the slacker, perhaps I am too old and unhip and one of our readers can inform us that he was actually someone famous. The best part for me were the visual site gags such as Bill Gates in a 3 piece suit dancing, or in the same suit on roller blades being pulled behind the slacker's bicycle.
Gates did talk some as well! After noting that this was the fastest PDC sellout ever and the biggest standby list ever he pointed out that each recipient would take home over 30 GB of software (Note to Larry - I'm gonna need a new hard disk). He spoke for about 40 minutes, I did not see a teleprompter or notes anywhere, it was pretty impressive. Check the out the Photo Album for my view of Bill in the big hall.
Every year I am amazed at the new ways the Microsoft comes up with to use the word "rich." This year they outdid themselves, makeing it a verb when Bill talked about how they attempted to "richen up" the interface for Office. In terms of the actual general session content, I'm not going to distinguish between speakers, I'm just going to group the information by product.
Office 12These folks are pretty excited about Office 12. In addition to making XML an integral part of the package (supposedly all data formats are now XML), they have greatly changed the interface. One speaker made the point that Word 1.0 had about 100 commands, all easily reachable with the menu/command bar paradigm. Now that Office 2003 has 1500 commands, the paradigm is starting to fray. Seems that when they asked customers what new features they wanted, many suggestions were already in the product but noone could find them! The new UI has commands grouped by tabs, with each command having huge multi-line tool tips (almost like a help snippet). Depending on your context in the document, the tab being displayed changes. Excel has some nice new features that do things like put variable length bars behind the numbers in a table so you can see what is the highest number (of course, you could also just look and see which was the highest number, but I guess that wouldn't require a mandatory upgrade of 5000 desktops). One very cool feature is the ability to choose from a set of pre-defined formats, getting a quick preview of each format on the actual document - sounds kind of dry when I type it here, but it was fun to watch. Powerpoint had all kinds of new features to make your presentations flashier - of course, they still don't have the "make a stupid presentation smart" button - that would be worth an upgrade. Office 12 will ship late next year.
VistaVista is the new version of Windows - due out late 2006. This includes the new presentation stuff that is very, very cool. The easiest way to describe it is just list stuff-
- When you hover over the task bar, a preview image (big thumbnail) of the actual app pops up. Say you've got 5 explorer sessions open, now it difficult to know which one is your email, which one is your newspaper and which one is your...uh...personal site without bringing them all up one at a time. This is much easier and quicker. I give it two snaps.
- They introduce a concept called Virtual Folders. This is the way to regroup files across your entire desktop based on file attributes (eg - this folder has all word documents with the phrase CMS in it). Attributes can be based on full text search, or size or title or something you define. Attribute keywords can be assigned by dragging them onto the file. It was very cool, but I think it is beyond most users capabilities - I still like Google Desktop as that is an interface that is very simple and everyone can use. One very cool aspect of virtual folders is that they are stored as XML and you can open them up and look at them.
- The Windows Sidebar looks like a descendant of the Office Toolbar that lives on your desktop all the time (until I sit down at your machine - I hate the office toolbar. It holds things called gadgets - they showed a media player, a clock, etc. It took up alot of real estate, more than the Office toolbar - some folks may like it.
- Then they showed the coolest part, the Sideshow - a custom made notebook with a small screen (1 in by 1 in) on the outside that stayed on when the laptop was closed. There was also a small button set for controlling it. Gadgets on the Sidebar show up on the Sideshow, some when the machine is on or off, some only when it is on. The one they showed was an Expedia app that showed your plane reservation without opening and powering up your computer. I hate the Sidebar, but I love the Sideshow.
- Lots more inherent support for RSS. I must admit, I do not know much about RSS - guess I'm going to have to learn.
- The new browser. Wow. First, hueristics to combat fishing attacks (anyone gotten an email from paypal asking for account info lately?). This connects to their log of known fishing sites and suspect sites. The log is monitored by people to ensure that no real sites get blocked.
- New Browser II - Tabs in the browser. This got applause when mentioned, I couldn't understand why. Then they started showing it. First, instead of many browsers open, you can have one browser and many tabs - OK, kind of nice, but not earth shaking. Then he showed a view where, instead of tabs, each site was shown in a preview in a portion of the browser window and you could choose what you wanted (kind of like the slide sorter view in Powerpoint). Wait, that's not all, you can save the multi-site arrangement as a favorite and when you bring up the favorite all the sites load and show up in preview mode.
- There was lots of great stuff with the presentation features (formerly Avalon, now Windows Presentation Foundation). I think consumer apps will benefit most from this. They showed a video preview of a new game from a company call Crytek that was just staggering. Pixar level graphics, if not better, in a game. I can't even begin to describe it - faces, shadows, clouds - it was staggering.
- There was a client for netflix that really showed off the presentation features as well. It's hard to describe. The best thing I can think of is that if the UI from the movie Disclosure is ever acheived, it looks like the Vista presentation stuff could pull it off.
- Lots of performance ehancing stuff, like automatic defragging. There is also a new techology called SuperFetch - although the name is lame, the technology is cool. It tracks your usage history over a hours, days, weeks, etc. and figures out how your memory is predominantly used. It then pre-loads that memory in advance during idle time. To give you an example, he had a script that he ran that started each Office app, loaded a doc and closed the app. He ran it with SuperFetch turned off and it took 37 seconds to complete. Then he turned SuperFetch on. He talked for a while, then actually started the script before SuperFetch had a chance to fully prepare (there was a monitor that showed the status) and the same script took 10.6 seconds.
- Memory - things like this obviously work better if you have more memory. Vista can take advantage of a memory stick plugged into a USB slot as system memory. I'll say that again, only different - if you have 512 MB of ram in your laptop and plug in a 2 GB memory stick, you now can have 2.5 GB of RAM in your laptop. The data is encrypted and uses write-through, so that if it gets pulled out there is no problem and it is secure.
- Activities on the File System and in the Registry can now be transacted with a DTC Resource manager in the OS.
Bill says when Vista is shipped in 2006 it will have their largest marketing support ever. I don't see how they can possibly exceed their previous efforts, anything specific I can think of kind of scares me.
AtlasThis one surprised me, I was not expecting it. It is an implementation of AJAX (Asynchronous Javascript and XML) that worked under ASP.NET 2.0. This means that you get AJAX functionality with server side programming without having to worry about browser differences - ASP.NET controls do it for you. They showed an extremely cool demo with drag and drop an mapping locations. While I was cynically commenting to Dmytro, "Yeah, but what about Firefox?" they switched to a Mac and hit the exact same app on the exact same server and it looked exactly the same in Safari. Wow. Wow.
Windows Communication Framework (formely Indigo)This isn't as flashy for a general session and I hope to cover it in depth in later issues. Suffice to say that Don Box did the presentation and it was very good. It is due with Vista in late 2006. Don Box did make one statement about how apps work under WCF, claiming that it was "important to maintain the HTTP-ness of your app." In the short pause after he said this, Dmytro and I started to giggle, being the arrested adolescents that we are. If you've got the sensibilities of a 12 year old boy, try saying it out loud.
WinFXThis is a term used to group features associated with Vista (WCF, WPF). They are grouped separately because when Vista is released, WinFX will also be released for Windows XP and Windows Server 2003.
Today's Session - A Lap Around the Windows Communication FrameworkFirst, a prop for Microsoft. In 2003, they vastly underestimated the interest in Indigo. All sessions were held in normal breakout rooms (about 500 seats) and all were overflowing well before start time with people being turned away. This session was held in a hall that held about 2000 people. At one point the hall was full will people sitting on the floor two deep in the back. Once again, it's Communication the masses are interested in, not flashy video. I say at one point the hall was full, because the presentation wasn't very good and it wasn't full at the end. The slides weren't bad, but the demo was way too elaborate. If it takes 5 minutes to explain all the features of the demo, it's a good clue that the basic points you are trying to teach are going to get lost in the complexity of the demo. After this session I felt vaguely unfulfilled from a WCF point of view, so skipped the next two sessions and headed toward the Hands On Labs to try working with WCF myself. The notes below on WCF come from the combination of the presentation and my hands on work. It's late, so I'm not gonna try to make this a well organized, thoughtful argument - I'm just gonna firehose the facts at you. At the end, I will have the answer to RW's questions about WCF vs. WSE 3.0 straight from a WSE 3.0 team member - so stay tuned.
-
The core unit of abstraction in WCF is a message. This reflects that
although we put RPC like SOAP calls around things, underneath they are still a
message. There are various levels of abstraction of a message in WCF
- A base Message class
- Attributes on a class
- An RPC like call with parameters
-
A message is passed between 2 endpoints. An endpoint is defined by ABC -
- Address - where it's going
- Binding - How it gets there
- Contract - What the message is
- In WSDL, these correspond to Service, Binding and portType, respectively
In the hands on lab-
- The contract is specified not in WSDL or with XML, but with attributes on a .NET interface. We wrote the interface, then added attributes such as ServiceContract to denote the interface as a contract and OperationContract to denote a method in the as available in the contract. I'm sure that this could be done at the WSDL or XML level, but they were bringing us newbies up to speed slowly. It is interesting to note that this maintains the separation of contract details in the interface and implementation in the derived class just as was discussed by Aaron Skonnard on Sunday (Day 1). The class is called a service type.
- The WCF stack includes a new serializer, XMLFormatter. It gives up some of the flexiblity of the standard .NET serializer, but is much faster.
- They recommend adding something an interface called IUnknownSerialization to any data schema defined (via a class) in your contract. This ensures that if the information in the contract grows in the future, a previous implementation will not be put off by additional information. It's interesting because we had this discussion at the beginning of FSF - notably how could we be sure the WSDL for an ASMX file would always allow extra information without breaking.
- Address and binding are specified in config (app.config or web.config). Most common combinations are pre-defined in WCF for ease of use.
- The hands on lab is 40 pages of instructions - sort of like completing a 40 page VDD.
- .svc files added to the project are used to have IIS or WAS host WCF services - specifying the service type and the name of the assembly that the service can be found.
- On the client side, a command line program reads the .svc file via IIS to create a proxy for the servie and an app.config the specifies the binding and address.
Yesterday RW wanted to know the relationship between WSE 3.0 and WCF and what should be used when. Here's the pertinent details-
- WSE 3.0 is out 2 weeks after Whidbey (later this year)
- WCF is out Late 2006
- There will be a smooth migration path from WSE 3.0 to WCF
- There may not be a smooth migration path from WSE 2.0 to WCF, get to WSE 3.0 before them
- WSE 3.0 will be supported 5+5 - 5 years, plus 5 more years under enhanced support
- The best way to make sure that transitions are smooth is to stick to asmx technology within WSE - that's why 3.0 has a transition, because when you host a service in a process other than IIS you can still use asmx.
- Stay away from TCP communication (not http) to also help a smooth transition.
- If your app is due out after WCF ships, go straight to WCF. Once WCF ships, there will be no further need for WSE.
- WSE is not support for the WS-* standards, just a subset including WS-Security, binary streaming, etc. It does not cover reliable messaging or transactions.
- Changing to WCF from WSE 3.0 will probably require mostly attribute changes and config changes.
- WSE 2.0 apps may not talk nicely to WSE 3.0 apps. Whoa, I said at this point, don't they both implement a defined spec? Yes, but the spec is not finalized and has migrated - most notably namespace changes.
Keep those cards and letter coming, here's some of today's mail:
MB from MD writes - I will be out of the office on business on Tuesday, September 13th and Wednesday, September 14th. If this is urgent, please call me on my cell phone @ (number withheld)
MB - Thanks for the kind note and the heads up, I will continue to send the newsletters and they will be waiting when you return. -Ed.
BS from NY writes - You're coverage of the PDC this year as in past is quite informative and humorous. Do you really write your own material or do you offshore it to some third-party and then run it though some sort of http-web-service-based humor filter to add the clearly sharp wit? Or is it something more complex and/or sinister?
BS - I tried off-shoring the newsletter in a proof of concept project last Spring. Unfortunately, the result was a newsletter with machine-generated jokes that just did not measure up. The newsletter is still hand-generated by me every night in my hotel. Nothing sinister, alhthough maybe a wee bit pathetic. -Ed.
TomorrowGeneral Session and more Breakouts. I hope to get to a Hands on lab for
Windows Workflow Foundation as well.
Biff
Deputy Ink Mixer, Biff's PDC Newsletter