.NET
前提条件 EFCoreのオプティミスティック同時実行制御を有効にするために、テーブルにrowversionが必要になる。 DB Firstでの業の場合、スキャフォールドでのリバースエンジニアリングが必要になる。 今回やりたいこと Not NullなRevision カラムをAlter Tabl…
CIを回す際に永続化レイヤーが欲しくなる問題 業務アプリケーションのServiceやエンドポイントを開発していると、Testの実行時に実際の永続化レイヤーへの接続が欲しくなる。 github.com name: .NET CI on: pull_request: jobs: build: runs-on: ubuntu-late…
事前条件 .NET8 projectである 現象 Analyzerの警告でタイトルのエラーが出力される。 対処方法 <PropertyGroup> <NoWarn>$(NoWarn);AD0001</NoWarn> </PropertyGroup> を、設定する。 関連Issue github.com
Settings/OptionValuesを設定ファイルに含めるかどうか、環境変数で直接挿すか、Secret経由で環境変数を挿すか問題 Settings/OptionValuesを設定ファイルに含めるかどうか 設定ファイルに含めるかどうかは、最悪漏れた時に個人情報漏洩等も含めたセキュリテ…
IReadOnlyDictionary<TKey, TValue>. GetValueOrDefaultと、.TryGetValue、どちらが良いのかわからなかったのでコードを見てみる github.com 拡張メソッドなので、最初にArgumentNullException.ThrowIfNullでのnull検査が入っているものの、基本的には.TryGetValueのwrapの</tkey,>…
NU1605がBuild時に上手くいかないケースがある 自分が遭遇した現象 ローカルでのBuild(VisualStudio2022)ではBuildはPass。 ローカルでのBuild(dotnet build)ではBuildはPass。 Cloud BuildでのCI時のBuildはPass Cloud Runへのdeploy時のBuildはError …
github.com 基本的に勉強会で得た知識を自分なりに纏めているので、欠落はありそう……。
github.com まだ、書くことたくさんあるけど、とりあえず中締め。
書いた github.com
.gitignoreを自動生成したいだけの人生だった VS2017時代はソリューション作成時に「新しい Git リポジトリの作成」というPropがありました。 有効にすると、[ソリューションの作成], [git リポジトリの作成], [Visual Studio用 .gitignoreの生成]まで全部や…
Propertyの違う、同一Objectを複数DI設定したいだけの人生だった IEnumerableでInjectionする DIでper RequestでInjectionしてほしいクラス public class PiyoService { public string TagName { get; } public PiyoService(string tagName) { TagName = tag…
Program.cs周りのコードを確認してみる。 ASP.NET Core の2.2時代のテンプレートは、WebHost(IWebHostBuilder)が使用されていました。 コードベースはこんな感じ。 public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDef…
Microsoft.AspNetCore.Appメタパッケージを使いたい Webゾーンに関わるライブラリーを書く場合、Microsoft.AspNetCore.Appメタパッケージを参照したくなります。 .NET Coreの.csprojを編集するときに、Project SdkをMicrosoft.NET.Sdk.Webに設定するとDefaul…
C#6.0で追加されたNull条件演算子、便利ですよね。 今回はNull合体演算子と共に戯れてみます。例)hogeが、Nullである場合は、string.Empty、そうでない場合はTrim処理を行う。 @Null合体演算子を使う場合 // string.EmptyにもTrim処理がかかって、うざい。…
導入方法 NugetでSwashbuckleを追加します。Nugetでの導入後、SwaggerConfigが作られているため、XMLドキュメントコメントを参照するように変更を加えます。下記コードがコメントアウトされているので、コメントアウトを解除します。 c.IncludeXmlComments(G…
Webサイト/アプリを運営していると、ページの評価の統一をしたい等の理由で、リダイレクトを設定したいケースはままあるかと思います。 その際、C#等のプロダクトコードでリダイレクトかけるのは少々面倒なので、IISのURLReWriteにて、設定をしてしまいます…
アノテーション検証で、単項目バリデーションを完結させたい場合、アノテーションを作成したくなるケースがあります。 今回は、日付時刻のアノテーション検証と、時間のアノテーション検証を作成してみましょう。まずは日付時刻のアノテーション検証から作成…
ASP.NET WebAPIで作成したWebメソッドの返却値は、リクエストヘッダーのAcceptを指定してスイッチ出来ますが、 そもそもJson形式でしか運用しない場合には、Global.asax.csに以下のコードを追加することで限定可能です。 GlobalConfiguration.Configuration.…
難しいことは特にありません。 RouteCollectionクラスに、プロパティを持っているので、いつものRouteConfig内で、プロパティを変更してあげるだけです。 public static void RegisterRoutes(RouteCollection routes) { routes.LowercaseUrls = true; routes…
結果から言うと、出来てません。←ASP.NET MVCで、リンクを作成するときは、HtmlヘルパーのActionLinkか、RouteLinkの拡張メソッドを通常使うと思いますが、 Webアプリを作っていると、通常のテキストでのリンクではなく、Divのブロック単位でリンクを張りた…
ASP.NET MVCで、リンクを作成するときは、HtmlヘルパーのActionLinkか、RouteLinkの拡張メソッドを通常使うと思います。 Route設定があるなら、RouteLink、ないならActionLinkという住み分けでしょうか。 パフォーマンス的にはRouteLinkが推奨のようなので、…
知り合いとFizzBuzz書いてみようという話になりました。@仕様 1から順番に数をコマンドプロンプトに表示する。 その数が3で割り切れるなら"Fizz" 5で割り切れるなら"Buzz" 両方で割り切れるなら"FizzBuzz"と表示する。@引数 [0]=終端の値言語はいつもの通りC…
Oracleを扱う機会があったので、ポストします。 OracleのBlob型のデータカラムを、C#側からアップデートしようとした際に、エラーが発生する場合がありました。 アップデートが行われる場合もあれば、行われない場合もある、といった具合です。エラー内容は[…
MicrosoftAzure、仕事では、Iaas、Paas共に、微妙に触っていたのですが、プライベートで触る機会があったので、軽くまとめてみます。 そもそも、Azureって? クラウドプラットフォーム、と言われるものです。 AWS等が競合ということになります。 AWSでも、Ia…
ASP.NET MVCでWebアプリを作っているときに、いつも迷うのが、Model配下のオブジェクト定義です。DomainModelは大体、Models配下にDtoフォルダを作成して配置しています。 SQLのスクリプトは、Models配下にSqlフォルダを作成して配置しています。 コード上で…
AutoMapperとはなんぞや、というのは、前に書いたので、今度は設定と使用について書いていきましょう。まずは、設定を行う必要があります。 設定は、ASP.NET MVC(c#)で利用する場合、アプリケーションスタート時に一度、呼び出すだけでOKです。(セッション…
他人に説明する時に、どうにもうまく言語化できないので、ここにまとめてみます。 そもそもASP.NETってなんぞ? 概念はWikipediaさんでも見てもらうとして、これまでASP.NETと表現していたフレームワークは、ASP.NET WebFormsを指し示すことが多かったはずで…
Dapperを使って、PostgreSQLの接続クラスを作ってみます。まずはDapperの導入から。 といってもNugetから導入するだけです。簡単。 次に、インポート設定 using System; using System.Collections.Generic; using System.Linq; using System.Text; using Npg…
前回書いたことと若干リンクする話ではありますが、Linqが登場してからは、.NETの世界でもデータをオブジェクト単位で扱うことが多くなりました。 そんな中、オブジェクトを詰めなおしたいという要求が出てくることが結構あります。 本格的なドメイン駆動開…
.NET開発というと、初期の頃は、データの取り扱いにDataTableとかDataSetとかを使っておりました。 Linqが登場してからは、データをオブジェクト型で取り扱うことが多くなりました。 (Linq使うようになると、オブジェクト型じゃないと、どうにも立ち行かな…