kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

ARM 64 Windows開発機がやってきた

あけたところ。11/1に届きました。99円で申し込んだ人のキャンセル分が出てきた感じです。あまりほしい人がいないのか現時点で注文できるようです。売っていない国では「俺のところにもはやく~」という声をちらほら聴きます。

付属品と一緒に。本体と比べてアダプターが大きい。

Windows 開発キット 2023 を購入 Arm アプリ開発者向けデスクトップ PC - Microsoft Store

円安じゃなければなーという感じですが、それでもこの価格でこのスペックならかなり十分というか、普段使いできますね。というか、このエントリーもArm開発キットからやっているのですが、普段のPCと全く変わりません。ちゃんとやるならストレージが不足するのかもしれませんが、今のところ気にならないです。

Program Files / Program Files(x86) / Program Files(Arm)と並んでいるのはシュールというか。

まだVSといくつかのツールを入れただけですが、100GB程度消費しただけですね。なんというか、ストレージの容量足りるならば、これで全く問題ないです。ベータ版であろうとARM64対応しているバイナリーを優先的に入れています。これ本体が軽いので、モバイルモニターさえ何とかすれば、持ち運べますね。

ARM64があるもの

ARM64がなくて困っているもの

DockerはWSL2側でも動くので、最悪WSL2でやればいいだけなのですが。Helloのある生活に慣れきってしまっていたので、久しぶりにAzure ADのサインインをパスワードでやってしまったのが、こんなにつらいと久しぶりに思い出しました*1。YubiKeyでも買おうかな。

posh-gitはARM64版の Git for Windowsに現時点で対応していないようで、起動時にWARNING: You appear to have an unsupported Git distribution; setting $GitPromptSettings.AnsiConsole = $false. posh-git recommends Git for Windows.という警告が出ます。ソースをサクッとみて…と。

*1:おおげさ。会社の端末では毎日10回くらいパスワード入れている

Visual Studio 2022専用拡張機能作ってみた

devblogs.microsoft.com

ほしい人はずーっと待っていたIDEが64bitになったVisual Studio 2022 Preview1が公開されました。機能的にはすごく変わったわけではないようですが、今後どんどん増えていくのでしょう。

64bitになったということでやってみたかったのが「ほんとにIDEで64bitメモリーが使えるのか」ということ。実証するための拡張機能を作ってみました。

github.com

拡張機能を追加するとToolsメニューにInvoke AllocMemoryが追加されるので、クリックすると512MBずつメモリをとっていきます。32bit版のVS 2019では3回程度クリックするだけでOut of Memory Exceptionが出ますが、こちらは5GB超えてもまだ大丈夫です。

確かまだ拡張機能の登録できないと思うので、お手元にcloneしてビルド&実行してみてください。

個人的には拡張機能で4GB以上使えるようになると、データベースのデータを全部読み込んでメモリ内でDBのテストして、終わったらコミットなり破棄するなりできるようになると面白いんじゃないかなと思います。

Visual Studio Users Community Japan 勉強会 #6でお話ししました

.NET Confローカルイベントということで、Visual Studio Users Community Japanでお話してきました。今回はMicrosoftでDirector of Development for .NET Platform team, formerly Dev Manager for the Visual Studio C++ and Debugger teams.のSteve Carroll氏が登壇していただけることになり、リモートでお話していただきました。Thank you Steve!

Steve氏は日本語がうまく(少なくとも私の英語よりも)、事前のミーティングでもだいぶ日本語でやってくれて助かりました。DebuggerチームのDev Managerということで、内容割とダダ被り(笑)でちょっと焦りました。

www.slideshare.net

そんなわけで私の発表資料です。Riderもちょっと紹介したのですが、C# 9.0の構文はEAP(早期リリース版)でぼちぼち対応されているそうですね。トップレベルステートメントはこういうサンプルの時に大変重宝するので、早く対応してほしいですね。dotMemoryやdotTraceといった支援ツールもクロスプラットフォーム対応になってくれると助かるけど、どうだろう?

