Table of Contents

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

OSTC Joint Interoperability Lab

A few recent projects

A few current projects

PHP on Windows

Helping make open source work better on Windows

More projects are on their way

Participation in PHP

The future of PHP participation

The power of community

Microsoft Web Platform (Lauren Cooney)

Key Foundational Pillars

Vision: the Microsoft Web Platform

Today's Microsoft Web Platform

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.

Windows Web Application Gallery Vision:

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

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

Windows Azure (Manuvir Das)

Windows Azure In Context

A 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?

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?

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

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

(*) These items are not exposed now, but will be exposed in the future.

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

(*) These items are not exposed now, but will be exposed in the future.

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

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

Why?

What Can You Do with Live Services?

How Can You Do It?

Resource Model

Showing diagram of the resource model

Live Framework

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:

Credits

Inspiration comes from:

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:

PHP magazines in Portuguese:

Top Free Software Events in Brazil:

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

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

Very active community

Roadmap

Enterprise Version

A lot of appliations

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

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?

To RTM and beyond!

Cool features

Compiled Driver vs. Source

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

Where are we going?

Proposal: Scrollable results

Asking for our feedback on the best approach.

Pain point: UTF-8

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

SQL Server Data Platform

Introducing SQL Server 2008

SQL Server 2008: Cool features

Questions/Feedback

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

WDS Attendee Showcase

The problems

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

Roundtable Discussion (Lauren Cooney)

“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.” (Lauren)

“Do you mean Microsoft has a whole, or individual departments/divisions within Microsoft?” (Andrei)

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

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.

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

“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.” (Cal)

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.

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

”[PHP] doesn't care about a language spec. What we care about is that stuff just works.” (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.

Written on the board:

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

Now showing code examples.

Overriding Basic Functionality

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

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

Search is really, really hard to get right

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?

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

Standards -- Great CSS 2.1

Improving the CSS 2.1 Test Suite

Improving Programming Predictability

Solving Web 2.0 App Problems

Web 2.0 Navigation (HTML5)

Querying the Element Tree

Leveraging Local Storage

The Network Isn't Always There

The Mashup Dilemma

Cross-Domain Requests

Showing code sample.

Cross-Document Messaging

Making Cross-Domain Data "Safe"

Great Accessibility

Developer Productivity Tools

Improving Performance

Making Users More Productive

Connecting Users to Your Services

Showing code on how to deploy Accelerators.

Making Users More Productive

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

WebSlices and Feeds

Wrapping Up

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?