特集:WPF 4とSilverlight 4 これから業務アプリを開発するならどっち? グレープシティ株式会社 八巻 雄哉2010/04/20 |
|
|
■保守容易性
一口に保守容易性といっても、それを決める要素はアプリケーションの設計から運用に至るまで数多く存在する。ここでは主にアプリケーションのバージョン・アップ時に重要となる以下の2つの要素について取り上げることにする。
●アプリケーションの自動更新
アプリケーションの自動更新機能が保守作業を大幅に軽減してくれるのはいまさら説明するまでもないだろう。アプリケーションの自動更新機能に関して両技術を比較してみると、下の表のようになる。
|
WPF | Silverlight | |||||
Windowsアプリケーション | ブラウザ・アプリケーション | Windowsアプリケーション | |||||
XCOPY、インストーラ | ClickOnce | XBAP | ブラウザ内 実行 |
ブラウザ外 実行 |
|||
自動更新 | |||||||
対話 | 必要 |
不要 |
不要 |
必要 |
|||
ロールバック | 可 |
不可 |
不可 |
不可 |
|||
オフライン実行 | |||||||
両技術におけるアプリケーションの自動更新機能 |
Webアプリケーションの場合、単に自動的にアプリケーションが更新されるというだけでなく、その更新にユーザーとの対話を伴う必要がないという点が大きな魅力だといえよう。対話を伴わないアプリケーションの更新は、SilverlightはもちろんのことWPFでもXBAPで実現可能だ。
なお、アプリケーションのロールバック機能(=1つ前のバージョンに戻す機能)が必要な場合、選択肢はWPFアプリケーションのClickOnceを用いた配布のみとなる点も注目しておきたい。
●ランタイムのバージョン管理
同じバージョン・アップであっても見落とされがちなのがランタイムのバージョン・アップだ。
古くはDLL地獄と呼ばれるほど問題の種となる事柄であったが、サイドバイサイドという仕組みにより1つの環境で複数バージョンのランタイムが共存可能になったことから、最近ではあまり意識することが少なくなった。しかしながら、この点においても両技術ではアプローチが大きく異なっているため紹介しておこう。
ご存じのとおり.NET Frameworkはサイドバイサイドという仕組みによって1つの環境に複数バージョンのランタイムが共存可能だ。
例えば、WPF 3.5アプリケーションが動作している環境にWPF 4アプリケーションをインストールすることになった場合、下の図のように.NET Framework 3.5版と共存する形で.NET Framework 4版のインストールが可能だ(.NET Framework自体も3.5と4が共存可能)。
WPF 3.5アプリケーションが動作している環境にWPF 4アプリケーションをインストールした場合 |
一方Silverlightの場合、1つの環境に1つのSilverlightランタイムしか存在できない。
つまり、例えばSilverlight 3アプリケーションが動作している環境にSilverlight 4アプリケーションをインストールすることになった場合、下の図のようにSilverlight 3ランタイムが上書きされる形でSilverlight 4ランタイムがインストールされる。
Silverlight 3アプリケーションが動作している環境にSilverlight 4アプリケーションをインストールした場合 |
これではSilverlight 3アプリケーションの動作が変わってしまったり、最悪の場合動かなくなったりしてしまうのではないかと思われるかもしれないが、心配はいらない。SilverlightにはQuirksモード(互換モード)が存在し、Silverlight 4ランタイム上のSilverlight 3アプリケーションはこのQuirksモードで動作する。そのため、基本的にはSilverlight 3ランタイムの上で実行したときとまったく同じ結果が得られるというわけだ。
例えば、Silverlight 2のListBoxコントロールはピクセル単位のスクロールとなっているのに対し、Silverlight 3のListBoxコントロールは行単位のスクロールとなっている。Silverlight 3ランタイム上でSilverlight 2アプリケーションを動作させた場合、行単位のスクロールには変更されずに、Quirksモードによってきちんとピクセル単位のスクロールが再現される。
INDEX | ||
特集:WPF 4とSilverlight 4 | ||
これから業務アプリを開発するならどっち? | ||
1.導入容易性 | ||
2.保守容易性 | ||
3.開発容易性と要件実現性 | ||
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|
- - PR -