Wednesday, October 27, 2010

Steve Marx: “Building a Mobile-Browser-Friendly List of PDC 2010 Sessions with Windows Azure and OData”

Steve Marx (@smarx) described Building a Mobile-Browser-Friendly List of PDC 2010 Sessions with Windows Azure and OData in this 10/26/2010 post:

image[9] I learned today that there’s an OData feed of all the PDC 2010 sessions. I couldn’t help but build a Windows Azure application that consumes that feed and provides a simple web page that works well on mobile browsers. You can use it at http://pdc10sessions.cloudapp.net.

image

I’m enjoying the ease of use of OData in .NET. OData is the protocol that Windows Azure tables uses, and I’m also starting to use that to expose data in other applications I write. To share the joy, I thought I’d share how I built this app.

imageAll I did was add a service reference to http://odata.microsoftpdc.com/ODataSchedule.svc and write a simple controller method.

C# source code excised for brevity.

I’ll be using this at PDC this Thursday and Friday to find the sessions I’m interested in. If you’ll be attending PDC in person, I hope you find this useful too.

Steve’s app isn’t likely to win any design awards, but it’s quick. Here’s the opening screen in the VS2010’s WP7 emulator:

image[14] 

For more background about PDC2010’s OData feed, see The Professional Developers Conference 2010 team delivered on 10/26/2010 a complete OData feed of PDC10’s schedule at http://odata.microsoftpdc.com/ODataSchedule.svc/ article in the OData section of my Windows Azure and Cloud Computing Posts for 10/25/2010+ post.

See the mobile version of my manually created PDC 2010 session list, which also has minimal production values, at Windows Azure, SQL Azure, AppFabric and OData Sessions at PDC 2010:

OakLeafMobilePDC2010Sessions379px[6]

Sunday, October 24, 2010

Windows Azure, SQL Azure, AppFabric and OData Sessions at PDC 2010

image21 The two-day Microsoft Professional Developers Conference to be held in Redmond on 10/28 and 10/29/2010 will include the following sessions related to Windows Azure, SQL Azure, Windows Azure AppFabric, Codename “Dallas” and OData:

• Updated 10/22/2010: Stealth session attribution marked • (see end of post)

Lessons Learned from Moving a Major Microsoft Application to the Cloud

• Liam Cavanagh

imageThis will be a fascinating session about moving a major Microsoft application to the cloud [• and data synchronization] , but we can’t disclose any details until after PDC keynotes. Check this abstract after PDC keynote for additional details about this session.


Building Business Applications in the Cloud with CRM Online

image14 Andrew Bybee

Microsoft Dynamics CRM Online is all about providing compelling business applications to your customer and accelerating development of your applications in the cloud. The upcoming 2011 release has a wide array of new development capabilities such as Solution Packaging, Sandboxed Code, Built-in Dashboards, and much more. Watch this session to understand the innovation behind this new CRM Online release powered by .NET 4.0. Specifically, we’ll cover how to build a CRM Online Solution, take advantage of native SharePoint & Office integration and deploy your application to Dynamics Marketplace to reach a broader customer base.


Building High Performance Web Applications

Matthew Kerner

imageWindows Azure Platform enables developers to build dynamically scalable web applications easily. Come and learn how forthcoming new application services in conjunction with services like the Windows Azure Content Delivery Network (CDN) can help you build high-performance web applications in Azure while lowering your total costs by reducing the pressure on the data-tier. In this session, we’ll take some real world scenarios & design patterns to showcase how existing or new web applications can be quickly built to leverage these capabilities. We’ll also share some tips & tricks to improve performance when using web & worker roles in Azure and optimizing your overall application for maximum performance. Developers will be able to make their applications match increasing demand with increasing throughput by using caching and CDN will enable better performance & user experience for users who are farther from the source of the content.


Building Offline Applications using the Sync Framework and SQL Azure

imageNina Hu

In this session you will learn how to build a client application that operates against locally stored data and uses synchronization to keep up-to-date with a SQL Azure database. See how Sync Framework can be used to build caching and offline capabilities into your client application, making your users productive when disconnected and making your user experience more compelling even when a connection is available. See how to develop offline applications for Windows Phone 7 and Silverlight, plus how the services support any other client platform, such as iPhone and HTML5 applications, using the open web-based sync protocol.


