8

Our team is currently working on building our next generation HIS (Hospital Information System) comprising of over 30 modules (currently estimated at 400 man months), to be possibly hosted in a central location and accessed across geographies. Hence the primary UI NFRs (Non Functional Requirements) would be

  • Multi browser compatibility
  • Fast loading pages with rich GUI
  • Ability to integrate with hardware devices like biometric scanners, biometric readers etc.
  • Ease of development, maintenance (incorporating changes), shorter development cycle
  • Ability to open multiple forms within the same browser window (without launching additional windows)

Pros:

  1. UI would be browser agnostic, we do not have to worry about ensuring that our web pages work with IE 7, 8, 9++/ Chrome 8, 9, 18++/ Mozilla Firefox (currently a lot of development effort goes into this compatibility check and fixing)
  2. We could possibly make our application more modular, unlike a monolithic ASP.Net application
  3. Usage of isolated storage on the client PC

Cons:

  1. Silverlight memory leak issues. We faced them in a few samples that we built using SL and have the same problem in a legacy XBAP application. The following links, substantiate the fear http://davybrion.com/blog/2010/08/silverlight-getting-worse-when-it-comes-to-memory-leaks/ https://stackoverflow.com/questions/5091636/silverlight-4-memory-leaks

  2. Microsoft does not appear very gung ho about SL future. They seem to be investing more on HTML 5. The future releases of a SL 5 or 6 is also uncertain. http://support.microsoft.com/gp/lifean45 http://www.zdnet.com/blog/microsoft/microsoft-our-strategy-with-silverlight-has-shifted/7834 http://www.zdnet.com/blog/microsoft/will-there-be-a-silverlight-6-and-does-it-matter/11180

  3. The HIS modules would open as multiple tabs within the same browser window (we are talking about a maximum of 8 tabs open simultaneously). How much of a load would it put on that browser instance and how would that effect the memory leak problem?

  4. Learning curve for ASP.Net developers

  5. Another Stack link on SL https://stackoverflow.com/questions/251718/silverlight-wpf-web-app-xbap-or-click-once-pros-and-cons

Neutral

  1. SEO compatibility is not a concern

My queries are?

  1. Would you use SL, knowing the above (and other) Pros and Cons
  2. In case we use the MVVM pattern to build a product with SL as the front end, would it possible to replace the UI tomorrow with another UI (ASP.Net or something else). My understanding is that the rework would be substantial. What does the community think?
  3. We have spent a considerable time in the above analysis (and in creating proof of concepts). Is there an important fact / decisive factor that we are overlooking?

Please do not mark this as a duplicate, as a lot of research and effort has gone into this exercise.

PS: We have spent the past 6 months in building the product using ASP.Net web forms (using MVP pattern) and now are looking at a technology shift due to the above reasons.

Tushax
  • 181
  • 3
  • 1
    As highlighted by @Alex, the line "Ability to integrate with hardware devices like biometric scanners, biometric readers etc." can be misleading and tricky. Please ignore that if you like, though we still have it as an NFR. –  Dec 09 '11 at 11:36
  • 2
    There is no such thing as a "safe bet" when we do not know what the future will bring. The biggest issue I see is the dependency on the hardware integration. To be honest: I'd go for a classic desktop application when the hardware integration is key. – Emond Dec 09 '11 at 11:44
  • You did not give enough reasons why you want to abandon the current technology (ASP.NET) to another technology that your staff is not trained in and that has a doubtful future. Anyway, if you are building a system of that size, in this day and age, and you are willing to invest in training, go with main stream technologies on the front end such as HTML5 and JavaScript. No front end technology will last for long anyway. – NoChance Jan 30 '12 at 17:40

4 Answers4

2

We have actualy this problem. We start developpement on Silverligth. It's a prety technology, but it's probably give up by Microsoft. So we change to develop on ASP.NET MVC.

So :

  1. Probably does'nt work in Windows 8 metro. Not work on other OS.
  2. It's very difficult to change Pattern MVVM to another technology. For our case, change to MVC with HTML 5 change all the code.
  3. ...

