きな粉もち.net

.NET関連仕事に携わっています。OSSのソースを読んで気がついたことを中心に呟いたりブログに投稿したりしています。最近はUiPathを使ったRPAも研究中。気軽にフォローやツッコミよろしくおねがいします! Gitはここを使っています https://github.com/kinakomotitti

C#

基礎学習 × .NET Framework の非同期処理を見直してみた × その4

.KinakoPoint{ font-size : large; font-weight : bold; color:red; } この記事の目的 この記事では、 Taskクラスを使って画面の情報を更新する方法をまとめること を目的としています。ついでに、Windows Forms,WPF,UWPで非同期処理を実装する方法について…

基礎学習 × .NET Framework の非同期処理を見直してみた × その3

.KinakoPoint{ font-size : large; font-weight : bold; color:red; } この記事の目的 この記事では、 Taskクラスの基本的?な使い方をまとめること を目的としています。 アジェンダ この記事の目的 アジェンダ 本題 ★Taskクラスでよく使われるメソッドとは…

基礎学習 × .NET Framework の非同期処理を見直してみた × その2

.KinakoPoint{ font-size : large; font-weight : bold; color:red; } この記事の目的 この記事では、 .【NET Framework】非同期処理のキャンセル処理についてまとめること を目的としています。 アジェンダ この記事の目的 アジェンダ 本題 ★はじめに ★.NET…

基礎学習 × .NET Framework の非同期処理を見直してみた × その1

.KinakoPoint{ font-size : large; font-weight : bold; color:red; } この記事の目的 この記事では、 .NET Frameworkの非同期処理についての基本的なことをまとめること を目的としています。また、基本的なことをまとめる中で、 「非同期処理プログラミン…

UWP × GlobalHooks × 使えない理由を検証してみた

.KinakoPoint{ font-size : large; font-weight : bold; color:red; } この記事の目的 この記事では、 UWPでGlobal Hookが機能するかについての検証結果をまとめること を目的としています。 アジェンダ この記事の目的 アジェンダ 本題 ★きっかけ ★開発環境…

UWP × Windows.Graphics.Capture × スクリーンショットの取得サンプルを作ってみた

.KinakoPoint{ font-size : large; font-weight : bold; color:red; } この記事の目的 この記事では、 UWPでスクリーンショットを取得するまでの手順をまとめること を目的としています。 アジェンダ この記事の目的 アジェンダ 本題 ★背景 ★準備・その1 ★…

C# Interactive × 長い文字列 × Clipbordにコピーして使ってみた

.KinakoPoint{ font-size : large; font-weight : bold; color:red; } この記事の目的 この記事では、 C#Interractiveで長い文字列を使うときのコツをまとめること を目的としています。 アジェンダ この記事の目的 アジェンダ 本題 ★問題になっていること ★…

Visual Studio × AI × IntelliCodeを使ってみた

.KinakoPoint{ font-size : large; font-weight : bold; color:red; } この記事の目的 この記事では、 IntelliCodeの使用感をまとめること を目的としています。 目次 この記事の目的 目次 本題 ★IntelliCodeとは ★IntelliCodeの有無での違い【String編】 ★I…

C# × ErrorProne.NET × Roslynベースのコード解析ツールを使ってみた

この記事の目的 この記事では、 Roslynベースのコード解析ツール「ErrorProne.NET」を使ってみること を目的としています。 アジェンダ この記事の目的 アジェンダ 本題 ★ErrorProne.NETとは? ★ErrorProne.NETの導入方法 ★実際に使ってみたところ ★ErrorPro…

C# × for文 × カウンターについての間違った認識を正してみた

この記事の目的 この記事では、 自分が持っていたfor文についての間違った認識を正すこと を目的としています。 アジェンダ この記事の目的 アジェンダ 本題 ★基本のき!for文の書き方 ★Log4netのとあるクラスにて・・・ ★正しい考え方を整理 まとめ 本題 ★…

C# × Microsoft.AspNet.WebApi.Client × 使い方をまとめてみた

この記事の目的 この記事では、 Web API Client Libraryを使ったWeb API呼び出し処理の実装手順をまとめること を目的としています。 アジェンダ この記事の目的 アジェンダ 本題 ★はじめに(関連ドキュメント紹介) ★インストール方法 ★どう変わるか確認し…

Windows × スレッド × 基本的なことについてまとめてみた

この記事の目的 この記事では、 スレッドの概要についてまとめること を目的としています。 ※以下の書籍を参考に勉強した結果のアウトプットとなります。 プログラミング.NET Framework 第4版 (Microsoft Press) 単行本 – 2013/10/10 Jeffrey Richter (著), …

C# × ベンチマーク × パフォーマンス解析するためのツールをさがしてみた

この記事の目的 この記事では、 今後使っていくベンチマークツールを決めること を目的としています。 アジェンダ ベンチマークツールの選定 System.Diagnostics.PerformanceCounter Benchmark DotNet BenchShark 本題 ★ベンチマークツールの選定 非同期処理…

バックグラウンドスレッド × フォアグラウンドスレッド× 違いをたしかめてみた

この記事の目的 この記事では、 2種類のスレッドの違いについての動作の違いをまとめること を目的としています。 本題 スレッドの種類 バックグラウンドスレッド フォアグラウンドスレッド スレッドの種類 CLRで提供されているスレッドには、フォアグラウン…

