All posts by onlyconnect

Microsoft re-imagining client computer management for Windows 8

I am surprised this post by Microsoft Program Manger Jeffrey Sutherland has not attracted more attention. It describes enterprise app deployment to Windows on ARM devices, now officially called Windows RT devices. These devices run Windows 8 compiled for ARM, which means high efficiency but a greater degree of lockdown than with x86. In particular, desktop applications cannot be installed, though Microsoft Office is pre-installed, but without Outlook.

The interesting aspect is that what Sutherland describes is not just a way of managing Windows RT computers, but a new approach which fits with the trend towards BYOD – Bring Your Own Device – where employees use their own devices for work as well as at home.

Quick reminder: in the old model, Windows clients are managed by being joined to a domain, controlled by Active Directory. Once domain-joined, the machine is subject to group policy administered by the domain, a fine-grained system for configuring settings and deploying applications.

Windows RT devices cannot be joined to a domain. However, there is a new option in Control Panel to “connect to your company network”.

image

Note that the user must still be joined to the Active Directory domain. Since this is now joining the machine to the network and subjecting it to a degree of centralised control, Windows RT network joining is conceptually not far distant from domain joining, but it is a completely new approach.

The next step is to install a management agent which communicates with the Enterprise network.

Once network-joined and with the agent installed, the machine:

  • Is subject to a set of security policies covering password and logon rules (eg whether to allow picture logons)
  • Is audited for antivirus and antispyware status, drive encryption and auto-update; network connection can be refused if not compliant
  • Will lock encrypted drives if wrong password is entered repeatedly
  • can automatically set up a VPN profile for network access
  • enables access to a self-service portal (SSP), operated by the enterprise, for app deployment
  • can be deactivated which renders all SSP-deployed apps inoperable

The SSP can deploy custom or third-party Metro apps, but can also include links to the Windows store and web links to web application.

Microsoft envisages the above tools being used both for company-owned and employee-owned Windows RT devices. One advantage over domain-joining is that it is less intrusive to the user. When you domain-join a Windows PC, it creates a new user profile on the machine, which can be a nuisance if the user wants to use the machine for non-work purposes; they have to either switch profiles or use the work profile for home as well.

Metro-style apps are inherently better suited for intermingling business and home, since they are isolated from one another and from the operating system.

This new approach is not only for Windows RT machines but works on x86 as well:

We do support this functionality on x86. However, x86 also has a load more management functionality through Domain membership, Group Policy and existing tools like System Center.

says Microsoft’s Iain McDonald in the comments.

Although it is true that the old domain-joined model offers a higher degree of control, Windows RT should have security advantages thanks to the lockdown preventing desktop applications from being installed, which will restrict malware.

Windows computer domains are not going away, but BYOD and the trend towards cloud computing will gradually reduce the number of domain-joined machines. For example, a small business using Small Business Server will usually domain-join all its machines, but a small business using Office 365 will usually not do so.

I should add that although the approach outlined above is great for simplicity and flexibility, the fatal flaw for many organisations will be its dependence on Metro-style apps. If you have any Windows desktop apps to deploy, then it will not work.

Adobe Dreamweaver CS6, PhoneGap Build, and HTML5 app tooling

I am looking forward to trying out Adobe’s new Creative Suite 6 but have not yet got my hands on it. However one thing I am watching with interest is the work Adobe is doing to integrate PhoneGap developing into the suite, in particular in Dreamweaver.

PhoneGap lets you build native mobile apps for several mobile platforms using HTML and JavaScript, by embedding the browser engine on the device.

There was PhoneGap support in Dreamweaver CS 5.5, but it was curiously broken. It always makes a debug build for Android, for example, and it does not offer enough control of the build settings to be useful. Dreamweaver CS 5.5 is useful for designing a PhoneGap app, but you need to use the command line or Eclipse-based tools to finish it off.

