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:
- 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)
- Im Gegensatz zu einer monolithischen ASP.Net-Anwendung könnten wir unsere Anwendung möglicherweise modularer gestalten
- Verwendung von isoliertem Speicher auf dem Client-PC
Nachteile:
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
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
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?
Lernkurve für ASP.Net-Entwickler
Ein weiterer Stack-Link auf SL /programming/251718/silverlight-wpf-web-app-xbap-or-click-once-pros-and-cons
Neutral
- SEO-Kompatibilität ist kein Problem
Meine Fragen sind?
- Würden Sie SL verwenden und die oben genannten (und andere) Vor- und Nachteile kennen?
- 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?
- 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.
Antworten:
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 :
Ich hoffe das kann dir helfen.
quelle
Um einige Ihrer Fragen zu beantworten:
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.
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:
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.
quelle
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.
quelle
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.
quelle