front-endと、Product Managementのことを知りたいだけの人生だった Motivation 参加のMotivationは上の見出しの通りです。 ビジネス上の課題を技術で解決するお仕事をしているので、二日目のproductionというテーマのほうも多くの学びがありました。 Openin…
gRPCの事例について聞きたいだけの人生だった Motivation 参加のMotivationは上の見出しの通りです。 gRPCで、超高トラフィック、BtoC、これほど事例として、パーフェクトなものはなかなかお目に書かれるものではありません。 結果、それ以外にも非常に勉強…
appsettings.XXX.json(要するにconfigの類)をProgram.csで参照したい 普段ASP.NET Core MVCで開発している場合(ここでいう通常、は)、Startupクラスにはappsettings.jsonとappsettings.{EnvironmentName}.jsonを読み込んだコンフィグがインジェクション 設…
EnvironmentNameをProgram.cs内で参照したい 具体的には、Mainメソッド内で CreateHostBuilder(args).Build().Run(); ってやってるところで、ロギングしたかったり、CreateHostBuilderのところで、そもそもEnvironmentNameに対応したappsettings.XXX.jsonで…
Program.cs周りのコードを確認してみる。 ASP.NET Core の2.2時代のテンプレートは、WebHost(IWebHostBuilder)が使用されていました。 コードベースはこんな感じ。 public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDef…
GAのタイミングで再確認してみるswitch式 後置き構文で読みやすいswitch式ですが、プレビュー時代は、以下の書き方をする必要がありました。 static IEnvironmentBuilder GetEnvironmentBuilder(string environmentName) { return environmentName switch { …
Microsoft.AspNetCore.Appメタパッケージを使いたい Webゾーンに関わるライブラリーを書く場合、Microsoft.AspNetCore.Appメタパッケージを参照したくなります。 .NET Coreの.csprojを編集するときに、Project SdkをMicrosoft.NET.Sdk.Webに設定するとDefaul…
Using IAsyncDisposable C#8から追加されたIAsyncDisposable、言わずと知れた await using ~ を実現するための存在ですが、ASP.NET Coreで開発している場合、各Objectのライフタイム管理は、DIContainerに任せることが大半だと思います。 DIContainerにライ…
.NET Core2.2時代に、WebApi(REST)開発を行う際、.AddMvc()が差し込まれるのが辛かったので、必要なものだけを差すように書き直していたのですが、.NET Core 3(RC)版のIServiceCollectionの拡張を見たら、少し変わっていたので、中を確認してみました。 .N…
RedisをASP.NET SessionState,OutputCacheのストレージに設定する。 Nugetパッケージのインストール Microsoft.Web.RedisSessionStateProvider、Microsoft.Web.RedisOutputCacheProvider を追加します。 パッケージを追加するとWeb.ConfigにSessionStateセク…
前提条件 Visual Studio Professional 2017(VS 15.7.2) Windows 7 Proの環境で、試行しています。 やりたいこと Visual Studio 2017で.NET Framework 4.7.2を利用して開発が出来るようにしたい 記事の目的 2018/5/26現在、ちょっとしたトラップがあったので…
インターネット加盟店のクレジット決済@カード情報非保持サービスについて、調べる機会があったので、自分へのメモも兼ねてまとめておきます。 インターネット加盟店のクレジット決済@カード情報非保持サービスについて 決済代行のカード情報非保持サービ…
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使うようになると、オブジェクト型じゃないと、どうにも立ち行かな…