Category Archives: software development

Visual Studio goes online, kind-of

Microsoft held its official launch for Visual Studio 2013 today, at an event in New York, although the product itself has been available since mid-October. VP Soma Somasegar nevertheless made some new announcements, in particular the availability in preview of an online Visual Studio editor, codenamed Monaco. “Developers will now be able to edit their sites directly from the web, from any modern browser, on any device,” said Somasegar on his blog.

Monaco is not intended as a replacement for the desktop IDE. Instead, it parallels what Microsoft has done with Office, which is to provide a cut-down online editor for occasional use. Monaco currently targets only web applications running on Azure, Microsoft’s public cloud platform. The technology is not altogether new, since it is built on the same base as “Napa”, the online editor for Office 365 applications.

image

At the launch, Monaco was demonstrated by Erich Gamma, of Design Patterns and Eclipse fame, who says he uses it for real work. He assured us that it is built on web standards and compatible with iOS and Android tablets as well as desktop browsers.

Online editing with Monaco is only one part of what Microsoft now calls Visual Studio Online. The product also includes a hosted version of Team Foundation Server, offering source code control, collaboration tools, and an online build service. These features were already available as part of Team Foundation Service, which is now replaced by Visual Studio Online. If you are happy with the cut-down Visual Studio Express, or already have Visual Studio, then subscription is free for teams of up to five users, with additional users costing $10 per user/month for an introductory period, and rising to $20 per user/month.

Microsoft is also offering Visual Studio Online Professional, which bundling desktop Visual Studio Professional with these online services, for teams of up to 10 users, at $22.50 per user/month rising to $45.00 per user/month. This follows the same model which Adobe adopted for its Creative Cloud, where you get cloud services bundle with tools that run on the desktop.

Pay even more and you can get Visual Studio Online Advanced, which oddly does not include the Professional IDE, but supports unlimited users and has additional reporting and collaboration features, for $30 rising to $60 per user/month.

When does the introductory offer expire? It’s until further notice – 30 days’ notice will be provided before it ends. Confusing.

Somasegar also announced the preview of a new online service called Application Insights. This service analyses and monitors data from .NET or Java applications running on Windows Server or Windows Azure, and .NET applications on Windows Phone 8, reporting on availability, performance and usage.

Another new service is Elastic Load Test (not to be confused with Amazon’s Elastic Compute Cloud), which simulates multiple concurrent users for testing the performance and behaviour of an application under stress. This requires the expensive Visual Studio Ultimate with MSDN subscription, and offers 15,000 virtual user minutes per month, with additional virtual user minutes at $.001 each.

Finally, he announced a partnership with Xamarin to enable development for iOS and Android in C# and Visual Studio, extending the existing Portable Class Libraries so that non-visual code can be shared across different Windows platforms as well as the new mobile target platforms.

I spoke to Xamarin’s Nat Friedman about this and wrote it up on the Register here.

Microsoft’s strategy here is to persuade existing Windows developers, familiar with C#, Visual Studio, and both desktop and ASP.NET applications, to stick with Microsoft’s platform as they migrate towards cloud and mobile. In this context, the heart of Microsoft’s platform is Windows Azure and Office 365, which is why the company can tolerate iOS or Android clients.

The company will also hope that a proliferation of apps which integrate and extend SharePoint online will help drive subscriptions to Office 365.

The latest Visual Studio includes a new Cloud Business App project type, which is an app that sits on Windows Azure and integrates with SharePoint in Office 365. Coding in Visual Studio and deploying to Azure, both for Cloud Business apps and ordinary web applications, is now an easy process, reducing friction for developers deploying to Azure.

More information on Visual Studio Online is here.

ComponentOne’s TouchToolkit for Windows Forms: another approach to the Windows tablet problem

Software component vendor ComponentOne has released Studio Enterprise 2013 v2.5, the latest in its suite of components, with support for Windows 8.1 and Visual Studio 2013.

The piece that caught my eye is the TouchToolkit for Windows Forms.

image

Here’s the problem. The Windows desktop is poor with touch control, which is why Microsoft created Windows 8 with its alternate, touch-friendly Windows Runtime platform. However users are resistant to the changed user interface, and it does not help with existing desktop apps.

Developers are also faced with a question of simple mathematics. Develop a Windows 8 Store app, get a market of x. Develop a Windows desktop app, get a market of many times x, since Windows 8 can run desktop apps, but Windows 7 cannot run Store apps.