Building Scale-Out Database Solutions on SQL Azure

imageLev Novik

SQL Azure provides an information platform that you can easily provision, configure, and use to power your cloud applications. In this session we will explore the patterns and practices that help you develop and deploy applications that can exploit the full power of the elastic, highly available, and scalable SQL Azure Database service. The talk will detail modern scalable application design techniques such as sharding and horizontal partitioning and dive into future enhancements to SQL Azure Databases.


Building, Deploying, and Managing Windows Azure Applications

imageJim Nakashima

In order to take full advantage of Windows Azure and SQL Azure, you need to know more than just how to write the code. You need to know how to incorporate your application in a team environment, deploy, monitor, manage and retrieve diagnostic information back from the cloud. In this session, you will learn everything you need to know to be successful with a project that utilizes Windows Azure and SQL Azure including setting up your development environment, automating build, unit test and deployments to different deployment environments from staging to production, and managing credentials and user roles using the Windows Azure Portal.


Composing Applications with AppFabric Services

image722323Karandeep Anand

AppFabric provides a rich set of application platform services as part of the Windows Azure Platform to enable developers to create line of business applications that span multiple tiers and technologies. Learn how to create scalable web-based & hosted applications in the cloud, compose them with other cloud services (such as SQL Azure Database and other forthcoming new services) and integrate them with on-premises systems using Windows Azure AppFabric technologies like Service Bus and Access Control services. This session will also cover the roadmap of AppFabric Services and demonstrate how developers will get richer application building blocks, development tools & management capabilities to compose and manage a distributed application using the Windows Azure Platform. Come and see how AppFabric Services can be integrated in to your application development & management lifecycle to reduce time & cost.


Connecting Cloud & On-Premises Apps with the Windows Azure Platform

image7223242Yousef Khalidi

Not every application or service can be hosted entirely in the cloud. Cloud services often need to provide a combination of cloud-based data access as well as connectivity to on-premises assets in a variety of geographies. Getting access to your on-premises or partner hosted assets securely has never been easier. In this session, learn how to securely connect applications today that span the cloud to on-premises world using Windows Azure AppFabric Service Bus and SQL Azure Data Sync Service. Also, gain insight into future scenarios and technologies for assembling these types of services.


Developing PHP Applications on the Windows Azure Platform

Vijay Rajagopalan

imageMicrosoft’s Windows Azure Platform provides a comprehensive set of services for building and running scalable PHP applications targeting cloud. In this session we go on a coding tour using open source development tools (Eclipse, Command line), SDKs and applications (Drupal, WordPress) on the Windows Azure platform. On this tour, see how PHP web applications can use the scalable compute and storage services with Windows Azure, secure connectivity and data service techniques in the cloud using OData and Microsoft SQL Azure.


Enabling New Scenarios and Applications with Data in the Cloud

imageDave Campbell

The cloud enables new scenarios for sharing and consuming data. In this session you will learn how to differentiate your applications by building them on top of Windows Azure platform and leveraging visualization and access to private, public and premium content available through Microsoft Codename “Dallas”. You will also learn how to use some of the new services and features announced at the PDC.


Identity & Access Control in the Cloud

image7223262Vittorio Bertocci

Signing users in and granting them access is a core function of almost every cloud-based application. In this session we will show you how to simplify your user experience by enabling users to sign in with an existing account such as a Windows Live ID, Google, Yahoo, Facebook, or on-premises Active Directory account, implement access control, and make secure connections between applications. You will learn how the AppFabric Access Control Service, Windows Identity Foundation, and Active Directory Federation Services use a claims-based identity architecture to help you to take advantage of the shift toward the cloud while still fully leveraging your on-premises investments.


Inside Windows Azure

Mark Russinovich

imageJoin Mark Russinovich, now working on Windows Azure, for an under the hood tour of the internals of Microsoft’s new cloud OS. Topics will include datacenter architecture, cloud OS architecture, and what goes on behind the scenes when you deploy a service, a machine fails or comes online and a role fails.


