Category Archives: visual studio

Infragistics: upbeat on Windows Phone but also building for Apple iOS, Google Android

I spoke to Dean Guida, CEO and co-founder of Infragistics, at TechEd in Atlanta earlier this week. Infragistics makes components, mainly for Windows but now beginning to support non-Windows clients. There is a set of jQuery controls in preparation, and “Our roadmaps are also going to deliver native on Android and iPhone,” Guida told me. “We have a lot of software companies that use our tools in their commercial apps, and a lot of enterprises, and we feel that we need to do it,” though he adds, “we feel that the best and the smartest business solution is to go mobile web.”

image

Infragistics has a focus on data visualization, and Guida showed me some great-looking components that show animated charts, with a huge range of customisation options, and including geo-spatial and timeline controls.

I was intrigued to find Guida more upbeat about Windows Phone than most commentators, though I make allowance for the fact that his company has a component suite for the platform. “More than half of our customers told us that they’re either building or they will build for Windows Phone in the next 12 months,” he told me.

His view, which I share, is that they key advantage of Windows Phone is to Microsoft-platform enterprises rather than to consumers. “It’s so easy to extend their knowledge of Silverlight and extend apps, that they’ll be able to extend the data and the access to information this way. I think that’s going to be a beachhead for Microsoft.”

Of course Microsoft has marketed Windows Phone to consumers so far, and has told businesses they should continue to use Windows Mobile 6.5, clearly a dead-end. It may be easier when the company is able to move on from this mixed messaging and get behind Windows Phone as a business mobile platform.

Continuing a contrarian theme, Guida is also positive about Windows Presentation Foundation (WPF). “It’s huge, especially in the financial markets. They’ve made big bets on it. They’ve built a lot of their trading apps and a lot of their internal apps on it. We’ve been telling Microsoft this for years,” he says.

The problem I guess is that while WPF/Silverlight makes sense for data visualisation for internal apps where you control the platform, for broad reach apps that are visible to the rest of us, Adobe Flash or some other approach is a better fit.

It is understandable that companies like Infragistics are keen to talk up the Microsoft platform. Their business depends on it. It is true that Infragistics is now experimenting with other platforms like Apple iOS and Google Android, but historically developers on non-Microsoft platforms have not formed a strong component market.

“They don’t get it as much as Microsoft developers,” says Guida. “We used to have a ton of Java components. I was at the second JavaOne conference. We built some of the first AWT components, JavaBeans, Swing components. There’s a lot more pain developing for these platforms than on the Microsoft platform, Microsoft has done a great job with the tooling. Why have that pain? I think there is a distinction between the Microsoft and the non-Microsoft developer, that they have a higher tolerance for, pain’s probably not the right word, but a higher tolerance for taking longer to get stuff done. I can only believe that over time maturity will happen. It’s really about satisfying a business need or a consumer need. These platforms are different, but if we go in and give them the tools, why not? We’re really just this year starting to get there.”

It is a brave hope; but looking at the Infragistics site, there are currently no Java controls on offer, and even the 2008 NetAdvantage for JavaServer Faces (JSF) seems to have disappeared. If the Microsoft client platform does decline, the future will be challenging.

What’s coming in Microsoft Visual Studio

Microsoft is beginning to talk in detail about the next version of Visual Studio, though currently mostly in the area of ALM (Application Lifecycle Management) tools.

Continuous testing and support for diverse test frameworks

The new Visual Studio will support unit tests that run in the background. Visual Studio VP Jason Zander adds that:

With Visual Studio vNext we are enabling you to use your favorite unit testing framework integrated deeply into the IDE. We will support MS Test, xunit, and nunit with vNext. You will also be able to target both .NET and native C++ code. Adding test frameworks is an extensibility point as well so if you don’t see your favorite one listed here, you can easily add it.

Storyboarding in PowerPoint
This is not exactly a Visual Studio feature; but the new version will include a PowerPoint plug-in and templates that lets you mock up a user interface. Why bother, when Microsoft already has Sketchflow in Expression Blend, and tools in Visio for laying out a GUI? Apparently many users are more comfortable in Office.

Integration with System Center

Visual Studio 2010 already includes a virtual lab management feature that lets you test applications on virtual machines managed by System Center Virtual Machine Manager. But what about deployed applications? A new connector for System Center Operations Manager brings similar integration, so that bugs can be reported directly to Team Foundation Server complete with stack trace enabled by IntelliTrace, a historical debugging feature.

Context switching

