主にプログラミングに関して。Python, .NET Framework(C#), JavaScript, その他いくらか。
記事にあるサンプルやコードは要検証。使用に際しては責任を負いかねます

スポンサーサイト

                
tags:
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Windows10を入れてみて

                
tags:
 これまで使っていたのがWin7で、UWPアプリやWin8から導入されていたHyper-Vに興味があったのでWin10を入れてみた。

 ソフトとして動かなくなったものは特に出てきていない。自作で使っていたWPFアプリやWinFormsアプリはもちろん、もっと枯れた技術で作られたバイナリエディタも、最近の技術で作られたエディタであるBracketsも動いている。VirtualBoxに入れておいたWin10IPやLinuxMintが立ち上がらなくなったのでどうするか考えているが、同じくVirtualBoxを機能の一端に組み込んでいるBoot2Dockerは問題なく動いている(最初はネットワーク接続ができていなかったので設定をちょいいじった)のでVirtualBoxとWin10の間に不具合が生じたとは考えづらい。移行時にデータを軽くしたくてSteamで購入してあった数本のゲームは一本にしてしまったが、その一本もSteamも問題ない。ゲームはBraidという8年ぐらい前の2Dアクションゲーム。Webアプリ作成や検証に使っていたトラフィック監視ソフトのFiddler4も。PythonもヘッドレスのJavaScript実行環境のPhantomも。TeraTermも問題なく動いている。

 困った点としてインストール直後は、プレビュー時に作ってあったオーディオライブラリ再生のUWPアプリで、オーディオファイルをアルバムごとに分類できなくなっていた。
 UWPアプリではファイルにアクセスするには前持った宣言やユーザの許可が必要になっており、StorageFileオブジェクトを介するやり方になっている。ID3タグ情報へはStorageFileオブジェクトを介してMusicPropertiesというオブジェクトを得ることで曲タイトル、アルバムタイトル、アーティスト、ジャンルなどを含めたいくつかの情報へアクセスできるようになっている。これを使ってプレビュー時に作っておいたアプリではアルバムを分類できるようにしてあった。
 リリース版Win10インストール直後に自作アプリを立ち上げると、アルバムの分類がまったくされず、タイトルなしのアーティスト名なしのアルバムとして1000曲ぐらいの曲がまとめられていた。どうなってんのよと思ってWin10標準のアプリであるGroove Musicでライブラリを確認したところ、やっぱり曲情報がもろもろ取得できていなかった。
 .NET Frameworkで作ってあり、WMPLibを使用したWPFデスクトップは問題なくそこらができていたのでWin10のAPIの問題だろう。と考えつつせっかくだからとっととUWPアプリを使いたかったので問題解決策を考えた。WMPLibを使った.NET Frameworkアプリが問題なくアルバムの分類ができている。そしてWin10のほうでは取得したMusicPropertiesを編集して上書き保存できるようになっている。Win10でまず任意の曲情報を与えて保存し、そのデータの読み込みが成功するなら、.NET Frameworkアプリで曲情報一覧をJSONで保存、それをUWPアプリで読み込んで曲情報をまるごと更新してしまおうと。既存アプリでCDデータベースを検索しつつアルバム情報を適用する手段もあるが、アルバム300枚分を前にそんな手動の手段を取る気にはならない。
 まずUWPアプリで任意の曲情報の書き込み、読み込みに成功した。次に.NET Frameworkアプリでライブラリ全曲の情報をJSONへ落とし込んでファイルとして保存した。あとはUWPアプリでJSONを読み込んで、全曲のファイルへ適用するだけだということでJSON読み込みまで行ったところで寝た。で、次の晩の夕飯を食べてから残りをやるかと取り掛かろうとした直前に、一応オーディオ再生アプリを開いてアルバム分類ができないことを確認しようとした。なぜかアルバム分類ができていた。
 ユーザがPCをいじってない間にオーディオライブラリのメタ情報一覧を作るプロセスでもあるんだろうか。一晩前ではたしかに、自分のUWPアプリも標準添付のGroove Musicも曲のメタ情報を取得できていなかった。それが一晩経って自分の講じた策を実行する前にいつの間にか勝手に解決していた。プレビューの時に作っておいた自作UWPアプリは結局いじる必要はなかったし、オーディオファイルのメタ情報更新アプリを.NET FrameworkとUWPアプリの両方を使って作る必要もなかった。なんだこれ。

 とりあえず好奇心などからWin10を入れないでいるわけにもなという状況なので入れてみた。アップグレード直後に立ち上がったデスクトップはWin7の設定をそのまま引き継いでいたので、パッとみてたいした違いは感じなかった。動作不能になったソフトも仮想マシンとして使っていた一部のOSを除けばない。そしてUWPアプリが作れるようになった。UWPアプリではそのAPIの不具合かおかしなことに出くわしたが解決したし、アプリを書いていること自体はasyncやawait、C#6の新たな記法などおもしろいものだった。
 UWPアプリの使い心地について。以前のWin7環境ではデフォルトのフォトビューワがHPのアプリだったのだが、.NET Frameworkで作ってあるのか起動に五秒程度の時間を要した。.NET FrameworkアプリはWinFormsで作ればLinuxにもMacにもMonoで動かすことで使えるというメリットがあるが、一方で起動がいまいち早くないという欠点がある。UWPアプリは.NET Nativeにより中間言語ではなくネイティブでコンパイルされているので起動がサックリ。Win10のデフォルトのUWP製フォトビューワでは画像をダブルクリックすると即座にアプリが立ち上がった。UWPアプリ、いいかもしれない。と書いていて.NET Frameworkアプリの起動に変化がないか確認したらだいぶ早くなっていた。
 まずいことはないのでロールバックせずにこのまま使っていくことにする。個人的にはファイルエクスプローラのメニュー内に「このディレクトリでCMDを開く」と「このディレクトリでPSを開く」があるので便利。Hyper-Vはその使用がCPUの仮想化機能を他の仮想化ソフトと取り合うことになるのか同時に使えない。Boot2DockerのためにVirtualBoxが必要なのでまだHyper-Vはお預け。

1508021009164.jpg

1508021037186.jpg

            

コメントの投稿

非公開コメント

プロフィール

Matoba

Author:Matoba

最新記事
リンク
作ったものなど
月別アーカイブ
カテゴリ
タグリスト

検索フォーム
Amazon
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。