Ist Silverlight für eine webbasierte Produktbenutzeroberfläche der Enterprise-Klasse geeignet?

8

Unser Team arbeitet derzeit am Aufbau unseres HIS (Hospital Information System) der nächsten Generation, das aus über 30 Modulen besteht (derzeit auf 400 Mannmonate geschätzt), die möglicherweise an einem zentralen Ort gehostet und geografisch zugänglich sind. Daher wären die primären UI-NFRs (Non Functional Requirements)

  • Kompatibilität mit mehreren Browsern
  • Schnelles Laden von Seiten mit umfangreicher Benutzeroberfläche
  • Möglichkeit zur Integration in Hardwaregeräte wie biometrische Scanner, biometrische Lesegeräte usw.
  • Einfache Entwicklung, Wartung (einschließlich Änderungen), kürzerer Entwicklungszyklus
  • Möglichkeit, mehrere Formulare im selben Browserfenster zu öffnen (ohne zusätzliche Fenster zu starten)

Vorteile:

  1. Die Benutzeroberfläche wäre browserunabhängig . Wir müssen uns keine Sorgen machen, dass unsere Webseiten mit IE 7, 8, 9 ++ / Chrome 8, 9, 18 ++ / Mozilla Firefox funktionieren (derzeit wird ein großer Entwicklungsaufwand dafür aufgewendet Kompatibilitätsprüfung und -behebung)
  2. Im Gegensatz zu einer monolithischen ASP.Net-Anwendung könnten wir unsere Anwendung möglicherweise modularer gestalten
  3. Verwendung von isoliertem Speicher auf dem Client-PC

Nachteile:

  1. Probleme mit Silverlight-Speicherverlusten. Wir haben sie in einigen Beispielen konfrontiert, die wir mit SL erstellt haben, und haben das gleiche Problem in einer älteren XBAP-Anwendung. Die folgenden Links untermauern die Befürchtung http://davybrion.com/blog/2010/08/silverlight-getting-worse-when-it-comes-to-memory-leaks/ /programming/5091636 / silverlight-4-Speicherlecks

  2. Microsoft scheint nicht sehr begeistert von der Zukunft von SL zu sein. Sie scheinen mehr in HTML 5 zu investieren. Die zukünftigen Versionen eines SL 5 oder 6 sind ebenfalls ungewiss. 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 / wird-es-ein-silverlight-6-und-macht-es-wichtig / 11180

  3. Die HIS-Module werden als mehrere Registerkarten im selben Browserfenster geöffnet (es handelt sich um maximal 8 gleichzeitig geöffnete Registerkarten). Wie stark würde diese Browserinstanz belastet und wie würde sich dies auf das Problem mit dem Speicherverlust auswirken?

  4. Lernkurve für ASP.Net-Entwickler

  5. Ein weiterer Stack-Link auf SL /programming/251718/silverlight-wpf-web-app-xbap-or-click-once-pros-and-cons

Neutral

  1. SEO-Kompatibilität ist kein Problem

Meine Fragen sind?

  1. Würden Sie SL verwenden und die oben genannten (und andere) Vor- und Nachteile kennen?
  2. Wenn wir das MVVM-Muster verwenden, um ein Produkt mit SL als Frontend zu erstellen, wäre es möglich, die Benutzeroberfläche morgen durch eine andere Benutzeroberfläche (ASP.Net oder etwas anderes) zu ersetzen. Mein Verständnis ist, dass die Überarbeitung erheblich wäre. Was denkt die Community?
  3. Wir haben viel Zeit in die obige Analyse investiert (und Beweise für Konzepte erstellt). Gibt es eine wichtige Tatsache / einen entscheidenden Faktor, den wir übersehen?

Bitte markieren Sie dies nicht als Duplikat, da in diese Übung viel Forschung und Mühe gesteckt wurde.

PS: Wir haben die letzten 6 Monate damit verbracht, das Produkt mithilfe von ASP.Net-Webformularen (unter Verwendung des MVP-Musters) zu erstellen, und prüfen nun aus den oben genannten Gründen einen Technologiewandel.

