rksoftware

Visual Studio とか C# とかが好きです

.NET

.NET 9 Preview 4 の暗黒モード

先日 WinForms のダークモードについてイベントで話をしてきました。 その際、確認できていなかったのですが Preview 4 で WPF のダークモード対応の情報に気が付いてしまったので試してみます。 話してきた内容 www.docswell.com WPF のダークモード github…

C# 13 を試す 新しいロックオブジェクト

C# 13 の 新しいロックオブジェクト を試してみます。 元ネタはこちら learn.microsoft.com System.Threading.Lock というクラスが追加されたようですね。 いくつか機能はあるようですが、使い方はこんな感じのようです。ここでは 2 種類の使い方を書いてい…

C# 13 を試す 新しいエスケープ シーケンス

C# 13 の 新しいエスケープ シーケンス を試してみます。 元ネタはこちら learn.microsoft.com そもそもの元の機能を使ったことがないですね、この機能。 // 背景色、文字色、文字修飾などいろいろとできる Console.WriteLine("\u001b[46m\u001b[35mしあん\u…

C# 13 を試す 暗黙的なインデックス アクセス

C# 13 の 暗黙的なインデックス アクセス を試してみます。 元ネタはこちら learn.microsoft.com オブジェクト初期化子の中で末尾からのインデックスが使えるということです。 // .csproj に <LangVersion>Preview</LangVersion> がないと // CS8652 機能 '暗黙的なインデクサー初期化子…

C# 13 の新機能を試す params その2

C# 13 でパワーアップする params を試してみました。 rksoftware.hatenablog.com しかし、いろいろと気になるところがある......そう思っていますね。いいでしょう試してみましょう。 C.M(1, 2); // 1:Int32[] => 1,2 C.M('a', 'b'); // 3:List`1 => a,b C.…

C# 13 の新機能を試す params

params がパワーアップしました。 M2(1, 2); M3(1, 2); static void M1(params inに t[] a) { } // これができるようになった // .csproj に <LangVersion>Preview</LangVersion> と足さないとエラー // CS8652 機能 'params コレクション' は現在、プレビュー段階であり、*サポートされ…

Build のセッションを探そう その3

表形式にしてみました。 .NET C# form Running .NET on the NES https://build.microsoft.com/en-US/sessions/0a4b8c8c-bd24-4e77-8df9-0b2e1190c453?source=sessions .NET WPF WinUI Navigating Win32 App Development with WinUI and WPF https://build.mi…

Build のセッションを探そう その2

とりあえず絞り込んで観ようかと思うセッションのメモです。 レコーディングなしと AI はきってみました。 .NET C# form https://build.microsoft.com/en-US/sessions/0a4b8c8c-bd24-4e77-8df9-0b2e1190c453?source=sessions Running .NET on the NES .NET W…

PowerShell で .NET のコンソールアプリにダブルクォーテーションを引数で渡す

PowerShell で .NET のコンソールアプリにダブルクォーテーションを引数で渡す。意外と難しいです。 ■ 結論 .\ConsoleApp1.exe \`" です。 ■ 内容 " は PowerShell で引数として書く場合に ` によるエスケープが必要です。その後、.NET のコンソールアプリで…

.NET のライブラリ作成時のターゲットフレームワークについて

■ 結論1 こんな感じでしょうか。 .NET Framework 派にも使ってもらいたい場合。 <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFrameworks>netstandard2.0</TargetFrameworks> <LangVersion>12.0</LangVersion> <ImplicitUsings>enable</ImplicitUsings> <Nullable>enable</Nullable> </PropertyGroup> </Project> ■ 結論2 こんな感じでしょうか。 .NET…

winget で .NET の Preview 環境を作る

最近世界中で .NET 9 の Preview 版が話題です。 皆さん当然インストールして確認をしているでしょう。私もです。 ■ いつもと違うインストールしよう いつも、サイトからインストーラーをダウンロードして実行したりなどしていました。けれど今回からはちょ…

.NET 9 Preview 1 で追加されたもう一つの LINQ メソッド Index を書いてみる

.NET 9 Preview 1 で追加された LINQ メソッドの中の .CountBy と .AggregateBy は以前に書いてみました。 rksoftware.hatenablog.com 今日は .Index を書いてみます。 ■ 書いてみた こんな感じで index が取れます。いいですね。 // 0:a,1:a,2:b,3:b,4:c,5:…

.NET 9 Preview 1 で追加された LINQ メソッドの一つ、AggregateBy を書いてみる

.NET 9 Preview 1 で追加された LINQ メソッドを書いてみています。 rksoftware.hatenablog.com その中で前回、.AggregateBy でちょっと特殊な使い方をしたくて迷っていました。今回はそこを少し深く語ってみます。 ■ これまで .Aggregate でよくやっていた…

.NET 9 Preview 1 の C# コードを書く

前回、.NET 9 Preview 1 をインストールしました。 rksoftware.hatenablog.com 今回はいよいよコードを書いてみましょう。 ■ Visual Studio のプレビュー版 Visual Studio のプレビュー版で .NET 9 Previre 1 のプロジェクトを作成してみます。 プロジェクト…

.NET 9 Preview 1 で追加された LINQ メソッドを書いてみる