いつもはAzure DevOpsのお話しているわけですが、今回は.NET Core(ともう言わずに単なる.NETですが)時代の障害解析ってどうだろうと改めて調べてみたということになります。ツールそのものはほぼ変わらないですが、dotnet-cliのグローバルツールが新しいですね。クロスプラットフォームで使えるようになったので、最低限のことはできるかなと思います。

なんか二人ほどからダンプ解析のハンズオン依頼されたけど、どうしよう…

(追記)
調べたらサンプルがありました😅。もうちょっと本格的なやつになると厳しいですがツールの使い方ならこれで割とわかるのではないかと思います。

docs.microsoft.com

docs.microsoft.com

docs.microsoft.com

GitHub Codespaces for Visual Studioを試す

visualstudio.microsoft.com

GitHub Codespaces for Visual Studio Codeは多く使われていると思いますが、Visual Studio版もEarly Accessが開始されています。申し込んでいたのですが、ようやく順番が回ってきたので、試してみました。Visual Studo Code版はブラウザーだけで使えることが売りですが、Visual Studio版はローカルにVisual Studioのインストールが必須です。

  • Visual Studio 2019 16.8 Previewが必要
  • Visual Studioのプレビュー機能からCodespacesの有効化が必要

f:id:kkamegawa:20201016130151p:plain

VS2019 Preview(16.8 Preview)を起動するときにコードスペースに接続という項目があります。これを使うのは、環境プレビュー機能GitHub Codespacesに接続するをチェックしておきます。

f:id:kkamegawa:20201016130156p:plain

Codespaces以外にも多くのプレビューがあるので、チェックするといいでしょう。

f:id:kkamegawa:20201016130159p:plain

コードスペースに接続をクリックすると、このような画面になります。GitHubにサインインをクリックすると、認証画面が表示されます。

f:id:kkamegawa:20201016130203p:plain

これだけの権限を使いますという表示が出ます。Authorize GitHubをクリックして承認します。このときパスワードは聞かれますが、多要素認証していてもコード入れさせられないんですね。

f:id:kkamegawa:20201016130208p:plain

認可完了後、接続するレポジトリー、インスタンスの種類、アイドルタイムアウト(最大2時間)の設定ができます。

f:id:kkamegawa:20201016130213p:plain

インスタンスタイプは4core/8GB RAM, 8core/16GB RAMのどちらかのようです。これ多分Windowsコンテナーなんでしょうかね。サーバーでのフォルダーはc:\workspaces\配下に該当のレポジトリー名を新規フォルダーで作っているようです。

f:id:kkamegawa:20201016130216p:plain

リモートなので、最初にgitのメールアドレスと名前を登録します。多分ずっと保持されるとは思います…多分(まだ再起動してない)。

f:id:kkamegawa:20201016130220p:plain

作ったとき思ったのですが、VS code版に比べて最初に作るのがだいぶ早いような?接続されると、タイトルバーのところでリモートであることがわかります。

f:id:kkamegawa:20201016130224p:plain

それ以外は全く変わらないようで、ぱっと見わからないですね。

f:id:kkamegawa:20201016130229p:plain

デバッグ実行もできます。通信しているというようなストレスもあまり感じないですね。LiveShare的な通信しているのでしょうか。ローカルとあまり変わらないです。

f:id:kkamegawa:20201016130232p:plain

右クリックメニューに関してはだいぶ違いますね。すっかり簡素ですし、拡張機能の類は使えないようです。

f:id:kkamegawa:20201016130237p:plain

リモートで動いているので、デバッグのプロセスIDはローカルに存在していません。デバッグコンソールもローカルに出ていないので、GUIアプリのデバッグや特権が必要なアプリの開発はちょっと厳しいですね。

中がどうなっているか(多分コンテナーなのでしょうけど)わからないですが、今後としては、せめてリモートデスクトップでデバッグ中のGUIをクライアントに飛ばすってのは欲しいところですね。

ぱっと見、Codespacesが実行されているサーバーのコンソールにアクセスする方法やWinodwsフォルダーをみる方法は見つからなかったけど、何か見つけたら報告してみたい。

実行するサーバーが4core/8GB RAM, 8core/16GB RAMとなかなかリッチ(Aインスタンスかな?)なので、正式版になった後の料金が気になるところです。セルフホスト版もあるといいなぁ。