web-dev-qa-db-ja.com

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

私たちのチームは現在、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/https://stackoverflow.com/questions/5091636/silverlight-4-memory-leaks

  2. Microsoftは、SLの将来についてあまり熱心に見えません。彼らはHTML 5にもっと投資しているようです。SL5または6の将来のリリースも不確実です。 http://support.Microsoft.com/gp/lifean45http://www.zdnet.com/blog/Microsoft/microsoft-our-strategy-with-silverlight-has- shift/7834http://www.zdnet.com/blog/Microsoft/will-there-be-a-silverlight-6-and-does-it-matter/1118

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

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

  5. SLの別のスタックリンク https://stackoverflow.com/questions/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パターンを使用)を使用して製品を構築してきましたが、現在、上記の理由によるテクノロジのシフトを検討しています。

8
Tushax

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

そう :

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

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

2
Cedric

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

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

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

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

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

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

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

webベースのテクノロジーを使用すると、この分野で問題が発生するだろうと私は思います。ここで私は同意します Alex -より良い賭けはネイティブアプリケーションを書くことかもしれません。 Javaを使用すると、複数のプラットフォーム間で相互運用性が得られますが、ネイティブUI要素を使用しないという犠牲が伴います。

2
ChrisF

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

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

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

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

1
Alex Burtsev

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

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

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

したがって、可能な限り互換性があり、可能な限り高速なものを使用する場合は、SLまたはFlashを避けてください。

0
Matteo Mosca