The big new is that Adobe has integrated Dreamweaver CS 6 with PhoneGap Build, a cloud service where you upload your source files and download the resulting build. There are details of the new integration here. You can build for iOS, Android, BlackBerry, webOS and Symbian. A nice touch is that you can use a QR code to download the app to a connected mobile device.

There are a few puzzles though.

1. The Help says:

You cannot use PhoneGap Build and Dreamweaver without a PhoneGap Build service account. Accounts are free and easy to set up.

They are free to set up, but not to use:

image

Do Creative Cloud subscribers get some use of the service included? I am finding out and will report.

2. Build is a great service and lets you support platforms without having to install the SDK; but compiling locally has advantages too. It seems that local builds are no longer supported. Here is the relevant part of the Dreamweaver CS 5.5 Site menu:

image

and here it is in Dreamweaver CS 6 (from a video):

image

This is confirmed by David Powers, who has an excellent overview of what is new in Dreamweaver CS6 and writes:

The way that Dreamweaver CS6 supports building native apps for iOS, Android, and other mobile operating systems using HTML, CSS, JavaScript, and the PhoneGap framework has changed completely. It no longer installs the Android software development kit (SDK) and emulator. Nor can the Mac version hook directly into Xcode and the iOS simulator. Instead, there’s a new panel that uploads your files to PhoneGap Build, an online service that automatically packages applications for iOS, Android, webOS, Symbian, and BlackBerry. Using PhoneGap Build is much easier than working with a simulator, because the Dreamweaver panel displays a QR code that lets you load the app directly onto your testing device. However, you need to build the configuration file manually in XML, and there’s no longer any code hinting in Dreamweaver for PhoneGap plugins. So, although the integration of PhoneGap Build is a definite improvement, it feels as though the engineering team didn’t have time to polish some important details.

3. PhoneGap Build in Dreamweaver CS 6 supports 5 mobile platforms:

image

but the PhoneGap team has also announced support for Windows Phone 7

I would expect that Windows Phone 7 support will be added to Dreamweaver CS6.

4. Adobe had a change of heart with respect to supporting Build in Dreamweaver CS 5.5. This was released as an extension at the end March, then pulled a few days later:

Adobe regrets to inform the Dreamweaver Community that the PhoneGap Build extension for Dreamweaver CS5.5 (released last week) is no longer available for download. For a number of reasons, we have had to pull the extension from public availability.

The functionality of the extension, which integrates PhoneGap Build with Dreamweaver, will be available in the upcoming version of Dreamweaver CS6.

A shame, since PhoneGap support in Dreamweaver CS 5.5 does not work properly and fixing this for existing users would have been nice.

5. Finally, while PhoneGap support in Dreamweaver is welcome, Dreamweaver is primarily a web design tool and not ideal for app development. It seems Adobe shares this view:

Code

We think there’s a need for a different type of code editor – we’re working on something and will have more to share soon.

Adobe has the resources to come up with something great for HTML5 and JavaScript developers – here is hoping that it does.

What’s in Adobe’s Creative Cloud, and should you go cloud or purchase outright?

Adobe has launched though not quite released its Creative Cloud. The name is slightly misleading since Adobe’s main business is in desktop applications and the “Creative Cloud” is as much or more a subscription model for desktop applications as it is a set of cloud services. In its discussions with financial analysts at the end of last year, Adobe said that moving customers to a subscription model is one of its goals since, quite simply, it makes more money that way.

Subscriptions are good for vendors in various ways. They offer a regular income, tend to keep going through inertia, and offer an opportunity to upsell additional services.

The applications in Creative Cloud include everything in Creative Suite Master Collection as far as I can tell, including Photoshop, Illustrator, InDesign, Dreamweaver, Flash Professional, Flash Builder, Fireworks, Premiere Pro, After Effects, Audition, Edge (animator for HTML5) and Muse (a no-code visual designer for HTML pages).

