Future of Windows Desktop Apps

After checking Windows Technical Preview 10 today I got second thoughts regarding the future of classic windows desktop apps.
When you take a look on windowed Metro Apps you see how smooth and natural they are. The new Mail App is beautiful:

It’s not just Eye Candy. Windowed Metro Apps are far better scaleable and responsive. They used to be like that before, but when windowed, this effect starts to make them look better immediately. Classic Window Desktop Apps in general - not only those made by Xojo - tend to look more and more alien on Windows itself.

After iOS and 64Bit I hope Xojo will refocus on Windows Desktops, adopting the new Framework and Metro UI Controls or at least the latest IDE Layout Engine.

[quote=160234:@Tomas Jakobs]It’s not just Eye Candy. Windowed Metro Apps are far better scaleable and responsive. They used to be like that before, but when windowed, this effect starts to make them look better immediately. Classic Window Desktop Apps in general - not only those made by Xojo - tend to look more and more alien on Windows itself.

After iOS and 64Bit I hope Xojo will refocus on Windows Desktops, adopting the new Framework and Metro UI Controls or at least the latest IDE Layout Engine.[/quote]

I have half a dozen apps written in new API (Metro) in the Windows Store. The issue is that the framework is not at all the same as Win32, and I doubt very much it is possible to tap into it from a desktop app. Actually, I am certain of it since the question is regularly asked in Msdn forums.

That said, the particular look and feel of Metro apps can be emulated in Xojo. The navigation icons on top of the screen are simply displayed in labels with a 36 points SegoUI font, and the icons on the left could be made with Windings, Webdings, or FontAwesome. Even if those particular ones in Outlook are custom.

Buttons can be emulated with canvases, and others do not require extraordinary steps to mimic.

Always remember a Metro app does not use windows, but acts pretty much as a browser, and you should be fine.

Microsoft gives guidelines for design at http://msdn.microsoft.com/en-us/library/windows/apps/Hh781237.aspx

For anybody familiar with iOS HUman Interface Guidelines, it will look strangely familiar :wink:

Windows Store apps (Metro) have the same drawback as iOS apps : they are made for the Windows Store, and to install them on a device is just as cumbersome as iOS, requiring the equivalent of a provisional profile.

I agree that desktop apps using the older set of controls look somewhat old fashion in comparison.

Ja but the strenght of Xojo is that it uses native controls on each platform. Just to rebuilt an UI with canvas and quirky listboxes is not an option.

I am probably one of the few here who has real experience of the Metro apps. I know for a fact it is IMPOSSIBLE to use new API controls in neither a .NET or Win32 (Xojo) desktop application.

So if using custom controls is not an option, neither is it to pretend having the Metro look in Xojo. When even Xojo uses custom controls for the IDE, why such a prejudice ?

Give up the idea to have native Metro controls, or get prepared to use VS…

BTW, the icons in a metro app ARE characters in the SegoeUI font within a label, and that is part of the Metro UI native interface.

Face it : if you want your app to look and behave like a metro app, you will not be able to simply hit a switch to generate a cross platform executable as you did in the past between Mac and Windows. Increasingly the design is too different. You will have to create an app specifically for Windows 10 that has all the attributes required. If you look at what happens with Yosemite, the same occurs, if one want vibrancy and stuff that belongs only to Yosemite.

Yes, one can create small apps that use old style native controls on both platforms. But if you want state of the art, dream no more.

Michel, to me it is clear that cross-platform doesn’t work without adjustment for each platform. I have to admit, that as Mac User I am not so familiar with current window development tools and the state of VS. So correct me when I am going wrong or missing something. As far as I know are Metro apps just Bundles of HTML and managed .NET code kinda comparable with former .HTA

You say that Metro Apps are not .NET either. So what is the logical path Xojo should go? Using Win32 is like riding a dead horse but whats coming next?

[quote=160265:@Tomas Jakobs]Michel, to me it is clear that cross-platform doesn’t work without adjustment for each platform. I have to admit, that as Mac User I am not so familiar with current window development tools and the state of VS. So correct me when I am going wrong or missing something. As far as I know are Metro apps just Bundles of HTML and managed .NET code kinda comparable with former .HTA

