しばやん雑記

Azure Serverless とメイドさんが大好きなフリーランスのプログラマーのブログ

Windows

Windows App SDK 1.1 がリリースされたので UWP アプリを移行してビルド自動化まで対応した

Build 2022 合わせで Windows App SDK 1.1 の正式版がリリースされていたようです。あまりリリース自体が話題になっていない気がしますが、UWP アプリケーションからの移行先なので 1.1 対応を行いました。リリースノートを見る限り、割と地味なアップデート…

Windows App SDK 1.1 Preview 3 で追加された Desktop Acrylic と Mica のサポートを試した

何故か Windows App SDK を使っても、Windows 10 や 11 で追加された Desktop Acrylic や Mica といったウィンドウ効果は適用できませんでしたが、先日リリースされた 1.1 Preview 3 でようやく対応したようです。Windows App SDK 1.1 Preview 3 is now avai…

Windows Property System を使って C# から曲情報を取得する

GW なので趣味アプリの開発を行っていると、音楽ファイルに保存された曲情報を取得する必要が出てきたので、Windows Property System を使って実現したという話です。曲情報というのは以下のようにファイルのプロパティから確認出来るメタデータのことです。…

CsWin32 で Win32 API や COM を使ったアプリケーション開発を効率化する

これまで P/Invoke 定義はドキュメントやヘッダーファイルから手書きすることが多かったのですが、最近は必要な Win32 API や COM インターフェースが多くなってきたので CsWin32 を使って自動生成しています。CsWin32 自体は win32metadata というプロジェ…

Snapdragon Developer Kit for Windows こと ECS LIVA Mini Box QC710 Desktop を購入した

Build 2021 で夏に Microsoft Store 経由で発売と言っていた Snapdragon Developer Kit for Windows が 11 月中旬にようやく発売になりました。ずいぶん長い夏でしたね。噂通り ECS のミニ PC だった訳ですが、Windows on ARM 周りに興味がありハワイまで Su…

Windows / Visual Studio 使いが WSL 2 / Visual Studio Code で環境構築した時の手順

基本的には Windows と Visual Studio を使って Azure Functions や GitHub で公開しているアプリケーションとライブラリを書いていますが、最近は Python や Go を書く必要がちょいちょい出てきたので、色々と観念して WSL 2 の環境を構築して使っています…

.NET 6.0 Preview で WPF が ARM64 に対応したのでビルドして Surface Pro X で試した

.NET 5.0 で Win Forms は ARM64 の Windows に対応しましたが、WPF は 2021 年に先送りになっていて非常に残念でしたが、最近リリースされた .NET 6.0 Preview の Nightly Build でついに対応しました。GitHub の Issue ではマイルストーンが 5.0.0 になっ…

PDFium を Windows on ARM (ARM64) 向けにビルドする

作っているアプリケーションに ARM64 対応を将来的に入れるにあたって、依存しているライブラリで PDFium だけが x86 / x64 だけの対応だったので、ARM64 向けビルドを試しておきました。既に Chromium は Microsoft からのコントリビューションが行われてい…

Electron で Surface Pro X にネイティブ対応したアプリを作る

Surface Pro X というか ARM64 にネイティブ対応したアプリケーションが中々増えないですが、.NET Framework / .NET Core 以外ならいい感じに ARM64 対応が進んでいます。特に Electron 7 から ARM64 対応したのは結構インパクトが大きいと思っています。Ele…

Vcpkg と CMake を使って Windows 10 ARM64 向けクロスコンパイルを行う

Windows 10 の ARM64 向けビルドは実質 Surface Pro X 向けですが、Surface Pro X でも x86 エミュレーションのオーバーヘッドを調べると無視できるレベルではなかったので、やっぱりアプリケーションは ARM64 ネイティブで動かしたい気持ちが高まってます。…

Surface Pro X (ARM64) に対応したアプリケーションを作る

10 インチの Surface Go に ARM の CPU が載ることを期待していましたが、Surface Pro X に載ってしまったので検証用に買うべきか悩んでいます。本体だけなら $999 から買えるので比較的安いです。例によって日本での発売は未定ですが、フラグシップとなる S…

Windows Server 2019 時代の Windows Containers を使ったアプリケーション移行

Kubernetes が 1.14 から Windows Server 2019 をサポートするようになり、周辺ツールやサービスも整ってきた現状、今年こそ Windows Containers がぼちぼち使われるようになるのではないかと思っています。と言っても新規開発は ASP.NET Core を推奨してい…

Windows 10 で Process Isolation を使う時の注意点など

Docker Engine 18.09.1 と Windows 10 Version 1809 の組み合わせ時に Process Isolation *1 が使えるようになっています。Windows Server Containers は Hyper-V Containers より軽量なので助かります。早速弄っていましたが、クライアント OS で使う場合に…

Windows Server 2019 の Docker Image と MCR への移行

停止されていた Windows Server 2019 の公開がようやく再開されました。同時に Windows Server 2019 ベースの Server Core / Nano Server イメージも公開が再開されています。これでようやく LTSC なバージョン上でサイズが縮小された Docker Image を使う準…

Multi-arch 時代の Windows Containers 関連イメージの扱い

