Special
» 2015年10月29日 10時00分 UPDATE

Windows 10時代のアプリ開発に乗り遅れないために:今から備えるWindows Vista/7サポート終了――アプリ移行の鍵は「Visual Studio 2015」

Windows Vistaは2017年4月、Windows 7は2020年1月にサポートが終了する。まだ先の話と思うかもしれないが、旧世代アプリケーションの移行がスムーズに進むとは限らない。今からWindows 10世代の環境を見据えた移行ロードマップを立てておけば安心だろう。

[鈴木淳也(Junya Suzuki),PR/ITmedia]
PR
このエントリーをはてなブックマークに追加

 OSが「Windows 10」の世代になるとともに、アプリケーションの実行基盤や開発ツールも刷新され、新しい環境について情報収集を行っている方も多いだろう。

 もし、自分が企業のシステム開発や管理に携わる仕事ならば、既存のアプリケーションがシステムの刷新とともにそのまま移行できるのか、あるいは移行でどのような不具合が起こるのかを知らなければいけない。

 現時点で環境移行の猶予期間があっても、OSのサポート期間はバージョンごとに限りがあるため、将来的にどこかのタイミングで移行を見据える必要がある。本企画では「既存アプリのライフサイクル」「新環境への移行やポーティング」「モバイルファースト時代を見据えた開発」という3つのテーマでこの問題を考えていく。

IE対応アプリケーション移行の目安は2016年と2020年

 先日、日本マイクロソフトの関係者にWindows 10の導入状況や今後懸念される問題について尋ねたところ、「Internet Explorer(IE)のサポートポリシーが変更される2016年1月12日が1つの山」だとの回答だった。

 これは2014年8月に米Microsoftの公式ブログで発表されたもので、2016年1月12日以降、「Windows OSとそれに対応する最新バージョンのInternet Explorerのみをサポート対象とする」という内容だ。

 その対応状況は下記にまとめたが、従来まで社内イントラネットのWebアプリケーションを継続動作させるために比較的古いバージョンのIEを維持していたような場合、ポリシー変更後はサポート対象外となってしまう。

Internet Explorerの新しいサポートポリシー
Windowsプラットフォーム サポート対象となるInternet Explorerのバージョン
Windows Vista(SP2) Internet Explorer 9
Windows Server 2008(SP2) Internet Explorer 9
Windows 7(SP1) Internet Explorer 11
Windows Server 2008 R2(SP1) Internet Explorer 11
Windows 8.1 Internet Explorer 11
Windows Server 2012 Internet Explorer 10
Windows Server 2012 R2 Internet Explorer 11

各OSがサポートするIEバージョンの組み合わせ

 既にシェアが数%程度まで低下しており、2017年4月に延長サポートが終了するWindows Vistaは比較的問題ないと考えられているが、ここで大きな問題となるのはWindows 7だ。現在、デスクトップOSシェアの5割以上がWindows 7で占められているといわれ、企業を中心に多くのユーザーのプラットフォームとして存在している。

 特に企業ユーザーでは、既にサポートの切れたWindows XPからの避難先として機能していることも多く、Windows 7の延長サポートが終了する2020年1月が移行の目安となる。2018〜2020年にかけて、Windows XPサポート終了時と同様の騒動が起こるかもしれない。

 Windows 7のサポート終了については、既存のハードウェアやデスクトップアプリケーション資産もさることながら、企業のイントラネットで構築されたWebアプリケーションの移行が大きな課題になる。

 Microsoft自身はまだ明確な方針を出していないが、IE11に搭載された「エンタープライズモード」のサポートが、Windows 7と同じ2020年の終了をめどにしているといううわさがある。その場合、Windows 8.1 Updateの延長サポート終了期限である2023年1月を待たずして、旧IE向けWebアプリケーションのサポートを主眼としたIE11の継続利用は難しくなるかもしれない。

tm_1510_vs2015_01.jpg Windows OSバージョンとサポートするIEの履歴。2016年1月12日以降は、各Windows OSで利用可能な最新バージョンのIEのみがサポート対象となる。例えばWindows 7(SP1)ではIE11のみサポート対象となる