I hope that can be help you.

  • 1
    -1 This answer is not very informative. #1 is false on two counts. For one, Silverlight will definitely be supported in Windows 8. Secondly, Silverlight also works on Mac. #2 is desceptive. If your application is properly structured(MVVM, MVC, whatever) it will be a bit easier to change out tiers. Either way its going to be tough in the real world. #3 is not a reason... – Morgan Herlocker Jan 30 '12 at 15:59
  • My understanding is that Windows 8 have 2 modes. One of those modes will have IE not allowing plugins, but the other mode would allow browsers to run plugins. – NoChance Jan 30 '12 at 17:32
2

To answer a couple of your questions:

The HIS modules would open as multiple tabs within the same browser window (we are talking about a maximum of 8 tabs open simultaneously). How much of a load would it put on that browser instance and how would that effect the memory leak problem?

Why do you need to open 8 tabs simultaneously? With Silverlight you could have a single application tab and all the controls/pages etc tabbed within that. This would put no greater strain on the browser instance and not make the memory leak issue worse.

In case we use the MVVM pattern to build a product with SL as the front end, would it possible to replace the UI tomorrow with another UI (ASP.Net or something else). My understanding is that the rework would be substantial. What does the community think?

Virtually any technology you choose now will give you the same headaches if you try to replace the UI. Unless you can totally divorce the application logic from the UI there will be major reworking involved. The least pain would be had if you were to convert it to a WPF application.

However, this statement:

Ability to integrate with hardware devices like biometric scanners, biometric readers etc.

leads me to think that using any web based technology is going to cause you problems in this area. Here I agree with Alex - a better bet might be to write a native application. Using Java will give you some interoperability across multiple platforms, but at the cost of not using native UI elements.

ChrisF
  • 38,878
  • 11
  • 125
  • 168
  • Sorry, if the tab objective was not clear. We are trying to open multiple tabs within the same SL app. The base application (without internal tabs) started with 50MB memory in task manager and on opening around 15 tabs (with various form controls and no processing logic) the memory shot up to 250+MB. On closing all the tabs, the memory utlization reduced but finally stayed put at 150MB. Hence the though of having multiple tabs on an app that could run 24hrs a day (without a logout) is being re-thought. Completely agree on the UI upgrade pain. – Tushax Dec 09 '11 at 18:53
1

Ability to integrate with hardware devices like biometric scanners, biometric readers etc.

This one can be hard, and will require OutOfBrowser mode for Silverlight, you will have to use COM for this to work, and this will ruin you cross browser requirement. COM only works in Internet Explorer.

IMHO the most difficult requirement for WEB application is working with external devices. Usually they come with C, C++ libraries to work with them, and you need a way to interop in C, C++.

I don't think these requirements can be satisfied by any WEB technology, only if Java applets, but I don't know about java applets interop capabilities. In any way I would think about Java, either applet, or desktop application, depending in ability to work with hardware.

Alex Burtsev
  • 686
  • 1
  • 7
  • 15
  • Yes Alex, have had those problems with OCX (Activex) controls in the past: they are IE only –  Dec 09 '11 at 11:34
0

If JS doesn't concern you, I'd go Html5 + JS all the way. No external plugin required, old IE can be made to reason with Html5 through JS, and it will work on mobile devices too.

SL like Flash requires a plugin, won't work on mobile devices, etc.

If you like the MVVM pattern you can marry Html5 with Knockout.js, a JS library that uses the MVVM pattern, I already used it in a couple of projects and it's amazing.

So to answer, stay clear of SL or Flash if you want something as compatible and as fast as possible.

Matteo Mosca
  • 568
  • 3
  • 14
  • 1
    SilverLight does work on some mobile devices. Also, JavaScript can be pretty overwhelming depending upon the client executing it. It's unreasonable to think that HTML and JS will **always** be faster. – Yuck Dec 09 '11 at 11:26
  • As you say, it works on "some". Html5 + JS is far more compatible. I'm not a huge fan of JS but it he needs dynamic stuff client side, it's either that or a plugin, and plugins give worse compatibility. – Matteo Mosca Dec 09 '11 at 11:28
  • How would you get a "pure" solution like this without plugins to work with external hardware? – Yuck Dec 09 '11 at 11:34
  • IMHO JS is a niche' skillset which over time could get very difficult to retain and maintain. Agree on the part that we would require plugins for interfacing with external hardware. – Tushax Dec 09 '11 at 18:55