Integrating SharePoint with Windows Azure

image11 Steve Fox

SharePoint 2010 provides many ways to integrate with Windows Azure. From simple SQL Azure data-centric applications to complex workflow that leverages custom Azure services, there is great potential to integrate these two growing technologies. This session will provide a code-centric view of the ways in which you can integrate with Azure, covering areas such as web part development, data programmability, service consumption, and Business Connectivity Services integration. If you’re looking to take your SharePoint solutions into the cloud with Azure, then you can’t miss this session.


Management of your Access Control Service (ACS) Namespace

image7223282Justin Smith

The Windows Azure AppFabric Access Control Service provides a simple way to add enterprise and web Single Sign On into your applications. In this session, we will discuss how you can configure ACS for a variety of scenarios. Topics covered include: ACS entity overview, namespace partitioning, credential management, federation management, and rule management. Basic knowledge of the Windows Azure AppFabric Access Control Service is a suggested pre-requisite.


image18 Microsoft BizTalk Server 2010 and Roadmap

Sreeram Nivarthi

Learn how BizTalk Server 2010 and AppFabric together help you create composite applications (building on Windows Azure, Windows Server and SharePoint) which connect to existing line-of-business (LOB) systems. Understand future plans of how you will be able to compose applications using integration services – for applications running on Windows Azure, connecting to other services in the cloud, and with line-of-businesses & business partners in future. You will also learn future plans on how business users can get visibility into services built on AppFabric.


Open in the Cloud: Windows Azure and Java

Vijay Rajagopalan

imageThe Windows Azure Platform is an open and interoperable platform which supports development using many programming languages and tools. In this session, you will see how to build large-scale applications in the cloud using Java, taking advantage of new Windows Azure Platform features. You will learn how to build Windows Azure applications using Java with Eclipse, Apache Tomcat, and the Windows Azure SDK for Java.


SharePoint in the Cloud: Developing Solutions for SharePoint Online

image7 Chris Mayo

With the most recent release of SharePoint comes the ability to build and deploy applications of many types and flavors. Using SharePoint Server 2010, you can develop a wide variety of applications for the enterprise using .NET, Silverlight, JavaScript, and much more. But with the release of SharePoint Online on our horizon, what are the possibilities and the boundaries here? And how is the design and development process different? If you want to develop for SharePoint Online, but are unsure about the boundaries then you’ll not want to miss watching this demo-heavy session.


Taking High Performance Computing to the Cloud - Windows HPC and Azure

Richard Ciapala

imageScale-out or conveniently parallel HPC applications are well suited to running in Windows Azure. Windows HPC Server 2008 R2 SP1 provides a gateway for running existing HPC applications seamlessly on Azure. Learn how to develop Windows HPC Cluster SOA WCF-based applications, parametric sweep and MPI applications to run on Azure or a cluster. Different alternatives to handle data, storage, security, and troubleshooting these applications will be discussed. This session will also show developers how to set up a single box development environment for HPC Server applications, and how to provision compute nodes and Azure and monitor applications.


Windows Azure Storage Deep Dive

Jai Haridas

imageWindows Azure Storage is a scalable cloud storage service that provides the ability to store and manipulate blobs, structured non-relational entities, and persistent queues. In this session you will learn tips, performance guidance, and best practices for building new applications or migrating an existing applications that use Windows Azure Storage.


Windows Workflow Foundation in Windows Azure

Ron Jacobs

imageLearn how Windows Workflow Foundation (WF) and AppFabric provide a great middle-tier platform for building, deploying, running and managing workflow solutions in Windows Azure. Hear about the WF capabilities available in Windows Azure today and those planned for tomorrow. Find out how your apps can leverage the power of WF in the cloud. Discover the highly reliable and scalable workflow platform enabled in Windows Azure, while also showcasing key enhancements for improved workflow authoring and management.


Building Windows Phone 7 applications with the Windows Azure Platform

image3 Steve Marx

Learn how to build Windows Phone 7 applications that are backed by scalable cloud components hosted in Windows Azure. This demo-heavy session will cover best practices relating to communication, authentication, and data synchronization between phone applications and cloud components.


