おーみんブログ

C#, ASP.NET Core, Unityが大好きです。

C#

RealProxyクラスによるアスペクト指向プログラミングに入門してみた。

C#

はじめに 先日デザインパターンのProxyパターンを勉強したところ、お客様先(現在常駐している現場)の上司が記事を見てくださって「.NET FrameworkならRealProxy, .NET CoreならDispatchProxyを調べるとさらに勉強になりますよ~!」とアドバイスをいただい…

C#でProxyパターンを体験してみた。

C#

はじめに GoFのデザインパターンの1つであるProxyパターンを体験してみました。 Proxyパターンとは Proxyパターンとは、対象クラスの処理をそのクラス以外の代理人クラスが行うように処理にするデザインパターンです。 どうしても対象のクラスに処理を任せな…

文字列比較とカルチャ依存

C#

はじめに C#のお勉強として出井秀行さんの『C# コードレシピ集』を読んでいたらカルチャ依存に関する文字列比較について学んだので備忘録として残しておきます。 サンプルコード 以下はstr1, str2, str3の文字列をそれぞれ比較しています。 StringComparison…

C#のMemberwiseCloneメソッドを用いてオブジェクトを複製する。

C#

はじめに C#のお勉強として出井秀行さんの『C# コードレシピ集』を読んでいたらオブジェクトを複製するMemberwiseCloneメソッドというものを知ったので備忘録として残しておきます。 サンプルコード 以下は値型のメンバーと参照型のメンバーを持つオブジェク…

例外フィルターを用いて特定の例外をキャッチする!

C#

はじめに 通常例外処理を書く際はtry-catchで処理を書いていきますが、C#6.0で導入された例外フィルターを用いるとcatchに対して条件を設けることが可能です。 サンプルコード catchに対して条件を設けるにはwhenをcatch句の後に記載します。 以下は特定のエ…

Action, Func, Predicateデリゲートを使ってみた!

C#