You also get a set of iOS/Androd apps: Photoshop Touch, Proto, Ideas, Debut, Collage and Kuler. And Lightroom, which curiously is not in Creative Suite.

Adobe Digital Publishing Suite Single Edition is “coming soon” to the Creative Cloud.

Nevertheless there are cloud services as well as desktop applications in the Creative Cloud. Here is what you get:

Store and Share: automatic cloud storage and file syncing. 2GB for a free membership or 20GB paid for. A desktop app called Creative Cloud Connection, for Windows and OS X, synchs files to a computer, while you can also access files from Touch apps on iOS or Android.

Publish: host up to five websites on Adobe’s hosting service. If you use Adobe Muse, you can design and publish without coding. Features of the web hosting? PHP? Coldfusion? Server-side Java? Database? Ecommerce? These details seem to be absent from Adobe’s current information but I am keen to find out more and will post an update.

Update: apparently this is the Business Catalyst hosting service – see here for details. This is rather limited as you cannot use any sort of server-side programming platform, but only the Business Catalyst services, though this does include a “customer database”. That said, there is an API for “connecting third party services” which might be a workaround in some cases.

Pros and cons

There are real advantages to a subscription versus buying the packaged Creative Suite. You get additional services, additional products, and also, Adobe is hinting, more updates than will be available to shrinkwrap purchasers.

If you have a short-term requirement for Creative Suite, the subscription approach is obviously advantageous.

The disadvantage, as with any subscription, is that you have to keep paying in order to keep using the products, whereas the shrinkwrap (actually a download) is a one-off payment. How much? All prices below exclude VAT.

For UK customers, Creative Cloud is £36.11 per month (£433.32 per annum), though there is a special offer for existing shrinkwrap owners of CS3 or later of £22.89 per month (£274.68) for the first year only.

The full version of Creative Suite 6 Master Collection is £2,223.00 – around five years of Creative Cloud and therefore a poor deal. Most software is almost worthless when five years old.

On the other hand an upgrade from Creative Suite 5.5 Master Collection is £397.00. Even that is barely a better deal, unless you plan to use it for two years and do not need the additional products and services.

image

The prices for UK customers are much higher than for the US, a fact which is causing some consternation. For example, the full CS6 Master Collection is $2599.00, a little over £1600 at today’s exchange rate.

The bottom line: Adobe wants you to subscribe so you can expect the pricing to push you in that direction.

Adobe turns to OpenCL rather than NVIDIA CUDA for Mercury Graphics Engine in Creative Suite 6

Adobe has just announced Creative Suite 6. CS 5.5 used the Mercury Playback Engine in Premiere Pro, which takes advantage of NVIDIA’s CUDA library in order to accelerate processing when an NVIDIA GPU is present. Just to be clear, this is not just graphics acceleration, but programming the GPU to take advantage of its many processor cores for general-purpose computing.

Premiere Pro CS6 also uses the Mercury Playback Engine, and while CUDA is still recommended there is new support for OpenCL:

The Mercury Playback Engine brings performance gains to all the GPUs supported in Adobe Creative Suite 6 software, but the best performance comes with specific NVIDIA® CUDA™ enabled GPUs, including support for mobile GPUs and NVIDIA Maximus™ dual-GPU configurations. New support for the OpenCL-based AMD Radeon HD 6750M and 6770M cards available with certain Apple MacBook Pro computers running OS X Lion (v10.7x), with a minimum of 1GB VRAM, brings GPU-accelerated mobile workflows to Mac users.

PhotoShop CS6 also uses the GPU to accelerate processing, using the new Mercury Graphics Engine. The Mercury Graphics Engine uses the OpenCL framework, which is not specific to any one GPU vendor, rather than CUDA:

The Mercury Graphics Engine (MGE) represents features that use video card, or GPU, acceleration. In Photoshop CS6, this new engine delivers near-instant results when editing with key tools such as Liquify, Warp, Lighting Effects and the Oil Paint filter. The new MGE delivers unprecedented responsiveness for a fluid feel as you work. MGE is new to Photoshop CS6, and uses both the OpenGL and OpenCL frameworks. It does not use the proprietary CUDA framework from nVidia.

