? PDC 2009 Keynote Roundup: Day 1 | Main
November 22, 2009
PDC Keynote Roundup: Day 2
Day 2 (as usual) was focused on Windows and the new developer tools and SDKs. Some of the information here was alluded to in the keynote but didn’t come in detail until the sessions.
Windows 7
Steven Sinofsky, who runs the entire Windows division, led off talking about Windows 7. First, Steven went through the background on how they engineered Windows 7. Given all the problems that Vista had, it was important that they learn from everything and do it right. Here is the basic timeline and goals:
- Collect feedback from the community – the “Engineering 7” blogs were a great start
- Do tons of research on what’s wanted, needed, etc. – user studies, surveys, …
- Determine ecosystem readiness
- Have a good rhythm of pre-beta, beta, RC, RTM
- Collect a ton of telemetry. Here are some of the data collection mechanisms:
- “Send Feedback” button
- Hardware/Device Diagnostics
- Reliability Analysis Component (RAC)
- Software Quality Monitor (SQM)
- Windows Error Reporting (WER)
- Numbers associated with the telemetry collected during the Win7 process. It’s a ton of data.
- 1.7MM “send feedback” reports
- 91k unique hardware devices connected to the machines
- 14k unique printers (!) connected to the machines
- 883k unique applications installed
- 10.4MM aggregate WER reports
- 4700 code changes stemming from WER
- 6k SQM data points
- 900MM logon sessions logged
- 514MM start menu clicks
- 46MM uses of Aero Snap and Aero Shake
Overall, it was clear that they put a ton of work into making Windows 7 more stable and reliable than Vista. So far in my usage, it’s much much better – boots extremely fast even though I have a lot of junk installed, is responsive, and causes very few issues.
On the developer side, Windows 7 adds a ton of new features that applications can take advantage of, including:
- New taskbar (the “SuperBar”)
- New Aero features – Snap, Shake, Peek
- Multitouch
- Location and Sensor APIs
- DirectX 11. Great demos.
- an app with 20,000 stars in a system interacting with one another. Using DX11 hardware along with the DirectCompute APIs (which use the GPU for computation) running at 702 GFlops, minimal CPU, 73 degree temperature; DX10 hardware was pegging 8 cores at 100 degrees and getting 17 GFlops.
- First-person game showing the difference in ability to tesselate polygons by one or two orders of magnitude on DX11
- Hardware support for media transcoding
Also, I attended the Windows 7 Dev Camp on Monday. Of particular interest was the Windows 7 Kernel Changes talk. It was put on by Mark Russinovich of SysInternals fame, as well as Arun Kishan and Landy Wang, both of whom are architects on the kernel team. What they discussed were all the changes and improvements made to the kernel in Windows 7. Highly fascinating. There are also two sessions from the conference on the same topic – watch them here and here.
IE Update
They just started IE9 a few weeks ago. The goal is to improve standards compliance even more, support HTML5, improve JS performance (compiled?), and take advantage of hardware acceleration for graphics a text.
Steven ran a demo of IE9’s current build, and showed off some of the speed and rendering. So far it looks promising, but it will take a ton of work to make it the browser everyone really wants to use.
Silverlight
Scott Guthrie came on stage next to talk about developer tools, and SDKs. He led off with Silverlight. SL3 released in the summer, and currently has a 33% penetration (total SL penetration is at 45%, compared with 25% at MIX09 in March). So overall adoption is growing, thanks to big wins with Netflix, NBC (Olympics and Sunday Night Football), Major League Baseball, the Democratic National Convention, the White House, etc.
He then went on to talk about Silverlight 4, which is slated for release in the first half of 2010. SL is on a pretty aggressive release schedule – SL2 was October 2008, SL3 was July 2009, and now SL4 in H1’10. They are working hard to penetrate the market to better compete with Flash in the browser. But they are also trying to make Silverlight the cross-platform development platform of choice for desktop apps (competing with Adobe Air, primarily).
It seems like Microsoft’s strategy is multifaceted:
- In-browser: Silverlight competes with Flash.
- Out-of-browser: Silverlight competes with Adobe Air 2.0 (see a link here by an Adobe evangelist) and other cross-platform application shells like Titanium
- Windows desktop application: Silverlight becomes a lighter-weight desktop platform than WPF with much of the goodness that WPF offers.
- Windows desktop application: WPF offers an even richer application development platform.
[Aside: Many people are having the “Is WPF dead?” discussion these days. I don’t think it is. Silverlight is definitely the platform-of-choice in many instances, but WPF has legs – Visual Studio 2010 is being built on it, and other applications inside Microsoft are probably watching that project intently to see if WPF is something they can move to. The current Beta 2 of Visual Studio 2010 is very good so far. If you watch Paul Harrington’s session on how they’ve built it, it’s pretty impressive. We had to solve a lot of similar problems on our project and it was interesting to compare their solutions with ours.]
The features announced in Silverlight 4 are very ambitious, but also very needed. Following is a rundown. If you read the Adobe link I referenced above, you’ll see tons of overlap. I don’t think that’s a coincidence.
- Media Enhancements
- webcam and microphone access (raw stream access, API to select devices)
- multicast HD streaming
- output protection (ie., no display on external monitors if you choose)
- Offline DRM, MP4 DRM
- Silverlight Media Framework (codeplex project for media)
- IIS Smooth Streaming
- exists in SL3
- SL4 adds iPhone support (other devices coming) – backed will re-encode on the fly from the same URL. Scott demo’d a video in browser and then on iPhone with the same URL.
- Out of Browser (OOB) (introduced in SL3 but very rudimentary)
- Sanboxed Mode
- add Windowing APIs for positioning, min/max/normal, topmost, application activate
- add toast APIs for rich toast notifications
- arbitrary content
- up to 400x100 and 30s
- no opacity or rounded corners
- no popup launching
- fixed location per OS (lower-right on Windows, upper-right on Mac)
- HTML hosting support – introduced primarily to support ads
- only works in OOB mode, not in-browser
- can navigate to a URL or get/set content
- Windowed hosting with interop (IE on Windows, WebKit on Mac) – by default not compositable
- For compositing, there is an HtmlBrush (like the VisualBrush in WPF) where it renders the browser offscreen and composits the bitmap. This is live, so if your webpage is on YouTube playing a video, you see the moving video in the brush. The demo was a jigsaw puzzle that he scrambled.
- Supports browser plugins
- Drop target support – drop a file from the filesystem onto the app and it can be opened
- Add/Remove Programs integration
- Full Trust Mode (new in SL4)
- Custom window chrome
- Local file system access (My Documents)
- Cross-site network access
- Keyboard use in full screen mode
- Access to hardware devices
- Access to full path in Open/Save dialog
- COM Automation – office, Windows 7 APIs, anything that’s IDispatch; uses the C# 4.0 “dynamic”
- OOB Demo: Facebook
- add Facebook events directly to Outlook calendar using COM
- take photo with webcam and upload as profile picture
- inline video playing using H.264 support or hosted HTML page with video
- drag/drop photos from desktop and upload to Facebook
- pull in photos from external camera for upload
- multitouch support
- Sanboxed Mode
- Application Development features
- Printing support – custom view of any element; can print offscreen elements
- Rich text support (like WPF)
- Full system clipboard access
- Right-click and mousewheel access
- Implicit styling (don’t need a ResourceKey)
- bi-directional text, RTL support (Hebrew and Arabic fonts)
- commands and MVVM support
- more controls
- extended PNG support
- CLR4 support
- Data and Networking
- Share assemblies across SL and .NET 4
- binding improvements (IDataErrorInfo, async; StringFormat; etc.)
- UDP multicast supports
- REST enhancements (ADO.NET data services)
- WCF improvements (TCP channel support)
- WCF RIA Services
- VS10 Support
- WYSIWYG SL design surface
- XAML Intellisense++
- Binding, layout, styles
- WCF RIA Services integration
- Performance
- Full JIT support – 2x speedup
- 30% faster to start up (up to 80% in some cases)
- NGEN the system assemblies to avoid JIT
- ICorProfiler support for real perf tools
- 5MB download, 10s install
If you want to watch some Silverlight sessions, go here.
Overall, the tools and SDKs talk was much meatier (for me, anyway) than the Azure stuff. There is a ton of great stuff coming down the pike.
Other links:
- See the Day 1 Keynote Roundup here.
- Watch the Day 2 Keynote here.
- Full session list (with videos) is here.
Posted by eburke at November 22, 2009 10:51 PM