Creating Custom OData Services: Inside Some of The Top OData Services

imagePablo Castro

What does it take to build a real-world OData (Open Data Protocol) service that’s secure, scalable and works great with all clients across the Web? Come to hear all the details on how some of the most popular OData services are built. We will discuss how WCF Data Services is used in typical and not-so-typical contexts, how we layer-in business logic and security, how we deal with custom back-ends that don’t look like databases, and more.


• Liam Cavanagh (@liamca) announced in his PDC Conference Sessions post of 10/21/2010:

… At this conference we have two sync sessions (you can see a full list of the sessions here) including plus one additional one by myself that will be added to the session list after the keynote announcements :-). … [Emphasis added.]


Note that the preceding list was gathered from all session channels (tracks).

image24The PDC site runs on Windows Azure, as noted by:

 

Cloud, Phone 7 on tap at Microsoft PDC10

Robert Mullins asserted “Sessions on Azure, new mobile platform featured at developer conference” as the deck for his Cloud, Phone 7 on tap at Microsoft PDC10 article of 10/23/2010 for Network World’s Microsoft Tech blog:

image[26] Microsoft will be opening the doors of its corporate campus in Redmond Oct. 27-29 for its annual Professional Developers Conference at which it will be building momentum for its cloud computing initiatives and the development of applications for its new Windows Phone 7 operating system.

image

PDC10 will begin with a keynote Thursday by CEO Steve Ballmer, who will share the stage with Bob Muglia, president of the Server and Tools Business at Microsoft. In that role, Muglia is responsible for Microsoft’s infrastructure software, developer tools, and cloud platform, including products such as Windows Server, SQL Server, Visual Studio, System Center and the Windows Azure Platform. This means Muglia, along with Ballmer, will be pumping up software developer attendees about Microsoft’s “We’re all in” strategy on cloud computing, which Ballmer launched back in March.

image[30] Sessions Thursday and Friday will cover how to build, deploy and manage applications running on Azure, which is the cloud version of Windows Server. Other sessions will be devoted to running Java applications on Azure, managing identity and access control in the cloud, building databases on SQL Azure and integrating SharePoint with Azure.

Blogger Tim FitzGerald reported today that we may hear more at PDC10 about Microsoft’s plans to deliver cloud computing as an Infrastructure-as-a-Service (IaaS) offering. FitzGerald, an executive at Avnet Technology Solutions, writes that Azure is currently available only as a Platform-as-a-Service (PaaS), but that another Microsoft executive, Zane Adams, general manager of Azure and Middleware Server and Tools Business, told attendees at a conference in the U.K. that Microsoft was expecting to be a player in IaaS, PaaS and software-as-a-service (SaaS). Positioning itself as a player in all three spaces would put it in competition with Amazon's EC2 (IaaS), Google (PaaS) and Salesforce.com (SaaS), which could be a lot to take on.

image26And Microsoft needs to woo the development community to tackle another highly competitive space in mobile with its coming Windows Phone 7 OS. Microsoft released the final version of its development tools for Phone 7 in September and the smartphones running it are to go on sale in the U.S. Nov. 8. Sessions on Phone 7 include one on how to use Azure to build Phone 7 apps that would be backed by scalable cloud components. Another one covers how to build apps that run on Silverlight. And a third session looks at building game applications using XNA Game Studio, which is the Microsoft integrated development environment for Xbox. And running Xbox games on a Phone 7 device is expected to distinguish Phone 7 devices from Android, Apple and BlackBerry devices.

See my Windows Azure, SQL Azure, AppFabric and OData Sessions at PDC 2010 post updated 10/22/2010 for a complete list of cloud-related sessions at PDC10.

Windows Phone Developer Tools October 2010 Update

The Windows Phone Team suggested on 10/21/2010 that you download the Windows Phone Developer Tools October 2010 Update:

Brief Description:

image26October 2010 Update to the Windows Phone Developer Tools to provide two new utilities and address a performance issue in the Bing Maps Control.

Overview

