Fayde - Silverlight In JavaScript

2015-10-13 16:04:37来源:作者:人点击

There are programmers who think that Silverlight was an approach to creating web apps that put the desktop into the browser in the way in should be done. Microsoft killed Silverlight mainly for reasons of internal politics and because browser add-ins were getting a bad name. Now we have Fayde. which is Siverlight in JavaScript. What's to not like?

There are some Silverlight diehards, like me, who still mourn the death of the technology at the hands of a parent who suddenly didn't love it. This sudden change of heart was because it didn't fit with the crazy new direction Windows was headed off in and because office politics said so.

If you knew Silverlight then you will probably think of it as a good system. If you didn't know Silverlight then you most probably join in with the herd and say how pleased you are that a proprietary solution went down the pan and good riddance.

Now there is Fayde.Well to be honest Fayde has been around a while, but it has now reached a level of maturity that deserves your attention if you miss Silverlight.

Fayde is an implementation of Silverlight as a JavaScript compiler. It is not so much a reimplementation of Silverlight, more an XAML engine in JS. It can be used to port existing Silverlight projects, but not without some work. The demos are impressive and you can see the classic Todo example app running in a browser without any plugins.

The programming language is TypeScript and the XAMLis rendered onto a Canvas object where all of the UI is implemented. What this means is that Fayde replaces HTML/CSS and eliminates browser inconsistencies with XAML rendered controls in the Canvas object. In short, as long as the browser supports Canvas it all works. This means you can also deploy it to a desktop using node-webkit.

One thing Fayde does prove is how weak and useless our current HTML as programming platform is.

Perhaps it is time to rethink and treat JavaScript and Canvas as an assembly language for a virtual machine.

Currently it has all the Silverlight core controls, styles, templates and data binding. It also has some new controls and over time Fayde will become a superset of the Silverlight approach.

If you want to join the project you can as it is open source and on GitHub. You can create new controls using TypeScript - basically just render your control to Canvas.

The big problem with Fayde if you are an old Silverlight hand is that it doesn't use C# and it doesn't have the richness of support libraries that Silverlight had. There is a JavaScript for C# programmers conversion document, but this doesn't help much.

In fact documentation is something the project lacks. There is no hiding the fact that you are going to have to port your C# to TypeScript and there are lots of things away from the UI that you will discover you cannot port easily, or perhaps at all. The project is working on libraries for LINQ and WFC.

This is really a XAML rendering engine with support for the main principles of the Silverlight UI, mostly data binding.

This said, if you are looking to continue using a Silverlight approach to apps and are prepared to do some conversion Fayde could be the solution you are looking for. Given it is open source, you can be sure that it wont be nuked in some internal office politics.