It seems to me that this amounts to a shift by Adobe from CUDA to OpenCL, which is a good thing for users of non-NVIDIA GPUs.

This also suggests to me that NVIDIA will need to ensure excellent OpenCL support in its GPU cards, as well as continuing to evolve CUDA, since Creative Suite is a key product for designers using the workstations which form a substantial part of the market for high-end GPUs.

Appcelerator Titanium gets Mobile Web SDK, cloud services

Appcelerator’s Titanium cross-platform development framework has moved up a gear with the announcement of two new features:

  • A set of cloud services, based on those acquired with Cocoafish in February this year. These are now known as Appcelerator Cloud Services (ACS).
  • Support for mobile web applications as well as native

These features are integrated into the Titanium development environment, an Eclipse-based IDE which has evolved from Aptana, a JavaScript tool acquired in early 2011. Start a new project, and ACS support is included by default.

image

The cloud services are hosted on Amazon and comprise the following:

  • Push Notifications
  • User management
  • Photo manipulation and storage
  • Places (rich location storage)
  • Social integration
  • File Storage
  • Check-ins
  • Status updates
  • Chats
  • Friend connections
  • Ratings and Reviews
  • Discussion forums
  • Event planning
  • Messaging
  • Key-Value data storage

“We have a portfolio of additional services rolling out over the next several quarters,” said Jo Ann Buckner, VP of Product Management. There are code examples here. A limited usage of the services is available free, after which it is pay as you go. It is a REST API that you can use from any platform; use of Titanium is not essential.

The other big feature is the Mobile Web SDK. Why is Appcelerator doing this given that it has been pushing native code apps as the way forward for mobile deployment?

“Two reasons,” says Buckner. “The debate has been going on for a long time, is it native, or web? Our position is that it native and mobile web are complementary. We have customers building native apps with Titanium that also want to have a mobile web presence, even for iOS and Android. Some customers will just interact with a mobile web site and never download the application.

“The second is reach beyond iOS and Android.”

Does that mean Appcelerator will not support other platforms such as Blackberry or Windows Phone with its native approach? “This is not a replacement for those efforts. We are investing in support for additional platforms,” says Buckner.

There are differences of course between what you can do in a native app, and what you can do in a web app, and these differences vary according to the target browser. Titanium allows you to write platform-specific code in order to workaround these problems, or to vary the user interface to suit the device. The illustration below shows the new Titanium IDE with an app which targets both Android and the Mobile Web, and you can see the folders on the left which separate common code and platform-specific code (click the image to enlarge).

image

Titanium installs its own web server for testing. Here is an example running in the Android emulator, served from Titanium.

image

When should you do a native app and when a mobile web app? “You’re going to build more than one application,” says Mike King, Appcelerator’s Principal Mobile Strategist. “If you are doing an augmented reality application the native interaction is going to require that to be a native application. You can do a forms-based application as well, and mobile web is going to be a better fit for that. Different use cases require different architectures.”

But why do your mobile web apps in Titanium, when you could use pure HTML 5 tools instead? “It’s about one platform for all of your development requirements, as opposed to one for native and one for HTML 5,” says King.

Titanium is certainly evolving with impressive speed. The latest 2.0.1 IDE is a rich tool, and pop-up help guides you concerning supported platforms for each keyword.

image

Another strong point is the way you can easily write conditional code for tablet form-factors.

The comparison with Adobe PhoneGap is interesting. PhoneGap takes a different approach, supporting native apps but by means of the embedded browser in each device, rather than by building a native user interface. Titanium’s new mobile web support is different in that it runs as a web app in the browser, not as a native app with an embedded browser.

Nokia Lumia strategy needs time, may not have it

