Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Should I still use Silverlight/XBAP

We need to create an application that can be used via the browser but that can also be used while offline.

The browser Version will be used by our customer to do calculations. Each customer needs to log into the application with a username and Password. The offline version will be used by our own employees. They need to be able to use this Version while not connected to a Network. The data that is needed for the application will be stored in XML files.

We are mainly programming with C# and the .NET-Framework. We thought about using WPF for the client version. I have read that you can use Silverlight or XBAP to create a browser Version of the WPF application. AFAIK Silverlight is a dying Technology. How about XBAP? Would you still invest into this Technology?

The other solution would be to create two front end applications: The WPF application as an offline application and a web application (e.g. ASP.NET MVC) as a web application. Thought, this would mean that we would have to create two frontends (more work).

Is there another alternative? Would it be better to create an HTML/JavaScript application (e.g. with AngularJ or something similar)?

like image 442
Alexander Avatar asked Oct 01 '15 06:10

Alexander


2 Answers

As a former Silverlight Developer I can only recommend not to use Silverlight for new application development. Microsoft has suspended the further development of Silverlight and you will not get any new features (only security fixes). I really liked the technology and the similarity to WPF but for me it is deprecated.

Even some Browsers (like Chrome) do not support Silverlight anymore and you need a workaround to get it running (See also Chrome doesn't support silverlight anymore? How to solve this?)

Develop a Backendsystem that provides a REST-API (using ASP.NET WebApi as an example) for your clients and develop a Browser client application using modern HTML/CSS/JavaScript Frameworks. If needed/required a desktop application using WPF that consumes the REST-API.

like image 112
Jehof Avatar answered Nov 20 '22 02:11

Jehof


Silverlight may be dying, but that does not mean you should avoid using it. Silverlight is still a viable technology that you can use, however browser trends seem to be phasing out Silverlight support. As far as I know, Microsoft Edge browser is no longer supporting Silverlight, so you will need to use Internet Explorer. This isn't the end of the world, but it's something to think about.

As for WPF, this too is being replaced by Windows Universal Apps, albeit slowly. However this isn't too much of an issue as the skills you have learnt in WPF are easily transferrable. WPF itself is not receiving as many new features as it used to, you could say it's finished.

It isn't always easy to keep up with the latest trends, and there will always be something cool and hip just around the corner, however one thing is for sure, the .NET Platform, including the new refactored Universal App APIs are here to stay, and won't die any time soon.

The current trend sees Web Technologies, such as ASP.NET playing a much bigger role than traditional desktop/tablet/phone applications. I would say that developing for a web browser is certainly a popular choice.

That being said, Windows Universal Apps is also a good choice, in fact, any technology that makes use of the .NET Framework is ideal.

As for my recommendation, I would suggest looking into an ASP.NET web application or Web API to which a desktop application, such as WPF (still a viable technology for enterprise applications) or Universal Windows App can hook into. An ideal scenario would be that both applications share the same back-end code, which is certainly possible as they both use the .NET Framework.

For your requirements, it may even be possible to avoid having to create a desktop application altogether, a web application can be hosted on a machine on the local network and clients can still use the web app. This is assuming that these clients don't have internet access of course.

TL;DR: .NET is legit, use ASP.NET.

like image 42
Mike Eason Avatar answered Nov 20 '22 01:11

Mike Eason