C#×custom collection×作る理由

この記事の目的 この記事では、 log4netのAppenderCollectionクラス(カスタムコレクション)が作られた理由を自分なりにまとめること を目的としています。 本題 前回までのあらすじ カスタムコレクションを作る理由とは(一般論) log4netではなぜつくった…

log4net × AppenderCollection × カスタムコレクションの作成

log4netでは、appenderを管理するのに、AppenderCollectionというカスタムコレクションを利用しています。カスタムコレクション。。。気になったのは、.NET Framework標準のListではなく、カスタムコレクションを実装することになった理由です。 まだ調査中…

C# × CallerMemberNameAttribute × 呼び出し元のメソッド名取得方法

C#

この記事の目的 この記事では、 System.Runtime.CompilerServices.CallerMemberName属性の使い方のまとめ を目的としています。 本題 CallerMemberNameって便利 実装サンプル CallerMemberNameって便利 呼び出し元のメソッド名を取得したいことってよくあり…

log4net ✖️ 出力処理編 ✖️String.Internによるメモリ節約術

この記事の目的 この記事は、 StringクラスのInternメソッドの使い方のメモ を目的としています。 本題 なぜString.Intern? String.Internとは? 実際に使ってみよう 利用方法を考えてみよう 注意点など なぜString.Intern? log4netでログを出力する処理の…

log4net ✖︎ 起動処理 ✖︎ まとめ

log4netの起動処理も最後となりました。今まで断片的に起動処理の内容を見てきました。 それぞれで、参考になる実装を中心に見てきましたので、全体的な処理の流れについては疎かになっていました。 そういう事情から、今回は起動処理完了記念として、 「log…

log4net × xml 読み込み処理 × その他の種類まとめ

log4netの初期化処理も中盤に入ってきました。log4netでは、log出力のconfigファイルの読み込みをXmlConfiguratorクラスの中で、XmlReaderと、XmlDocumentを利用して実装しています。 XmlReaderSettings settings = new XmlReaderSettings(); settings.DtdPr…

String ✖️ 最大文字数 ✖️ Max Length

あまり意識したことがなかったのですが、String型の最大Lengthについて調べてみました。 何から調べれば良いかわからないので、とりあえず公式のStringクラスの説明を見てみました。 String クラス (System) 備考欄を一部抜粋。。。 A string is a sequentia…

log4net × 設定ファイルの読み込み処理 × 例外処理

よく、ファイルの読み込み処理を実装することがあります。 まぁ、読み込み処理だけに限ったものではないのですが、 ・どこまで、例外を考慮して実装するか ・例外が発生した場合の実装はどうするか などがあいまいになってしまい、とりあえず正常系だけ実装…

log4net × FileSystemWatcher × 設定ファイルの監視

引き続き、log4netの起動処理の解読をする中で学んだ技術についてまとめていきます。 今回は、System.IO.FileSystemWatcherクラスについてです。log4netでは、FileSystemWatcherを使って設定ファイルの変更を監視し、変更があった場合設定ファイルを再読み込…

log4net × System.Attribute × 呪文

log4netのDeep Diveの続きになります。前回*1に引き続き、log4netを読んでいるうちに知ったCustomAttributeについてまとめます。 今回は、特に設定したCustom Assemblyの情報をどうやって取得するかを中心にまとめます。 以下のように(普通に)Loggerのイン…

log4net × Assemblyファイルの設定 × 属性の名前付きパラメータ

久しぶりのlog4netのDeep Diveの続きになります。 今回は、log4netを読んでいるうちに知ったCustomAttributeの設定方法、定義方法についてまとめます。log4netを利用する時、logの出力設定を定義した設定ファイル(log4net.config)を用意します。 さらにlog…

REST × SOAP × MSDNマガジンで調査!

C#

MSDNマガジンをあさっていたら気になったので、まとめてみました。 WCF :Windows Communication Foundation さまざまな通信プロトコルを同一のプログラミングモデルで取り扱うための仕組みのこと (主に?)SOAP、REST、POXをサポート SOAP:Simple Object …

Text Analytics × Http Client × Sample Code

せっかくHttpClientについてと、Cognitive ServicesのText Analyticsを知ったので、サンプルコードを書いてみました。特に何もないですが、今後も使っていけそうなコードなので、TFSだけでなくこっちでもメモしておきます! 整理したTextAnalyticsUtilのコー…

log4net × Lock Model × Mutex(続き)

InterProcessLockというModelクラスの実装についての記事の続きです。 どのようにしてMutexを使ってロックをかけているかを順番に見ていきます。 順番は以下の通りです。 ファイルオープン ロック要求 ←特にここ ロック解除 ←特にここ ファイルクローズ 1.…

HttpClient × WebClient × HttpWebRequest

C#

十分に理解していないためか、よく3つの違いを忘れてしまうので、戒めのためにも3つの違いをまとめておきます。 System.Net.HttpWebRequest/HttpWebRespons System.Net.WebClient System.Net.Http.HttpClient 実装編 実装シナリオ: あるURLにGETリクエスト…

log4net × FileStream × Using

log4netでは、ファイルの排他制御にLockModelクラスを利用しています。 そのLockModelクラスでは、ファイルの出力操作にFileStreamを使って出力を行います。(LockModelには3つの種類がありますが、どのModelを使ってもFileStreamを利用します。) 出力の準…