The Windows Phone Developer Tools October 2010 Update includes:

  • Windows Phone Capability Detection Tool – Detects the phone capabilities used by your application. When you submit your application to Windows Phone Marketplace , Microsoft performs a code analysis to detect the phone capabilities required by your application and then replaces the list of capabilities in the application manifest with the result of this detection process. This tool performs the same detection process and allows you to test your application using the same list of phone capabilities generated during the certification process. For more information, see How to: Use the Capability Detection Tool.
  • Windows Phone Connect Tool – Allows you to connect your phone to a PC when Zune® software is not running and debug applications that use media APIs. For more information, see How to: Use the Connect Tool.
  • Updated Bing Maps Silverlight Control – Includes improvements to gesture performance when using Bing™ Maps Silverlight® Control.

System Requirements

  • Supported Operating Systems:Windows 7;Windows Vista
  • You must have Windows Phone Developer Tools RTM version installed.

WP7 Deactivated != Tombstone

James Ashley reported WP7 Deactivated != Tombstone in this 10/21/2010 post:

With the transition from the Beta WP7 Dev tools to the RTM, an important and subtle change was introduced to the way launchers and choosers work.  In the beta, it was a given that every time we launched a task from Silverlight, the current application would be tombstoned and the Deactivated event would be thrown on the current PhoneApplicationService object.

image26With the RTM tools, this is no longer always the case.  Five tasks break this rule: CameraCaptureTask, EmailAddressChooserTask, MediaPlayerLauncher, PhoneNumberChooserTask and PhotoChooserTask.  In each case, while the application may be tombstoned, it also may not be.  In fact, most of the time, it will simply be paused and no tombstoning will occur – the application will not be terminated.  

We can assume that the typical workflow for a chooser task is the following (the images below demonstrate the PhoneChooserTask in action):

phonechooserback

A user performs an action that initiates a task.  The task window opens. The user either completes the task (in this case by selecting a contact) or presses the Back button to cancel the action.  The user is returned to the previous page.  In this case, it makes sense that no termination occurs.  Instead, the app is left in a Paused state much as an app is paused during incoming and outgoing calls – timers are suspended, no events are handled.

[Note: in the RTM, no event is fired when an application goes into a paused state.  At best, you can handle RootFrame.Obscured and RootFrame.Unobscured for incoming and outgoing calls.]

However, the user may also decide to press the Start button at the third step.   At that point it makes sense for termination to occur as it is less likely that the user will backpress back to the app.phonenumberchooser

So when should we handle the deactivated event for the second case where the user moves on and doesn’t complete a chooser task?  We actually can’t handle it when tombstoning occurs because our app is paused and will not respond to any events.

Instead, the PhoneNavigationService.Deactivated event is fired when chooser task (or MediaPlayerTask) is initiated.  This despite the fact that we don’t know (and can’t know) at this point whether the app will actually be tombstoned.

So far so good.  We may unnecessarily be writing objects to storage if the app isn’t ever tombstoned, but it’s better to be safe than sorry.

What is peculiar is that when we return to the app – either through the first scenario above or through the second deviant scenario – PhoneNavigationService.Activated is always thrown.  There’s a symmetry to this.  If the Deactivated event is called and we back into the application, then the Activated event will be called. 

The somewhat annoying thing is that the PhoneApplicationService should have enough information to avoid firing false Activated events unnecessarily.

No matter.  There is a simple trick for finding out whether an Activated event is real or fake – whether it truly follows a tombstoning of the application or is simply thrown because Deactivated was previously called.

Use a flag to find out if the App class was newed up.  It only gets newed up in two situations – when the application is first launched and when it is recovering from tombstoning.  Set the flag to false after the App class has finished loading.  If a chooser is launched and the application is paused but not tombstoned, the flag will still be false.  If tombstoning occurs, the flag will be reset to true.

private bool _isNewApp = true;

private void Application_Launching(object sender
, LaunchingEventArgs e)
{
_isNewApp = false;
}

private void Application_Activated(object sender
, ActivatedEventArgs e)
{
if (_isNewApp == true)
{
// a real tombstone event occurred
// restore state
}
_isNewApp = false;
}