Embarcadero approached this problem with a framework called Metropolis, for Delphi and RAD Studio. It builds apps that mimic the Windows Runtime look and feel, but which are actually desktop apps. Of course they do not run on Windows RT, the ARM version. It is a confusing solution in my opinion, leading users into what Martin Fowler calls the Uncanny Valley, where stuff works almost but not quite how you expect.

I prefer the thinking behind the TouchToolkit. Take your existing Windows Forms apps, or write a new one, using these controls to make them more touch-friendly. They will never be as well suited to touch control as a Store app, but they might be good enough, and of course will run on Windows 7 and earlier versions.

The controls include a magnifier, support for zoom gestures, and a touch event provider that adds gesture support to any control.

Windows Forms, we all know, is not as good as WPF if you want an application that scales nicely and supports modern design. On the other hand, Windows Forms is pragmatic and easy to use framework that remains popular for line of business apps.

Appcelerator plans to rethink Titanium architecture, standardise on WebKit JavaScript engine

Appcelerator CEO Jeff Haynie has posted about his plans for Titanium, the company’s cross-platform mobile development toolkit.

The plan is to completely rewrite the core engine, while maintaining a mostly-compatible API. Central to the plans is the idea of using one JavaScript engine on all platforms:

With Ti.Next, we’ve created a small microkernel design that will allow us to have minimal bootstrap code in the native language (C, Java, C#, etc) that talks to a common set of compilers, tools and a single JavaScript Virtual Machine. We have found a way to make the WebKit KJS VM work on multiple platforms instead of using different VMs per platform. This means we can heavily optimize the microkernel (herein after called the “TiRuntime”) and maintenance, optimizations and profiling can be greatly simplified. We’re talking about ~5K LOC vs. 100K LOC per platform.

This will make it possible to share almost all the Titanium code itself across all platforms. The Titanium runtime itself will be shared code written in JavaScript.

Appcelerator says that Titanium code will be “faster than native code in most situations.”

No date for Ti.Next is given though according to this slidedeck the plan is to have the “first set of developer builds available soon to GitHub repo – possibly in the next 45-60 days”. It adds, “production builds are a ways away.”

Using a WebKit JavaScript engine on Windows Phone, for example, sounds interesting.

Anders Hejlsberg says C# 6.0 to use Roslyn compiler, coming in next Visual Studio after VS 2013

A disappointment at Microsoft’s Build conference last month was lack of news about the next version of C#, version 6.0. C# architect Anders Hejlsberg did present a session, but it was on TypeScript, a language which compiles to JavaScript.

Aside: Hejlsberg talks about the new Xbox music app in Windows 8.1 (and Xbox One) which is written in JavaScript. It is a large app with 500,000  lines of code, and new features are now implemented in TypeScript (30,000 lines so far).

However, Hejlsberg did also talk about C# 6.0 at Build, during this Channel 9 Q&A, though you have to scroll through to reach the C# content (about 34 minutes in).

image

He confirmed that C# in Visual Studio 2013 is the same as before, but there will be new previews of the forthcoming “Roslyn” compiler soon, and that C# 6.0 will be in the “next Visual Studio after” which suggests Visual Studio 2014, presuming Microsoft sticks to its annual release cycle.

“We are at a point where the Roslyn compilers are done,” he said.

Roslyn, Hejlsberg explained, is the new compiler for “C#, and VB, and the language services in the IDE.”

Roslyn performance will be at least as good as the existing native compiler, says Hejlsberg. It is better suited to parallel processing so will take advantage of multi-core machines, “particularly for large projects.”

You can read more about Roslyn here. Microsoft describes it as “opening up the Visual Basic and C# compilers as APIs.” Practical benefits include features like instant porting of VB code to and from C#, and the use of C# and VB as macro languages within a .NET application.

Hejlsberg also says that Roslyn will enable a faster pace of evolution for C# in future.

Another aside: Xamarin, which provides a compiler for C# targeting iOS and Android, gets a nod of approval from Hejlsjberg. “I’m a great fan of their work,” he says.

Blogger (and former Microsoft Excel developer) Wesner Moise provides a transcript of the key points.

Mobile developer survey: Apple iOS most profitable platform, but even Windows Phone is viable

Vision Mobile has released the results of a survey of 6000 mobile developers, sponsored by Blackberry and Mozilla.

Reading through the survey reminds me that despite the critical importance of apps to mobile platforms, surveys which look at developer intent are poor predictors of the future health of specific platforms. High interest or even affection for some new platform tends to dissipate quickly if platform adoption is poor.

Developers influence the success of a platform by developing (or not developing) desirable apps, but this is only one among many factors. Others include:

  • Mobile operators: which devices are they promoting and subsidising most?
  • Devices: which has the right blend of looks, usability and features?
  • Fashion: which smartphones are my friends using?
  • Price: which devices are best value?
  • Marketing: which vendor is doing the best job?
  • Enterprise: in business, security and manageability are important

The report confirms the dominance of iOS and Android and is generally down on Windows Phone while there are more optimistic remarks than I had expected about Blackberry 10 and Firefox OS (but note the sponsors).

Here is a stat that caught my eye though:

Monthly Revenue per developer per platform:

  • $5,200 iOS
  • $4,700 Android
  • $3,600 Windows Phone
  • $2,900 HTML5
  • $1,200 Blackberry 10

There is more money in iOS and Android, but Windows Phone and to some extent HTML5 is financially viable too. On niche platforms like Windows Phone, I guess there is a benefit in having less competition.

Adobe Creative Cloud giveaway at Microsoft Build: sign of a new alliance?

At Microsoft’s Build conference last week, one among a number of giveaways to all attendees was a year’s subscription to Adobe’s Creative Cloud. This was announced by Developer and Platform Evangelism VP Steven Guggenheimer during the day 2 keynote.

image

Creative Cloud costs $49.99 (or £39 + VAT) per month for an individual subscription.

Guggenheimer in effect said that the gift came from Adobe; he suggested that “you guys should send them a nice email”.

The stated purpose of the giveaway is to promote the Digital Publishing Suite (DPS). Creative Cloud comes with DPS Single Edition, which lets you create rich, interactive magazine content and publish it to the iPad and Android. Announced at Build was DPS support for Windows 8.1 in “late 2013”; a sign if nothing else that Adobe is taking Microsoft’s tablet platform seriously.

The odd aspect though is that Build is a developer conference and not quite the right target audience for DPS. On the other hand, there are numerous tools in Creative Cloud that are well suited to developers, including the Edge web content tools, PhoneGap Build, and of course the mighty Photoshop for image editing.

Adobe’s Adam Lehman was interviewed at Build about the Creative Cloud tools, especially Edge, here.

Microsoft is no longer trying to compete with Adobe on design tools. Expression Web and Expression Design have been discontinued. The Flash versus Silverlight wars are also consigned to history, making it easier for these two companies to work together.

Microsoft Build 2013: Love the platform?

The paradox of Microsoft: record revenue and profits, but yes, Windows 8 has been a disaster so far, and the company has lost developer and consumer mind share.

That might explain why there was no lack of availability for tickets to Build in San Francisco. With a smart PR move, Microsoft “sold out” of a limited first allocation, then made more available, and you could register right up to the day before. Attendance estimates are around 4,500.

image

The atmosphere was good though, and someone remarked to me that it felt a bit like an early Mix event, Microsoft’s web and design conference back in Silverlight days.

Blue was the colour; and for me Build 2013 was a Windows 8.1 event, though attention was also given to Windows Azure and Windows Phone.

Microsoft has two goals with Windows 8.1.

One is to placate users who essentially want Windows 7.1 and have been wary, confused, or worse, in their reaction to the Windows 8 Modern (or Metro, or Windows Store) user interface.

The other is to establish a new tablet platform, something which has yet to happen despite significant numbers of Windows 8 installations out there since the launch.

There was solid progress on both these fronts at Build, though whether it was enough is of course open to debate. Windows 8.1 is a nicer experience, especially for desktop users, and the user interface feels more elegant and refined than Windows 8.0.

No matter what you may have read elsewhere though, Microsoft is not backtracking. The focus at Build was on the new app platform and its improvements. Developers I spoke to were generally happy with these. “It’s caught up with Silverlight”, one told me.

At Build 2011 and 2012 there was some disappointment among developers, that Microsoft seemed to be pushing HTML and JavaScript above C# and .NET, for its new app platform. There was a perception at Build 2013 that this is no longer the case, though C# architect Anders Hejlsberg spoke on TypeScript (which compiles to JavaScript) rather than C# at his session; and a Microsoft engineer I spoke to denied that there had been any change of direction internally; the official line is that this is developer choice.

In practice, the developer choice tends to be C#, which dominated the session examples, and there was no more gossip about Microsoft abandoning .NET.

Windows seems to be on a one-year refresh cycle now. No date has been announced, but the signs are that Windows 8.1 will follow one year after Windows 8.0, which means RTM (the release build) no later than August and machines on sale in time for the winter season.

Much was already known about Windows 8.1, so were there any surprises? The main one was the evolution of Bing. The key phrase is “Bing as a platform”.

Bing is much more than just a search engine. We’re always a platform company. As we’ve been building this great search experience, we’ve actually been building this rich platform.

said Program Manager David Robinson in this session. Bing services are not just search, but also speech recognition (as seen on Xbox) so that developers can create “natural user interfaces” with voice control, text to speech, and 2D and 3D mapping with driving directions.

The other twist on this is the new search app in Windows 8.1. The way search works in Windows 8.1 has changed quite a bit. Search within an app should no longer rely on the Charms menu, and developers are expected to put a search box into their user interface. Search in the Charms menu is a system search, that integrates local and web results. Thus, if I search for Build, I get the Build apps, local documents mentioning Build, my own photos, web results relating to the building industry, word definitions, and so on. If I search for “Event viewer”, I get the control panel applet, a Wikipedia entry, a couple of Microsoft support articles, and then a general web search with infinite scrolling to the right. If I search for a celebrity, I get a rich multimedia view.

image

The search engine here is not pluggable; only Bing will work. This is smart strategic thinking, since it is at once a compelling app, an easy way to navigate Windows, and a way of building search share for Bing.

There are some details of search yet to be revealed. In particular, I asked how an app can integrate its own content into an “Everywhere” search, and was told it has yet to be announced (even though Windows 8.0 has a search contract that you would have thought would fit perfectly here).

My own experience of Windows 8.1 is positive, though since I have little difficulty with Windows 8.0 I am not a good test case as to whether it will win over those sticking with Windows 7. The Start button is mostly cosmetic, but I suspect I will find myself right-clicking it frequently to bring up the Win-X menu, now complete with Shutdown option.

Surface RT is greatly improved by the update. There is some performance gain, and the addition of Outlook to the RT desktop makes it twice as useful for businesses using Exchange or Office 365. Windows 8.1 also comes with Internet Explorer 11 with WebGL and some user interface improvements.

Microsoft does feel somewhat diminished these days, thanks to the decline of the PC and its smaller area of dominance, despite its continuing healthy financials. Can the company recover any of that ground? To do so it has to drive adoption of the tablet personality in Windows 8. Microsoft has made a poor start, but it may yet come together.

At a sparsely attended session on The Story of Bringing Nokia Music from Windows Phone to Windows 8 the Nokia Design Principles caught my attention:

image

The speakers conveyed real enthusiasm for the last of these, “Love the platform”, which is something I have not often encountered in the context of Windows 8.0, especially as the first release felt rough and not-quite-ready from a developer perspective. There is no doubting its potential though, and if Microsoft can win a bit more developer love with the 8.1 release, then we may see growth. 

Visual C++ will implement all of C++ 11 and C++ 14, some of C99 says Microsoft

Microsoft’s Herb Sutter spoke at Microsoft Build in San Francisco on the future of C++.

image

Microsoft has been criticised for being slow to implement all the features of ISO C++ 11. Sutter says most features are now included in the public preview of Visual Studio 2013 – which has a “Go Live” license so you can use it in production – including the oft-requested variadic templates. The full list:

  • Explicit conversion operators
  • Raw string literals
  • Function template default arguments
  • Delegating constructors
  • Uniform int and initializer_lists
  • Variadic templates

More features are coming in the RTM (final release) of Visual Studio 2013 later this year:

  • Non-static member initializers
  • =default
  • =delete
  • ‘using’ aliases

A technical preview will then follow and Sutter listed possible features of which there will be a subset. Full conformance will follow at an unspecified time.

Microsoft is also promising a full implementation of C++ 14, the next update to the standard, even though the exact specification is not yet fully agreed. Some C++ 14 features will be implemented ahead of C++ 11 features, if they are considered to add high value.

Two other points of interest.

Async/await (familiar to C# developers) will be implemented in the post-RTM CTP because it is such a useful feature for Windows Runtime app developers, even though it is not part of the ISO standard.

Finally, Microsoft will also several C99 features in the RTM of Visual Studio 2013:

  • Variable decls
  • C99_Bool
  • compound literals
  • designated initializers

The reason for implementing these is that they are needed to compile popular open source libraries like FFmpeg.

I asked Sutter why Microsoft is not planning full conformance to C99. He said it was a matter of priorities and that work on C++ 11 and C++ 14 was more important. If there are particular additional features of C99 developers would like to see implemented, contacting Sutter with requests and rationale might eventually yield results.

image

Microsoft Build: Windows 8.1 for developers, Visual Studio 2013, Xamarin for cross-platform

Microsoft’s Build developer conference is getting under way in San Francisco.

image

Today Microsoft is expected to announce the public preview of Windows 8.1 together with technical details of what is in the latest Windows update. Sessions include What’s new in the Windows Runtime (the tablet platform in Windows 8), and what’s new in XAML (the interface design language for Windows 8) and WinJS (the interop library for apps written in HTML and JavaScript).

Gartner’s Hype Cycle for new technologies runs from the Peak of Inflated Expectations through the Trough of Disillusionment, eventually settling at the Plateau of Productivity. Inflated expectations for Windows 8 – the iPad killer – expired many months back and we are well down in the trough, with little momentum behind the Windows 8 tablet platform, OEM partners still searching for the right way to package Windows 8 and coming up with unsatisfactory and expensive hybrid creations, and iPad and Android tablets ascendant.

At this point, Microsoft needs to win over its core market, much of which is determined to stick with Windows 7, as well as injecting some life into the tablet side of Windows 8. The platform has promise, but it is fair to say that the launch has been difficult.

The advantage now is that Microsoft is in a period of incremental improvement rather than reimagining Windows, and incremental improvements are easier to pull off. More reports soon.

The schedule also includes news of Visual Studio 2013 and there is likely to be a new preview for this as well. A smoothly integrated development platform across Windows client, Windows Phone, and the Windows Azure cloud, with a dash of XBox One for game developers? Microsoft has all the ingredients but with questions about whether it is able to deliver, as it is currently losing the battle for the client (PC and devices).

One answer for C# developers hedging their bets, or just trying to take advantage of the huge iOS and Android market, is the Xamarin toolset which lets code in C# and .NET and share non-GUI code across all the most popular platforms. Xamarin hosted a large party for Microsoft-platform developers last night in San Francisco. Xamarin’s approach is winning significant support, since it ensures a native GUI on each platform while still sharing a large proportion of your code.  Mono and Xamarin founder Miguel de Icaza was there to evangelise the Xamarin tools.

image

There was also a giant Jenga-like game. Here’s hoping that neither Xamarin’s nor Microsoft’s development stack looks like this.

image

Not just Instagram: the Windows Phone (and BlackBerry, Firefox OS) app problem

I like the Windows Phone OS and use one day to day. However it has become impossible to do my job in technical journalism without either an Apple iOS or Android device alongside it. The reason is that I review gadgets and find increasingly that they come with app support – but only for iOS or Android.

The Fitbit exercise tracking gadget, for example.

image

Or the Corsair Voyager Air wireless hard drive, almost inaccessible from Windows Phone (you can do it with a firmware update and DLNA).

 

image

Or the Seagate Wireless Plus. Actually this one is better as it has a web UI, but no app.

image

My bank is Nationwide and has an app – uh oh.

image

It’s not just Instagram.

image

Where do Microsoft and Nokia go from here? Or other contenders like BlackBerry and Firefox OS? The answer of course is to sell lots of devices so that discontented users beat up the companies that do not support them. But selling lots of devices is difficult when the customer says, “it’s a nice phone, but it does not work with my portable hard drive. Or my bank. Or my Fitbit.”

The Mac survived versus the PC for many years with this kind of problem. It takes a loyal customer base and excellent 1st party and niche apps. There are still areas of strength which Microsoft and its phone partners could exploit (though they have been poor at this to date). Enterprise integration with Windows Server and System Center. Consumer integration with Xbox.

If the company can get it right with Windows tablets that would help too, especially combined with unification of the Windows 8 and Windows Phone app platforms.

Unfortunately for Microsoft though, the market has already decided that only two mobile platforms matter, and that will not be easy to change.