The thinking here is that when developers are interrupted they lose the flow of their work. Context switching lets you shelve code changes, open windows and other activity tied to the current task. You can then do other work; when you later resume the task Visual Studio recovers its state.

New Team Explorer

Team Explorer is the connector and window in Visual Studio that forms the client for Team Foundation Server. This has been revamped for the new version, and now uses “full asynchronous communication” to improve load time and responsiveness. There are new views for common categories of information, including work items, pending changes, builds, reports and bugs.

New Agile collaboration tools

There are new tools in the Web Access client for Team Foundation Server for feedback and collaboration on projects using Agile methodology. Backlogs shows features to be implemented in a sprint, a unit of project iteration. The Task Board shows the backlog in a new visual view.

Connector for Project Server

A new connector for Project Server enables project-style views of project progress, such as Gantt charts.

Feedback tools

A new feedback mechanism aimed at stakeholders lets users enter feedback into Team Foundation Server. Tools include a web recorder that lets users comment on actions in a web application with linked recordings.

Code Clone Detection

This is a code quality feature that analyses a project looking for common code that should be refactored into a shared block.

Code Review

Code Review lets team members comment on code, similar in some ways to a commented document in Word.

Hosted Team Foundation Server on Azure

“Any team up and running within 30 seconds” is Microsoft’s claim for a new hosted option for Team Foundation Server. An exaggeration no doubt; but since a full-featured TFS takes some effort and infrastructure to implement, the hosted option will be welcome.

Visual Studio tends to be synchronized to some extent with new versions of Windows, so I would guess we will learn more about Visual Studio vNext at the Professional Developers Conference (though it may be called something else) in Anaheim on September 13-16 this year.

You can read more about Visual Studio vNext on Jason Zander’s blog and in a white paper [pdf]. 

Microsoft’s Scott Guthrie moving to Windows Azure

According to an internal memo leaked to ZDNet’s Mary Jo Foley, Microsoft’s Scott Guthrie who is currently Corporate VP of the .NET Developer Platform is moving to lead the Azure Application Platform team. This means he will report to Ted Kummert who is in charge of the Business Platform Division, instead of S Somasegar who runs the Developer Division; however both divisions are part of the overall Server and Tools Division. Server and Tools is the division from which Bob Muglia was ousted as president in January; the reason for this is still not clear to me, though I would guess at some significant strategy disagreement with CEO Steve Ballmer.

Guthrie was co-inventor of ASP.NET and is one of the most approachable of senior Microsoft execs; he is popular and respected by developers and his blog is one of the first places I look for in-depth and hands-on explanations of new features in Microsoft’s developer platform, such as ASP.NET MVC and Entity Framework.

I have spent a lot of time researching and using Visual Studio 2010, and while not perfect it is among the most impressive developer products I know, from the detail of the editor and debug features right through to ALM (Application Lifecycle Management) aspects like Team Foundation Server, testing in various forms, and build management. Some of that quality is likely due to Guthrie’s influence. The successful evolution of ASP.NET from web forms towards the leaner and more flexible ASP.NET MVC is another achievement in which I am sure he played a significant role.

Is it wise to take Guthrie away from his first love and over to the Azure platform? Only Microsoft can answer that, and of course he will still be responsible for an ASP.NET platform. I’d guess that we will see further improvement in the Visual Studio tools for Azure as well.

Still, it is a bold move and one that underlines the importance of Azure to the company. In my own research I have gained increasing respect for Azure and I would expect Guthrie’s arrival there to be successful in winning attention from the Microsoft platform developer community.

Native apps better than web apps? That’s silly talk says PhoneGap president

When I attended Mobile World Congress in February one of my goals was to explore the merits of the various different approaches to writing cross-platform mobile apps. One of the key ones is PhoneGap, and I got in touch with Nitobi’s president and co-founder André Charland. As it turned out he was not at that particular event, but he kept in touch and I spoke to him last week.

PhoneGap works by using the installed HTML and JavaScript engine on the device as a runtime for apps. That is not as limiting as it may sound, since today’s devices have high performance JavaScript engines, and PhoneGap apps can be extended with native plug-ins if necessary. But aren’t there inconsistencies between all these different browser engines?

Sure, it’s kinda like doing web development today. Just a lot better because it’s just different flavours of WebKit, not WebKit, Gecko, whatever is in IE, and all sorts of other differentiation. So that’s definitely how it is, but that is being overcome rather quickly I’d say with modern mobile JavaScript libraries. There’s JQuery Mobile, there’s Sencha Touch, there’s DoJo Mobile just released, SproutCore, which is backed by Strobe, which is kinda the core of Apple’s MobileMe.

