SilverlightはエンタープライズクラスのWebベースの製品UIに適していますか?


8

私たちのチームは現在30を超えるモジュール(現在400人月と推定されています)で構成される次世代のHIS(病院情報システム)の構築に取り組んでおり、中央の場所でホストされ、地域を越えてアクセスされる可能性があります。したがって、主要なUI NFR(非機能要件)は次のようになります。

  • マルチブラウザ互換性
  • 豊富なGUIを備えたページの高速読み込み
  • 生体認証スキャナー、生体認証リーダーなどのハードウェアデバイスと統合する機能
  • 開発の容易さ、メンテナンス(変更を組み込む)、開発サイクルの短縮
  • 同じブラウザーウィンドウ内で複数のフォームを開く機能(追加のウィンドウを起動せずに)

長所:

  1. UIはブラウザに依存しないため、WebページがIE 7、8、9 ++、Chrome 8、9、18 ++、Mozilla Firefoxで動作することを心配する必要はありません(現在、多くの開発努力がこれに費やされています)互換性チェックと修正)
  2. モノリシックASP.Netアプリケーションとは異なり、アプリケーションをよりモジュール化できる可能性があります
  3. クライアントPCでの分離ストレージの使用

短所:

  1. Silverlightのメモリリークの問題。SLを使用して構築したいくつかのサンプルでそれらに直面し、レガシーXBAPアプリケーションで同じ問題を抱えています。次のリンクは、恐怖を 裏付けてい ますhttp://davybrion.com/blog/2010/08/silverlight-getting-worse-when-it-comes-to-memory-leaks/ /programming/5091636 / silverlight-4-memory-leaks

  2. マイクロソフトは、SLの将来について非常に大胆な態度をとっていません。彼らはHTML 5にもっと投資しているようです。SL5または6の将来のリリースも不確実です。 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. HISモジュールは、同じブラウザーウィンドウ内で複数のタブとして開きます(最大8つのタブを同時に開くことについて話しています)。そのブラウザインスタンスにどのくらいの負荷がかかり、メモリリークの問題にどのように影響しますか?

  4. ASP.Net開発者向けの学習曲線

  5. SLの別のスタックリンク /programming/251718/silverlight-wpf-web-app-xbap-or-click-once-pros-and-cons

中性

  1. SEOの互換性は問題ではありません

私の質問は?

  1. 上記(およびその他)の長所と短所を知って、SLを使用しますか
  2. MVVMパターンを使用して、SLをフロントエンドとして製品を構築する場合、明日UIを別のUI(ASP.Netまたはその他)に置き換えることができます。私の理解は、手直しはかなりのものになるだろうということです。コミュニティはどう思いますか?
  3. 上記の分析(および概念実証の作成)にはかなりの時間を費やしてきました。私たちが見落としている重要な事実/決定的な要因はありますか?

この演習には多くの研究と努力が費やされているため、これを重複としてマークしないでください。

PS:過去6か月間、ASP.Net Webフォーム(MVPパターンを使用)を使用して製品を構築してきましたが、現在、上記の理由によるテクノロジーの変化を検討しています。


1
@Alexによって強調されているように、「生体認証スキャナー、生体認証リーダーなどのハードウェアデバイスと統合する機能」という行 誤解を招く可能性があり、注意が必要です。必要に応じて無視してください。ただし、NFRとして残っています。

2
将来何がもたらされるかわからない場合、「安全な賭け」などはありません。私が目にする最大の問題は、ハードウェア統合への依存です。正直なところ、ハードウェアの統合が重要な場合は、クラシックデスクトップアプリケーションを選びます。
エルノ

現在のテクノロジ(ASP.NET)を、スタッフがトレーニングを受けておらず、将来が疑わしい別のテクノロジに放棄する理由を十分に説明していません。とにかく、このサイズのシステムを現在の時代に構築していて、トレーニングに投資したい場合は、HTML5やJavaScriptなどのメインストリームテクノロジーをフロントエンドに使用してください。とにかく、フロントエンドテクノロジが長く続くことはありません。
NoChance 2012年

回答:


2

実際にこの問題があります。Silverligthの開発を開始します。これはかなりの技術ですが、おそらくMicrosoftはあきらめています。したがって、ASP.NET MVCでの開発に変更します。

そう :

  1. おそらく、Windows 8メトロでは機能しません。他のOSでは動作しません。
  2. パターンMVVMを別のテクノロジーに変更することは非常に困難です。今回のケースでは、HTML 5でMVCに変更し、すべてのコードを変更します。
  3. ...

お役に立てれば幸いです。


1
-1この答えはあまり有益ではありません。#1は2つの点でfalseです。1つは、SilverlightがWindows 8で確実にサポートされることです。次に、SilverlightはMacでも動作します。#2は欺瞞的です。アプリケーションが適切に構造化されている場合(MVVM、MVCなど)、階層を変更するのが少し簡単になります。いずれにせよ、現実の世界では厳しいものになるでしょう。#3は理由ではありません...
モーガンハーロッカー2012年