Windows Containers を使っていて非常に悩ましいのが OS バージョンですが、最近は Multi-arch が使われているのでホスト OS のバージョンから適切なものを自動で利用してくれます。Multi-arch の詳細は Docker 公式ブログを読めば大体理解できるはずです。…

Windows Server Version 1709 から Windows Server Containers のバージョン要件が変更されていた

これまで何回か Windows Containers を触ってきましたが、大体は Windows Server Containers の場合はバージョンを合わせるのが面倒なので、Hyper-V Containers を使おうという方向に落ち着いてました。ビルド番号が異なる場合には起動がブロックされますが…

AWS CodeBuild が Windows に対応したらしいので試した

Twitter を眺めていたら AWS CodeBuild が一部のリージョンで Windows に対応したとあったので、早速オレゴンで試して見ることにしました。Windows が使えるビルドサービスは VSTS か AppVeyor ぐらいしか選択肢がなかったので貴重です。AWS CodeBuild Adds …

ConoHa が Windows Server に対応したので契約してみた

前から Linux の VPS は主に Docker 用として契約して使ってましたが、Windows Server にも対応したと聞いたので早速契約してみることにしました。10% オフになっても 2GB プランはまあまあのお値段という感じがします。みんなお待たせっ!ついにConoHaでもW…

Windows Server Insider Preview Build 17079 で Server Core Container のサイズが更に削減

Windows Containers を使って ASP.NET アプリケーションの Dockernize を行う上で最大の問題となる、Server Core な Docker Image のサイズが 17079 で更に削減されました。ブログでは 30% 削減されたと書いてありますが、実際のサイズはダウンロード時が 1.…

Windows Server Insider Preview Build 17035 で Windows Containers 周りが改善

ちょっと前に次の Semi-Annual Channel 向けの Windows Server Inside Preview がリリースされてました。ぶちぞう RD が空リプしてましたが、6 時とか完全に寝てるので気が付きません。Announcing Windows Server Insider Preview Build 17035 https://t.co/…

Windows Server Version 1709 で Docker と Windows Containers を使ってみる

自宅の検証用 Windows Server 2016 を Version 1709 にアップグレードしたので、例によって Docker 周りで気になる部分だけまとめておくことにします。Tech Summit は Version 1709 ベースで話したいですし。Windows Server Blog や Azure Blog では Azure M…

Windows Server Insider Preview を使って Server Core と Nano Server の Insider Image を試す

あまり Windows Server Insider Preview に関しては興味がなかったのですが、たまたま見つけた Insider 版の Windows Server Core と Nano Server の Docker Image がかなり最適化されていたので、実際に試してみたくなりました。地味にはまりましたが何とか…

Docker for Windows Server 2016 のアップデートを行う方法

Windows Server 2016 への Docker インストールは、PowerShell を使って結構簡単に出来るのですが、アップデート方法をこれまであまり見たことがありませんでした。何回か書いた気はしますが、インストールは以下のコマンドを実行するだけです。 Install-Mod…

Kubernetes で .NET アプリケーションな Job を動かしてみる

Kubernetes には Job という機能があることを知ったので、Windows Server Containers でも試してみました。使いどころはわかってないですが、Windows でも動くことを確認したかったのです。動き続けるタイプの Job を作りたい場合には、これまで通り Deploym…

AppVeyor から Azure Container Service 上の Kubernetes へ自動でデプロイを行う

これまで AppVeyor と Kubernetes でやってきたことの集大成として、AppVeyor から Azure Container Service 上の Kubernetes への自動デプロイを試してみます。やってきたことは以下のエントリを参照してください。Kubernetes はかなり良いですね。AppVeyor…

Azure Container Service を使って Kubernetes と Windows Server Containers を試してみる

気が付いていなかったのですが、Azure Container Service のオーケストレータとして Kubernetes を選ぶと、Windows が選択できるようになっていたらしいです。もう 2 か月ぐらい前というのが驚きです。まだ Public Preview になってないだろと思っていたら、…

AppVeyor を使って ASP.NET MVC アプリケーションの Docker Image を自動で作成してみる

前に AppVeyor の Windows Server 2016 と Docker 対応について調べたので、今回は実際に ASP.NET MVC アプリケーションをビルドして、Docker Image の作成までを行ってみます。やることは CircleCI と Docker を使って App Service on Linux への CI/CD を…

AppVeyor が Windows Server 2016 に対応したので Docker を使うための下調べをする

2 か月ほど前になりますが、AppVeyor が Visual Studio 2017 と Windows Server 2016 が使えるワーカーイメージの提供を開始しました。AppVeyor に限らず Windows Server 2016 対応はどのサービスも遅い気がしますね。"Visual Studio 2017" image with VS 20…

Surface Pro 4 に Windows 10 Creators Update をクリーンインストールしてみた

MacBook Pro の Boot Camp 環境だと Creators Update へのクリーンインストールが問題になるらしいので、仕方なくサブ環境の Surface Pro 4 を先に Creators Update に更新することにしました。価格改定で安くなった時に買った Surface Pro 4 が活躍です。Vi…

Windows Server Containers で利用する Docker Image のバージョン管理が難しい

最近はまた Windows Server Containers の実運用に関して、いろいろと考えたり調べたりしているのですが、Windows では絶対に避けられないものとして Windows Update があります。そして現時点での Windows Server Containers には以下のような要件がありま…