There’s tons of these things, Zepto.js which is from the scriptaculous guy, Jo which is a framework out of a Palm engineer, the list of JavaScript frameworks coming out is getting longer and longer and they’re getting refined and used quite a bit, and those really deal with these platform nuances.

At the same time, phone manufacturers, or iOS, Android, WebOS, and now RIM, they’re competing to have the best WebKit. That means you’re getting more HTML5 features implemented quicker, you’re getting better JavaScript performance, and PhoneGap developers get to take advantage of that.

says Charland. He goes further when I put to him the argument made by native code advocates – Apple CEO Steve Jobs among them – that PhoneGap apps can never achieve the level of integration, the level of performance that they get with native code. Will the gap narrow?

I think it will go away, and people will look back on what they’re saying today and think, that was a silly thing to say.

Today there are definitely performance benefits you can get with native code, and our answer to that is simply that PhoneGap is a bundle made of core libraries, so at any point in your application that you don’t want to use HTML and JavaScript you can write a native plugin, it’s a very flexible, extensible architecture … So you can do it. We don’t necessarily say that’s the best way to go. Really if you’re into good software development practices the web stack will get you 90%, 95% of the way there, so that apps are indistinguishable from native apps.

Some of the native features we see in iOS apps, they’re reminiscent of Flash home pages of ten years ago, sure you can’t do it in HTML and JavaScript but it doesn’t add any value to the end user, and it detracts from the actual purpose of the application.

The other thing is, a lot of these HTML and JavaScript things, are one step away from being as good in a web stack as they are in native. When hardware acceleration gets into WebKit and the browser, then performance is really just as good.

Charland is also enthusiastic about Adobe’s recent announcement, that PhoneGap is integrated into Dreamweaver 5.5:

Two things are exciting from our perspective. It gives us massive reach. Dreamweaver is a widely used product that ties in very nicely to the other parts of the creative suite toolchain, so you can get from a high-level graphic concept to code a lot quicker. Having PhoneGap and JQuery Mobile in there together is nice, JQuery Mobile is definitely one of the more popular frameworks that we see our community latching on to.

The other thing is that Dreamweaver targets a broader level of developer, it’s maybe not super hard core, either Vi or super-enterprise, Eclipse guys, you know, it’s people who are more focused on the UI side of things. Now it gives them access to quickly use PhoneGap and package their applications, test them, prove their concepts, send them out to the marketplace.

He says Adobe should embrace HTML and Flash equally.

I also asked about Windows Phone support, and given that Microsoft shows no sign of implementing WebKit, I was surprised to get a strongly positive response:

We have something like 80% of the APIs in PhoneGap running on Windows Phone already. That’s open and in the public repo. We are just waiting basically for the IE9 functionality to hit the phone. The sooner they get that out in public, the sooner we can support Windows Phone 7. We have customers knocking at our door begging for it, we’ve actually signed contracts to implement it, with some very large customers. Just can’t there soon enough, really. I think it’s an oversight on their part to not get IE9 onto the phone quicker.

PhoneGap is at version 0.94 at the moment; Charland says 0.95 will be out “in a few weeks” and he is hoping to get 1.0 completed by O’Reilly OSCON in July.

I’ve posted nearly the complete transcript of my interview, so if you are interested in Charland’s comments on building a business on open source, and how PhoneGap compares to Appcelerator’s Titanium, and what to do about different implementations of local SQL on devices, be sure to read the longer piece.

Windows Phone at Mix 2011: what Microsoft said and did not say

Yesterday Microsoft’s Joe Belfiore (phone VP) and Scott Guthrie (developer VP) took the stage at the Mix 2011 conference in Las Vegas to tell us what is new with Windows Phone.

The opening part of the keynote was significant. Belfiore spent some time talking about the “update situation”.

image

This is all to do with who controls what ends up on your phone. If you buy a Windows PC or laptop, you can get updates from Microsoft using Windows update or by downloading service packs; the process is between you and Microsoft.

Not so with Windows Phone. The operators have a say as well; and operators are not noted for delivering speedy OS updates to users. Operators seem to have difficulty with the notion that by delivering strong updates to existing devices that have already been purchased, they build user loyalty and satisfaction. They are more geared to the idea of delivering new features with new hardware. Updating existing phones can cause support calls and other hassles, or even at worst bricked devices. They would rather leave well alone.

