おーみんブログ

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

2022-04-01から1ヶ月間の記事一覧

AWS CloudFront導入時に気を付けること。

はじめに パフォーマンスや負荷対策としてキャッシュを用いるという手法はよくあり、AWS CloudFrontもそれを提供するサービスの一つです。 しかしながら利用する上でいくつか注意点があるため、今回は3点ほど書いていこうと思います。 1-1. 静的コンテンツ用…

DDoS保護サービスのAWS Shieldを勉強してみた。

はじめに 1台のPCから大量の通信を投げるDoS攻撃はFireWallを用いてそのIPアドレスを遮断するだけで問題ないですが、大量のPCから攻撃するDDoS攻撃はIPアドレスが大量にありすぎてFireWallだけの制御では対処ができません。 そのようなDDoS攻撃への対処の一…

DNSキャッシュポイズニングについて勉強してみた。

はじめに DNSのTTLについて解説した記事にて、リプレイスの際はなるべくTTLを短く設定しようという内容を書きました。 oooomincrypto.hatenadiary.jp しかしながら、中にはTTLを長く設定したがる企業さんもいます。 ということは...やはり長く設定したほうが…

DNSのTTL(Time To Live)を理解する!

はじめに nslookup(dig)テスト【DNSサーバ接続確認】等でDNSレコードについて検索すると以下の赤枠のような数値を見かけます。 繰り返し検索すると徐々に数値は減っていきます。 この値をTTL(Time To Live)と言うのですが、これはどういう意味を表しているの…

DNSレコードについて勉強してみた。

はじめに 以下の記事でDNSの歴史と大まかな通信の流れについて勉強しました。 oooomincrypto.hatenadiary.jp 今回の記事ではDNSのゾーン情報について学習してみたいと思います。 Aレコード Aレコードはドメイン名に対応するIPアドレスを記載したレコードです…

ドメイン申請からWebサーバまでのアクセスについて勉強してみた。

はじめに ドメイン申請からWebサーバまでのアクセスについて勉強してみました。 Webサイトにアクセスする際に、最終的にはそのサイトのIPアドレスが分かれば良いのですが、その過程までにどのようなことが行われているのか、そしてどのような作業をあらかじ…

Docker上で動かしたASP.NET Coreアプリで"no such table: テーブル名"となる場合の対処法

はじめに ASP.NET Core + SQLiteで自作したアプリをDocker上で動かした際に"no such table:テーブル名"と出た際の対処方法を備忘録として記載します。 エラー内容 Dockerfileをビルドし、docker run ~ でコンテナを作成していざアクセスした時でした。 fail…

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

C#

はじめに GoFのデザインパターンの1つであるFactory Methodパターンを体験してみました。 Factory Methodパターンとは Factory Methodパターンについての説明は以下の記事がとても分かりやすかったです。 nprogram.hatenablog.com FactoryMethodの説明と構成…

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

C#

はじめに GoFのデザインパターンの1つであるSingletonパターンを体験してみました。 Singletonパターンとは Singletonパターンを用いると特定のクラスのインスタンスを1つだけ生成するということが可能になります。 1つのインスタンスだけを使いまわしたいと…

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

C#

はじめに GoFのデザインパターンの1つであるTemplate Methodパターンを体験してみました。 Template Methodパターンとは Template Methodパターンとはスーパークラスで処理の枠組みを決めてそれを継承したサブクラスで具体的な処理を書いていくというパター…

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

C#

はじめに GoFのデザインパターンの1つであるStateパターンを体験してみました。 Stateパターンとは Stateパターンとは「状態」をクラスとして持ち、その変化を管理しやすくするためのデザインパターンです。 「状態」を表すStateインターフェースを継承して…

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

C#

はじめに GoFのデザインパターンの1つであるAdapterパターンを体験してみました。 Adapterパターンとは Adapterパターンとは既に提供されているクラスを特定の部分へ使いまわす際に良い感じに使えるように変換させるデザインパターンです。 既に提供されてい…

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

C#

はじめに GoFのデザインパターンの1つであるMementoパターンを体験してみました。 Mementoパターンとは Mementoパターンでは、インスタンスの特定の状態を記憶し、必要な時に取り出すことができるようにするデザインパターンです。 特定の状態をスナップショ…

MySQLで月ごとのレンジパーティションを設定する。

はじめに データベースではパーティション化を行うことで、テーブルを分割してデータの格納場所を分けることができます。 今回は特定のDATEカラムを月ごとのレンジパーティション化にするSQLを記載致します。 既存のテーブルに適用する ALTER TABLE 'テーブ…

ボクシング(ボックス化)のパフォーマンスを検証してみた。

C#

はじめに 以前転職活動をしたときに面接官(たぶん現役のバリバリの技術屋さん)に「ボクシングって知っていますか?」と聞かれてスポーツのボクシングしか頭に浮かばなかったことを思い出したのでお勉強してみました。(/・ω・)/ (本来ならばその場で調べる…

すべての警告をエラーとするTreatWarningsAsErrorsオプションを使ってみた。

C#

はじめに C#のお勉強として公式ドキュメントをのんびり眺めていたら、どうやら警告をエラー扱いに変更できるオプションがあるようだったので試してみました。 docs.microsoft.com サンプル 例えば以下の場合などは警告が出ます(変数aが使用されていないため…

C#10のglobal usingを体験してみた。

C#

はじめに C#10にて、プロジェクト全体に対してusing機能が有効になるglobal usingというものが追加されたというお話を見たので実際に体験してみました。 medium.com 環境構築 環境は以下です。 (今回の環境構築ではDockerを用いています) Windows10 Pro Do…

非正規形~第2正規形の弱点について。なぜ正規化を行うのか。

はじめに データベースの勉強もちゃんとやらないといけないなと思い、ミックさんの『達人に学ぶDB設計徹底指南書』を読んでいます。 正規化について、第3正規化までの手法については理解しているつもりなのですが、なぜ非正規形~第2正規形までではよろしく…

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

C#

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

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

C#

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

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

C#

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

BenchmarkDotNetを用いてIndexOfとBinarySearchのパフォーマンスを測定してみた。

はじめに 今までStopwatchクラスを用いてパフォーマンスを測定していたのですが、お客様先(現在常駐している会社)の上司にパフォーマンス測定だとBenchmarkDotNetを使うといいですよ~と教えてもらったので今回はそれを用いて測定したいと思います。 測定…

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

AWS CLIからDynamoDBを操作してみる。

はじめに 業務でDynamoDBを利用しているのですがAWS CLIからコマンドを打つ機会があったので忘れずに操作内容をメモしておこうと思います。 事前準備 今回はローカル環境からコマンドを打っているため、AWS CLIを利用するにあたってAWS Configureの設定をす…

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

C#

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