はじめに Action, Func, Predicateデリゲートについて、使い方をざっくりまとめてみました。 あくまで使い方に全振りしたので正直なところ実用性は皆無なサンプルコードになっています(;´∀`) 使い方を理解する一助になれば幸いです。 Actionデリゲート デリ…

EFCoreのDetectChangesを無効にしたらどれくらいInsertが速くなるのか?

C#

はじめに 現在常駐しているお客様先の上司とお話していたところ、EFCore(Entity Framework Core)のDetectChangesというキーワードが出てきて何だそれは!!?という状態になったので調べてみました。 ChangeTracker.AutoDetectChangesEnabledプロパティ EFCo…

EFCoreのHasIndexメソッドを用いてDBのカラムにインデックスを作成する!

C#

はじめに ASP.NET Coreでモデルを定義する場合はEntityクラスにテーブル定義を書き、DbContextクラスでデータベース定義を行います。 今回はそれらの定義に加えてEFCoreで特定のカラムにインデックスを付与する方法を記載します。 HasIndexメソッド EFCoreを…

EntityFramework Coreでデータベースを特定のバージョンに更新する。

C#

はじめに EntityFrameworkにはC#のクラスからデータベースを作成・更新できるマイグレーション機能があります。 今回はその中でも特定のバージョンへデータベースを更新するマイグレーション機能について記載していこうと思います。 使用するコマンド 使用す…

SwaggerUIで特定のMediaTypeを選択できるようにする方法。

C#

はじめに ASP.NET Core + SwaggerUIの画面でMediaTypeを切り替える箇所がありますが、こちらの選択オプションを変更する方法を記載します。 デフォルトでは以下のように「text/plain」「application/json」「text/json」の3つが表示されます。 ProducesAttri…

ASP.NET Core WebAPIでCustom Formatterを利用してCSVとJSONの出力を切り替えるサンプル。

C#

はじめに 下記の記事にてASP.NET Core WebAPIでCSVとJSONの出力を切り替えるサンプル記事を作成しましたが、お客様先(常駐先)の上司にCustom Formatterの存在を教えてもらったので勉強として色々調査しながら実装してみました! oooomincrypto.hatenadiary…

ASP.NET Core WebAPIでCSVとJson出力を切り替えるサンプル。

C#

はじめに ASP.NET Core WebAPIでCSVとJsonの両方の出力が切り替えるサンプルを作ってみました。 今回はMediaTypeの値でcsvファイルとJsonの切り替えが行われるようにしています。 サンプルコード プロジェクトはASP.NET Core WebAPIテンプレートを利用してい…

【ASP.NET Core】DIシステムへの型登録を動的に変更してみる。

C#

はじめに ASP.NET CoreではDIシステムに型を登録することができます(一般的にはConfigureServicesメソッド内にて)。 今回の記事ではDIシステムへの型登録を動的に変更する方法を備忘録として残しておきます。 サンプルコード 下記のサンプルコードではapps…

ASP.NET Core(C#) + AngleSharp + AWSでスクレイピング結果通知アプリを作ってみた。

C#

はじめに 特定のサイトのお知らせ欄が更新されたかな?と毎回見に行くのが面倒だったのでスクレイピングして結果をLINEで送ってくれるバッチ処理を作ってみました。 アプリ概要と構成図 Amazon EventBridgeが特定の時間になったらLambda関数を実行します。 L…

【ASP.NET Core(C#)】 AmazonS3をDIしてS3へアクセスする!

C#

はじめに 以下の記事でS3からオブジェクトを取得したり更新したりする方法について記載しましたが、こちらの記事ではAmazonS3を利用するための設定(DI)に関する内容を記載します。 oooomincrypto.hatenadiary.jp AWSSDK.Extensions.NETCore.Setupのインスト…

【ASP.NET Core(C#)】AWS S3からオブジェクトを取得したり更新したりする方法。

C#

はじめに ASP.NET CoreプロジェクトでAWS S3からオブジェクトを取得したり更新したりする方法を記載します。 NugetからAWSSDK.S3を取得する Visual Studioにてプロジェクトを右クリック→「Nugetパッケージの管理」よりAWSSDK.S3をインストールします。 S3か…

EntityFramework Core + SQLiteでオプティミスティック同時実行制御を行う方法。

C#

はじめに EntityFramework CoreとSQLServerでオプティミスティック同時実行制御を実装する際はSQLServerのROWVERSION列を使うのが一般的ですが、SQLServer以外でオプティミスティック同時実行制御を実装する際は少し工夫が必要です。 サンプルコード 以下のM…

【C#】DaysInMonthを用いて月末の日を求める

C#

C#のDateTime.DaysInMonthメソッドを用いて月末の日を求める方法を解説します。

Span<T>構造体を使ってみた。

C#

C#のSpan構造体の使い方とサンプルコードを記載しています。

強く型指定されたViewModelをビューに渡す

C#

はじめに Microsoftの公式解説書『プログラミング ASP.NET Core』を読んで強く型指定を行った上でビューにデータを渡す方法を知ったので備忘録としてまとめたいと思います。 今までViewDataやViewBagを利用していた 恥ずかしながら今まではViewDataやViewBag…

C#8.0からインターフェースでメソッドの実装ができるようなので試してみた。

C#

C#8.0から追加されたインターフェースでもメソッドが実装できるようになった機能の説明です。

ASP.NET Core 5.0 MVC + SQLiteで作ったアプリをDocker上で動かしてみた!

C#

はじめに Dockerの勉強として、以前ASP.NET Coreで自作したアプリをDocker上で動かしてみました。 動作環境 Windows10 Pro .NET Core SDK 5.0.205 Docker Version 19.03.12 Visual Studio 2019 C:\Work>ver Microsoft Windows [Version 10.0.19042.1110] C:\…

【C#】大量データを削除する際のひと工夫。

C#

EFCoreを用いて大量データの削除を行う際のひと工夫です。LinqのTakeメソッドを用いることで細かく削除を行います。

C#でOpen-Closed Principle(OCP)を説明してみる。

C#

はじめに 自学でデザインパターンや設計を勉強してもなかなか定着しなかったのですが、お客様先(常駐している現場)の上司に教えてもらって一気に理解が進んだので備忘録として残しておこうと思います。 Open-Closed Principle(OCP)とは? OCPとはSOLID原則…

【C#】再帰関数でディレクトリとファイルを取得する!

C#

おはようございます。おーみんです。 再帰プログラミングの勉強としてプリザンターのディレクトリとファイルを全部呼び出してみました!(1~3枚目)意外と多くてこれでもごく一部なんですねw4枚目はプログラム~。再帰は実務でも使うことがあるので、基礎…

【C#】三項演算子の使い方

C#

おはようございます。おーみんです。 今回の記事ではC#の「三項演算子」について書いていこうと思います。 三項演算子とは? 三項演算子は条件の評価結果をtrueまたはfalseに応じて返すものです。 いわゆるif文と同じようなものです。 三項演算子の構文を以…

【C#】ラムダ式とは?

C#

おはようございます。おーみんです。 現在C#のお勉強中です。 今回はラムダ式について、学んだ内容をまとめていこうと思います。 ラムダ式とは? ラムダ式とはC#3.0から出てきた概念の一つで、ラムダ演算子「=>」を用いたプログラムのことを言います(という…

【C#】匿名メソッドとは?

C#

おはようございます。おーみんです。 現在C#をお勉強中です。 今回は匿名メソッドについて、学んだ内容をまとめていこうと思います。 匿名メソッドとは? サンプルプログラム 最後に 匿名メソッドとは? 匿名メソッドとは、名前の通り名前が不明なメソッドの…

【C#】デリゲートとは?

C#

おはようございます。おーみんです。 現在プログラミング言語「C#」のお勉強中です。 今回はデリゲートについて、学んだ内容をまとめていこうと思います。 デリゲートとは? デリゲートの使い方 デリゲートを使ったサンプルプログラム 最後に デリゲートとは…

【プログラミング】値渡しと参照渡しの違い

C#

おはようございます。おーみんです。 値渡しと参照渡しの違い 参考文献 値渡し 参照渡し それぞれの仕組み なぜ値型と参照型が必要なのか? 最後に 値渡しと参照渡しの違い プログラミングの勉強をしていると「値渡し」と「参照渡し」の比較が結構な確率で出…