When Microsoft launched Windows Phone it announced that there would be regular updates under Microsoft’s control; but this has not been the case with the first update, codenamed “NoDo”. The update process has been delayed and inconsistent between operators, just like the bad old days of Windows Mobile.

Belfiore went on about testing and phones being different from PCs and improvements to the process; but in the end it seems to me that Microsoft has given in:

Mobile operators have a very real and reasonable interest in testing updates and making sure they’re going to work well on their phones and on their network. Especially if you think about large operators with huge networks, they are the retailer who sells the phone, so they have to deal with returns, they take the support calls and they have to worry about whether their network will stay up and perform well for everyone … From our point of view, that’s quite reasonable, and our belief and understanding is that it’s standard practice in the industry that phones from all different vendors undergo operator testing before updates are made available.

That “testing” label can cover any amount of prevarication. It appears that Microsoft is unable to achieve what Apple has achieved: the ability to update its phone OS when it wants to. That is a disadvantage for Microsoft and there is no sign of improvement.

More positively, Microsoft announced a number of significant new features in the first major update to the OS, codenamed Mango. This is for existing devices as well as new ones, though new devices will have enhanced hardware. He focused on what matters for developers, and hinted that there will be other end user features. A few bullet points:

  • Internet Explorer 9 is on Mango – “The same exact code that has just shipped and is now getting installed on tons and tons of PCs is the code base that will be on the phone” said Belfiore. No, it is not built in Silverlight.
  • Limited multitasking for third-party apps. This is in the form of “Live agents” which run in the background. Full apps cannot multitask as I understand, though they can be suspended in memory for fast switching. Currently apps appear to do this but it is faked; now it will be for real, with the proviso that a suspended app may get shut down if its memory is needed by the OS.
  • Multiple live tiles for a single app.
  • Fixed marketplace search so that music does not appear when you search for an app.
  • Apps can register with search so that Bing searches can integrate with an app.
  • There will be a built in SQL Server CE database with programmatic access using Linq (Language Integrated Query).
  • Full TCP/IP socket support
  • Access to raw camera data for interesting imaging applications or barcode  processing
  • 1,500 new APIs in Mango
  • Performance improvements including a better garbage collector that apparently gives a significant boost
  • Improved tools with the ability to simulate GPS on the emulator, capture performance trace log from phone

It adds up to a decent update, though more Window Phone 7.5 than Windows Phone 8 (I do not know what the official name will be). Belfiore also mentioned new apps coming to Windows Phone 7, including Spotify, Skype and Angry Birds.

But what was not said? Here are a few things I would like to have heard:

  • When will get Adobe Flash on Windows Phone? Not mentioned.
  • What about Silverlight in the browser? You would think this would be easy to implement; but I have not seen it confirmed (let me know if you have news).
  • When will Nokia ship Windows Phone devices? Nokia’s Marco Argenti appeared on stage but said nothing of substance.
  • The Mango update is coming “in the fall” but when will current users get updates?
  • Will Windows Phone 8 move away from Windows CE to full Windows, so the same OS will work across phone, tablets and desktop PCs?

Above all, I would like convincing news about how Microsoft intends to get Windows Phone better exposure and fuller support from operators. I still hardly see it in retailers, and it seems a long way down the list when you talk to a salesperson about what new phone you should buy. I do not have a Windows Phone at the moment, but when I tried it for a  couple of weeks I mostly liked the user interface – I found the soft buttons on the Mozart annoying because they are easy to press accidentally – and I also like the developer tools, though I would like to see a native code development option. In the end though, it is no use developing for Windows Phone if your customers are asking for Apple iOS and Google Android.

Microsoft shared the following figures:

  • 12,000+ apps
  • 35,000 registered developers
  • 1.5 million tool downloads

It is a start, but these are not really big numbers, and the proportion of tool downloaders that end up delivering apps seems small so far.

A lot rests on the Nokia partnership and how that plays out.

It now appears that we will need to wait until September and the newly announced PDC (Professional Developers Conference) in Anaheim 13th-16th September before we learn more about the long-term mobile strategy.

Update: Microsoft’s Phil Winstanley tells me that the Windows Phone OS is just called “Windows Phone” regardless of version; but that the Mango update is referred to as “Windows Phone OS 7.5” when it is necessary to differentiate. If that sounds confusing, do not blame me!

Hands On with Visual Studio LightSwitch – but what is it for?