You say that Metro Apps are not .NET either. So what is the logical path Xojo should go? Using Win32 is like riding a dead horse but whats coming next?[/quote]

“Metro”, “New API” is the Microsoft equivalent of iOS. It has been created originally for Windows Phone and Surface, to support ARM. One can develop apps in HTML or JavaScript, but to do anything requires the Metro framework and toolset. Just like Mac OS X cannot have access to UIKit and the iOS framework.

Pretty much like Windows 8, VS Ultimate can address both .NET and new API. But you cannot mix the two. A VB application will be either .NET or new framework (they call it Windows Store) but not both. The only example of dual app I know of is Chrome, which can display with it’s “old” .NET interface as a Metro app and switch between the two modes. But out of the strong suspicion I have that it is actually using custom controls even in Desktop mode (controls slightly different), it brings the old look to Metro and not the reverse.

I frankly do not know at this point what Xojo should do. I have voiced often the feeling that they should finally, after so many years, embrace .NET. But to tell you the truth I am not even sure of that today. People who genuinely need .NET either use VB, or like me build DLLs to have the .NET features they need within xojo. And at this point I do doubt very much Xojo is willing to go .NET anyway. Or even that they have the resources for that. Or even the market. At the risk of being unfair, it has looked very much for all the years I used Xojo as if Windows was on a folding seat. Yes, RB did Windows. But kind of as a second language. For all I know, Linux will be first for 64 bit, followed by Mac OS X, and then Windows will follow, but without .NET.

Thanks to Microsoft, Win32 is an old but reliable horse. Windows 10 support for it is superb. From what Joe has been posting, it seems 64 bit does not require .NET, so if I understand right, we may have 64 bit Win32 (as strange as it sounds). That will provide 1GB memory more for applications, maybe faster execution.

Another thing to consider is that Metro is not an overwhelming success. All indications are the Windows Store is much less popular than one could have hoped. For my own, the same apps I have in both the MAS and Windows Store sell 20 times less. I’ll say that looks like a failure, for an OS which remains at 80% or so of the desktop market (Counting Chromebooks for their 16% plus the rest of Linux). I wish Microsoft had done like Mac, and opened it’s store to regular apps in a regular way, instead of making it so difficult to list desktop apps through onboarding.

At this point, Microsoft itself does not look very optimistic.

A 64-bit executable can access much, much more than 3GB of memory. The 2GB limit is for 32-bit executable on 32-bit or 64-bit versions of Windows. The 3GB limit comes into play when running a 32-bit executable that has the ‘large address aware’ flag set on a 64-bit version of Windows (or a 32-bit version that has the /3GB boot flag set).

I use this component suite for my .Net/Metro style apps. Not cross-platform, but my focus is Windows OS. I honestly wish Xojo would give more attention to Windows. It seems to me in the business world ( at least the ones I work with ) Windows OS is still the top platform. I don’t think I’ve ever seen a Mac in use other than one school… and I hear they will be going back to Windows soon.

https://www.devcomponents.com/dotnetbar/

I feel like Microsoft is correcting their direction slowly but surely. But like any big organization it doesn’t happen overnight and the problem is that we don’t know if the new direction will be any better than the current one. If (and that’s a big if) they can get their head out of their collective behinds Microsoft could be a force again and be a positive for the industry.

I’ve always felt that one of their strengths was their developer programs and backwards compatibility. They’ve kind of limped along in those areas in the past 6 or 7 years, in my opinion, due to constantly changing their mind and having some dubious products that aren’t (existing) developer friendly (their app store, Surface RT, etc).

I say all this as a long time Mac user/developer that always looked wistfully at all the shiny tools the ‘Dark Side’ had and the shear numbers of developers that used those tools.

Well, maybe we’re on the spot. Which direction will Window take? Michel, I do not share your pessimistic outlook and say Windows will keep its pole on Desktops for the next 10 years esp when talking about desktop business apps. But compared with modern, windowed and responsive Metro Apps, good old Win32 Apps look more and more alien.