私の理解では、Windows 8には2つのモードがあります。これらのモードの1つはIEでプラグインを許可していませんが、他のモードではブラウザーがプラグインを実行できます。
NoChance 2012年

2

いくつかの質問に答えるには:

HISモジュールは、同じブラウザーウィンドウ内で複数のタブとして開きます(最大8つのタブを同時に開くことについて話しています)。そのブラウザインスタンスにどのくらいの負荷がかかり、メモリリークの問題にどのように影響しますか?

なぜ8つのタブを同時に開く必要があるのですか?Silverlightを使用すると、単一のアプリケーションタブと、その中にあるすべてのコントロール/ページなどをタブ化できます。これにより、ブラウザインスタンスに大きな負担がかかることはなく、メモリリークの問題が悪化することもありません。

MVVMパターンを使用して、SLをフロントエンドとして製品を構築する場合、明日UIを別のUI(ASP.Netまたはその他)に置き換えることができます。私の理解は、手直しはかなりのものになるだろうということです。コミュニティはどう思いますか?

UIを置き換えようとすると、現在選択しているほぼすべてのテクノロジで同じ問題が発生します。UIからアプリケーションロジックを完全に離すことができない場合を除き、大きな手直しが必要になります。それをWPFアプリケーションに変換する場合、最も苦労することはありません。

ただし、このステートメント:

生体認証スキャナー、生体認証リーダーなどのハードウェアデバイスと統合する機能

Webベースのテクノロジーを使用すると、この領域で問題が発生すると思います。ここで私はアレックスに同意します。ネイティブアプリケーションを作成する方がよいでしょう。Javaを使用すると、複数のプラットフォーム間である程度の相互運用性が得られますが、ネイティブUI要素を使用しないという犠牲が伴います。


タブの目的が明確でない場合は申し訳ありません。同じSLアプリ内で複数のタブを開こうとしています。基本アプリケーション(内部タブなし)は、タスクマネージャーで50MBのメモリから始まり、約15個のタブ(さまざまなフォームコントロールと処理ロジックなし)を開くと、メモリが最大250 + MBに達しました。すべてのタブを閉じると、メモリ使用率は減少しましたが、最終的には150MBのままでした。したがって、1日24時間(ログアウトなしで)実行できるアプリに複数のタブを配置するという考えが再考されています。UIアップグレードの問題について完全に同意します。
Tushax

1

生体認証スキャナー、生体認証リーダーなどのハードウェアデバイスと統合する機能

これは難しい場合があり、SilverlightのOutOfBrowserモードが必要になります。これを機能させるにはCOMを使用する必要があり、クロスブラウザーの要件が台無しになります。COMはInternet Explorerでのみ機能します。

私見WEBアプリケーションの最も難しい要件は、外部デバイスでの作業です。通常、それらにはC、C ++ライブラリが付属しており、C、C ++で相互運用する方法が必要です。

これらの要件は、Javaアプレットの場合のみ、どのWEBテクノロジーでも満たすことはできないと思いますが、Javaアプレットの相互運用機能については知りません。いずれにせよ、私は、ハードウェアでの作業能力に応じて、アプレットでもデスクトップアプリケーションでも、Javaについて考えます。


はい、アレックス、過去にOCX(Activex)コントロールにこれらの問題がありました。これらはIEのみです

0

JSが関係ない場合は、Html5 + JSを使用します。外部プラグインは必要ありません。古いIEはJSを介してHtml5で推論でき、モバイルデバイスでも動作します。

FlashのようなSLはプラグインを必要とし、モバイルデバイスなどでは機能しません。

MVVMパターンが気に入った場合は、MVVMパターンを使用するJSライブラリであるKnockout.jsとHtml5を組み合わせることができます。すでにいくつかのプロジェクトで使用しており、すばらしいです。

ですから、できる限り互換性があり、可能な限り高速なものにしたい場合は、SLやFlashを避けてください。


1
SilverLightは一部のモバイルデバイスで動作します。また、JavaScriptは、JavaScriptを実行するクライアントによっては、非常に扱いにくい場合があります。HTMLとJSが常に高速になると考えるのは不合理です。
Yuck

あなたが言うように、それは「一部」で動作します。HTML5 + JSははるかに互換性があります。私はJSの大ファンではありませんが、動的なものをクライアント側に必要としています。それはそれかプラグインのどちらかであり、プラグインは互換性を低下させます。
Matteo Mosca

プラグインなしでこのような「純粋な」ソリューションを外部ハードウェアで動作させるにはどうすればよいでしょうか。
Yuck

IMHO JSはニッチなスキルセットであり、時間の経過とともに保持および維持が非常に困難になる可能性があります。外部ハードウェアとのインターフェースにはプラグインが必要になるという点について同意します。
Tushax
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.