If you are handling tombstoning at the page level, you can similarly use a flag to determine whether the page was re-newed or not.

bool _isNewPage = true;

public MainPage()
{
InitializeComponent();
}

protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (_isNewPage)
{
//restore state
}
_isNewPage = false;
}

The important thing to remember, though, is that the Deactivated / Activated events are not synonymous with tombstoning.  They simply occur alongside of tombstoning – and in the special cases described above occur when no tombstoning happens at all.


James is the author of Patterns of Windows Phone Architecture Part III and earlier.


Windows Phone 7: The Ars Review

Peter Bright wrote a detailed 18-page Windows Phone 7: The Ars Review article on 10/22/2010:

image[9] The smartphone market ain't what it used to be. Four years ago, Symbian ruled the world—it was totally dominant in every market but three: Japan and China both had strong showings from Linux, and the North American market was split roughly evenly between RIM, Microsoft, and PalmSource. Worldwide, smartphone sales amounted to some 60 to 65 million.

Then Apple came along with the iPhone in 2007 and changed the world.

image[12] The iPhone did four things. It showed us what could be done with finger-based user interfaces—that they could be easy to use, easy to type on, flexible, and good-looking. It made smartphones mass-market, consumer-oriented gadgets, breaking them free of their corporate shackles. It showed that smartphones were viable web browsing platforms, just as long as they were equipped with a good browser. And, eventually, it showed that there was a lot of value to be had in integrating an online application store.

Windows Mobile was a solid performer in the old smartphone world, but it never moved into the new, post-iPhone smartphone world. Windows Mobile 6.5, released in May 2009, was a half-hearted attempt to bring the system up-to-date with a finger-friendly home screen and Start menu-type-thing, but the interface was crudely grafted on and plainly unsatisfactory. This wasn't finger-friendly, consumer-friendly, modern smartphone software, and everyone knew it. It didn't halt Windows Mobile's marketshare slide, much less turn it around.

If Microsoft wanted to remain a player in the smartphone market, something would have to change. Windows Phone 7 is that change.

image26Windows Phone 7 is a smartphone platform that's aimed first and foremost at consumers. It's designed from the ground up for a finger-driven interface. It's built to be clean, attractive, and consistent. The ambition is that it will finally give Microsoft a platform that will enable it to take on the iPhone and Android phones. Virtually everything that Windows Mobile did is now ancient history. Windows Phone 7 ushers in a new era of Microsoft-powered smartphones.

Hardware

In many ways the hardware is the biggest similarity between Windows Mobile and Windows Phone, because with the new operating system, just as with the old one, Microsoft is leaving the hardware to third parties. Unlike with Windows Mobile, however, the company is being extremely strict about what's allowed and what's not. Every Windows Phone 7 device must meet the minimum specification.

 

Processor 1 GHz Qualcomm Snapdragon
GPU Qualcomm Adreno 200
RAM 256 MB
Flash storage 8 GB
Screen resolution 800 × 480 (exactly)
Touch Capacitive multitouch with at least four contact points
Cellular connectivity GSM/GPRS/EDGE/UMTS/HSPA (HSPA+ optional)
Wireless 802.11b/g (802.11n optional), Bluetooth 2.1 + EDR, FM radio
Hardware buttons Start, search, back, volume, power, and camera (with half-press focus)
Camera 5 MP, dedicated flash
Sensors
A-GPS, accelerometer, compass, proximity, light
Ports Micro-USB, 3.5mm TRS headphone jack
Miscellaneous options
Hardware keyboard, user-accessible microSD slots

This is a high specification; these are premium handsets, so they'll be priced towards the upper end of the spectrum. When Windows Phone 7 was first announced, Microsoft said that at some point after launch, lower resolution 480×320 devices would also be supported, and even further into the future, an as-yet unspecified third resolution/form-factor would also be added.

At the moment, however, all the focus is on the 800×480 models, and personally, I think Microsoft should stick with this for as long as possible before venturing into new designs. The iPhone has demonstrated that you don't need a billion different models to be successful, and by sticking with one resolution, the job for application developers is made a great deal easier. 