Edit: I am now a Mac guy, but I say this as former windows guy too. You know why I switched to Mac 2006-2007? It was Exactly the same what you said Bob. As MSDN member I paid a lot money for Visual Studio with included “free” Licenses for several MS Servers but within 3 or 4 years Microsoft cut old VB6, introduced .NET Framework and changed it quite too rapidly and in some aspects radically. As small company I could not keep the pace, changing my basic routines and classes I am reusing in several customer projects each year only because Steve (Ballmer) had just wet dreams, again and again and again. Windows Vista and Office 2007 and the introduction of iPhone finally pushed me to Mac and Xojo.

[quote=160311:@Johnny Harris]I use this component suite for my .Net/Metro style apps. Not cross-platform, but my focus is Windows OS. I honestly wish Xojo would give more attention to Windows. It seems to me in the business world ( at least the ones I work with ) Windows OS is still the top platform. I don’t think I’ve ever seen a Mac in use other than one school… and I hear they will be going back to Windows soon.

https://www.devcomponents.com/dotnetbar/[/quote]

Yes this set is pretty cool and would accomplish all my wishes and needs for windows!

The pity (or chance for xojo) is: While CEOs or Managers more and more using Macs, the remaining rest uses Windows even without same company. I have 2 customers where I am serving Win+Mac versions of the same business software. Without Xojo I could not do this.

Windows is the overwhelming champion of the corporate world, and there is no reason for that to change in the coming years. So for all intents and purposes, the stable and tried present Xojo, or the coming 64 bit one should be good for that market.

My main concern is actually the very strange direction Microsoft has taken with Metro apps. When it had for 30 years revered backward compatibility and made it a real asset, the new framework is a prodigious pain in the you know what. Not code compatible with previous versions even VB or C, but much, much worse than the Xojo new framework, and of course VB desktop is not like Xojo able to accommodate the new framework. The Windows Store only on Windows 8 and accepting only new API when the biggest asset that platform has is the installed base. Their head is not in their behind, they simply lost it.

I agree that the Metro apps do look cool. But for having designed some, I should say that their UI reminds me furiously of web pages : full screen and navigation buttons, redesigned buttons but other controls rather classic (listbox, textarea, canvas, popupmenu, using Xojo terminology). The idea of a navigation bar on top kind of iOS like using buttons made with labels and some XML for the enclosing circle is nothing revolutionary, but a brilliant design. Altogether, the Metro apps by their very limitations (no windows) and design guidelines à la iOS forced developers to come up with much more modern apps. Now with Windows 10 they are no longer full screen and can be windowed. Good.

So WTF did they force that new API on us, if it is to end up with the same windows as regular desktop apps ? What is the real benefit of forcing the rewrite of applications that were perfect with the older API ? Not to mention the dismal failure of the Windows Store, the only place where one can sell these contraptions.

After wasting time producing Metro apps, a lot of developers having been burned by the Windows Store will probably do like me : run away so fast, I am still running. I rather suffer through the worst Apple reviewer than spend hours creating apps with a greenish new API that simply does not sell, as glitzy as may be.

About glitz, I do repeat what I posted before : a Metro app is not much more than a well designed full screen app with nice colors, plenty of space, a SegoeUI navigation bar on top, and a lot less controls than some old fashion Windows apps with more pimples than on a 16 years old moron’s face.

Incidentally, looking at the dotnetbar, I cannot help but to feel itself is rather old fashioned, with a crammed interface and more controls than a Boeing 747 cockpit.

I do however find their Metro Style user interface at http://www.devcomponents.com/dotnetbar/metro-ui-controls.aspx to be exactly what I talked about : the design is all it is. And it can be emulated easily with canvases
http://msdn.microsoft.com/en-us/library/windows/apps/bg182878.aspx

Now, for me the next step is probably not clumsy Windows Store new API apps that are a closed as a nut, and sell (not well) only there, but Desktop apps with a Metro-style interface. If that has to be done with custom controls, be it. After all, what counts is the final result. Not adherence to an old catechism.

If I was to wait for Xojo iOS to have all the native controls, I will probably not be able to release an app before next year. I rather use custom controls I can design fairly easily and have it right away on the market. The same seems to apply to the generation 10 Windows.