Visual Studio LightSwitch, currently in public beta, is Microsoft’s most intriguing development tool for years. It is, I think, widely misunderstood, or not understood; but there is some brilliant work lurking underneath it. That does not mean it will succeed. The difficulty Microsoft is having in positioning it, together with inevitable version one limitations, may mean that it never receives the attention it deserves.

Let’s start with what Microsoft says LightSwitch is all about. Here is a slide from its Beta 2 presentation to the press:

image

Get the idea? This is development for the rest of us, "a simple tool to solve their problems” as another slide puts it.

OK, so it is an application builder, where the focus is on forms over data. That makes me think of Access and Excel, or going beyond Microsoft, FileMaker. This being 2011 though, the emphasis is not so much on single user or even networked Windows apps, but rather on rich internet clients backed by internet-hosted services. With this in mind, LightSwitch builds three-tier applications with database and server tiers hosted on Windows server and IIS, or optionally on Windows Azure, and a client built in Silverlight that runs either out of browser on Windows – in which case it gets features like export to Excel – or in-browser as a web application.

There is a significant issue with this approach. There is no mobile client. Although Windows Phone runs Silverlight, LightSwitch does not create Windows Phone applications; and the only mobile that runs Silverlight is Windows Phone.

LightSwitch apps should run on a Mac with Silverlight installed, though Microsoft never seems to mention this. It is presented as a tool for Windows. On the Mac, desktop applications will not be able to export to Excel since this is a Windows-only capability in Silverlight.

Silverlight MVP Michael Washington has figured out how to make a standard ASP.NET web application that accesses a LightSwitch back end. I think this should have been an option from the beginning.

I digress though. I decided to have a go with LightSwitch to see if I can work out how the supposed target market is likely to get on with it. The project I set myself was a an index of magazine articles; you may recognize some of the names. With LightSwitch you are insulated from the complexities of data connections and can just get on with defining data. Behind the scenes it is SQL Server. I created tables for Articles, Authors and Magazines, where magazines are composed of articles, and each article has an author.

The LightSwitch data designer is brilliant. It has common-sense data types and an easy relationship builder. I created my three tables and set the relationships.

image

Then I created a screen for entering articles. When you add a screen you have to say what kind of screen you want:

image

I chose an Editable Grid Screen for my three tables. LightSwitch is smart about including fields from related tables. So my Articles grid automatically included columns for Author and for Magazine. I did notice that the the author column only showed the firstname of the author – not good. I discovered how to fix it. Go into the Authors table definition, create a new calculated field called FullName, click Edit Method, and write some code:

partial void FullName_Compute(ref string result)
{
    // Set result to the desired field value
   result = this.Firstname + " " + this.Lastname;

}

Then you set FullName as the “Summary” field for the table.

Have we lost our non-developer developer? I don’t think so, this is easier than a formula in Excel once you work out the steps. I was interested to see the result variable in the generated code; echoes of Delphi and Object Pascal.

I did discover though that my app has a usability problem. In LightSwitch, the user interface is generated for you. Each screen becomes a Task in a menu on the left, and double-clicking opens it. The screen layout is also generated for you. My problem: when I tried entering a new article, I had to specify the Author from a drop-down list. If the author did not yet exist, I had to open an Authors editable grid, enter the new author, save it, then go back to the Articles grid to select the new author.

I set myself the task of creating a more user-friendly screen for new articles. It took me a while to figure out how, because the documentation does not seen to cover my requirement, but after some help from LightSwitch experts I arrived at a solution.

First, I created a New Data Screen based on the Article table. Then I clicked Add Data Item and selected a local property of type Author, which I called propAuthor.

image

Next, I added two groups to the screen designer. Screen designs in LightSwitch are not like any screen designs you have seen before. They are a hierarchical list of elements, with properties that affect their appearance. I added two new groups, Group Button and GroupAuthor, and set GroupAuthor to be invisible. Then I dragged fields from propAuthor into the Author group. Then I added two buttons, one called NewAuthor and one called SaveAuthor. Here is the dialog for adding a button:

image

and here is my screen design:

image

So the idea is that when I enter a new article, I can select the author from a drop down list; but if the author does not exist, I click New Author, enter the author details, and click Save. Nicer than having to navigate to a new screen.

In order to complete this I have to write some more code. Here is the code for NewAuthor:

partial void NewAuthor_Execute()
{
     // Write your code here.
     this.propAuthor = new Author();
     this.FindControl("GroupAuthor").IsVisible = true;
}

Note the use of FindControl. I am not sure if there is an easier way, but for some reason the group control does not show up as a property of the screen.