2つのマイルストーンに合わせた移行ロードマップを立てる

 2016年と2020年という2つのマイルストーンが設定されたことで、あらためて移行計画を考えてみたい。2016年1月までは実質的に半年を切っており、できる対策は限られる。ここでの旧IE向けWebアプリケーションへの対応は「IE11で動作可能にする」ということで、当面の問題は2020年のWindows 7延長サポート終了のタイミングまで回避される。

 IEでは過去のバージョンのWebブラウザ間での表示に互換性を持たせるため、「ドキュメントモード」という仕組みを用いているが、一部仕様の解釈や動作の違いから互換性が完全ではなく、IE11ではこの問題を解決するために「エンタープライズモード」が採用され、比較的以前のバージョンの動作を忠実に再現するエミュレーションが行われるようになっている。

 エンタープライズモードは管理者によるグループポリシーの設定で利用可能となるが、このIE11+エンタープライズモードと、社内のPCにインストールされたOS(Windows 7/8.1/10など)の組み合わせでアプリケーションが動作するかを確認することが必要だ。

 ドキュメントモードならびにエンタープライズモードは旧IE向けWebアプリケーションの動作を100%保証するものではないため、ここで検証作業が必要になる。アプリケーションの規模や社内の展開状況にもよるが、さまざまなケースを想定してのテストは膨大な工数になるかもしれず、全てを手動で行うのはヒューマンエラーなども考慮して難しい可能性がある。

 その場合、「Visual Studio Enterprise」(もしくはVisual Studio Test Professional)で提供される自動化テストツールを用いるのが効率がいい。反復テストに必要な工程を手動で記録して検証が行えるため、手動で同じ作業を繰り返す必要がなく、比較的手軽に利用できる。Webアプリケーションへの変更を最小限に止め、取りあえずIE11への移行を主眼にした作業を行うのが、2016年のサポートポリシー変更に向けた対策だ。

tm_1510_vs2015_02.jpg 最新の開発環境「Visual Studio 2015」。Windows 10世代のアプリ開発に対応するのはもちろん、Enterprise版などは自動化テストツールも充実している

 恐らくは、最も問題となるのが2020年のWindows 7延長サポート終了だ。前述のように、IE11の利用はこの時点で推奨されなくなるため、Microsoft Edgeなどのより新しい世代のWebブラウザへの移行が求められるようになる。

 Edgeではドキュメントモードなど、旧IEの互換性に関する仕様を全て排除して業界標準のHTML5に完全準拠すべく開発が進められている。そのため、レガシーアプリケーションの動作はこの時点で保証外となり、本格的にHTML5に準拠したWebアプリケーションへの改修や書き直しが必要だ。

 IE5やIE6の時代はWebアプリケーションにちょっとしたスクリプトを記述して高度な作業をさせたり、ローカルPCへのアクセスやActiveXを呼び出しての各種連携など、IE特有の拡張機能を使ったシステムが多数登場し、これが今日におけるIEの互換性問題やサポート終了による移行問題に結びついている。

 EdgeではFlash Playerを除く、ActiveXなど全てのプラグインの利用が禁止され、VBScriptなどの独自拡張も廃止された。ゆえに2020年を目標においた移行策では、多少の変更よりも、新たにアプリケーションを書き直したほうが効率的な場合も出てくるはずだ。

より将来性を見据えたアプリケーション開発を

 Windows 10で推奨の標準ブラウザがEdgeへと移行したことで、Webアプリケーションには従来バージョンのIEとの互換性よりも、Microsoft以外の競合他社のWebブラウザ環境での動作も想定した開発が求められるようになった。つまり、HTML5互換という視点では、Edge以外にもGoogle ChromeやMozilla Firefox、そしてApple Safariといったブラウザも動作対象に含まれる。

 そして最も重要なのは、PC以外へのアプリケーション展開で、今後タブレットやスマートフォンの利用が企業でも増えるにつれ、これら複数のプラットフォームでの利用を想定する必要がある。Webブラウザ経由でイントラネットにアクセスするだけなら問題ないが、場合によってはインタフェースにネイティブアプリを用意する必要があるかもしれない。

 方法の1つは、Windows 10で導入された「Universal Windows Platform(UWP)アプリ」だ。スマートフォンからPC、大画面スクリーンまで、Windows 10が動作するあらゆるデバイスに対応可能なアプリとなっている。

 ただし、これではAndroidやiOSといった世間で一般的なスマートフォンOSでの動作が期待できない。Mac OS Xの環境でも同様だろう。

 これらの対策としては、AndroidアプリをWindowsでも利用可能にする「Windows Bridge for Android(旧名:Project Astoria)」と、そのiOSアプリ版「Windows Bridge for iOS(旧名:Project Islandwood)」、そしてHTML5で記述されたWebアプリケーションをUWPアプリ化する「Windows Bridge for Web apps(旧名:Project Westminster)」というMicrosoft提供の仕組みがある。

tm_1510_vs2015_03.jpg Microsoftは「Windows Bridge」として、別のプラットフォーム向けアプリをWindows 10用のUWP(Universal Windows Platform)アプリに移植しやすくする仕組みを用意している

 とはいえ、「Windows Bridge」はあくまでUWPアプリへの移植を促すツールなので、AndroidやiOSといったプラットフォームごとにアプリを開発する手間は変わらない。

 そこで登場するのが、HTML5でPCやスマートフォン向けのアプリを同時開発できる「Apache Cordova」や、Mono/MonoTouchから派生して.NETの流れをくむ「Xamarin」といったクロスプラットフォーム開発ツールだ。どちらもVisual Studioといったおなじみの開発ツールを活用しつつ、HTML5またはC#といった言語でのアプリ記述が可能だ。

no_1510_vs2015_04.jpg

Copyright© 2016 ITmedia, Inc. All Rights Reserved.


提供:BBソフトサービス株式会社
アイティメディア営業企画/制作:ITmedia PC USER 編集部/掲載内容有効期限:2015年11月4日