.NET 9 Preview 1 で LINQ メソッドの .CountBy と AggregateBy が追加されたので書いてみます。 char[] t = ['a', 'b', 'a', 'a', 'b', 'c']; { IEnumerable<KeyValuePair<char, int>> m = t.CountBy(x => x); // a: 3, b: 2, c: 1 Console.WriteLine(string.Join(", ", m.Select(x </keyvaluepair<char,>…

.NET 9 Preview 1 をインストールする

.NET のプレビュー版。Visual Studio のプレビュー版が入っているから更新したら来るかな? と思ったら来ませんでした。 というわけで不通にインストールする必要があるようです。 参考 .NET 9 について インストールはこちらから ■ インストールされている …

.NET Aspire を Azure Container Apps にデプロイするという記事を読んだので真似してみる (1)

この記事です。 devblogs.microsoft.com やっていきましょう。 ■ Azure Developer CLI をインストール まずは Azure Developer CLI をインストールします。実はこのツール使ったことなかったので初めてのインストールです。 winget でインストールしてみます…

.NET Aspire のテレメトリの送信先設定

.NET Aspire のテレメトリ送信先の設定についてこれまで何度か動かして確認してきました。 そんな日々の中、素晴らしい情報を得ました。こちらのイベントのセッションでの情報です。 dotnet-communities.connpass.com 情報はこちら こちらの素晴らしいセッシ…

.NET の 2 日間 2024 冬 (2 日目) ~3 コミュニティ合同イベント~ を運営、セッションしてきました

.NET の 2 日間 2024 冬 (2 日目) ~3 コミュニティ合同イベント~ を運営、セッションしてきました。 .NET の 2 日間 2024 冬 (2 日目) ~3 コミュニティ合同イベント~ .NET 系のコミュニティ合同で開催するイベントです。 今回は 3 つのコミュニティ合同…

.NET の 2 日間 2024 冬 (1 日目) ~3 コミュニティ合同イベント~ を運営、セッションしてきました

.NET の 2 日間 2024 冬 (1 日目) ~3 コミュニティ合同イベント~ を運営、セッションしてきました。 .NET の 2 日間 2024 冬 (1 日目) ~3 コミュニティ合同イベント~ .NET 系のコミュニティ合同で開催するイベントです。 今回は 3 つのコミュニティ合同…

Python 実行環境を整えて Python のコードを書いてみる (全部まとめ)

今日はみんな大好き Python をやっていこうと思います。 この記事では IronPython を試す、無印 Python を Visual Studio で整える、生 Python を実行する、の 3 種をやってみます。 IronPython IronPython 実行環境を整えます。 ■ .NET をインストール Iron…

Python の対話型実行を試す

先日 Python の環境を整えて Python のコードを書いてみました。 その際は、スクリプトファイルを作成しての実行をしたのですが、よくある順番と逆でしたね。 ■ 対話型実行をする (IronPython) 先日スクリプトを実行した ipy.bat をただ実行すると対話型の入…

Python 実行環境を整えて、Python のコードを書いてみる

今日はみんな大好き Python をやっていこうと思います。 IronPython 実行環境を整えます。 ■ .NET をインストール IronPython は .NET や .NET Framework で動作するとのことです。 今回は .NET がすでにインストールされている環境なのでここの作業はありま…

.NET Aspire を見てみる OpenTelemetry 編 全部まとめ

以前に .NET Aspire を動かしてみました。 rksoftware.hatenablog.com rksoftware.hatenablog.com その際に、OpenTelemetry をどこで設定しているのか、という疑問がありました。というわけでやっていきます。 ■ Nuget パッケージ まず、OpenTelemetry の機…

.NET Aspire のテレメトリ送信先設定を変更する

以前の記事で .NET Aspire のテレメトリの送信先が環境変数から来ていそうだということになりました。 そこで、設定を変えてみたいと思います。 ■ 起動プロジェクトの launchSettings.json を変更 変更前 { "$schema": "http://json.schemastore.org/launchs…

.NET Aspire のテレメトリ送信先設定

環境変数で設定できるようです。 ■ 起動プロジェクトの最初で 環境変数をセットしてみます。 System.Environment.SetEnvironmentVariable("DOTNET_DASHBOARD_OTLP_ENDPOINT_URL", "http://localhost:16062"); ■ 起動 期待通り、 http://localhost:16062 で起…

.NET Aspire のテレメトリーの送信先?

先日から .NET Aspire を試してみています。 rksoftware.hatenablog.com その中でも OpenTelemetry についてはまだ良くわかっていません。 ■ OpenTelemetry の送信先設定はどこ? OpenTelemetry の送信先設定はどこで設定されているのか、これが今の関心ごと…

.NET Aspire が起動しない

.NET Aspire プロジェクトを Visual Studio Preview 版でデバッグ実行しようとすると次のダイアログが表示され、いつまでも起動してこないことがあります。 ■ 対策 Docker Desktop を手動で起動します。 これですぐに .NET Aspire が起動しました。 ■ 簡単で…

.NET Aspire を見てみる OpenTelemetry 編

以前に .NET Aspire を動かしてみました。 rksoftware.hatenablog.com rksoftware.hatenablog.com その際に、OpenTelemetry をどこで設定しているのか、という疑問がありました。というわけでやっていきます。 ■ Nuget パッケージ まず、OpenTelemetry の機…

.NET Aspire のコンテナ部分

以前、.NET Aspire を動かしてみました。 rksoftware.hatenablog.com その際、Blazor のフロントエンドと、API のバックエンド、テレメトリーの送信、Redis コンテナがセットになったテンプレートがその形態の一つだとわかりました。 しかし、コンテナが見つ…