Tushax
quelle
1
Wie von @Alex hervorgehoben, ist die Zeile "Integrationsfähigkeit in Hardwaregeräte wie biometrische Scanner, biometrische Lesegeräte usw." kann irreführend und knifflig sein. Bitte ignorieren Sie das, wenn Sie möchten, obwohl wir es immer noch als NFR haben.
2
Es gibt keine "sichere Wette", wenn wir nicht wissen, was die Zukunft bringen wird. Das größte Problem, das ich sehe, ist die Abhängigkeit von der Hardware-Integration. Um ehrlich zu sein: Ich würde mich für eine klassische Desktop-Anwendung entscheiden, wenn die Hardware-Integration der Schlüssel ist.
Erno
Sie haben nicht genügend Gründe angegeben, warum Sie die aktuelle Technologie (ASP.NET) einer anderen Technologie überlassen möchten, in der Ihre Mitarbeiter nicht geschult sind und die eine zweifelhafte Zukunft hat. Wenn Sie heutzutage ein System dieser Größe aufbauen und bereit sind, in Schulungen zu investieren, sollten Sie im Frontend auf Mainstream-Technologien wie HTML5 und JavaScript setzen. Keine Front-End-Technologie wird sowieso lange halten.
NoChance

Antworten:

2

Wir haben tatsächlich dieses Problem. Wir beginnen mit der Entwicklung von Silverligth. Es ist eine Prety-Technologie, aber sie wird wahrscheinlich von Microsoft aufgegeben. Daher ändern wir die Entwicklung auf ASP.NET MVC.

Damit :

  1. Funktioniert wahrscheinlich nicht in der Windows 8-U-Bahn. Funktioniert nicht unter anderen Betriebssystemen.
  2. Es ist sehr schwierig, Pattern MVVM auf eine andere Technologie umzustellen. In unserem Fall ändern Sie den gesamten Code in MVC mit HTML 5.
  3. ...

Ich hoffe das kann dir helfen.


quelle
1
-1 Diese Antwort ist nicht sehr informativ. # 1 ist in zweierlei Hinsicht falsch. Zum einen wird Silverlight definitiv in Windows 8 unterstützt. Zweitens funktioniert Silverlight auch auf Mac. # 2 täuscht. Wenn Ihre Anwendung richtig strukturiert ist (MVVM, MVC, was auch immer), ist es etwas einfacher, Ebenen auszutauschen. In jedem Fall wird es in der realen Welt schwierig. # 3 ist kein Grund ...
Morgan Herlocker
Mein Verständnis ist, dass Windows 8 2 Modi hat. In einem dieser Modi lässt der IE keine Plugins zu, im anderen Modus können Browser Plugins ausführen.
NoChance
2

Um einige Ihrer Fragen zu beantworten:

Die HIS-Module werden als mehrere Registerkarten im selben Browserfenster geöffnet (es handelt sich um maximal 8 gleichzeitig geöffnete Registerkarten). Wie stark würde diese Browserinstanz belastet und wie würde sich dies auf das Problem mit dem Speicherverlust auswirken?

Warum müssen Sie 8 Registerkarten gleichzeitig öffnen? Mit Silverlight können Sie eine einzelne Anwendung Registerkarte haben und alle Steuerelemente / Seiten etc Tabbed innerhalb dass. Dies würde die Browserinstanz nicht stärker belasten und das Problem mit dem Speicherverlust nicht verschlimmern.

Wenn wir das MVVM-Muster verwenden, um ein Produkt mit SL als Frontend zu erstellen, wäre es möglich, die Benutzeroberfläche morgen durch eine andere Benutzeroberfläche (ASP.Net oder etwas anderes) zu ersetzen. Mein Verständnis ist, dass die Überarbeitung erheblich wäre. Was denkt die Community?

Praktisch jede Technologie, die Sie jetzt wählen, bereitet Ihnen die gleichen Kopfschmerzen, wenn Sie versuchen, die Benutzeroberfläche zu ersetzen. Sofern Sie die Anwendungslogik nicht vollständig von der Benutzeroberfläche trennen können, sind umfangreiche Überarbeitungen erforderlich. Der geringste Schmerz wäre, wenn Sie es in eine WPF-Anwendung konvertieren würden.

Diese Aussage:

Möglichkeit zur Integration in Hardwaregeräte wie biometrische Scanner, biometrische Lesegeräte usw.

