MS Web Dev Summit 2008

Notes from the Microsoft Web Development Summit 2008

Disclaimer: These are random notes and are not intended to be an exhaustive retelling of the presentations this week.


Microsoft Contacts


PHP on Windows IRC Channel

Community IRC channel on Freenode: #php-dev-win


Sam Ramji

“Openness produces better outcomes.”

Steve Ballmer said a few weeks ago that WebKit looks interesting.

“It’s critical to embrace competition.”

You can look at competition in two ways: You can look at it in a game like boxing, where if you win, you get the prize, and if you lose you just get beat up. Or you can look at it like a game like chess, where if you win, you get the prize, but if you lose, you got better. Competition drives innovation.

Interoperability in technology: POI (poorly obfuscated implementation), an Apache project. To help this project, Microsoft put the Office binary formats under the Microsoft OSP. Another Apache project that Microsoft is helping is Hadoop by having two Microsoft developers dedicated to working on the project.


PHP and Microsoft: The Untraveled Country (Hank Janssen)

What they do at the OSTC

  1. Community Outreach
  2. Interop with non Windows OS projects
  3. Help OS software run butter on Windows than anywhere else

Focus Areas

  • Technical Analysis of OSS
  • Grow OSS ecosystem on Windows
  • missed the rest of this slide

OSTC Joint Interoperability Lab

  • We’ve built and staffed an interoperability lab in Cambridge, Mass.
  • Jointly staffed by Microsoft and Novell
  • 90+ servers running Intel Xeon dual and quad core technology and AMD Opteron dual core technology
  • Testing interoperability of virtualization, ws-management, and identity federation solutions
  • SAMBA interoperability testing

A few recent projects

  • Windows Media Player 11, Firefox interoperability
  • Silverlight/Moonlight, Firefox interoperability
  • SQL Server Drivers, Java/PHP interoperability
  • FastCGI, Java/PHP/Python interoperability
  • Firefox on Vista, Firefox interoperability

A few current projects

  • Hyper-V, Linux interoperability
  • WS-Man Compliance Tool, System mgmt interoperability
  • PHP PEAR/ADODB Abstraction, PHP interoperability
  • ASF Technology Transfer, Apache interoperability
  • Cardspace relying party, Java/PHP/Ruby/C interoperability

PHP on Windows

  • PHP on Windows has been around for a decade
  • PHP on Windows has most often been used as a development environment
  • Microsoft began delivering stuff to address issues
  • Worked with the community to address these issues:
    • community provided valuable feedback and shaped development
    • welcomed our efforts enthusiastically
    • brought vast experience and guidance

Helping make open source work better on Windows

  • FastCGI for IIS brings stability, scalability, and performance to PHP on Windows
  • SQL Server is partially supported by the community already, but the SQL Server team stepped up and created a native SQL Server driver for PHP with strong community collaboration, making the code available under an OSI approved license; the code is on CodePlex
  • ADODB patches made by Microsoft have been contributed back to the community (and were accepted)

More projects are on their way

  • AdvancedPoll
  • TUTOS
  • WebCalendar
  • PHP Project
  • Dozens more planned

Participation in PHP

  • Microsoft needs to start participating in PHP development on a day-to-day basis
  • PHP 5.3 is the most significant update to PHP on Windows; compiled with VS C++ 9; all dependent libraries updated to the latest version

The future of PHP participation

  • PHP connectivity to Windows Azure
  • Activity Directory connectivity to PHP

The power of community

  • Developers working together to meet customer needs
  • Vendors and communities working together
  • Active collaboration on next-generation interoperability challenges
  • Microsoft is committed to participate, partner, grow and learn with you

Microsoft Web Platform (Lauren Cooney)

Key Foundational Pillars

  • Simplicity
    • Making the Web Stack easily available through one simple download and install process
    • Reducing costs for acquiring the stack (hosters)
  • Interoperability
  • Integration

