WIP:VisualStudio2019 16.9 の新機能復習

WIP:VisualStudio2019 16.9 の新機能復習 コピペ時に、不足しているusingを自動で追加してくれる 上記オプション(赤枠)を有効にすることで利用できる。 平成末期のVisualStudio2019は、ペーストした後にctrl + .(クイックアクション)を押してusingの追加を…

using record(まとめと復習)

書いた github.com 自分の中での整理 個人的にrecordで一番良いと感じたのは、Primary ctorを定義した場合に、get; int; アクセサーと、値積み込み処理の生成を自動でやってくれる点。 今まで、C#で Constructorが動いたらobjectが利用可能になるように書き…

DockerSupportから生成されるDockerfileのImage Tag名を見てみる

復習兼ねて書いた github.com

2021 モバイルPC沼

CES 2021も終わり、なんとなくモバイルPCの事情が見えてきた。 32GB ramモデルが増えてきた 昨年はXPS13や、Thinkpad x13等にしか選択肢がなかった32GBramの選択肢が、増えてきました。 このへんは、covid-19によるリモートワークが増加したことによる効果な…

C# インタラクティブの文字化けと向き合う

C# インタラクティブの文字化けを解消したいだけの人生だった C#でREPLといえば、ここ数年はC#インタラクティブですが、16.8が来たタイミングで文字化けするマンになっています。 暫定対処法はあるけれど、正式対応については、これからRelease予定 develope…

using Iterator Block(まとめと復習)

書いた github.com

async / await Part1(まとめと復習)

using async / await Part1 TL;DR 非同期メソッド、実は必ずしも非同期じゃない。 =>1個目のawaitより手前まではただの同期実行。(並列実行は苦手なので、注意が必要。) =>完了済みタスクをawaitしてもコストは低い。(コールバック展開しないから。) asy…

Docker上にSqlServerをセットアップして、.dacpacの適用を行う

やりたいこと Docker上にSqlServerをセットアップして、.dacpacの適用を行う。 前提条件 .dacpacの取得方法について理解していること Linux、完全に理解した(プログラマースラング)の状態であること SqlServer、完全に理解した(プログラマースラング)の…

Mobile Pcの沼に嵌ってから1年が経った

Remote Work主体になってから、先月で1周年だった Remote 振り返り(前置き) 仕事は職場にいる日より捗る。 =>これは、単純に職場にいると、インタラプトコストが嵩むというだけだろうなあというお気持ち。 大体働きすぎる。 =>特に自分は退勤しても、C#の…

Windows10 1903 でWSL2を有効にする

TL;DR 当初はWindows 10 2004から利用可能ということだったが、1903から利用が可能だったことを二か月くらい前に発見したけど、発見して満足してたのでとりあえず文章にしておく。 対象読者 Docker / WSLを利用している or 利用したい人 WSL2がWin 10 2004か…

備忘録:開発用PCのセットアップ2020

インストールするもの ブラウザ Google Chrome HyperV有効化 Docker For Windows有効化 =>まだWindows10 2004のアップデートがもらえない勢なのでWSL2が使えない。 Windows Terminal IDE / エディター Visual Studio 2019 Pro Visual Studio Code Microsoft …

launchSettings.jsonのconfigを変更して、DockerのServicePortを限定してみる

Dockerサポートを有効にしてスキャフォールディングしたWebApiのlaunchSettings.jsonを確認してみた publishAllPortsがtrueになっているので、起動するたびにPortが変わってしまう設定になっています。 Api単体で使うときはこれでもいいのですが、ViewからWe…

.NET Coreのタイムゾーン識別ID問題について

前提となる開発環境 開発機 / IDE / Testing Framework Windows 10、VisualStudio 2019 、xUnit、TestHostも利用 ローカルデバッグ環境 Docker(WSL に Ubuntuをインストールして運用) Dev,Prod環境 Linux(Ubuntu) 備考 チーム開発をしていて、自分はWindows…

予習:.NET 5 Preview 4(Preview5はこれから見る)

C#9が使えるのは.NET 5だけ Buildは少し観測しつつ、de:codeでキャッチアップするゆとり勢なので、ようやく予習を始める。 MAUI devblogs.microsoft.com github.com => 旧Xamarin Forms(まだ名前空間をリネームしただけ。) .NET 5(In C# 9) devblogs.microso…

パターンマッチングのプロパティパターンを使ってみる(Case Null検査)

null検査のときの書き方問題 HogeのInstanceであるhogeがnon nullである検査をしたい場合、 hoge is Hoge と書いてしまうことが多いのですが、C#8.0から、パターンマッチングにプロパティパターンが追加されているので、 hoge is { } と書けばnon nullかの検…

LinqのCount()拡張メソッドと向き合う #1

LinqのCount()拡張メソッドと向き合う Collection Object色々 C#には、Collectionを扱う型がいくつもあります。IEnumerable<T>や、List<T>等が代表選手です。 Collectionの要素数を取得する方法として、System.Linq名前空間に用意されている拡張メソッドに、.Count</t></t>…

visualstudio.gitignoreと付き合う