A quick comment on Nokia’s dismal results for the first quarter of 2012. Sales are down 26% quarter on quarter; Smartphone sales down 38% despite the introduction of the Lumia Windows Phone in Europe. Negative operating margin, heavy losses.

The reasons given?

  • competitive industry dynamics continuing to negatively affect the Smart Devices and Mobile
    Phones business units;
  • timing, ramp-up, and consumer demand related to new products; and
  • the macroeconomic environment.

Translation: the new Lumias are failing to compete effectively against Apple iPhone and Google Android devices.

I have a Lumia 800 and like it increasingly. It is elegant and nice to hold, it works well, and Nokia Drive makes an excellent SatNav, to mention three good things.

image

Nevertheless, I am not surprised by the poor sales. When I first got the Lumia its battery life was poor; it is still not great, but was much improved by the last firmware update I installed (1600.2487.8107.12070), for which I had to use a manual process.

There was also an aggravating problem where if the phone ran out of power completely, it could not easily be charged. In other words, it was nearly a brick, though I managed to coax it back to life by repeatedly reconnecting the charger. The problem seems to be fixed with the latest update.

I do not think my experience is untypical, and can see that while in one sense it is a great phone, from another perspective it qualifies as buggy and problematic; I expect returns were above average.

The problems are fixable, but with hindsight Nokia should have worked that bit harder to ensure a trouble-free launch. The US launch of the Lumia 900 may be better since the company has had a little more time to improve quality, though there was a data connection bug.

Everything to prove

The bigger problem is that Windows Phone has everything to prove; iPhone and Android dominate the market, so the Lumia has to be sufficiently better to win customers over to a braver choice.

App availability is another factor. Windows Phone is not on the radar for most app vendors – because its market share is too small.

Despite a few lapses, I have been impressed with what I have seen of Nokia’s Windows Phone efforts. Nokia’s marketing and developer evangelism has been far better than Microsoft’s. At Mobile World Congress in February Microsoft had a large stand but was mainly doing silly “smoked by Windows Phone” demos, while Nokia’s stand was humming with activity.

Microsoft more to blame than Nokia

I also incline to the view that Microsoft is more to blame than Nokia – except insofar as Nokia could have made a different choice of partner.

Windows Phone 7 was nicely designed but badly launched, more than a year before the Lumia appeared. The launch hardware was uninteresting and Microsoft failed to line up strong operator or retail support for its devices. Microsoft focused on quantity rather than quality in the Windows Phone app store, resulting in a mountain of rubbish there.

The pace of development in the Windows Phone 7 operating system has also been rather slow, but the issues are more to do with marketing and partner support than with the OS itself.

Nokia has gone some way towards fixing the issues. Its devices are better, and so is its marketing. It is unlikely though that Nokia can succeed unless Microsoft also ups its smartphone game.

The future

Microsoft’s strategy for Windows Phone and Windows 8, as far as I am aware, does make some sense. We will see convergence of the operating system, improved tool support with an option for native code development, and a coherent cloud story.

This will take time to unfold though. It also seems likely that Windows 8 will have a rocky launch, with desktop users disliking the Metro-style elements imposed for the sake of tablet support. Nokia has indicated that it will be producing Windows 8 tablets as well as phones, but whether this will be an instant hit is at the moment uncertain.

Who knows, perhaps it will be Windows 9 before Microsoft really makes its tablet strategy work.

The problem is that Nokia does not have time to wait while Microsoft sorts out its mobile phone and tablet strategy. It needs quick success.

Two final thoughts.

First, Microsoft can hardly afford to see Nokia fail, so some sort of acquisition would not surprise me.

Second, how difficult would it be for Nokia to bring out some Android smartphones alongside its Windows range? Currently we are told that there is no plan B, but perhaps there should be.

Microsoft results: old business model still humming, future a concern

Microsoft has published its latest financials. Here is my at-a-glance summary:

Quarter ending March 31st 2012 vs quarter ending March 31st 2011, $millions

