This is interesting because I have been saying with the announcement of open sourcing .NET that I believe the more important part is that Microsoft is officially supporting cross platform .NET by bringing it to Mac OS X and Linux. The thought is that cross platform would initially at least expand the reach of .NET more than open sourcing it. Silverlight however, is already cross platform. It runs on Windows and OS X in the browser and also powers Windows Phone. So it has already proven useful both in and out of the browser. It also is possible to run SL apps out of the browser on the desktop. If SL were OSS and had with it a license that gave developers the freedom to create custom implementations, then I agree that using the previous applications of SL as motivation, that it could go places that Microsoft didn’t intend it to. During an interview on the VS Connect event earlier this week, Scott Hanselman said that the best practices won’t always come from Microsoft. Also, many inventions (like velcro) don’t end up staying in their domain in which they were originally imagined. So OSS can (and already has) proven to generate new ideas and I think that SL could be the ideal project to go open next. Granted, SL is not a great example of a wildly successful framework (especially compared to ASP.NET or C#) but that could be the best ideas on how to use it aren’t coming from inside Microsoft.
When I started with MonoDroid and MonoTouch (today Xamarin.Android and Xamarin.iOS) one of the first sentences that drew my attention were “it is Silverlight profile” and since then all ports of the libraries I needed was simply done in this way:
- create Silverlight dll
- copy code from original projec/dll to new one
- use project linker or manual adding to add files
- patch the differences
Silverlight was IMHO excellent tech. The problem is that software went from desktop to server (90’s) and to mobile. Normally it would be from smaller, less powerful to stronger more powerful so mobile to desktop to server and now early adopter companies like Microsoft have to breakdown their tech to pieces to enable “start small and grow (pay) as you need”
I like to explain everything through physics and human mentality is like pendulum. at the beginning everything was [generated] on the server, then we got Flash and great performance in graphics, because it was done locally. Silverlight followed. Then pendulum went other way and everybody said few megs download of flash or silverlight is too much. And those two technologies were doomed…
OK. Now somebody comes and tells: Standards! HTML, CSS, JS. HTML is not standardized (yet).
Though I prefer standards, the adoption is something that dictates standardization and adoption (dog is biting his tail). I was c++ dev for years and this language was pushed to margins/background because standardization was too slow and while committee was sitting and eating (I don’t want to use other verbs). At that point I realized that algorithm no matter how good it is will not be sold by console textual output, but bu UI. Sometimes Form sells-supersedes Function and this is when I started with c# and .net.
Bottom line - Silverlight was good tech and god starting point for mobile and “even smaller than mobile” = IoT tech. Imagine nuget in silverlight which downloads only mine dlls and if not present in cache downloads rest of the dlls from feeds… I mean this could be standardized easily. And even if not standardized then first accepted (by us) and then the usage/acceptance tidal wave might trigger standardization.
Today I would like to see Silverlight as an option to [not only browser] client side tech (xaml instead of ncurses??? for embedded IoT devices, pushing vectorized XAML through ssh or RDP). I see - over the network partial screen refreshes through XAML injection on IoT devices to reduce network traffic. Then XAML as JAML to reduce overload even more…
The I’d like too see XAML differences between Microsoft part of XAML between WPF and Silverlight cleaned up, so we get true cross platform.
And in the next step[s] to think about XAML4ALL (merging with Xamarin.Forms), xwt etc…
enough I got carried away.
Silverlight was a great way to deploy and update .Net desktop applications out of browser on Windows and OSX. It didn’t have the DirectX dependency of WPF and it worked very well for us until its development stopped.
At the moment a cross platform desktop app is more difficult than a mobile app. Maybe we have to drop the name ‘Silverlight’ but keep the concepts and ideas so that in the future we can have cross platform meaning both mobile and desktop with a high code share.
I’m afraid you may be right about the ‘Silverlight’ name. It has a negative reputation but I agree that the ideas are solid and could be applied elsewhere.
Actually, Amazon Instant Video still seems to prefer Silverlight when it’s available. I’d call that a major consumer use.
An enterprise developer perspective:
Open-sourcing Silverlight would be great. I don’t really see Silverlight being a technology for the web with all that’s on HTML5 (despite all its inherent problems). That’s gone and I dont even want to enter that discussion.
But from my personal experience as an enterprise developer and architect, Silverlight was by far the technology that allow us to deliever more with less effort. And on enterprise projects that really ment a lot. Besides, the app deployment mechanism (running in the browser) was simply great: not only because it drastically reduces deployment effort but also because it provides a consistent usability pattern when mixed/integrated with other/legacy web apps.
I personally believe the goodness on Silverlight is on:
- its ability to run inside the browser, therefore provinding the consistent web usability pattern promoting a smooth integration with legacy/other web apps;
- its ability to run on many browsers, because the days of IE ubiquity are gone (and trendly disapearing on
- of course: XAML and C# (allowing us to reuse our know-how);
- and I guess, its ability to run on multiple OSs, despite this was never a “real” requirement for any project I’ve been working on. But it seems logical to consider this a point in favour of Silverlight, considering the apparent increasing of other OS on enterprises.
Hope to see Silverlight open-sourced. (even if Microsoft support ends with v5)
To me, the open-sourcing of Silverlight is a great idea, primarily because of its ability to go cross-platform. (WPF relies upon Win32 and DirectX, so it would be very difficult to convert to a cross-platform framework.) Since Silverlight doesn’t have dependencies on Win32 and DirectX, it would be much easier to convert to a cross-platform framework.
To be clear, I’m thinking about Silverlight in out-of-browser mode, not as a plug-in.
Many developers were very disappointed with the way Microsoft allowed Silverlight to become a second-class technology. I believe many of them would come rushing back if Silverlight were made open source, and the power that is Silverlight were suddenly made available as a tool for the development of cross-platform apps well into the future.
In fact, I believe there would be many new converts to the power of MVVM/XAML/C# if those skills now allowed a developer to create cross-platform apps that were not dependent on a browser.
It would also seem to be in the interest of Microsoft. For one, it would encourage the continuing use of Visual Studio. Second, it would encourage the development of n-tier apps, which require a hosted server, which would lead developers to consider Azure for the hosting of their services. (As opposed to WPF, which caters to client-server apps)
Silverlight should be open sourced, Microsoft will finally made up to customers and developers for its lack of support. Silverlight was not “just” a plugin in a browser, it was used as a WPF Everywhere (much better name). It was used for very complex applications which could be deployed through the browser to multiple OS. If .net is going to be successful a cross platform (real) user interface is needed which can share logic both on the server and the client.
I am glad to find that there are people who understands Silverlight advantages.
However I think that open sourcing SL (although has to be done for the support reasons) is not the final stop. I think ultimately we need a new cross-platform product which combines those features of Silverlight/WPF that made it great for the devlopers and the businesses (similar to my note on WPF here : Cross platform WPF)…
Ultimately I think we need XAML based cross-platform UI to go with .NET Core and Xamarin (hopefuly MS will use its Xamarin aquisition for exactly this!)
Stop Energy indeed, @migueldeicaza. It never amazes me how much I see this on UserVoice, where its sole intention and PURPOSE is to create IDEAS and SUGGESTIONS! Talk about being a wet blanket. What would happen if we had this position about ANY project that we consider? What if we had this attitude (or as I call it, CANTitude) about Silverlight to begin with? Or WPF? Or Xamarin?! You know, a lot of people said open-source and cross platform .NET would never happen, either. And now a lot of people are saying we can’t put .NET in a browser, but lo and behold it can be done (albeit not as robust or capable is it would be if an entire MSFT division had done this after Silverlight’s strategy shaft, erm shift in 2010 as they should have done – but I digress!)
Seriously… less stop, people! MUCH more START. This is what innovation feeds from and it truly our duty as developers.
Anyways, before I start getting on a rant (too late?)… Echoing @maxima120 here. It’s time for a new .NET client application development model (which is exactly what Silverlight was – the plugin was simply the delivery/installation mechanism), and I have a feeling after this week’s announcements with Xamarin that we are well on our way.
I think it’s safe to say that we are in for some exciting announcements for this year’s //build and Evolve.
Sorry for chiming in here without reading through all of the posts. I’m just going to throw in my two cents about why Silverlight needs to be made open source.
Firstly, I’ve been using Microsoft development technology since Quick Basic. My first job was programming in VB 6. I was converted to VB .Net, and then C#. At that time Windows Forms was the graphics library to be used. This was a step up from VB 6. Then, I detoured and dabbled in ASP, and a little bit of WPF when it became a thing.
When Silverlight became popular, it honestly looked like it was going to become the answer to everyone’s development dreams! Finally, a powerful graphics library was at our disposal, C# code could be shared across platforms (including MacOS!), it could be deployed in a browser, and Silverlight generally became and amazing platform to develop on. I can safely say, it was the most mature UI platform I had ever developed on.
Silverlight lacked touch friendliness out of the box, but most of our users were touch screen tablet users. So, we got to work on making Silverlight touch screen friendly for our users. We developed pop out keyboards etc. that made Silverlight completely user friendly without a mouse and keyboard. What surprised me was not the lack of touch screen usability in Silverlight, but the ease with which touch screen functionality can be added to Silverlight.
Our software is still going strong on Silverlight, and although the port to UWP has been quite smooth, there are still large chunks of functionality that do not exist in UWP. It seems that that functionality will not exist for another 5 years - ant there will probably never be a browser deployment option, or a Linux/MacOS version.
The problem for Silverlight now is a political problem; not an engineering problem. Corporations have realized that app stores make money, and therefore Silverlight is a threat to that model to some extent. If amazing apps can be delivered through a browser, then apps in the store become less appealing. At the end of the day, Microsoft has to make money.
So, if we are honest with ourselves, we have to accept that Microsoft will be reluctant to do this. That does not change the fact that it needs to be done! We are Microsoft developers - always have been, always will be! C# is our language of choice and we’re here because that’s what we do. Microsoft should open source this out of loyalty to their developers, and they should understand the intangible benefits of open sourcing Silverlight. Open sourcing Silverlight would generate an enormous amount of good will in the Microsoft developer community. It may not translate to $ directly, but it will translate to more developers paying for their annual MSDN subscriptions. So, please Microsoft, get on this!
PS: It makes me warm and fuzzy to read comments here. On most other forums, people belittle Silverlight developers. People here obviously know what’s up.
I’m posting this even a year later, because in the situation has not improved and yes, I agree that Silverlight is not an engineering problem as much as a problem of what can be called “mindshare”.
Everyone wants to go HTML5 on the assumption that is more open and is a good replacement. It really isn’t. The video codecs are proprietary, and so are all of the implementations of EME- the most popular being Widevine. The idea that HTML5 is in some way better than previous video solutions, is in my mind at least, somewhat delusional. It’s not open.
Furthermore, Internet browsers are one of the most flakey platforms ever created. Each browser only supports varied bits of HTML5. If you are lucky, you aim for Chrome as it is the most used browser and hope for the best - that the next Chrome update still lets the page work. You have no guarantees whatsoever that browser page is going to render properly from one day to the next. Chrome is not equal on every platform either.
Google has its own interests and will not hesitate to act on them. It been known to cripple Flash on Linux while preserving functionality in its own versions of ChromeOS. Significant portions of its codebase are not open to the public, so in spite of all the good it has done, Google maintains near absolute control over everything it does in terms of compatibility and support…
This isn’t fan-boy/fan-girl talk. It’s reality. Developers have been sold a lemon in the hype over HTML5 without taking the time to realize it. That is why native apps on phones have had such success. HTML just doesn’t get the job done or provide the kind of long term stable platform support that is preferred. As far as I can tell, HTML5 has effectively “poisoned the well” in favor of Google.
I think they should open Silverlight officially. Who cares if it leads to a revival? No one is forcing anyone to use it. Let each developer choose what solution works best for them.
Good news @T.j_Duchene … looks like WebAssembly is the new browser tech that is going to supplement HTML5, and the Mono team is already making a port for it:
My suggestion would be to wait a year or so for the first bits around this tooling to emerge and then take it from there. Otherwise, I would say waiting for a Silverlight “event” of some sort would be a waste of time, but I could be proven wrong. Even if it does happen, you would be dealing with code that is a half a decade old vs. all the truly cross-platform newness of what WebAssembly has to offer, IMO.
WebAssembly is really off topic for this thread, IMO.
If it does not die on the vine, I have no expectation that Mozilla’s, Google’s, or Microsoft’s implementations are going to be sufficiently equal as to be an effective cross-platform solution. (Microsoft has already abandoned Silverlight/Moonlight and Google has already abandoned PNaCl, so there is some precedent to expect them to abandon cross-platform efforts when it is in their business interests to do so, in spite of the long term benefits.)
That said, WebAssembly might be useful as an effective replacement for JS, but as all things go, it is highly speculative, and unproven compared to Silverlight.
It could even be said that it is really more of the same mish-mash of Web “standards” that have already caused issues. It’s not going to force browsers into equal conformance. The Web as a development platform is a hodge-podge of lightly enforced standards, with no one being really tested as officially conformant. I expect WebAssembly to be in the same vein as Java; an LLVM with no ISO or ECMA standardization and guaranteed RAND protection. I fully expect competing versions will constantly be clashing to the point where it is abandoned as unusable, you will still have to write special code for each vendor, or the various partners will sue over its use.
The obsession with “new code” is not healthy practice. Mature codebases, even decades old, are still used today. Quite simply, they work and the time has been taken to get the kinks out of them.
The only reasons I suggested that Silverlight should be opened is to simply allow existing installations the lead time they need because they will be able to provide their own modification and support; and opening software leads to a “cross-pollination” of ideas for whatever software comes next.
Yeah fair enough. I wouldn’t say it’s off-topic however. In addition to something new, you could end up porting Silverlight to WASM and run it there. The problem of course is that a tremendous amount of SL code eventually ends up into the guts of the OS, with native p/invoke calls and the like. I am not even sure how that works on a Mac and I never intend to find out. From my perspective a lot of that work has already been handled by .NET Core, and is already working in a viable manner (unlike WASM as you point out) in iOS and Droid. We’re talking teams of (well-employed and salaried) people for over two years in this effort. To me it would seem extremely challenging to do the same with an open-source project where everyone is working for free and have the same success. Especially when there is already a deployed and active solution that already essentially does the same thing. Even more so as SL never ran on Droid/iOS, and you would have to make the efforts to do so… that is a LOT of effort!
Additionally, I guess my confusion is, even if you get SL open source and working again, what will it run on? Older IE browsers and on the Mac for OOB scenarios? Would you continue to carry the failed torch of ActiveX controls that everyone overwhelmingly and thoroughly despises? Does SL even run on Edge? It all seems very limited, but if it’s simply to continue existing investments, understandable. However, I am not sure how that improves over the current scenario where you essentially get a supported product until 2021 (but no access to source).
(I hope you don’t see me pissing on your parade here. I myself invested nearly six years of my life in SL and thought SL5 was probably the best tech MSFT has ever developed.)
Even in all of this, I do think porting to WASM continues to be a viable option as well. Technically speaking, if you got SL working on WASM, you wouldn’t have to worry about it getting it to work on Droid/iOS.
So along those lines, have you been able to validate your concerns with the WebAssembly repos? You can see right there on their front page that it is being designed as an open standard like HTML5, and there is now cross-browser consensus around this tech (whatever that means. ), as of last week even.
So I guess the point here is… while I agree that there is risk in WASM, it is extremely active (and technically already actively deployed). It is also 20-x faster than JS, which seems to me a key point of motivation to ensure its success (or failure if you really really like JS LOL). While that certainly paves the way towards new endeavors, you could still leverage it for legacy projects like this one.
Your comments are certainly valid ones.
I think it is important to note that most of the major contributors to open source are salaried individuals paid to do the work they do. The idea that FOSS is worked on for free has never really been the majority case after a project becomes well established. FOSS is free for use, but it has never really been developed for free. To suggest otherwise - in my opinion - is to buy into a popular myth. Programmers have bills to pay, just like everyone else.
To simplify my point of view, I feel that any time you release a project to a FOSS license, regardless of its particular popularity, you are adding to the sum of the public’s knowledge, and there is no real downside in such an endeavor. If SL were opened, then that in and of itself is of value. Microsoft really has very little to lose by doing so, and much to gain - including community goodwill and future patches at no cost to themselves. As to the browser plugin/ActiveX argument, I believe you are being slightly myopic. As with all things, it can be engineered into other platforms. It would be another tool. Opening the code simply creates opportunities for others to take it in new directions.
I have nothing against .Net minus the fact that it is poorly presented. As a cross-platform solution, it has been my experience that it is lacking both consistency and RAND protection. Much of Net only functions on Windows, while bits and pieces work elsewhere. Commercial deployments have always been hampered by the fact the MSIL can easily be reverse engineered. The lack of standardization and patents are also in the mess.
I’d like to comment about your concerns about PInvoke, and that is that it is really irrelevant because it is really just a library with native functions for your OS wrapped in a framework that .Net can understand. In my mode of thinking, it is not much different then C code being ported and far easier. Most OSes outside of Microsoft are somewhat POSIX compliant to begin with.
As I commented before, HTML5 really is not an open standard, and not every implementation is equal, which results in countless hours of wasted efforts. There is no means of actually certifying compliance, and that undermines real efforts of success as a platform to replace others. At best, it has momentum due to the lack of a certified and standardized cross-platform alternative. Either native apps will effectively replace the Web, or HTML will have to be retired in favor of something that can provide a consistent experience on all platforms.
I have nothing against WASM. I simply think that market forces will directly undermine its usefulness. As it is licensed under an Apache license, I expect to see proprietary extensions by the major vendors in their implementations as means of dealing a blow to the competition. The only way to avoid this, would be to have a third party such as ECMA or the ISO certify a minimum standard that everyone has to comply with. The Apache license offers no such guarantees of standardization.
As a replacement for JS, it is extremely promising. but given the likelihood of the above scenario, I do not believe it will go as far as it may have. A nice idea would be to have WASM as an intermediate language to be compiled into native code using JIT, and leave behind the idea of the browser entirely.
Appreciate the conversation and sharing your thoughts @T.j_Duchene.
I think I am aligned with most that you have to say. The only hitch is how you perceive (or rather how I perceive?) HTML5 as an open standard. I was/am under the impression that it is exactly this. Or at least a standard that is “standard enough” more so than previous HTML “standards” that have essentially devolved into the feared chaos that you describe with WASM. It would seem to me that HTML5 is something that has been working well across all browsers since October 2014’s “final” draft. I am not sure if you have built an HTML5 site, but in my experience it has been extremely consistent between Chrome, FireFox, and IE/Edge.
So, this gives me hope for “standards” going forward, but again there is the chance that this gets out of hand (quite easy to get “confused” or “misunderstand” requirements, especially when they favor your performance metrics), so who knows.
In any case, I don’t want to temper your enthusiasm towards having an open source SL, for the (valid) reasons you outline. It would seem to me, however, that MSFT for whatever reason simply does not want to do so. My hunch is that something significant is afoot in the IP chambers there, perhaps with a patent infringement or the like. Which would be really really difficult to understand, as really all SL really is is a WPF runtime host in a browser window. But, I am not a patent attorney. Nor do I want to be.
So yeah, continue the crusade. I’ll be keeping watch from the sidelines
Well, when I say that HTML 5 is really not open, the key features that replaced what Silverlight had to offer is video - and the video spec in HTML 5 is a travesty. The primary codec is H.264, which is patented. I’m not saying that Silverlight was better, only that it did not pretend to be something it wasn’t.
HTML 5 in essence, “made a deal with the devil” so that corporate interests would feel comfortable with streaming video. In doing so, they opened the door to content fees down the road. Right now, there is no charge to use formats such as MP4 for noncommercial use, but that may not be the case indefinitely. If you charge for access to MP4 video, you are required to pay licensing fees - per video - right now. When the current license agreement lapses, it is quite possible that the MP4 patent holders may demand fees from every website using their patents.
When the W3C made that deal, any idea the HTML fostered an “open web” became a thing of the past. Once patents and license fees are involved, the playing field is no longer even, but a pay-to-play scheme favoring larger interests. Everyone perceives HTML5 to be an “open standard” when in fact it isn’t - or at least, it is not what I consider one. In years past, an open standard also meant that any patent holders were required to offer a RAND grant, with the vast majority charging no fees at all - as to encourage its adoption. In my mind, HTML 5 is little more than a way for patent holders to sneak in legal control over the use of content. Maybe they won’t start going after the Web today, but a few years from now is another story.
Much like Android or Apple, HTML5 is open, until you want to use certain parts. Then it is suddenly not open, costly and proprietary.
Silverlight is also used by some XAML developer to show their custom control on web. That can be useful for courses, .Net partner Ad. And any people that interested in showing some XAML (Editable) in their web page.
it seem silverlight have meeting with active X.both technology has been forgot.not heared that technolgy are use for web developer for a long time.we need see they action on the web.i think i miss both of them