.gitignoreを自動生成したいだけの人生だった VS2017時代はソリューション作成時に「新しい Git リポジトリの作成」というPropがありました。 有効にすると、[ソリューションの作成], [git リポジトリの作成], [Visual Studio用 .gitignoreの生成]まで全部や…

Property違いの同じ型を複数DI設定してみる。 その1

Propertyの違う、同一Objectを複数DI設定したいだけの人生だった IEnumerableでInjectionする DIでper RequestでInjectionしてほしいクラス public class PiyoService { public string TagName { get; } public PiyoService(string tagName) { TagName = tag…

EV2730Qを配備しました&日々のPC作業環境について

自宅にEV2730Qを配備したので作業環境について書いてみる 何年か前に話題になった1:1のスクエアモニター[ EV2730Q ] を配備しました。 www.eizo.co.jp コード書いたり、ドキュメント読んだりするときに便利かなと思っての購入でしたが、今のところ良さそうで…

グレープシティ ECHO Tokyo 2019に行ってきた

SPA開発を知りたいだけの人生だった Microsoft 井上章さんのセッションも含め、Angular,Reactの事例紹介を聞きに行ってまいりました。 grapecity-dev-tools.connpass.com レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは? Microsoft…

IAsyncDisposable、パターンマッチだから、別にIAsyncDisposableインターフェースを実装してなくてもいい説、半分正解で半分誤りでした。

以前書いた記事 creatiovitae.hatenadiary.com IAsyncDisposable、パターンマッチだから、別にIAsyncDisposableインターフェースを実装してなくてもいい説、半分正解で半分誤りでした。 結論から言うと、 await using var productService = new ProductServi…

LINE Developer Day 2019 Day2 レポーティング(と言う名の自分的メモ)

front-endと、Product Managementのことを知りたいだけの人生だった Motivation 参加のMotivationは上の見出しの通りです。 ビジネス上の課題を技術で解決するお仕事をしているので、二日目のproductionというテーマのほうも多くの学びがありました。 Openin…

LINE Developer Day 2019 Day1 レポーティング(と言う名の自分的メモ)

gRPCの事例について聞きたいだけの人生だった Motivation 参加のMotivationは上の見出しの通りです。 gRPCで、超高トラフィック、BtoC、これほど事例として、パーフェクトなものはなかなかお目に書かれるものではありません。 結果、それ以外にも非常に勉強…

ASP.NET CoreのStartup.csへのインジェクション以外で、appsettings.XXX.jsonファイルにアクセスする。

appsettings.XXX.json(要するにconfigの類)をProgram.csで参照したい 普段ASP.NET Core MVCで開発している場合(ここでいう通常、は)、Startupクラスにはappsettings.jsonとappsettings.{EnvironmentName}.jsonを読み込んだコンフィグがインジェクション 設…

EnvironmentNameをIWebHostEnvironment.EnvironmentNameを使わずに取得してみる

EnvironmentNameをProgram.cs内で参照したい 具体的には、Mainメソッド内で CreateHostBuilder(args).Build().Run(); ってやってるところで、ロギングしたかったり、CreateHostBuilderのところで、そもそもEnvironmentNameに対応したappsettings.XXX.jsonで…

ASP.NET CoreでProgram.csを見たり、Serverヘッダー:Kestrelをオフにしてみる

Program.cs周りのコードを確認してみる。 ASP.NET Core の2.2時代のテンプレートは、WebHost(IWebHostBuilder)が使用されていました。 コードベースはこんな感じ。 public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDef…

C#8 GA後のswitch式を見てみる

GAのタイミングで再確認してみるswitch式 後置き構文で読みやすいswitch式ですが、プレビュー時代は、以下の書き方をする必要がありました。 static IEnvironmentBuilder GetEnvironmentBuilder(string environmentName) { return environmentName switch { …

Microsoft.AspNetCore.Appメタパッケージを利用してライブラリーを作成する際のProject Sdkについて見てみる

Microsoft.AspNetCore.Appメタパッケージを使いたい Webゾーンに関わるライブラリーを書く場合、Microsoft.AspNetCore.Appメタパッケージを参照したくなります。 .NET Coreの.csprojを編集するときに、Project SdkをMicrosoft.NET.Sdk.Webに設定するとDefaul…

IAsyncDisposableを実装したObjectをASP.NET CoreのDIでライフタイム管理するときの挙動を見てみる

Using IAsyncDisposable C#8から追加されたIAsyncDisposable、言わずと知れた await using ~ を実現するための存在ですが、ASP.NET Coreで開発している場合、各Objectのライフタイム管理は、DIContainerに任せることが大半だと思います。 DIContainerにライ…

.NET core 3 版:IServiceCollectionの拡張(ConfigureServicesのアレ)(WebApi ビルドの場合)

.NET Core2.2時代に、WebApi(REST)開発を行う際、.AddMvc()が差し込まれるのが辛かったので、必要なものだけを差すように書き直していたのですが、.NET Core 3(RC)版のIServiceCollectionの拡張を見たら、少し変わっていたので、中を確認してみました。 .N…