Segment Revenue Change Profit Change
Client (Windows + Live) 4624 +177 2952 +160
Server and Tools 4572 +386 1738 +285
Online 707 +40 -479 +297
Business (Office) 5814 +485 3770 +457
Entertainment and devices 1616 -319 -229 -439

What is notable? Well, Windows 7 is still driving Enterprise sales, but more striking is the success of Microsoft’s server business. The company reports “double-digit” growth for SQL Server and more than 20% growth in System Center. This seems to be evidence that the company’s private cloud strategy is working; and from what I have seen of the forthcoming Server 8, I expect it to continue to work.

Losing $229m in entertainment and devices seems careless though the beleaguered Windows Phone must be in there too. Windows Phone is not mentioned in the press release.

Overall these are impressive figures for a company widely perceived as being overtaken by Apple, Google and Amazon in the things that matter for the future: mobile, internet and cloud.

At the same time, those “things that matter” are exactly the areas of weakness, which must be a concern.

A bug in embedded Internet Explorer in Windows 8

Long-time readers of this site may remember that I did some work on embedding Internet Explorer, and its core rendering component MSHTML, in .NET applications. The code is still online.

I noticed that it does not work properly in Windows 8 Consumer Preview. Specifically, plain HTML works but you can no longer apply external CSS stylesheets. I reported the bug here (sign-in required).  I did not use my own component, but rather the standard WebBrowser control. I have appended the code to reproduce the bug in case you cannot see the report.

Microsoft has now responded as follows:

We were able to validate your feedback. However, based on the limited impact this bug may have, we will not be able to address this bug during this release.

This status is also known as “won’t fix” and gives me pause for thought. How many other little bugs are there which Microsoft is not fixing, but which break a certain number of applications?

If you are one of those few people using embedded IE in an application, I suggest checking Windows 8 compatibility now to avoid any unpleasant surprises.

Perhaps it would be preferable to use WebKit or Gecko (Mozilla) rather than IE in any case. There is a thread on stackoverflow that discusses some options. OpenWebKitSharp looks promising.

Code to reproduce the bug:

Create a Windows Forms application in C# in VS 11. Add a Webbrowser control and two buttons, and an OpenFileDialog control. Also add a reference to the COM library Microsoft HTML Object Library.

Here is the code for the first button that loads some HTML:

string sHTML = "<html><head><title>Some title</title></head><body><p>Some text</p></body></html>";
this.webBrowser1.DocumentText = sHTML;

Here is the code for the second button that applies a stylesheet:

openFileDialog1.Filter = "CSS files|*.css";
if (openFileDialog1.ShowDialog() == DialogResult.OK)  {
mshtml.HTMLDocument doc = (mshtml.HTMLDocument)this.webBrowser1.Document.DomDocument;
doc.createStyleSheet(openFileDialog1.FileName);
}

This is the stylesheet I am applying:

body
{
    font-family: Arial;
    font-size: 18pt;
}

To reproduce, run the application. Click the first button to load the HTML. Then click the second button to apply the stylesheet. In Windows 7 and earlier the stylesheet is applied. In Windows 8, the stylesheet is not applied.

UPDATE: It seems this bug was fixed in Windows 8 RTM, despite the “will not fix” designation. Good.

Windows 8 to be called Windows 8, no Outlook on ARM

Microsoft has announced the range of editions planned for Windows 8, which is now the official name (previously it was a code name).

Here is what I found interesting. Windows on Arm (WOA) is now called Windows RT and ships with Office included. However, Outlook is not included, confirming my suspicion that Outlook may gradually get de-emphasised in favour of separate email, calendar and task managers built into the operating system but with strong Exchange support – a good move since Outlook is perhaps the most confusing and over-complex application that Microsoft ships.

Windows RT is missing some features which are in the Intel versions, not least the ability to install desktop software, but has an unique feature of its own: device encryption.

