Windows Sandbox をアプリテスト環境として使う
この記事は2019/9/27公開の「PB開発者はサンドボックスの夢を見るか」をわかりやすく再構成したものです。
プロダクトサポート部のTakedaです。
PowerBuilderで開発したアプリテストをする場合、開発環境とは別に実行環境(PC)を用意することが多いと思います。 特にアプリユーザーのPCにインストールする手順やRESTful Web APIサーバーへの接続など、アプリ動作に必要なファイルや設定の過不足を確認するためには2台以上のPCや仮想環境が必要となり、その環境へのOSインストールなどセットアップコストも馬鹿になりません。
そんな我々にMicrosoft社はWindows 10にWindows Sandboxという機能を追加してくれました。 「サンドボックス」環境なので検証内容によっては活躍できない場面もありますが、簡単にまっさらなWindows 10環境を用意できることはテストコストを大きく削減できます。
そこで今回は、Windows SandboxでPBアプリテストをするために最低限必要な準備と実施可能/不可能な検証内容について説明します。
みなさんが開発しているアプリでも活用できるか、想定しながら読んでみてください。
Windows Sandboxとは?
Windows 10 Pro/Enterprise上でWindows仮想マシンを起動できる機能です。 この機能はWindows 10 May 2019 Update (Windows 10 1903)から提供されています。
VMware PlayerやVirtualBoxなどの仮想化ツールと違い、仮想マシンの作成やOSインストールなどの作業は不要で、スタートメニューからクリックするだけでWindows仮想マシンが起動します。 ただ、Windows Sandbox上で行った変更(設定やアプリインストールなど)は保存できないため、起動するたびに初期状態に戻るという特徴があります。
Windows 10 May 2019 Update適用後、Windows Sandboxは無効状態となっています。
使用するにはコントロールパネルの[Windowsの機能の有効化または無効化]でWindows サンドボックスを有効にしてください。 その後、PCを再起動すれば、スタートメニューに[Windows Sandbox]が追加されていると思います。
余談ですが、コントロールパネルでは[サンドボックス]とカタカナ表記ですが、スタートメニューでは [Sandbox]と英語表記です。 (^^;
また、Windows Sandboxの利用には以下のシステム要件を満たす必要があります。こちらも必ずチェックしてください。
<Windows Sandbox システム要件>- Windows 10 ProまたはWindows 10 Enterprise Build 18305以降
- ADM64アーキテクチャー
- BIOSの仮想化支援機能の有効化
- 2CPUコア以上 (Hyper-Threding対応の4コア推奨)
- 4GB以上のシステムメモリ (8GB推奨)
- 1GB以上のディスクスペース (SSD推奨)
スタートメニューからWindows Sandboxを起動すると15秒程度でSandboxの画面が表示されます。(初回起動時やHDD搭載PCでは、もう少し時間がかかるかもしれません)
PBアプリの実行に最低限必要なこと
前述の通りSandboxはまっさらな状態で起動するため、アプリをテストするためには実行ファイルやランタイムファイルをSandbox上にコピーする必要があります。 ホストPC上に共有フォルダーを作成しても良いんですが、ショートカット使いの方は必要なファイルをコピーしてSandbox上でペーストする方が簡単だと思います。 ちなみに現時点では、ファイルのドラッグ&ドロップには対応していないようなので注意してください。
PowerBuilderで開発したアプリを実行するためには、最低でもPowerBuilderランタイムとMicrosoft Visual C++ 2010ランタイムが必要です。
PBランタイムが無いままアプリを起動すると、PBVM190.dll(数字の部分はPowerBuilderのメジャーバージョンにより異なります)が無いと怒られます。
ランタイムパッケージャーでPBランタイムのセットアップファイルを作成し、Sandbox上にインストールしてください。
Microsoft Visual C++ 2010ランタイムはMicrosoft社のウェブサイトでダウンロードできます。 URLが変わると面倒なのでリンクは掲載しませんが、「vc2010 ランタイム」というキーワードでウェブ検索するとVC2010の再配布可能パッケージが見つかると思います。
このランタイムもSandbox上にコピーしてインストールします。
ちなみにVC2010ランタイムが無い状態でアプリを起動するとMSVCR100.dllが見つからないというダイアログが表示されます。 参考にしてください。
データベースに接続しないアプリであれば、この2つのランタイムをインストールすればアプリを起動できます。 業務アプリでは、サードパーティ製ライブラリやDBクライアントなども必要になりますが、すべて同じ手順でコピー、インストールします。
アプリテスト環境として活用可能か
Windows Sandboxは簡単に初期状態のWindows環境が用意できる便利な機能ですが、終了するとその環境は破棄されるため、PowerBuilder IDEのようにインストール後にOS再起動を促されるアプリのテストはできません。 また、アプリ実行に必要なサードパーティ製ライブラリやデータベースクライアントのインストールでOS再起動が必要な場合も同じです。
OS再起動を行わずに動作環境を作れるアプリであれば、テスト環境として十分に活用できます。 また、セットアップやアップデート手順確認など、保守運用手順の検証にも使えると思います。
このように便利なWindows Sandboxですが、気を付けなければいけないこともあります。
OSのインターフェースは日本語環境と同じに見えますが、キーボードや地域設定が英語圏の状態になっているため、日付表示などOS設定を見ているアプリをテストするときには、設定を確認/変更してから行う必要があります。 また、長期的なテストフェーズでは、毎回のセットアップコストや手順の明確化(ドキュメント化)コストも含めて利用を検討した方が良いです。
Windows Sandboxはリリースされたばかりの機能であり、今後のアップデートで強化されると思いますが、開発プロジェクト内でも活用できるポイントはあると思いますので、Windows 10 May 2019 Updateを適用したらぜひ使ってみてください。