Even within these constraints, the initial handset partners—Dell, HTC, Samsung, and LG—have a reasonably broad range of options, with screens ranging from 3.5" to 4.3", 8 or 16GB of storage, and one with an 8MP camera. Dell's phone, the Venue Pro, includes a vertical (potrait) slider keyboard, and next year Sprint will release an HTC device, the 7 Pro, which will include a more conventional horizontal (landscape) slider keyboard. We took a quick look at the launch models last week, and you can see our initial thoughts on the UK and US offerings.

Some models appear also to have forward-facing cameras. Windows Phone 7 doesn't presently support video calling, which is unfortunate for those of us in parts of the world where such things have been a feature of the telephony landscape for many years. If this is indeed the case, it may be an indication that video calling is coming sooner rather than later.

The most unique, Windows Phone 7-specific feature of the hardware is the hardware buttons. Although the user interface is predominantly touch-driven, the specification mandates a set of hardware buttons. The power, volume, and camera buttons are self-explanatory; it's the Start, search, and back buttons that will be the hallmark of Windows Phone 7 devices. These mandatory buttons are perhaps the biggest reason why, to the chagrin of many, devices that otherwise ought to live up to the Windows Phone 7 specification such as the HTC HD2, won't be upgradable, and will be lumbered with Windows Mobile 6.5 for the rest of their lives.

The button placement is also defined by Microsoft. The back, Start, and search buttons must be on the front of the phone and in that order (though they can be mechanical or capacitive, or some combination of the two). The volume rocker switch must be on the top of the left-hand side, the power button on the top of the right-hand side, and the camera button on the bottom of the right-hand side.

The 3.5mm headphone jack must also support three buttons, volume up, volume down, and a third to answer calls/initiate voice dialling.

Notably missing from the feature list is support for CDMA and EVDO. CDMA support will arrive next year; at the moment, Windows Phone 7 handsets are GSM-only.

The specification allows for minor variations, but it doesn't allow for any radical deviations. The result is that the handsets are far more similar than they are different, and unless Microsoft substantially liberalizes the rules, it looks like it will be difficult for OEMs to produce any truly exceptional or unusual devices. This is good for application developers, as they have fewer targets to aim for, and it's arguably good for consumers, as it means that they can buy a Windows Phone 7 phone with confidence—if you know your way around one Windows Phone 7 phone, you know your way around them all.

It may, however, be bad for the OEMs, who may find themselves with little ability to differentiate and distinguish themselves from each other. OEMs are allowed to include custom applications, but their ability to stamp their own branding onto phones will be far weaker than it is with Android and was with Windows Mobile. If Windows Phone 7 is anything short of an enormous success, it's easy to see them giving up on the platform.

The model I have is a Samsung Omnia 7, and I'm using Orange, in the UK. The most striking feature of the Omnia 7 is its screen; it's a frankly beautiful 4" Super AMOLED display, whose vibrancy and viewing angles are quite delightful. The version I have has 8 GB of internal storage, though a 16 GB version should also be available. …

Read More: Page 2, Next >

This must be the ultimate third-party Windows Phone 7 review.

Monday, October 18, 2010

Enabling Fiddler2 to Monitor Windows Phone 7 Emulator Traffic

Brian Hitney’s  Windows Phone Emulator and Fiddler post of 10/17/2010 describes how to enable the current version of Fiddler2 to monitor HTTP request and response messages from the Windows Phone 7 Emulator RTW version:

On an internal alias, Eric Lawrence chimed in on setting up Fiddler for the Windows Phone 7 emulator.  This is really useful, of course, for monitoring traffic to/from the emulator … since so many apps are use data services, this is a must have feature.

The first step is to set the local machine as a proxy … in the IE LAN settings (or via the control panel) like so:

image

In the Fiddler options, configure the Fiddler listen port and allow Fiddler to accept remote connections:

image

In my app (SqueakBox), I display a user guide as a web page.  I made this choice to facilitate changes (much easier to publish a new HTML page!) … if I open that page up in the emulator:

image

I can see the traffic in Fiddler:

image

Success!  In my next post, I’m going to discuss two snags I ran into with the Microsoft Ad Control – one of which I discovered while using Fiddler.