Here is the code for SaveAuthor:

partial void SaveAuthor_Execute()
{
    // Write your code here.
    this.ArticleProperty.Author = propAuthor;
    this.Save();
}

image

This works perfectly. When I click Save Author, the new author is added to the article, and both are saved. Admittedly the screen layout leaves something to be desired; when I have worked out what Weighted Row Height is all about I will try and improve it.

image

Before I finish, I must mention the LightSwitch Publish Wizard, which is clearly the result of a lot of work on Microsoft’s part. First, you choose between a desktop or web application. Next you choose an option for where the services are hosted, which can be local, or on an IIS server, or on Windows Azure.

image

Something I like very much: when you deploy, there is an option to create a new database, but to export the data you have already entered while creating the app. Thoughtful.

image

As you can see from the screens, LightSwitch handles security and access control as well as data management.

What do I think of LightSwitch after this brief exercise? Well, I am impressed by the way it abstracts difficult things. Considered as an easy to use tool for model-driven development, it is excellent.

At the same time, I found it frustrating and sometimes obscure. The local property concept is a critical one if you want to build an application that goes beyond what is generated automatically, but the documentation does not make this clear. I also have not yet found a guide or reference to writing code, which would tell me whether my use of FindControl was sensible or not.

The generated applications are functional rather than beautiful, and the screen layout designer is far from intuitive.

How is the target non-developer developer going to get on with this? I think they will retreat back to the safety of Access or FileMaker in no time. The product this reminds me of more is FoxPro, which was mainly used by professionals.

Making sense of LightSwitch

So what is LightSwitch all about? I think this is a bold effort to create a Visual Basic for Azure, an easy to use tool that would bring multi-tier, cloud-hosted development to a wide group of developers. It could even fit in with the yet-to-be-unveiled app store and Appx application model for Windows 8. But it is the Visual Basic or FoxPro type of developer which Microsoft should be targeting, not professionals in other domains who need to knock together a database app in their spare time.

There are lots of good things here, such as the visual database designer, the Publish Application wizard, and the whole model-driven approach. I suspect though that confused marketing, the Silverlight dependency, and the initial strangeness of the whole package, will combine to make it a hard sell for Microsoft. I would like to be wrong though, as a LightSwitch version 2 which generates HTML 5 instead of Silverlight could be really interesting.

Microsoft promises Silverlight 5 beta soon, more love for HTML 5 in uncertain blog post

Microsoft has promised to deliver a Silverlight 5 beta at the Mix conference next week. The team posting is by Walid Abu-Hadba (Corporate VP of Developer and Platform Evangelism), Soma Somasegar (Senior VP or Developer Division) and Scott Guthrie (Corporate VP of .NET Developer Platform) and seems intended to clarify the company’s much-debated strategy concerning Silverlight vs HTML 5:

we have received questions from the community about the future of plug-ins, and how Silverlight is viewed as part of an overall solution set. We’ll provide clarity, background and context below

Despite the high-powered authorship though, the post tells us little. I mean, can you get vaguer than this?

HTML5 is a solution for many scenarios, and developers should make the appropriate choice based on application needs, knowing that we have a heritage and a future vision of supporting a wide variety of technologies to meet those needs.

This sentence is considered so perfectly nuanced that it is repeated at the end of the post.

If you enjoy reading between lines, there is a phrase to ponder here:

Over the coming months we’ll be particularly demonstrative of our emphasis on HTML 5, in Internet Explorer and in tools.

I’m hearing noises about Visual Studio 2012 now, and I imagine we will see some HTML 5 tooling there. I would expect it to include support for rich ASP.NET clients talking to WCF RIA Services or maybe  WCF Web APIs as well as things like the ASP.NET Membership Framework; and I would expect JQuery and ASP.NET Ajax to figure strongly.

I do not think Silverlight is dead though; apart from its role in Windows Phone, we are hearing rumours about the AppX application model in Windows 8 which looks a lot like Silverlight; and I have already noted the extensive use of Silverlight in Microsoft’s own products. I would rather hear the developer division VPs discuss this aspect of Silverlight, rather than reiterate corporate angst over how it relates to HTML 5. I would also like to see a post signed by the Windows team as well as by developer division.

Windows Phone 8 will run Windows 8, with Silverlight centre stage?

More information on Windows 8 is leaking out now; and it gives some clues about how Microsoft intends to make sense of its two device platforms, Windows tablets and Windows Phone.

