並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 24 件 / 24件

新着順 人気順

C#の検索結果1 - 24 件 / 24件

  • 自動テストの実行時間を大幅短縮!分析と最適化の実践法

    Thinkings 株式会社では、sonar ATS の開発で自動テストを導入しています。過去に CI の実行時間を大幅に削減したことで全体の実行時間は短くなりました。自動テストの速度改善は手が回っていなかったので、CI 実行時間のボトルネックになっていました。今回は自動テストの実行時間を短縮するためにどうやって分析を行ってテストコードを改善したかについて説明します。 開発環境 開発環境は次の通りです。今回はバックエンドの改善内容について説明します。 Visual Studio 2022 .NET Framework 4.6.2 C# xUnit.net 実行時間の分析方法について まずは、自動テストのボトルネックを分析する方法について説明します。前回もお話しましたが、弊社では CI/CD ツールに Jenkins を使用しています。自動テストは1日に数回実行しており、その実行結果をアップ

      自動テストの実行時間を大幅短縮!分析と最適化の実践法
    • 「.NET 6」サポート終了は2024年11月12日、あと4カ月弱 ~Microsoftが注意喚起/次のLTSリリース「.NET 8」への移行を

        「.NET 6」サポート終了は2024年11月12日、あと4カ月弱 ~Microsoftが注意喚起/次のLTSリリース「.NET 8」への移行を
      • C# Source Generator 開発チュートリアル

        こんにちは、そして、お久しぶりです。 Aiming の土井です。 今年はファミリーベーシック40周年だそうです。小学生の頃に触れて、ゲームのプログラムを書く仕事を志したという思い出があり感慨深いですね。年齢は秘密です! 今回は「C# Source Generator の作り方」について書いていきます。 ソースジェネレーターとは ソース ジェネレーターとは、.NET Compiler Platform (“Roslyn”) SDK で提供される、「コンパイル時コード生成機能」です。自動生成されたソースコードは、裏側に隠れ、生成コードを使用していることを意識せず、動的なコード生成による柔軟な実装を行うことができるようになります。 ソースジェネレーターは、アセンブリ単位毎に、コードに変更が入ったタイミングで動作し、任意のコード生成処理を実装することができます。 ユースケース 外部 DLL を参照

          C# Source Generator 開発チュートリアル
        • 自作の.NET製CLIツールにタブ補完機能を付ける(PowerShell編) - Qiita

          .NET tool × オートコンプリート C#使いとして日頃からお世話になっているdotnet CLI(dotnetコマンド)ですが、オートコンプリート(タブ補完)機能を付けられるのをご存じでしょうか。 dotnet CLI のタブ補完を有効にする PowerShell、Bash、zsh、fish、nushellなどの各種シェルに対し、専用のスクリプトを実行することで、パラメータの入力補完が使えるようになるというものです。 PowerShellでの入力補完 タブ補完を有効化するスクリプトについて、PowerShellの実装を見てみるとRegister-ArgumentCompleter というコマンドレットを使用するようです。 # PowerShell parameter completion shim for the dotnet CLI Register-ArgumentComple

            自作の.NET製CLIツールにタブ補完機能を付ける(PowerShell編) - Qiita
          • Why and How to Execute GraphQL Queries in .NET - .NET Blog

            Most (if not all) projects are consuming APIs to get data, and there many ways to do it. One of the most popular ways is to use REST APIs. However, REST APIs have some limitations, such as over-fetching (forcing the client to load all properties even when only a few are needed for the UI). GraphQL is a great alternative to REST APIs because it allows you to request only the data you need, which ca

              Why and How to Execute GraphQL Queries in .NET - .NET Blog
            • Playwright で作成したテストのパフォーマンスを改善する - Qiita

              はじめに 本記事では、 E2E テストツールの Playwright(C#/MSTest) で作成したテストのパフォーマンス改善を行った際のポイントをご紹介します。 まとめ 原則ヘッドレスモードでテストを実行する テストケースごとにブラウザーを閉じる処理を挟む 上記の改善により、テスト実行時間を約 1/4 に短縮 Playwright とは? Playwright は Web アプリケーションのテストを自動化するテストフレームワークです。 JavaScript/TypeScript, Java, Python, C# での開発が可能です。 Chrome, Edge, Firefox, Safari 等のブラウザーに対応しています。 導入コストが低く、コード自動生成やトレース保存機能を利用できるのが特徴です。 背景 UI 部品に関するテストを Playwright で実行できるように整備し、

                Playwright で作成したテストのパフォーマンスを改善する - Qiita
              • C#でのWaitHandle待機スレッド調査 - Qiita

                スレッド別、待機実現方法 メインスレッド メインスレッドでWaitHandle.WaitOneメソッドを呼ぶ。 ThreadPoolワーカースレッド Task.RunとWaitHandle.WaitOneメソッドを組み合わせる。 ThreadPool.QueueUserWorkItemとWaitHandle.WaitOneメソッドを組み合わせる。 ThreadPool.RegisterWaitForSingleObjectメソッドを使う。 明示的に生成したスレッド new Thread(), _beginthread(), pthread_create()などでスレッドを生成して利用する。それらのスレッド中でWaitHandle.WaitOneメソッドを呼ぶ。 なおスレッド生成タイミングや生成数にも複数のやり方がある。WaitHandle1つ毎に都度生成&破棄、起動時に固定数生成、負荷に応

                  C#でのWaitHandle待機スレッド調査 - Qiita
                • .NET 9 Preview 6 is now available! - .NET Blog

                  It’s a great time to check out the latest .NET 9 Preview! We just shipped our sixth preview release, adding to some great features in the previous previews with major enhancements across the .NET Runtime, SDK, libraries, C#, and frameworks including ASP.NET Core, Blazor, and .NET MAUI. Check out the full release notes linked below and get started today. Download .NET 9 Preview 6 This release conta

                    .NET 9 Preview 6 is now available! - .NET Blog
                  • Unity向けオブジェクトプールライブラリ「uPools」 - Qiita

                    uPoolsとは uPoolsとはUnity向けのオブジェクトプールライブラリです。 汎用的なオブジェクトプールから非同期オブジェクトプールや、既存実装をほぼそのままオブジェクトプール化できる機能が搭載されています。 https://github.com/AnnulusGames/uPools/ ※ 本記事では「UniTask」を使用しています。 サンプルコード https://github.com/TORISOUP/uPools_Samples 導入方法 導入方法はGitHubのREADMEを参考にしてください。 機能紹介 SharedGameObjectPool SharedGameObjectPoolはPrefabの生成と破棄をとても簡単にオブジェクトプール化する機能です。 PrefabのInstantiate()をSharedGameObjectPool.Rent()に置き換え、D

                      Unity向けオブジェクトプールライブラリ「uPools」 - Qiita
                    • C# バイナリ/JSONシリアライザ選択

                      結論としてはJSONだけで良いのであればSystem.Text.Jsonで良さそうです。結果だけ見るとUtf8Jsonが優秀なのですがリポジトリがアーカイブ状態なので採用は厳しそうです。 MessagePackJsonSerializeはMessagePackのJSON出力機能のベンチマークです。JSONシリアライザのベンチマークを作ってた時、MessagePackにもJSON変換機能が入っていたので、一応項目に加えてみました。 MessagePackでJSONを出力するには一旦byte[]に変換しないといけないのでその手間が結果に響いています。なので「今MessagePackを使っているけど、その中の一部データをJSONにしたい」など、すでにMessagePackを採用しているのであれば良い選択だと思いますが、逆にJSONだけしか使う予定がないのであれば、わざわざMessagePackの

                        C# バイナリ/JSONシリアライザ選択
                      • 【C#, Rider】SourceGeneratorに対してブレークポイントを用いてデバッグするにはlaunchSettings.jsonが大切 - はなちるのマイノート

                        はじめに 今回はSourceGeneratorでブレークポイントを用いたデバッグをRiderでする方法を紹介したいと思います。 Rider公式で紹介されていて、今まで頑張ってテストコード書いてデバッグしてましたがもっと手軽にできることを知って衝撃を受けました。もっと早く知りたかった...。 blog.jetbrains.com テストコードは生成されたコードに対して行うくらいが楽ですし、十分なのではと個人的に思います。(依存先のアセンブリを拾ってくるのがめっちゃ面倒…) はじめに やり方 launchSettings.jsonの配置 ブレークポイントの設定と実行 やり方 launchSettings.jsonの配置 launchSettings.jsonが必要です。通常Propertiesフォルダ以下に配置してあげます。 # 自分がよくやるファイル構成 (SourceGeneratorsは

                          【C#, Rider】SourceGeneratorに対してブレークポイントを用いてデバッグするにはlaunchSettings.jsonが大切 - はなちるのマイノート
                        • 宣言順の不正や相互参照を検出するアナライザー - Qiita

                          C# の静的フィールドの初期化子は問題があってもコンパイルエラーを起こさないので、今までは「気を付ける」で対応していたんですが、うっかり相互参照して静的フィールドの初期化は順序が変わってしまい、そしてエラーの原因が分かり辛く、、、なんで? 何故動かない! となりました。 なので Roslyn アナライザーを作ってエラーとして検出できるようにしました。 1)宣言順序の診断 2)相互参照の検出 初期化順序が変わる例 3)partial 型のファイル間参照 4)型引数 TSelf 5)注釈/下線表示 インストール/ダウンロード Unity プロジェクトへのインストール 参考)静的コンストラクターの実行順 const vs static readonly おわりに 1)宣言順序の診断 以下のように宣言順序が間違っている場合にエラーを出します。 static int BEFORE = AFTER;

                            宣言順の不正や相互参照を検出するアナライザー - Qiita
                          • C# で生産性を向上させよう~C# 13 アップデート完全ガイド~ - Qiita

                            はじめに 2024 年 11 月に .NET 9 とともに C# 13 が正式リリースされる予定です。今回の C# 年度アップデートは、主に ref struct を中心に多くの改善が行われ、生産性をさらに向上させる便利な機能もたくさん搭載されています。 この記事では、C# 13 に搭載する予定の機能を紹介していきます。 注意:この時点で C# 13 はまだ正式リリースされていませんので、以下の内容は変更される可能性があります。 イテレータと非同期メソッドに ref と ref struct C# でプログラミングをするとき、結構 ref 変数と Span などの ref struct 型を使ったりしませんか?しかしイテレータと非同期メソッドの中にこれらを使えず、ローカル関数などを使ってイテレータと非同期メソッドで直接 ref 変数 ref struct 型の使用を回避しないといけないとい

                              C# で生産性を向上させよう~C# 13 アップデート完全ガイド~ - Qiita
                            • Unityで最新の"C#"(C#13 previewも)を使う方法

                              と打つ。(previewなどバージョン指定するならこちら限定で最後に"Preview"などつけることで設定できます。) これで、C#12が使え、Unity2022以降ではfile-scoped namespaceでもMonoBehaviourが認識されるようになります。 既に知られているC#10,11を使う方法 すでにC#10,11を使う方法はある程度知られています。 CsprojModifierを用いた方法でこちらでに手順をまとめられた記事があります。 この方法でなぜうまくいくかと言うとUnityが使うC#コンパイラがC#11に対応したものになっているものの、ランタイムと不整合を起こすことからデフォルトでC#9に抑えられています。 それをcsprojで置き換えることでC#11まで使うというものです。 C#12~を使う方法 前節にあったようにUnityが使うC#コンパイラがC#11というこ

                                Unityで最新の"C#"(C#13 previewも)を使う方法
                              • [VSCode] [mac] C#をちょっと書きたい時の環境構築 - Qiita

                                はじめに Visual Studio Codeでやります Visual StudioがC#にとって最強ツールらしいのは知ってるけど、ちょっと試したいだけでいっぱいインストールさせられたくないし macOS 12.6 .NET 6 .NETをインストール こちらからマシンアーキテクチャに合わせたインストーラをDLする コマンドが使えるか確認 $ dotnet --list-sdks 6.0.404 [/usr/local/share/dotnet/sdk] $ dotnet --list-runtimes Microsoft.AspNetCore.App 6.0.12 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.NETCore.App 6.0.12 [/usr/local/share/dotnet/s

                                  [VSCode] [mac] C#をちょっと書きたい時の環境構築 - Qiita
                                • SourceGeneratorで始めるコード自動生成 | Unity Learning Materials

                                  Unityでソースコードを自動生成するとき、どうしてますか?メニュー経由でcsファイルを書き出す手法がメジャーでしょうか? 実は、C#にはSourceGeneratorと呼ばれる「コンパイル時に」ソースコードを自動生成する機能があり、Unityでも利用可能です。 本発表では、Unityの新規プロジェクトを作成してから一体何をすればソースコードを自動生成できるようになるのか、サンプルコードを交えつつ紹介していきます。

                                    SourceGeneratorで始めるコード自動生成 | Unity Learning Materials
                                  • OpenCvSharpでカメラキャリブレーション - Qiita

                                    NuGetからOpenCvSharp4.WindowsおよびOpenCvSharp4.Extensionsをインストールする(執筆時点で最新バージョン4.10.0.20240616)。 またSystem.Drawing.Commonも使用するが、デフォルトではバージョン7.0.0がインストールされる。この場合、OpenCvSharp側とバージョンが合わずビルドに失敗する。OpenCvSharpのバージョンをいくつか落とす、あるいはSystem.Drawing.Commonのバージョンを最新版(執筆時点で8.0.7)へ更新する、などでビルドが通るようになる。 キャリブレーションパターン キャリブレーションパターンを用意する。 static void ExportAsymmetricCirclesGrid(int w, int h, float spacing, float diameter)

                                      OpenCvSharpでカメラキャリブレーション - Qiita
                                    • 【C#】RuntimeでcsファイルをRoslynで解析してリフレクションで実行する - はなちるのマイノート

                                      はじめに 今回はRuntimeでcsファイルをRoslynで解析をしてリフレクションで実行する方法を紹介したいと思います。 github.com はじめに 概要 インストール 今回の流れ 構文木を生成する Syntax Treeの走査 C#のバージョン指定 コンパイル MetadataReferenceで依存先のアセンブリを追加 CSharpCompilationOptionsでコンパイル後のアセンブリの種類を設定 コンパイル結果を調べる Unityで扱う場合 参考 概要 .NET Compiler Platform SDK(通称Roslyn)は、C#で開発されたC#コンパイラープラットフォームを指します。オープンソースなので、誰でもコードが見れますしプルリクも送れます。 github.com The Roslyn .NET compiler provides C# and Visual

                                        【C#】RuntimeでcsファイルをRoslynで解析してリフレクションで実行する - はなちるのマイノート
                                      • C# 文字列リテラルのシンタックスハイライト

                                        C# 文字列リテラルのシンタックスハイライト JetBrains Rider や Visual Studio には文字列リテラル内の文字列のシンタックスハイライトや文法検査や入力補完機能があります。 スクリーンショットは Rider のものですが、Visual Studio でも同じだと思います。 もちろんこの機能はユーザーコードではデフォルトでは利用できません。 ユーザーコードでこれらの機能を提供する方法を紹介します。 .NET 標準 まずは StringSyntaxAttribute を使う方法です。 関数のパラメーターだけでなく、フィールドやプロパティにも指定できます。 属性以外にもコメントに lang=Regex とする方法もあります。 正規表現以外だけでなく、Json / Uri / Xml にも対応しています。 また、DateOnlyFormat と指定すると、日付のフォーマッ

                                          C# 文字列リテラルのシンタックスハイライト
                                        • - YouTube

                                          YouTube でお気に入りの動画や音楽を楽しみ、オリジナルのコンテンツをアップロードして友だちや家族、世界中の人たちと共有しましょう。

                                          • Visual Studio Codeで.NET Core開発をする(Mac) - kenfdev’s blog

                                            最近C#を触ることが増えてきたのですが、さすがに2013年モデルのMBPでParallels+Visual Studioではいろいろと(特にビルド時間)つらくなってきたので、小規模な個人プロジェクトはVisual Studio Codeでやってみようと思い、環境を整えてみました。その記録を残しておきます。 まず、基本的には公式の以下ページの通りで比較的簡単に開発を始められます。 code.visualstudio.com .NET Core SDKのインストール 若干つまづいたのは.NET Core SDKをインストールしたあと、dotnetコマンドが使えなかった点でした。 $ dotnet zsh: command not found: dotnet /usr/local/share/dotnet/dotnetにバイナリは存在していたので、ひとまずシンボリックリンクを作ることにしました。

                                              Visual Studio Codeで.NET Core開発をする(Mac) - kenfdev’s blog
                                            • C#初心者がAランク(相当)問題に挑戦!Listからただの配列に変更しタイムアウトを解消した - Qiita

                                              何の記事? 最近、急に仕事でC#を使うようになったので、腕試しにpaizaのAランク相当の問題に挑戦しました。 提出したコードがタイムアウトになり、この問題を解決した方法を共有します。 当記事の著者のレベル C#歴は3ヶ月です。 元々は、C / C++を主に使っていました。 挑戦した問題 paizaのAランク相当の問題「本の整理」です。 問題文は、下記リンク先を参照ください。 https://paiza.jp/works/mondai/real_event/book_sort 作成したコードその1 本の一覧をListに格納したところ、テスト10で、タイムオーバーでの失敗となりました。 実行時間は、5.00 秒と表示されました。 using System; using System.Collections.Generic; class Program { static void Main()

                                                C#初心者がAランク(相当)問題に挑戦!Listからただの配列に変更しタイムアウトを解消した - Qiita
                                              • C#: structのフィールドをreadonly参照する方法およびref readonly について

                                                はじめに C# においてメンバ変数を参照として公開したいことがあります。 よくあるのが、データサイズの大きな構造体などを readonly参照で公開することです。 第一の理由はImmutable であることを保証するためです。書き換えできてしまうと複雑性が増すので、誤って書き換えできないように、readonly 参照を公開したいのです。 第二の理由は大きな構造体のコピーを避けたいからです。データサイズが大きいとコピーだけで帯域を取ってしまいますので、性能が下がります。 というわけでメンバ変数を readonly 参照で公開したいのですが、いかんせん難しいときがありますので、本稿でいい感じの方法をまとめます。 classフィールドへのreadonly参照を返す class のフィールドはそのまま ref return できます。 フィールドが値型だろうが参照型だろうがref return で

                                                  C#: structのフィールドをreadonly参照する方法およびref readonly について
                                                • Visual Studio Officeアドイン 配布方法 - Qiita

                                                  先日、Visual StudioでOfficeアドインを作成する方法について書いたのですが、アプリの配布方法について書いていなかったので、補足として記事を書こうと思います。 ↓以前に書いたOfficeアドイン作成方法の記事のリンクです。 https://qiita.com/NagaJun/items/c7c6964a12a8a945726e インストーラーの作成 まず、配布したい作成済みのアドインのプロジェクトを開きます。 下記画面の様になるかと思いますので、プロジェクトを右クリックし、項目の中から「発行」を選択して押下してください。 下記の様なウィンドウが立ち上がるかと思いますので、それぞれの設定を行いながら、「次へ」を押下してください。 今回の例としては下記の様にしています。配布先はローカルに落とすので「CD-ROM/DVD-ROM」を選択します。 設定が終わり、「完了」を押下すると、

                                                    Visual Studio Officeアドイン 配布方法 - Qiita
                                                  1