🦉
.NET 10のアップデートがアツい
.NET 10のpreviewに画期的な機能が追加されました。内容はdotnet run
コマンドの実行に必要なファイルが*.cs
ファイル単体になるというものです。元々、.csproj
ファイルが必要だったのですが、不要になったとのことです。
単に実行可能になっただけでなく、sdkやNugetのパッケージなども導入可能です。具体的には次のように記述します。
#!/usr/bin/dotnet run
#:sdk Microsoft.NET.Sdk.Web
#:package Newtonsoft.Json@13.0.3
#:property UserSecretsId 2eec9746-c21a-4933-90af-c22431f35459
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/", () => JsonConvert.SerializeObject(new { Greeting = "Hello, World!" }));
app.Run();
静的型付けによる型の保証がされつつ、スクリプト言語のような書き方ができるとなると、バッチ処理などで活躍しそうだなと感じました。
この書き方で思い出したのですが、Pythonのuvでも同じようなことができます。
# /// script
# dependencies = [
# "requests<3",
# "rich",
# ]
# ///
import requests
from rich.pretty import pprint
resp = requests.get("<https://peps.python.org/api/peps.json>")
data = resp.json()
pprint([(k, v["title"]) for k, v in data.items()][:10])
引用: https://docs.astral.sh/uv/guides/scripts/#creating-a-python-script
こちらもboto3などPython製のライブラリを動かすときに便利です。
Discussion