いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

C# 14からSpanとReadOnlySpanがファーストクラスサポートとなった (.NET 10)

関連記事

GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ

概要

以下、自分用のメモです。忘れそうなのでここにメモメモ。。。

C# 14から Span<T>ReadOnlySpan<T> ってファーストクラスに格上げされたんですね。

learn.microsoft.com

C# 14 では、言語での System.Span と System.ReadOnlySpan に対するファースト クラスのサポートが導入されています。 このサポートには、これらの型を使用したより自然なプログラミングを可能にする新しい暗黙的な変換が含まれます。

なので、以下のように暗黙的な変換が出来るようになっている。良いですね。

int[] v = { 1, 2, 3 };
ReadOnlySpan<int> s = v;
ReadOnlySpan<int> s2 = s[1..];

foreach (var i in s2)
{
    Console.WriteLine(i);
}

参考情報

learn.microsoft.com


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。

.NET 9 で WinForms に Control.InvokeAsync が追加 (Form.ShowAsync, TaskDialog.ShowDialogAsync は Experimental)

関連記事

GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ

概要

以下、自分用のメモです。

.NET 9 で WinForms に以下の3つのメソッドが追加されたみたいですね。

  • Control.InvokeAsync
  • Form.ShowAsync/ShowDialogAsync
  • TaskDialog.ShowDialogAsync

devblogs.microsoft.com

WinFormsさん、現場ではまだまだ現役で使われているところが多いので、こういう改善はとても良いですね。

参考情報

dotnet.microsoft.com

github.com


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。

C# 13の新機能についてのメモ (Lockオブジェクトなど)

関連記事

GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ

概要

以下、自分用のメモです。後から見直せるようにここにメモメモ。。。