I consider Windows RT as critical to the success of the Windows 8 project, and the only edition that may compete effectively with the Apple iPad in terms of price, convenience, battery life and usability. That said, the market will see the Intel version as primary, since it is the one that can run all our existing apps, but all the legacy baggage will also weigh it down. Users will suffer the disjunction between Metro and Desktop, and will need mouse or stylus and keyboard to use desktop applications. The danger is that Windows RT will get lost in the noise.

Hands on: building an app for Windows 8 Metro

How difficult is it to build an app for the Windows Runtime (WinRT), which powers Metro-style apps in Windows 8?

Here is how I created a simple calculator app (this is one in an occasional series) using Visual Studio 11 beta. I started with a new Visual C# Windows Metro Style project, choosing a blank template.

image

A slight complication is that you are prompted to install a Developer License, which means logging into your Windows Live account.

image

Next, I had to layout the controls. Visual Studio creates a single-page app with a main page called BlankPage.xaml. I renamed this to Calc.xaml. I also used Visual Studio’s refactor menu to rename the page class from BlankPage to Calc.

image

The default application has a black background, which seems gloomy. I changed the Background of the container grid to white.

My basic calculator design is based on six rows and four columns, so I added 6 RowDefinitions and 4 ColumnDefinition to the XAML grid. The units for RowDefinitions and ColumnDefinitions can be set to Auto, Pixel or Star. Star means the unit is a weight which is calculated at runtime. For example, if you set the value of one RowDefinition.Height to 2 and the others to 1, the first one would be twice as high as the others. Here is my basic grid:

image

Next, I placed controls in the grid. The easiest way to get them to fill the space neatly is to set their HorizontalAlignment and VerticalAlignment properties to Stretch. Then you control the margin round the control with the Margin property. You can have a control fill more than one cell by using the Grid.ColumnSpan and Grid.RowSpan properties.

I found it easier to add the controls in code using copy and paste.

image

A Grid has no FontSize property, and although the Page has a FontSize property it does not seem to be inherited by the controls. I therefore set the FontSize individually for each control but there must be a better way of doing this.

I then wrote minimal code that performs calculations without always crashing, and tested the app.  When you debug, you can choose Local Machine, Simulator, or Remote Machine. I found it easier to debug using the simulator, since if you use Local Machine and Visual Studio is running on the main display, then the app you are debugging becomes invisible if you hit a breakpoint or exception. The simulator seems really good (it is actually a remote session into your own machine) and I would like some way of running all Metro apps in a window like this, not just for debugging!

image

A few reflections

A developer with experience of C# and XAML (which is also used by Windows Presentation Foundation and by Silverlight) will not have much trouble getting started with WinRT, though I noticed that XAML is substantially cut-down, as Patrick Klug observes here.

Visual Studio 2011 is an excellent IDE although I do not much like the new property editor; a minor point, but I find the latest go at prettification detrimental to usability; it is too busy. This may be a matter of familiarity and it is a minor point.

image

The XAML visual designer is slow to refresh even with my simple app, so this could be annoying with a more complex layout.

Layout with XAML works well, though it is more difficult than say Windows Forms for a new developer. It is easy to get peculiar results unless you do everything with pixel layout, which is not the best approach.

What about Metro itself? Apps always run full screen, and I had a problem with this in that my little calculator does not need all that space.

image

I am not a designer; and I suppose with a bit of effort you could add some decoration or effects to use the space, or add extra features. But why?

I was thinking about the Atari ST the other day, following the death of Jack Tramiel. The ST did not really multitask, but to get around the problem of needing to run a second app without closing the first, it had the concept of desktop accessories, available from a pull-down menu. My calculator would work well as a desktop accessory in Metro, except there is no such concept – unless you count the “Snap” split view. I wonder if Microsoft is too religious about its “Immersive UI” concept.

A few reservations then; but that does not take away from the overall impression of a strong integrated development experience for building Metro-style apps.