Vision: the Microsoft Web Platform

  • Provide a better, simpler, more integrated Web Platform to the Web community
  • Simplify adoption of Microsoft’s web platform
  • Create an identity around the core Microsoft Web stack
  • Launch a web stack portal (http://www.microsoft.com/web)

Today’s Microsoft Web Platform

  • Our vision: Freedom for developers to develop with what they want, using the tools they need to be successful
  • Slide shows a graphic detailing the stack
  • Components of the platform must:
    • Be compatible with Top 10 Web applications, regardless of language barriers
    • Allow for automated installation and configuration of Top 10 Web apps
    • Must support shared hosting scenarios, not just dedicated and self-hosting
  • unable to capture all data on the slide

Other slides showing the beta Web Platform installer. PHP is not in there yet, but will be coming in the near future. They are determining what PHP extensions to bundle and what configuration options to provide end-users. They want to hear from the community about the right way to go about bundling PHP in the installer.

  • Provide a single destination on the Web for the best Web applications for Windows (PHP + ASP.NET)
  • Work with the community to enable a streamlined install experience of community apps on Windows
  • Provide an Atom feed of Web apps for partners
  • Use Application Gallery as a channel to drive customers to preferred Windows hosters
  • Integrate into future VS, Windows, & IIS releases
  • Launch timeline: mid 2009

In answer to a question I asked about making IIS understand Apache config directives and .htaccess files, it sounds like the IIS team is actually working on supporting a subset of the Apache config format and reading in the .htaccess files, etc.

Slides will be posted to SlideShare on put on Lauren’s blog at http://cooney.typepad.com/.


What’s New in IIS For PHP Developers (Ruslan Yakushev)

IIS 7.0 Key Highlights

  • Modular and Extensible
  • Integrated Pipeline
  • Delegated Management
  • Diagnostic Capabilities
  • Improved Security

He’s showing the Microsoft Web Application Installer and demo’ing it by using it to install and configure Drupal.

Now showing a demo of the IIS URL Rewrite Module.

It’s not the same as Apache’s mod_rewrite, but it solves the same problem. It allows you to import the application’s .htaccess file, parsing from it the mod_rewrite rules and translating them into IIS format for rewriting URLs.

Summary

  • Reliable and fast hosting of PHP via FastCGI
  • PHP apps can rely on URL rewrite to enable all URL scenarios
  • Use Web Deployment tool to package PHP applications for IIS
  • Scale out and reverse proxy with ARR
  • Use IIS Tracing to debug PHP apps

Windows Azure (Manuvir Das)

Windows Azure In Context

  • Live Services
  • .NET Services
  • SQL Services
  • SharePoint Services
  • Microsoft Dynamics CRM Service
Figure: Diagram showing the Azure Services Platform
____________________________________________________________________
| Live | .NET | SQL | SharePoint | Microsoft Dynamics |
| Services | Services | Services | Services | CRM Service |
--------------------------------------------------------------------
| |
| Microsoft Azure Services Platform |
| |
--------------------------------------------------------------------

What Is the Cloud?

  • A set of connected servers
  • On which developers can:
    • Install and run services
    • Store and retrieve data

When we build cloud services today, it’s akin to building an application from the very ground up. That is, it’s like having to first build a computer and an operating system before you can even start building your application. This is how we build cloud services today, and this is the problem that Microsoft Azure solves.

The answer to this on the desktop is that we have operating systems that handle all of the logic of the system so that we don’t have to build this. Instead, we are free to build our application on top of that. Can we have the same thing in the cloud?

Windows Azure is an operating system for the cloud.

What Does Windows Azure Provide?

  • The same facilities that a desktop OS provides, but on a set of connected servers:
    • Abstract execution environment
    • Shared file system
    • Resource allocation
    • Programming environments
  • And more: Support for utility computing
    • 24/7 operation
    • Pay for what you use
    • Simpler, transparent administration

How Does This Map To Features?

  1. Automated Service Management
    • You define the rules and provide your code
    • The platform follows the rules: deploys, monitors, and manages your service
  2. A powerful service hosting environment
    • All of the hardware: servers, load balancers, etc.
    • Virtualized and direct execution
    • The virtualization is completely transparent
  3. Scalable, available cloud storage
    • Blobs, tables, queues, etc.
  4. A rich, familiar developer experience

Automated Service Management

Develop & Model » Deploy & Run » Maintain Service Health

  • What’s in the model?
    • Service topology and size
    • Health constraints
    • Configuration settings
  • The goal: Keep a service responsive & healthy in the face of failures & upgrades
  • How?
    • Detect failures, violations of health constraints
    • Replace failed/missing resources transparently
  • Made possible by abstraction
    • Service declares logical resources in the model
    • APIs map logical resources to physical entities
    • Service code calls these APIS

In the Azure model, you don’t get to create disk images like in Amazon’s services. Instead, you give Azure your code, and it does everything for you. It is fully managed.

Scalable, Available Cloud Storage

  • Simple, essential storage abstractions:
    • Large items of user data: blobs, file streams1, etc.
    • Service state: simple tables, caches1, etc.
    • Service communication: queues, locks1, etc.
  • With an emphasis on:
    • Massive scale, availability, and durability
    • Geo-distribution and geo-replication1
  • This is not a database service in the cloud (simple tables with a primary key and a partition key that are set up for partitioning across many different servers; you cannot do joins or normalized, relational tables; if you are looking to de-normalize your data, then this is the system for you)

ASP.NET: Architecting for the Cloud

Showing a diagram of an ASP.NET application and how you replace certain parts of the application (like file I/O) with things like blog storage from the cloud, etc.

Rich, Familiar Developer Experience

  • A simulated cloud environment on the desktop (full simulation of the cloud you can install on your desktop)
  • Support for a variety of programming languages
    • ASP.NET, .NET languages, native code1, PHP1
  • An ecosystem of tools and support
    • Integration with Visual Studio, Eclipse1
    • Logging, alerts, tracing1, etc.
    • Samples, documentation, MSDN, forums, etc.

Putting It All Together

Showing diagram of an architecture for how an application works in the cloud.

Demo: Thumbnail Generator

Showing a demo of a thumbnail generator using the simulation environment on the desktop.

CTP – Available Now

  • Open release of the desktop SDK
  • Limited preview of the cloud infrastructure
    • Free usage, with quotas
  • Key features:
    • VMs with dedicated resources
    • ASP.net websites, managed code workers
    • Storage: blobs, tables, queues
    • Single, large datacenter on US west coast
  • Visit http://www.azure.com/windowsazure

Programming Live Services Using Non-Microsoft Technologies (Nishant Gupta)

Why?

  • “Live Services is about synchronizing life” – that is, synchronizing your entire digital life… e-mail, photos, blog entries, music, videos, work documents, your Facebook profile, your MySpace page, etc. This data lives on isolated silos of information.
    • The data
    • The devices the data lives on
    • The applications that render the data
    • The relationships in your digital life (family and friends on Facebook, etc.)

What Can You Do with Live Services?

  • Access user data
  • Share user’s data
  • Sync user’s data
  • Provide news on actions
  • Provide access control to user’s data
  • Manage applications
  • Access user’s profile
  • Access user’s social graph

How Can You Do It?

  • Live Framework - it is the uniform way for programming Live Services from any platform, programming language, application, or device
    • Open - HTTP, XML, Atom, RSS, etc.
    • Simple - sync, clien/cloude symmetry
    • Comprehensive - unified resource model

Resource Model

Showing diagram of the resource model

Live Framework

  • Entry - resource
  • Collection - collection of resources
  • Links - relationship between resources
  • Operations - CRUD, FeedSync, Scripts

AtomPub is the model for the framework.

Demo

Now showing a demo of code to interact with Live Services.

Take Away Points


Yii Web Programming Framework (Jason Ragsdale)

WDS Attendee Showcase

Performance of Yii

Showing a graph of performance of various frameworks. Yii 1.0 can handle 178 requests per second with APC turned on. Yii with yiilite 1.0 can make 427 requests per second with APC turned on.

Features

Slides with lots of text about the features Yii has. Some notable ones:

  • Active Record
  • Widgets
    • AutoComplete
    • Rating stars
    • etc.

Credits

Inspiration comes from:

  • Prado
  • Ruby on Rails
  • jQuery
  • Symfony
  • Joomla

Can be downloaded from http://yiiframework.com/


PHP in Brazil (Manuel Lemos)

WDS Attendee Showcase

Brazil PHP Community: http://www.php.org.br/
Group of PHP professionals in Brazil: http://prophp.com.br/

Important PHP mailing lists in Brazil:

  • General mailing list: php-pt
  • Advanced mailing list: php-especialistas
  • Jobs list: php-empregos

PHP magazines in Portuguese:

  • PHP Magazine - PDF, Brazilian Portuguese
  • Revista PHP - online, Portugal Portuguese
  • Revista PHP - PDF, Brazilian Portuguese

Top Free Software Events in Brazil:

  • FISL - Forum Internacional de Software Livre
  • LatinoWare - Conferência Latino-Americana de Software Livre, PHP track: CoLAPHP (Congresso Latino-Americano de PHP)
  • CONISLI - Congresso Internacional de Software Livre, PHP track: CoNaPHP (Congresso Nacional de PHP)

Silverlight (Brad Abrams)

Missed this session because I wasn’t feeling well (and, no, I wasn’t hung over).


Visual Studio Tools Plan for PHP Editing (Brad Bartz, Juan Rivera)

Visual Studio 2008

  • Robust multi-language IDE platform
    • C#
    • VB
    • C++
    • ASP.NET
    • JScript
  • JScript
    • Robust JScript intellisense engine
    • Ability to recognize dynamically generated constructs
    • XML doc comments
    • JScript formatting
    • Support 3rd party frameworks
  • CSS
    • Intellisense
    • Statement completion
    • Outline
  • RIA
    • Ajax
    • Silverlight
  • Extensibility

Now showing screenshots of a lot of these features.

VS.Php 2.5 (PHP IDE for Visual Studio 2008)

A plug-in for Visual Studio to provide a PHP IDE.

Now showing a demo of VS.Php.


Symfony Demo (Fabien Pontencier)

WDS Attendee Showcase

Lot of documentation

  • Open-Source Documentation
  • Translations in 12 languages

Very active community

  • Mailing-list/forums/IRC support
  • 340 plugins, ~1 new plugin a day
  • 400,000 visitors per month on symfony-project.org

Roadmap

  • Version 1.0 Jan 2007
  • Version 1.1 June 2008
  • Version 1.2 November 2008
  • Version 1.3 June 2009
  • Version 2.0 June 2009

Enterprise Version

  • Version 1.0: maintained for 3 years
  • Version 1.1, 1.2: Maintained for 1 year
  • Version 2.0: Maintained for 3 years

A lot of appliations

  • Yahoo!
    • Bookmarks
    • Delicious
    • Answers

A framework for professionals

Symfony is a set of decoupled classes.

Showing a diagram of the Symfony platform, code examples, and diagrams of how certain things (like URL rewriting) works in Symfony.

Environments

  • Developer
  • Test
  • Production

Out of the box, Symfony can be easily configured to create an environment, depending on your needs.

Security

Ability to configure CSRF tokens and escaping strategies.


SQL Server and PHP (David Sceppa, Ruwen Hess)

How did we get here?

  • Goal: Viable SQL Server connectivity for PHP
    • Support current data types and features
    • Forward thinking approach to support future features
  • Architecture: PHP driver is built on ODBC driver
    • PHP driver translates PHP API calls to ODBC API calls
  • Rich SQL Server support
    • Supports editions from Express to Enterprise
    • All SQL Server 2005 and 2008 data types supported
    • Enabling features in future SQL Server releases
      • ODBC driver updated with each release of SQL Server
      • PHP driver enables new features with less code

To RTM and beyond!

  • October 2007 - Initial CTP
  • February 2008 - 2nd CTP, API re-design
  • May 2008 - 3rd CTP, Feature complete
  • July 2008 - RTM
  • October 2008 - Cumulative Update 1

Cool features

Compiled Driver vs. Source

  • Signed, compiled driver on MSDN Download
    • Supported by Microsoft
  • Source code available on Codeplex
    • Grok the code
    • Build the driver w/ bug fixes, new features (unsupported)

This will not build or run on Linux. It relies on the ODBC driver, which is Windows-only.

Where are we going?

  • Short term
    • Improved support for SQL Server 2008 scenarios
    • Add support for key PHP driver scenarios
    • Continue to show that we’re a good citizen
  • Long term

Proposal: Scrollable results

  • Two approaches for positioning
    • Call a function to set the row position
    • Add an argument to the fetch methods
  • Feedback?

Asking for our feedback on the best approach.

Pain point: UTF-8

  • Database engine does not support UTF-8
  • Driver does not currently support UTF-8
    • Requires manual translation UTF-8 <-> UCS-2le
  • Driver could help translate
    • Easier for PHP developers
    • Still a performance hit
    • Additional work for fetch_array/object scenarios
  • Feedback?

Asking for our feedback on how the community feels about this.

SQL Server Data Platform

  • Dynamic Development
  • Beyond Relational
  • Pervasive Insight
  • Enterprise Data Platform

Introducing SQL Server 2008

  • Enterprise Data Platform
    • Secure, trusted platform for your data
    • Optimized and predictable system performance
    • Productive policy-based management of your infrastructure
  • Dynamic Development
    • Accelerate your development with entities
    • Synchronize your data from anywhere
  • Beyond Relational
    • Store and consume any type of data
    • Deliver Location Intelligence within your applications
  • Pervasive Insight
    • Integrate all your data in the Enterprise Data Warehouse
    • Reach all your users with scalable BI platform
    • Empower every user with actionable insights

SQL Server 2008: Cool features

  • Supports spatial data types natively

Questions/Feedback

  • How many knew Microsoft had a PHP driver?
    • Where do PHP developers go for:
      • Announcements about new PHP extensions?
      • New content - articles, whitepapers, etc.?
  • Why do you use the database you use?
  • What driver features do we need to add in next version?
  • How many people will run their applications on the the source driver vs. the compiled driver?

What could Microsoft do to make PHP run better on Windows (Manuel Lemos)

WDS Attendee Showcase

The problems

  • PHP Windows developers face challenges that they would not face when using PHP on other platforms
  • Some PHP features do not work well on Windows
  • Some Windows specific features are not supported directly by PHP extensions
  • PHP core lacks of Windows developers
  • “PHP Windows developers are second-class citizens” —Rasmus Lerdorf

Covers a lot of classes at PHPClasses.org that solve problems he sees with PHP on Windows.


Roundtable Discussion (Lauren Cooney)

  • Lauren:

    “We want to figure out how we can best work with the PHP communities out there. I think we’ve been doing a good job, but we’re not doing a great job.”

  • Andrei:

    “Do you mean Microsoft as a whole, or individual departments/divisions within Microsoft?”

  • Lauren:

    “I think we have to think about Microsoft as a whole. […] Across the board, Microsoft is looking to be a better community citizen.”

  • Hans mentions Chris Jones as an example of excellent community support from a major company (Oracle) and how Microsoft can work better with our community by doing some of the same things Chris does.

  • Lauren:

    “I think it would be important to have someone that focuses on PHP in every single product group at Microsoft.”

  • Cal:

    “If you’re going to do that, have Joe Stagner train them. A lot of Microsoft’s effectiveness in the community is because we like Joe.”

  • Some others spoke up in agreement, saying that Microsoft needs to be “entrenched” in the community, having someone there who is a part of the community. Furthering this line of conversation, the consensus seems to be that Microsoft not only needs a “developer evangelist” who is a liaison to the community, but they need developers of various products who take part in the community.

  • Cal:

    “We want [Microsoft] at conferences for more than just sponsoring it with money. We want [Microsoft] to participate in the community.”

  • Elizabeth S.:

    In response to a discussion about Ruby, Python, etc. have various run-time environments and why PHP doesn’t. The short answer is that Ruby and Python can have other run-time environments because they have a language spec, but PHP doesn’t, so it’s more difficult to have other run-time environments.

    “[PHP] doesn’t care about a language spec. What we care about is that stuff just works.”

Written on the board

  • Participation in…
    • General participation
    • Mailing lists
    • PECL
    • Need “effective” training
    • Generally attending conferences
    • X-org MSFT PHP community leads?
  • Fear that MSFT absorbs PHP
  • Product/technologies at MSFT that PHP community wants to work with
    • COM
    • SQL Server
    • Office
    • Visual Studio (DevTools)
    • IIS
    • .NET integration

PHP & Graphics Tool Kit (GTK) (Elizabeth Smith, Andrei Zmievski)

WDS Attendee Showcase

Started with short intro about desktop development and GTK.

Let’s Do PHP-GTK

  • Main Loop
  • Signals & Callbacks
  • Widgets
  • OOP to the Max
  • Visibility

Now showing code examples.

Overriding Basic Functionality

  • Specialty Widgets are Cool
  • GtkStatusicon - 2.10+
  • Know your Hierarchy
  • Stock Icons
  • Callback “bubbling”
  • Timeouts (timers)

Showing stock icons in GTK.

Showing how to specify the status tray icon when minimized to the status tray.

Showing example of a Twitter client written in PHP-GTK.

Packing

  • GTK is not “pixel perfect”
  • Packing is not as hard as it looks
  • Containers can hold one or many
  • Remember that a container expands to the size of it’s contents

Showing an example of packing with code and screenshots.

Showing examples of dialog boxes.

Now showing examples of code and screenshots for GTKEntry.

Slides available at: http://callicore.net/php-gtk/php-on-the-desktop.pdf
Code available at: http://callicore.net/php-gtk/php-gtk-twitter.zip


Guy from MS Office team speaks (Doug)

Discussing history of office binary formats.

Now discussing the OOXML “debacle” where the technical committees in countries voted “no” while the politicians voted “yes.”


Search in Zend Framework (Stanislav Malyshev)

WDS Attendee Showcase

Search is really, really hard to get right

  • Fulltext searches are often slow, and limit table options
  • Difficult to score hits
  • Difficult to build multi-field queries
  • Difficult to build queries in general

Enter Zend_Search_Lucene

Showing code on how to add a document to an index.

Adding Office Formats

Showing code on how to add various Office document formats to an index.

What next?

  • Support for non-XML Office formats
  • Formats under OSP
  • Can also be used commercially?
  • Previews
  • HTML exports

How can I contribute


Using PHP with .NET via Phalanger (M. David Peterson)

WDS Attendee Showcase

Slides about music sharing and showing demo of amp.fm


Internet Explorer 8 and Web Standards (Chris Wilson)

Goals of IE8 Platform

  • Predictability
  • Programming Power
  • Performance

Standards – Great CSS 2.1

  • IE8 goal: complete CSS 2.1 compliance
    • Beta 2 implements every CSS 2.1 properties
  • New layout engine
    • Great typographic foundation
    • Designed with CSS 2.1 in hand
    • Clear principles: compliance & interop
    • No more hasLayout

Improving the CSS 2.1 Test Suite

  • The web needs interoperability
    • The best way to get interoperability: comprehensive unbiased test suites
  • Contributing our tests to the W3C
    • > 3200 tests contributed
    • Validates (or corrects) our interpretation
    • Goal: a complete, objective test suite

Improving Programming Predictability

  • Improved HTML interoperability
    • <object> and forms support, e.g.
  • Improved DOM compliance
    • Fixed attribute oddities
    • Many other changes – see IEBlog
  • DOM object mutability
    • getters and setters on DOM objects

Solving Web 2.0 App Problems

  • Surprise!
    • The IE6-era web app platform isn’t complete.

Web 2.0 Navigation (HTML5)

  • Set Window.location.hash, IE does the rest
    • IE fires an window.onhashchange event
    • IE updates the address bar and back button
    • Allows copy & paste of “Ajax URLs”

Querying the Element Tree

  • CSS Selector API
    • W3C Web Applications WG draft standard
    • .querySelectorAll() – returns a StaticNodeList
    • .querySelector()
    • Missed the rest of the points.

Leveraging Local Storage

  • Web applications need local storage
    • Cookies, UserData control
  • HTML5 adds the Storage interface
    • sessionStorage (tab/session specific)
    • localStorage (shared)
    • key/value string pairs
    • 10MB per domain, 100MB total

The Network Isn’t Always There

  • Network connectivity is transient
  • HTML5 adds online/offline events
  • And a state indicator

The Mashup Dilemma

  • The most interesting web applications mash up data and components across domains
    • Without restrictions, this is unsafe
    • So today, XHR is restricted to Same Origin
  • You can circumvent this by:
    • User script (not restricted to SOP)
    • Proxying on the server side

Cross-Domain Requests

  • Cross domain requests require mutual consent between the webpage and the server
  • XDomainRequest (XDR)
    • Your app creates a XDomainRequest object
    • XDR opens a connection and requests data, sending Access Control HTTP header
    • XDR object gives your app the data IFF server responds with the proper headers

Showing code sample.

Cross-Document Messaging

  • Some scenarios want more of a “sandbox”
    • Frames are used for this today
    • but they need to add limited communication
    • Again, both sides need to opt in to be “safe”
  • postMessage/onmessage from HTML5

Making Cross-Domain Data “Safe”

  • Often the “data” passed across domain is HTML or JavaScript code, not text
  • Beta 2 has two ways to make this safe:
    • Native JSON enables safe transfer of JS object data
    • toSafeHTML() – allows any HTML to be “sanitized” (removes “active content”)

Great Accessibility

  • Unlocking Web 2.0 with W3C ARIA
    • ARIA enables accessible web 2.0 apps
    • ARIA roles, states, and properties enable assistive technology (e.g. screen readers)
  • Improved Zoom Experience

Developer Productivity Tools

  • CSS/HTML/JavaScript debugger “in the box!”
  • Debug and profile JavaScript
    • Execution control (breakpoints, step into, etc.)
    • Variable inspection (watches, locals, etc.)
    • Immediate window
    • New profiler lets you examine perf of your code
  • Debug CSS and HTML
    • View and trace effective styles
    • View layout (box model) info
    • Edit HTML and CSS live – with save to file!
    • Change browser mode and document mode

Improving Performance

  • We focus on “real-world” performance
    • MANY changes post-beta2 to improve perf
  • JavaScript improvements
    • Faster native JavaScript operations
    • Better GC, Faster DOM object lookups
    • Pre-parser doesn’t block at script tags
  • Network perf is frequently the problem
    • Connections increased to 6 (2 on modems)

Making Users More Productive

  • Users already use lots of web services
    • Maps: Windows Live, Yahoo, MapQuest
    • Blogs: Facebook, MySpace, Blogger
    • Email: Hotmail, Gmail, Yahoo
    • Productivity: …
  • But this is a manual process!

Connecting Users to Your Services

  • Accelerators connect users to their existing services, from anywhere they may go on the web
    • Easy for web publishers to implement (no client code)
    • Defined through an OpenService Format

Showing code on how to deploy Accelerators.

Making Users More Productive

  • Users monitor lots of content on the web
  • But this is also a manual process
  • Feeds can be used for this scenario
    • but the current item is the important one
    • They’re not “the page,” so not always updated

WebSlices

WebSlices enable publishers to mark up “subscribe-able” parts of web pages, allowing you to monitor your favorite sections of your site

WebSlice Format

  • hAtom Microformat describes a feed & items
  • WebSlice builds on hAtom
    • hAtom can represent static content
    • WebSlice is dynamic content
  • WebSlice reuses properties on hAtom
    • Adds optional properties for subscribing
    • Can be applied to an hAtom

WebSlices and Feeds

  • The Windows Feeds Platform now supports both feeds and WebSlices
    • Converts WebSlice HTML to Atom feed
    • Accessible by Feed API
    • Sanitizes content (no script)
  • Feeds Platform adds Authentication Support

Wrapping Up

  • IE8 Beta2 for Windows XP & Vista
  • Please, test your web content and apps!
    • Use X-UA-Compatible as a tool
    • Move the web toward standards content
  • We want your feedback!

Closing Discussion with Sam Ramji

If you could ask Microsoft to change one thing and have them wave their magic wand and actually do it, what would it be?

  • Kill IE 6
  • Imdemnify open source projects from Microsoft patents
  • A GUI-less Windows server with a full-fledged shell
  • Native SSH support
  • Build Windows on top of BSD ;-)
  • Help open source projects on the legal side
  • Work more actively towards improving the patent system
  • More frankness, honesty, and openness; know when you’re wrong, admit when you’re wrong

  1. These items are not exposed now, but will be exposed in the future. 2 3 4 5 6 7 8