来月あたりに .NET9 (C#13) がリリースされるみたいですね。

後から勉強出来るように以下に参考情報をメモメモ。。

以下順不同。

pvs-studio.com

devblogs.microsoft.com

www.syncfusion.com

medium.com

learn.microsoft.com

qiita.com

参考情報

learn.microsoft.com


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。

clocの使い方メモ (特定言語のみ, 除外ディレクトリ設定, csv出力, tsv出力, markdown出力)

関連記事

GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ

概要

以下、自分用のメモです。すごく久しぶりにcloc使ったら使い方をすっかり忘れていたので、ついでにここにメモメモ。

特定の言語ファイルのみ対象とする

$ cloc --include-lang="C#" .

特定のディレクトリを除外対象とする

$ cloc --include-lang="C#" --exclude-dir=bin,obj .

各ファイルごとの結果も出力する

$ cloc --include-lang="C#" --exclude-dir=bin,obj --by-file .

CSV出力

$ cloc --include-lang="C#" --exclude-dir=bin,obj --by-file --csv --report-file=result.csv .

TSV出力

$ cloc --include-lang="C#" --exclude-dir=bin,obj --by-file --csv --report-file=result.csv --csv-delimiter=$'\t' .

PowerShell上だとタブを指定するのにクセがあり、以下のようにする。

$ cloc --include-lang="C#" --exclude-dir=bin,obj --by-file --csv --report-file=result.csv --csv-delimiter="`t" .

Markdown出力

$ cloc --include-lang="C#" --exclude-dir=bin,obj --by-file --md --report-file=result.md .

余計な出力をオフ

$ cloc --include-lang="C#" --exclude-dir=bin,obj --by-file --csv --report-file=result.csv --csv-delimiter=$'\t' --quiet .

参考情報

github.com


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。

dotnetでTUIアプリを作る際に便利そうなライブラリ (Spectre.Console)

関連記事

GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ

概要

以下、自分用のメモです。忘れない内にメモメモ。。。

知り合いがGithub上でスターつけていたので知りました。

github.com

spectreconsole.net

いいですねこれ。PythonのRichライブラリにインスパイアされてるとのこと。

きちんとしたドキュメントがついているのが素晴らしい。

サンプル

インストールは

$ dotnet add package Spectre.Console

で完了。

using Spectre.Console;

AnsiConsole.Markup("[underline red]こんにちは[/] world!\n");

var table = new Table();
{
        table.AddColumn("Foo");
        table.AddColumn(new TableColumn("Bar").Centered());

        table.AddRow("行1列1", "[green]行1列2[/]");
        table.AddRow(new Markup("[blue]行2列1[/]"), new Panel("行2列2"));
}
AnsiConsole.Write(table);

実行すると以下のようになります。

参考情報


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。

Windows FormsのProgressBarの進みがちょっとだけ遅れる

関連記事

GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ

概要

以下、自分用のメモです。忘れないうちにメモメモ。。。

今更、Windows Formsかよって話しなのですが、現場では全然現役で存在してたりします。

とても久しぶりにプログレスバーを表示した進捗ダイアログみたいなのを作っていたのですが

ラベル部分(トータル何件中の何番目みたいなの)を表示する部分とプログレスバーの描画がなんか合わない。。

プログレスバーが少しだけ遅れて進む感じ。ピタってあって欲しいんだけど・・・・って思って、こちょこちょやってたのですが以下を発見。

stackoverflow.com

ここに乗ってる処理を入れたら一発で解決しました。感謝!

忘れないよう、ここにコピーしておく。

public static class ExtensionMethods
{
    /// <summary>
    /// Sets the progress bar value, without using 'Windows Aero' animation.
    /// This is to work around a known WinForms issue where the progress bar 
    /// is slow to update. 
    /// </summary>
    public static void SetProgressNoAnimation(this ProgressBar pb, int value)
    {
        // To get around the progressive animation, we need to move the 
        // progress bar backwards.
        if (value == pb.Maximum)
        {
            // Special case as value can't be set greater than Maximum.
            pb.Maximum = value + 1;     // Temporarily Increase Maximum
            pb.Value = value + 1;       // Move past
            pb.Maximum = value;         // Reset maximum
        }
        else
        {
            pb.Value = value + 1;       // Move past
        }
        pb.Value = value;               // Move to correct value
    }
}

参考情報

c# - ProgressBar is slow in Windows Forms - Stack Overflow


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。

VSCodeの C# 向け拡張機能 「C# Dev Kit」が一般提供されてた

関連記事

GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ

概要

以下、自分用のメモです。忘れないうちにメモメモ。。。

VSCodeのC#向け拡張機能の「C# Dev Kit」が一般提供開始されてたみたいですね。

もう、ほぼVisual Studioと同じようなことが出来るようになってますね。一部の機能がVisual Studioを同じライセンスモデルとなっているので、利用する場合はサインインなどが必要です。

尚、当然ですが .NET Framework は対象外です。dotnetのみです。

(業務レベルでは、まだまだ .NET Framework さんは現役のところが多いので残念。。。はよ、引退してほしい)

以下、情報リソース。

devblogs.microsoft.com

forest.watch.impress.co.jp

codezine.jp

www.publickey1.jp

news.mynavi.jp

参考情報


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。

「分散トランザクション マネージャ (MSDTC) のネットワーク アクセスは 無効になっています」というエラーが出た

概要

以下、自分用のメモです。忘れないうちにここにメモします。

タイトルの通りのエラーが出る環境があって、ちょっと意味が分からなかったのですが以下の記事を見つけて、理解しました。

qiita.com

助かりました。ありがとうございます m( )m

参考情報


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。

JetBrainsの全製品の2022.3アップデートの内容 (DataGripにRedisサポートが追加)

概要

以下、自分用のメモです。忘れないうちにメモメモ。。。

JetBrainsから恒例の製品アップデート一覧記事が出ましたね。

blog.jetbrains.com

毎回、とても沢山の新機能が出てきていますが、個人的に

  • DataGrip に Redis サポートが追加

が一番嬉しかったです。これをメモするためだけにこの記事書きました。(年なので多分すぐ忘れるw

参考情報

www.jetbrains.com

www.jetbrains.com

www.jetbrains.com

www.jetbrains.com

www.jetbrains.com

www.jetbrains.com

www.jetbrains.com

www.jetbrains.com

www.jetbrains.com


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。

DevExpress奮闘記-130 (DevExpressのCodeRushがいつの間にか無料利用できるようになってた (free-of-charge))

概要

以下、自分用のメモです。

だいぶ前(以前 Microsoft MVP を受賞していたとき)に、Microsoft MVP 用のライセンスを使って、DevExpressの製品をいろいろ触ってて以下のリンクにあるように記事にしていました。

https://github.com/devlights/blog-summary#devexpress

DevExpress社の製品が大好きで、そのときにCodeRush使っていたのですが、いつの間にかResharperに移行してて今に至ります。

んで、たまたまDevExpressのページを見てたら、CodeRushが free-of-charge って書かれていてびっくり。

www.devexpress.com

いつからそうなったんだろうって調べると、v22.1 からみたいですね。

community.devexpress.com

元々は、Resharperと同様にお金を支払って利用する製品だったので、機能的には折り紙付きです。使い勝手が Reshaper とは似ているようで結構違うので馴染まない人もいると思います。

あと、同社の XPO (eXpress Persistent Objects) も無料利用になっていますね。元々からそうだったのかは覚えていませんが。。

www.devexpress.com

これもORマッピングのライブラリとしては好きだったので、嬉しいところ。

ちょっと古いですが、以下にベンチマーク結果とかありますね。

github.com

Blazor UI Components いいなー。

参考情報

www.devexpress.com

www.devexpress.com


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。