Silverlightはリッチインターネットアプリケーションのフレームワークとして普及したテクノロジーですが、タブレット/スマートフォンとHTML5(現在はHTML Live Standard)の台頭により、各種プラットフォーム、ブラウザでのサポートが終了しています。
典型的なSilverlightで構築されたシステムは、Webベースのシステムでありながら、 UIレイヤ(プレゼンテーション部分)はほぼ完全にクライアントのマシンで実行され、サーバー側にはロジックとデータレイヤのみが存在する、 いわゆるリッチクライアントのモデルで開発されています。
Silverlightの移行案及び上図①、②、③、④に対する影響と、各案のメリット・デメリットは以下の通りです(参考)。実際には「技術検討(比較、検証、PoC」等を行い、コストの比較が必要な場合があります。
移行先の案 | 影響① UI |
影響② 通信 プロトコル |
影響③ ロジック |
影響④ データ |
メリット | デメリット |
---|---|---|---|---|---|---|
OpenSilver | なし | なし | なし | なし |
|
|
WPF | 小 | なし | なし | なし |
|
|
|
|
|||||
WinUI | 中 | なし | なし | なし |
|
|
Uno Platform | 中 | なし | なし | なし |
|
|
|
|
|||||
.NET MAUI | 中 | なし | なし | なし |
|
|
ASP.NET MVC / Core, etc |
大 | 中~大 | 小 | 小 |
|
|
Angular, React, Vue.js |
中 | 中 | 中 | なし |
|
|
Blazor | 中 | 小 | 小 | なし |
|
|
(考察ポイント)コストやプラットフォームの制約に応じて採用する技術を検討する必要があります。 OpenSilver はSilverlightのソースコードをそのまま流用できるため、移行コストが最も低いと言えますが、3rdパーティの部品などが使用されている場合は、その部品がOpenSilverに対応しているかどうかを確認する必要があります。 クライアントはWindowsに限定できるのであれば、WPFも有力な選択肢です。Siliverlight向けの3rdパーティ部品も、大多数は、WPF向けにも提供されており、場合によっては OpenSilver以上に移行コストを下げられる可能性もあります。
SilverlightはリッチなUIの提供と、WEB上で提供するという大きく二つの特徴をもっていますが、そのどちらを重視するかによって選択肢が変わってきます。 また、移行に合わせてクライアント環境をどのように変更するかも重要なポイントです。 JavaScript系技術とする場合、Mirosoft系技術をベースに開発されてきた企業においては新たなスキルセットが必要です。ただし、作り方についてSilverlightと対応付けて考えることが可能なため選択肢として検討に値します。移行元となるアプリケーションに応じて、AngularやReact、Vue.js等のフレームワークを選択するのが良いでしょう。
貴社のシステムまたは製品が将来サポートするべきプラットフォームは何か
既存のソフトウェア資産の中でできる限り活用(流用)したいものは何か
時間軸、コスト、リソース等の制約は何か
目的に合ったご提案
お客様からシステムの現状をお伺いし、システムの目的に合った新しいプラットフォームをご提案します。 伺った内容に応じて、上表とは異なる技術をご提案する場合もあります。 |
豊富な開発経験による対応力
例えば、弊社は2008年からWPFでの本格的なアプリケーション開発に取り組んでいるパイオニアです。 Microsoft系の各種技術に深い造詣を持ったエンジニアが多く在籍しています。また、Web系の技術(Angular, Java, Blazor, etc)の開発経験が豊富なエンジニアも多く、 デスクトップアプリケーションからWEBアプリケーションまで対応が可能です。 |
既存のソフトウェア資産の活用
Silverlightのアプリケーションが厳密にMVVMモデルに基づいて構築されているのであれば、新技術への移行は比較的容易です。 しかし、現実のアプリケーションでは工数やスキルの不足などによりそのようにはなっておらず、移行の際にネックとなること予想される場合があります。 このような場合は、リファクタリングを行ってソフトウェアの構造を改善してから、プラットフォームの移行に着手することが極めて有用です。 弊社はリファクタリングの実績も豊富に有しており、これまでお客様から高く評価していただいております。 |
当サービス実施の流れは概ね次のようになります。この他にも様々な形での対応が可能です。
お客様のアプリケーションの概要や背景、規模等についてお聞かせいただき、目的に合った移行計画をご提案させていただきます。