つばろぐ

主に C#, .NET, Azure の備忘録です。たまに日記。

2023年もよろしくお願いします

あけましておめでとうございます。
2023年もどうぞよろしくお願いします。

コロナ禍も落ち着いたのか落ち着いていないのかよく分かりませんが、2023年もなるべく活動的に過ごしたいなと思っています。

スマホでこの文章を書いているので乱雑ではありますが、昨年の振り返りと今年の抱負を簡単に述べます。

2022年を振り返って

この3年間、近い親族が亡くなることが続いており、帰省するときといえばそういうときばかりでした。
今年はそういうことが無いといいなと願うばかりです。

エンジニアとしての活動は昨年振り返りましたので、そのときの記事を読んでいただければと思います。

tsubalog.hatenablog.com

2023年に頑張ること

2022年も自分のなかで頑張ろうと決めていたことはありましたが、必ずしもちゃんとできたとは言いにくいです。

自分のなかで、これは学ばないと詰むと思っているのは3つです

  • お金
  • 英語
  • IT

ITは本業なので、当然ながら一番頑張ります。
しかし、お金と英語は毎年の課題です。

ITで学びたいこと

今年はこのあたりを特に頑張りたいです。

  • インフラ技術
  • フロントエンド技術
  • 資格取得
  • 他者を伸ばす
  • コミュニティ活動

インフラ技術

クラウドを基本に、まずはインフラへの苦手意識を減らしていきます。
Bicepを少しずつ学びながら、はやいうちにAZ-104に合格したいところ。

フロントエンド技術

フロントエンドについては毎年言ってるような気がしますが、やはりTypeScriptをしっかり身につけたい。
SPAフレームワークには重きを置いていないので、こだわり無しです

(追記)資格取得

今年は早々に AZ-104 (Microsoft Azure Administrator) を取得したいと思います。もう申し込みました。
AZ-104 の範囲に含まれているインフラストラクチャ(主にネットワーク)に対しては特に苦手意識が強いので、資格勉強を通じて学び直そうと思います。

他者を伸ばす

教師的なロールを指しているわけではないですが、個人でも仕事でも、他者に教える・トレーニングする機会が増えているので、もう少し自分のなかで体系的な構成が作れるようにしたいと思っています。

コミュニティ活動

やはり今の自分があるのはコミュニティのお陰なので、少しでも還元していけるような活動をしていきたいです。
福岡に限らず様々な形や場所で活動したいと思っているので、なにか機会があればぜひお声掛けいただけると嬉しいです。

写真は昨年の .NET Conf Recapの一幕。
今年もやりたいですねーーー

2022年の個人活動ふりかえり

2022年も残りわずかですね。今年も色々ありました。
ふと思い立って、今年の個人活動内容をまとめたいと思います。

今年の活動場所としては主に3つでした。

  1. ブログ
  2. イベントや勉強会の登壇
  3. YouTube

ブログ

主に個人のブログと会社のブログの2つに書いてきました。

  • つばろぐ:19本
  • aadojo:13本
  • Qiita:2本

イベントや勉強会の登壇

様々な機会をいただいて、登壇することができました。一部を記載します。

Microsoft Developer Day

2月のイベントでした。
亀川さんとの共同登壇&動画だったので、1年前の今頃は動画の撮影と編集に追われていた記憶があります。

tsubalog.hatenablog.com

Microsoft Build

Build に初めて登壇しました。
オンラインではありましたが、グローバルカンファレンスに自分の名前が入ったのは嬉しかったですね。

C# Tokyo

.NET 7 から変更になったサポートポリシーについて話しました。

www.slideshare.net

tsubalog.hatenablog.com

.NET Conf Recap Fukuoka

久しぶりに福岡でマイクロソフト公式イベントがあり、開催に向けた様々な調整を支援させていただきました。
あとスピーカーとしても。これを機に来年は Fukuoka.NET をリブートしたいなと思っています。

YouTube

devblogラジオを亀川さん、足利さんと1年間やりきりました。といっても喋るだけだけどw
2023年も引き続きやるので、ご視聴ください。

devblog.connpass.com

GitHub CodespacesでのASP.NET Core 6.0のデバッグ構成は少し工夫が必要

ASP.NET Core 6.0 を GitHub Codespaces で開発する際に、VSCodeデバッグ構成で少しハマったのでメモ。*1


VSCodeデバッグ構成を作成すると .vscode/launch.json が作成されます。
標準的な構成はこんな内容です。

{
    // IntelliSense を使用して利用可能な属性を学べます。
    // 既存の属性の説明をホバーして表示します。
    // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": ".NET Core Launch (web)",
            "type": "coreclr",
            "request": "launch",
            "preLaunchTask": "build",
            "program": "${workspaceFolder}/aspnetapp/bin/Debug/net6.0/aspnetapp.dll",
            "args": [],
            "cwd": "${workspaceFolder}/aspnetapp",
            "stopAtEntry": false,
            "serverReadyAction": {
                "action": "openExternally",
                "pattern": "\\bNow listening on:\\s+(https?://\\S+)"
            },
            "env": {
                "ASPNETCORE_ENVIRONMENT": "Development"
            },
            "sourceFileMap": {
                "/Views": "${workspaceFolder}/Views"
            }
        },
        {
            "name": ".NET Core Attach",
            "type": "coreclr",
            "request": "attach"
        }
    ]
}

この構成のうち、 "serverReadyAction" > "pattern" でポート番号を抽出し、別タブでデバッグ中のアプリケーションを開いてくれます。

例えば、 ASP.NET Core 6.0 の Properties/launchSettings.json が以下の内容であれば、"applicationUrl" に記載されているポート番号 7193 が抽出されます。

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:23469",
      "sslPort": 44391
    }
  },
  "profiles": {
    "aspnetapp": {
      "commandName": "Project",
      "dotnetRunMessages": true,
      "launchBrowser": true,
      "applicationUrl": "https://localhost:7193;http://localhost:5058",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

GitHub Codespaces でデバッグ実行すると、アプリケーションポートに以下のような「ローカルアドレス」が割り当てられます。
https://{GitHubアカウント名}-{ランダムな文字列}-{アプリケーションポート}.preview.app.github.dev/

つまり https://tsubakimoto-{ランダムな文字列}-7193.preview.app.github.dev/ となり、この URL が別タブで開かれます。
しかし実際にアクセスすると HTTP 502 Bad Gateway となります。
なお、なぜこうなるかはまだ正しく把握できていません。 dotnet dev-certs の問題なのではないかと推測しています。

そこで .vscode/launch.json に、GitHub Codespaces 向けの構成を追加します。
違いは HTTP のアプリケーションポートを抽出するように変更します。
"pattern": "\\bNow listening on:\\s+(http?://\\S+)"

{
    "name": ".NET Core Launch (Codespaces)",
    "type": "coreclr",
    "request": "launch",
    "preLaunchTask": "build",
    "program": "${workspaceFolder}/aspnetapp/bin/Debug/net6.0/aspnetapp.dll",
    "args": [],
    "cwd": "${workspaceFolder}/aspnetapp",
    "stopAtEntry": false,
    "serverReadyAction": {
        "action": "openExternally",
        "pattern": "\\bNow listening on:\\s+(http?://\\S+)"
    },
    "env": {
        "ASPNETCORE_ENVIRONMENT": "Development"
    },
    "sourceFileMap": {
        "/Views": "${workspaceFolder}/Views"
    }
},

これでデバッグ実行時に、 HTTP のアプリケーションポートに紐づくローカルアドレスが起動するようになります。

*1:そもそもVSCodeASP.NET Coreを開発する人がどれくらいいるやら