As an aside, will they be calling the new version Windows X? And releasing point releases for the next 15 years? Windows X 10.0, Windows X 10.1? Maybe give them animal names like Rattlesnake and Cobra.

I do not think they are going to go animal names anymore. Windows Vista was Longhorn, and we all know how bad luck that was. But Windows 10 it is going to be, there no doubt about that. Not Windows X…

Haha they won’t dare this…

Quite the same thought when I saw this screen today… :slight_smile:

Wow, that’s a lot of frustration… but final UI result is not everything. My time is limited and customers only pay certain amount of hours or have fixed budget. So I try to get the job done with standard controls as far as possible, avoiding dead ends when using custom ones or bought ones, which are not maintained anymore in the worst-case (that’s the reason I am only buying plugins with included sourcecode, willing to pay higher prices for them).

Michel, thank you for this update on Metro “fresh from the front”. Didn’t know this and with this informationI would not recommend to follow the new API Metro track anymore. But I keep dreaming of dotnetbar for xojo and more love for the windows platform…

P.S. And the 747 has definitly less UI controls than dotnetbar or Windows…

[quote=160345:@Tomas Jakobs]My time is limited and customers only pay certain amount of hours or have fixed budget. So I try to get the job done with standard controls and methods, avoiding dead ends when using custom ones or bought ones, which are not maintained anymore in the worst-case (that’s the reason I am only buying plugins with included sourcecode, willing to pay higher prices for them).
[/quote]

I cited the controls I have used in my apps, and I assure you they do look the same in Xojo (or VB desktop) and Metro : Textfields, TextArea, Canvas, Image Wells, PopupMenu. The only control that definitely does not look alike is the button, but frankly it takes no more than five minutes to build the same with a bevelbutton.

If you take a few minutes to look at Metro apps design principles at http://msdn.microsoft.com/en-us/library/windows/apps/Hh781237.aspx you will notice that all they show can be done with simple canvases and pictures, plus labels or canvases containing dingbats used as buttons.

What makes Metro apps spectacular are not so much the controls, as the clean layout and the choice of colors. And really with only Winding and Webding fonts one can already do quite a lot in matter of tiles. Looking at the devcomponent Metro UI controls, I do not see anyone I cannot do in a minute or two with standard Xojo controls.

Metro apps are more a matter of design than engineering, as far as desktop goes (Windows Phone aside). For a while, I had considered porting a couple of my apps to the ARM Surface. After the utter failure of that platform and now the generalization of tablet PCs, I see no interest in Metro apps anymore. But being able to produce good looking desktop apps that support touch elegantly is paramount to thrive in the coming years. I really cannot see a Surface user accustomed to the touch interface appreciate an old fashion, crammed, grey and dull application anymore.

I agree, yet I still find myself hating the whole ‘big button preschool’ feel of the new UI
It’s like interacting using a carrot, or driving wearing boxing gloves.
Its like ordering food in a restaurant by saying ‘ug’ and pointing at things.

[quote=160355:@Jeff Tullin]I agree, yet I still find myself hating the whole ‘big button preschool’ feel of the new UI
It’s like interacting using a carrot, or driving wearing boxing gloves.
Its like ordering food in a restaurant by saying ‘ug’ and pointing at things.[/quote]

Let us face it, we are dealing with a whole generation that does that :wink:

Besides, as show the link I posted to design principles, touch interface does not have to be make of childish colored tiles. What they show there is much more akin to iOS 8 than to early Metro yuky things.

As a matter of fact, and this could be the evil influence of Apple, I feel rather at ease in the Windows touch interface when I simply do away with tiles altogether and stick to icons and pictures.

That said, my PC does not have touch yet :wink:

The Metro Style for applications is actually a hybrid of HTML, XML, and JavaScripts which can interact with underlying system API’s through the .Net framework. They are not win-32/64 applications. Metro is not a “native” control system. If Metro was native, one would be able to create native metro controls through WinAPI alone…which is not possible. The application doesn’t have to be clunky and grey for touch users. That’s what UI design is all about.