Microsoft held back from making its Windows Phone 7 OS available on tablets, which is why most of the numerous tablets being pushed out to compete with Apple run Google Android, and a few of them Windows 7 with its excessive power requirements and a user interface poorly designed for touch control.

Now the strong rumour is that Windows 8 supports two user interfaces, one that is tile-based like Windows Phone 7, and another that is designed for PCs.

In other words, rather than continuing with the Windows Phone 7 OS which is built on Windows CE, Microsoft will build a new version of the Windows Phone 7 UI on top of full Windows.

My further assumption is that Silverlight apps will still run on the new OS, providing continuity with Windows Phone 7 which uses Silverlight or XNA, both based on .NET, for its application platform.

Silverlight might also be used as the platform for apps delivered by the new Windows app store. This is Paul Thurrott, though reported as rumour:

Windows 8 will also include a new app model codenamed Jupiter that will target a new Windows Marketplace app store. The app store will provide access to new, Silverlight based "immersive" applications that are deployed as AppX packages (.appx). The Windows and Office teams are betting very heavily on this new app type, according to my source, and development has already begun using a beta version of Visual Studio 2012. These apps can be written in C#, Visual Basic, and even C++.

We do know that Silverlight 5 supports full platform invoke of native code, a feature which tends to support the idea that it is becoming a key runtime for Windows.

Let me speculate a little further. Imagine you are Adobe, for example, which has said it will deliver the Flash runtime for Windows Phone. Although it competes with Silverlight to some extent, Microsoft needs to tick the Flash box for Windows Phone. But why would Adobe want to invest in Flash for Windows CE, when this OS is not going to be used for Windows Phone 8 and it will have to write new code? I will not be surprised if we hear that Flash is now not coming until Windows Phone 8.

Even within Microsoft itself, I would guess that investment is focused on the next generation rather than the one that is destined to be short-lived.

One partner that is no doubt close to Microsoft’s plans is Nokia. If the above is correct, then Nokia is buying into the Windows OS, not the Windows Phone OS. Will Nokia wait for Windows Phone 8 before launching devices on the platform? I have no idea – and delay will be costly – but I imagine its main plans will be focused on Windows Phone 8 and the possibility of tablet as well as smartphone devices.

The immediate conclusions would be:

  • Silverlight is safe as a development platform, but only for Windows. See also Silverlight the new Windows runtime, HTML 5 the new Silverlight?
  • The Windows Phone 7 OS will be short-lived but the new UI should be a natural progression from what we have now, and apps should still run, so Microsoft can position Windows Phone 8 to users as a new version of Windows Phone rather than a change of direction.
  • Microsoft will not have a coherent mobile and tablet platform until Windows 8 ships sometime in 2012. Google, Apple, RIM, HP, all have plenty of time to establish their competing platforms.

Appcelerator CEO on Titanium, Aptana and the future of mobile development

I met with Aptana CEO and co-founder Jeff Haynie at the Mobile World Congress in Barcelona last month.

Appcelerator’s main product is Titanium, an SDK which takes HTML and JavaScript source files and compiles them to native apps for several platforms, including Windows Mac and Linux on the desktop, and Google Android or Apple iOS for mobile. RIM Blackberry support is in preview. Appcelerator has recently acquired the Aptana IDE for HTML, JavaScript, CSS, Ruby on Rails, Python and Adobe AIR. The company has also partnered with Engine Yard for cloud-hosted Ruby on Rails applications to deliver web services to clients built with Titanium.

Haynie says that mobile is currently a three-horse race between Apple iOS, Google Android, and RIM Blackberry; but he expects further diversification. Microsoft Windows Phone is under consideration, and he says that cross-compiling to Silverlight would be possible for Titanium:

It’s a .NET SDK, we would have to build a translation into Silverlight. That’s how we do it for iOS, we translate code into Objective C. We don’t think it’s technically insurmountable.

I asked about the Appcelerator Freemium business model. Titanium is open source and you can download and use the SDK commercially for free. Haynie says it works well because companies can do a full evaluation and get to understand the value of the software fully before deciding whether to purchase. However he emphasised that larger companies, other than non-profits, are expected to take out a paid subscription.

This point could do with clarification. Indeed, the Appcelerator Plans and Pricing page shows Titanium Indie which is free but for companies of less then 25 employees, and other editions which are paid-for. But as far as I can tell there are no restrictions on the SDK. See the FAQ which says:

Can I use Titanium for a commercial application?

Yes. You can use Titanium in both a personal and commercial application regardless of what your license or price is.

What is your License?