Ich bin der Meinung, dass die Verwendung einer webbasierten Technologie in diesem Bereich zu Problemen führen wird. Hier stimme ich Alex zu - eine bessere Wette könnte sein, eine native Anwendung zu schreiben. Die Verwendung von Java bietet Ihnen eine gewisse Interoperabilität über mehrere Plattformen hinweg, jedoch auf Kosten der Nichtverwendung nativer UI-Elemente.

ChrisF
quelle
Entschuldigung, wenn das Tab-Ziel nicht klar war. Wir versuchen, mehrere Registerkarten in derselben SL-App zu öffnen. Die Basisanwendung (ohne interne Registerkarten) startete mit 50 MB Speicher im Task-Manager und beim Öffnen von etwa 15 Registerkarten (mit verschiedenen Formularsteuerelementen und ohne Verarbeitungslogik) schoss der Speicher auf 250 + MB. Beim Schließen aller Registerkarten wurde die Speicherauslastung reduziert, blieb aber schließlich bei 150 MB. Daher wird überlegt, ob eine App mehrere Registerkarten haben soll, die 24 Stunden am Tag (ohne Abmeldung) ausgeführt werden können. Stimmen Sie dem Schmerz der UI-Aktualisierung vollständig zu.
Tushax
1

Möglichkeit zur Integration in Hardwaregeräte wie biometrische Scanner, biometrische Lesegeräte usw.

Dies kann schwierig sein und erfordert den OutOfBrowser-Modus für Silverlight. Sie müssen COM verwenden, damit dies funktioniert, und dies ruiniert Ihre browserübergreifenden Anforderungen. COM funktioniert nur in Internet Explorer.

IMHO ist die schwierigste Anforderung für die WEB-Anwendung die Arbeit mit externen Geräten. Normalerweise werden sie mit C, C ++ - Bibliotheken geliefert, um mit ihnen zu arbeiten, und Sie benötigen eine Möglichkeit, in C, C ++ zu interoperieren.

Ich glaube nicht, dass diese Anforderungen von einer WEB-Technologie nur mit Java-Applets erfüllt werden können, aber ich weiß nichts über die Interop-Funktionen von Java-Applets. In jedem Fall würde ich an Java denken, entweder an ein Applet oder an eine Desktop-Anwendung, je nachdem, ob ich mit Hardware arbeiten kann.

Alex Burtsev
quelle
Ja Alex, hatte diese Probleme mit OCX (Activex) Steuerelementen in der Vergangenheit: Sie sind nur IE
0

Wenn JS Sie nicht betrifft, würde ich HTML5 + JS den ganzen Weg gehen. Kein externes Plugin erforderlich, alter IE kann mit Html5 über JS zur Vernunft gebracht werden, und es funktioniert auch auf mobilen Geräten.

SL wie Flash erfordert ein Plugin, funktioniert nicht auf Mobilgeräten usw.

Wenn Ihnen das MVVM-Muster gefällt, können Sie HTML5 mit Knockout.js heiraten, einer JS-Bibliothek, die das MVVM-Muster verwendet. Ich habe es bereits in einigen Projekten verwendet und es ist erstaunlich.

Um zu antworten, halten Sie sich von SL oder Flash fern, wenn Sie etwas so Kompatibles und so schnell wie möglich wünschen.

Matteo Mosca
quelle
1
SilverLight funktioniert auf einigen Mobilgeräten. Außerdem kann JavaScript abhängig vom Client, der es ausführt, ziemlich überwältigend sein. Es ist unvernünftig zu glauben, dass HTML und JS immer schneller sein werden.
Yuck
Wie Sie sagen, funktioniert es bei "einigen". HTML5 + JS ist weitaus kompatibler. Ich bin kein großer Fan von JS, aber er braucht dynamische Sachen auf der Clientseite, entweder das oder ein Plugin, und Plugins bieten eine schlechtere Kompatibilität.
Matteo Mosca
Wie würden Sie eine solche "reine" Lösung ohne Plugins für die Arbeit mit externer Hardware erhalten?
Yuck
IMHO JS ist eine Nischenkompetenz, deren Beibehaltung und Pflege im Laufe der Zeit sehr schwierig werden kann. Stimmen Sie dem Teil zu, dass wir Plugins für die Schnittstelle mit externer Hardware benötigen würden.
Tushax