Software companies want to become the King of the Hill, and define and lead the standards for a range of systems. Google an Apple have replaced Adobe and Microsoft as Kings of the Hill, especially as they basically control the code environment for their respective operating systems (Android and IOS). This is just code on one type of system though, and the challenge over the past decade or so is to get something that looks like a Windows desktop in a Web page, and which it is easy to program and integrate with proper code, such as C++, C# or Java. Unfortunately it’s a demanding challenging, requiring not only support for desktops and their operating systems, but also in supporting application in a non-native way, and in the size of the display.
So Adobe and Windows have both tried to push forward their lead by creating plug-ins for the Web browser, in a way of creating a Trojan horse, where the whole screen would become the plug-in, and we would only need a single HTML tag, which integrated the plug-in. We would then just have a properly desktop program running in a browser. For Adobe it was their Flash integration, and for Microsoft it was Silverlight. Unfortunately for Adobe, it managed to both be untrusted from a security point-of-view, Apple effectively killed off Flash by not allowing it on the iPhone. With Microsoft, the Silverlight plug-in was amazing in terms of producing a rich environment, but it has struggled to port to other non-Microsoft systems, along with it continually being updated.
The ultimate answer … but doomed!
Microsoft then tried to define a completely integrated development system with WPF (Windows Platform Foundation) in their .NET 3.x platform, which integrated directly with code, where you could script things in a scripting language (allowing designers to create interaction without the need for underlying code) or within the coding environment (typically using C# or VB.NET code). This allowed coders and designers to work together. The result is an XML standard known as WPF. It should have been the end-game, and the industry should have moved toward it, but the code was rendered on the back-end, and it would take a whole lot of time for many of the world’s Web servers to turn their ship around. A basic tutorial is here.
For WPF and Cardspace, it has been a difficult time, and Cardspace has now been almost completely wiped out by technologies such as OAuth 2.0, which are much more complete in their scope, and which give users just a simple “Click to log in with Google” approach. Cardspace tried too much to get in the way of the users, and tell them that this soft tokens were they way to provide a one-stop shop for their user credentials.
From Flash to Windows to MVC ASP.NET
A while back, it became obvious that developing for native code was ending, so Microsoft .NET was a good approach. Unfortunately, too, developing for a Windows environment was also limiting the range of devices that you could port to, so the only choice for us was to bite the bullet, and stop developing for Microsoft Windows and go towards Web development for all our systems. Our choice was MVC ASP.NET, and for this we have chosen well, as it allows us to carefully create three-tiered applications, where the code for the user interface doesn’t get mangled with all the other code. With the sites we are developing, we get a designer to produce the CSS, and we integrate it in with our code, at a single point, and that’s it! Any changes to the user interface can then be done at a single point. MVC ASP.NET also focuses on partial view design, were you are just updating a small part of the screen, which is perfect to avoid large-scale page reloads.
So the lowest common denominator …