The Titanium SDK is licensed under the Apache Public License (version 2).

I also took the opportunity to ask about Adobe AIR support in Aptana. It strikes me that this is under threat following the acquisition, since AIR competes with Titanium. Haynie was just a little evasive, but at the same time impressed me with his attitude:

Obviously we have a competitive platform from Adobe AIR. But we want developers to have the best choice, the best tools possible. So competitively we need to build the best product. If AIR is a better product and people want to use Aptana to build AIR apps, then fine. That means we need to continue to work to make a better runtime for the desktop.

Nevertheless, Haynie implied that AIR support will only continue if Adobe supports it; I am not sure what support means in this context but I think it includes a financial contribution:

We’re with Adobe on trying to figure out where we go from here … we have to spend a lot of money to support that, so we’re making sure that we’ve got Adobe’s support behind that.

I am not sure what Adobe gains from Aptana support, given that it has its own Eclipse-based IDE called Flash Builder, so I would not bet on there being significant updates to the current AIR 1.5 plug-in.

Finally, Haynie emphasised what to me are familiar themes in talking about the direction for Titanium and Aptana. Cross-platform visual design tools; designer and developer workflow; and integration in a single IDE of rich client and cloud back-end. This integration has long struck me as one of the best things about Microsoft’s Visual Studio, so it is interesting to see the theme reappear in a cross-platform context.

What I enjoyed about the interview is the way Haynie communicates the huge change and volatility that has arrived within the software development world, thanks to the impact of cloud and mobile. Times of change mean new opportunities and new products. Titanium has plenty of competition, but if Appcelerator is able to deliver a robust, cloud to device, cross-platform toolkit, then it will have a bright future.

I have posted a transcript of most of the interview.

Microsoft backs Telefonica’s BlueVia mobile SDK – but the market is fragmented

Announced at Mobile World Congress last month, BlueVia is Telefonica’s effort to attract developers to its app platform. Telefonica is the largest phone operator in Spain and also owns O2 in the UK, and has various other operations around the world.

In this case though, “Platform” is not just the devices connected to Telefonica networks, but also services exposed to apps via newly published APIs. BlueVia has APIs for sending and receiving SMS messages, delivering mobile ads, and obtaining information about the current user through a User Context API.

Things like sending a text from an app are nothing new, but a difference is that BlueVia will pay the developer a cut from the revenue generated. Along with ads, the idea is that an app can generate a revenue stream, rather than being just a one-off purchase.

The news today is that Microsoft is backing BlueVia with a toolset and marketing to Windows platform developers. There has been an SDK for Microsoft .NET for some time, but today Microsoft and BlueVia have delivered a new SDK for .NET which includes both server and client side support for the BlueVia APIs. On the server, there are templates for Windows Azure and for BlueVia ASP.NET MVC2 and WCF (Windows Communication Foundation) applications. On the client side, there are Silverlight controls such as a DialPad, an Advertising control, and a text to speech control. Microsoft also provides hooks to Windows Live Services in the hope that you will integrate these with your BlueVia applications.

The snag with developing your app with BlueVia APIs is that it will only work for Telefonica customers, thus restricting your market or forcing you to code to different APIs for other operators. “If you want to expose an API in the way that Telefonica is doing, you need to be a Telefonica customer in order to be able to use it,” says Jose Valles, Head of BlueVia at Telefonica.

If you further restrict your app’s market by targeting only Windows Phone, it gets small indeed.

Valles says there is hope for improvement. “We are working with the industry and with WAC in order to standardise this API,” says, assuring me that the reaction is “very positive”. WAC is the Wholesale Applications Community, a cross-industry forum for tackling fragmentation. Do not count on it though; it strikes me as unlikely that a cross-industry group would accept BlueVia’s APIs as-is.

There is also a glimpse of the challenges facing developers trying to exploit this market in the BlueVia forums. This user observes:

During the submission process we could only submit the app for a single device model while it is actually supported on hundreds of models. So please also explain how to specify all the supported models during the submission process

The answer: BlueVia has defined around 20 groups of compatible devices, and you can only upload your app for one at a time. 20 uploads is better than hundreds, but still demonstrates the effort involved in trying to attain any kind of broad reach through this channel.

BlueVia is in beta, but Valles says this will change “in the next few weeks”. That said, it is already up and running and has 600 developers signed up. “It is already commercial, whoever wants to come in just needs to email and we will send it to him,” he says.

The idea of the operator sharing its ongoing revenue with app developers is a good one, but be prepared to work hard to make it a reality.