.NET
はじめに WCF で HTTPS を構成できるか試すことになった。 しかも IIS を使わず、セルフホストで。 サービスコントラクトの定義 using System.ServiceModel; namespace WcfHttpsSample.Shared { [ServiceContract] public interface ISampleService { [Opera…
はじめに HatenaBookmarkSharp っていう、はてなブックマーク REST API の C# クライアントを書いた。 developer.hatena.ne.jp www.nuget.org github.com モチベーション 自分が現在作っているアプリではてなブックマーク REST API を呼び出したい場面があり…
はじめに Azure SQL Database に接続する WCF サービスを、Windows コンテナのプロセス分離モードで動かすところまで漕ぎつけた。 tnakamura.hatenablog.com 一連の実験もいよいよ今回で最後。Azure SQL Database に接続する WCF サービスを、Azure Kubernet…
はじめに 最近、自分の中で Docker 熱、というか Windows コンテナ熱が再燃。Windows コンテナのプロセス分離モードで WCF サービスをホストするのと、Windows コンテナの中から Azure SQL Database に繋ぐところまでは、以前実験した。 tnakamura.hatenablo…
はじめに ドメイン駆動設計のパターンの一つである値オブジェクトを実践するようになってから、ASP.NET Core Identity でユーザーの ID の型 が string なことに恐怖を感じるようになった。ユーザー ID を表す値オブジェクトじゃないと安心してコード書けな…
はじめに Swashbuckle.AspNetCore を使うことで、ASP.NET Core MVC で実装した Web API に Swagger UI を組み込める。 docs.microsoft.com Web API の動作確認をする程度ならこれで十分だけど、せっかく Swagger/OpenAPI を使うなら、クライアントのソースコ…
はじめに HttpClient を使って http で Authorization ヘッダー付きのリクエストを送信し、https にリダイレクトされると、https のリクエストには Authorization ヘッダーが付かない。 以下、実験コード。 Web API HTTP リクエストのヘッダーをログに出力し…
はじめに ASP.NET Core で JWT Bearer 認証を使うときに Startup.ConfigureServices で呼び出す AddJwtBearer は、 任意の authenticationScheme を指定できる。 となると、authenticationScheme さえ重複しなければ複数回呼び出しても問題ない、はず。 気に…
はじめに ASP.NET Core で実装した Web API の前段にリバースプロキシを置く必要がありそう。 しかも、そのリバースプロキシはデータベースにある情報を使ってリクエストの振り分けを行わなければならないため、 プログラマブルなリバースプロキシが求められ…
はじめに 大人の事情によって .NET Framework 4.8 で動かさざるをえない ASP.NET Core 2.2 製 Web API を、OAuth2.0 か OpenID Connect に対応させる必要があり、IdentityServer4 を使う予定でいた。 その IdentityServer4 は 5/1 時点で v3.1.3 が最新。も…
はじめに protobuf-net.Grpc を使ってコードファーストに ASP.NET Core gRPC サービスを実装する場合でも、 ASP.NET Core の JWT Bearer 認証ミドルウェアを使うことができそうだ、 というところまで前回確認できた。 tnakamura.hatenablog.com Authorizatio…
はじめに ASP.NET Core gRPC は ASP.NET Core のミドルウェアをサポートしているけど、 protobuf-net.Grpc を使ってコードファーストで実装する場合でも、 JWT Bearer 認証が使えるか試してみた。 Shared プロジェクトを作成 毎度おなじみの、 クライアント…
はじめに WCF では OperationContext の IncomingMessageHeaders と OutgoingMessageHeaders を使って、 カスタムヘッダーをクライアントから送ったり、サーバーから返したりできた。 tnakamura.hatenablog.com gRPC には Metadata という同じような機能があ…
はじめに 先日、WCF から gRPC に移行するときの手段として、.proto ファイルを書くのではなく、protobuf-net.Grpc を使って C# のコードから gRPC のクライアントとサーバーを動的に生成する方法を紹介した。コードファースト ASP.NET Core gRPC と命名。 t…
この記事は、C# その2 Advent Calendar 2019 の二日目の記事です qiita.com はじめに コードファーストで開発したい protobuf-net.Grpc コードファースト ASP.NET Core gRPC をやってみる .NET Core ライブラリ作成 NuGet パッケージ追加 データコントラクト…
久しぶりの WPF。 ListView の各行にツールチップを表示する方法を調べたのでメモを残しておく。 <ListView> <ListView.ItemContainerStyle> <Style TargetType="{x:Type ListViewItem}"> <Setter Property="ToolTip" Value="{Binding Path=MyToolTipText}"/> </Style> </ListView.ItemContainerStyle> <ListView.View> <GridView> </gridview></listview.view></listview>
はじめに 先日、Windows コンテナのプロセス分離モードで WCF サービスを動かすことに成功した。 tnakamura.hatenablog.com お次はコンテナ外の SQL Server に接続できるか実験してみる。 これに成功したら、いよいよ本格的なアプリケーションを動かす実験に…
はじめに 先日、ASP.NET Core アプリを Windows コンテナのプロセス分離モードで動かす実験を行った。 tnakamura.hatenablog.com 本業で抱える .NET Framework の資産は、ASP.NET Core よりも WCF の方が大多数なので、 次は WCF サービスをコンテナ化する実…
ASP.NET Core には HostedService という機能があって、 バックグラウンドタスクなんかを実装するのに使えたりする。 docs.microsoft.com 上のドキュメントでは、そのものずばりバックグラウンドタスクを実装しているわけだけど、 WCF サービスも実行できる…
GraphQL でネストしたデータを取得するクエリを発行するとき、 N+1 問題を回避するために、 ネストしたデータの先読み込みか遅延読み込みを行う必要がある。 先読み込みの場合は、クエリのリゾルバ内で Entity Framework Core の Include を使って実装できる…
GraphQL でコレクションデータの取得やページネーションを実現する場合、 Relay 由来の Connection や Edge といったインタフェースを定義するのが定石になっているみたい。 GraphQL.NET はそれらをサポートしていて、ConnectionType や EdgeType といった型…
ASP.NET Core MVC で実装した Web API を HTTP.sys でホストすることで、利用に Windows 認証が必要な Web API を実現できた。 tnakamura.hatenablog.com これでひと段落と思いきや、JWT Bearer 認証もサポートする必要が出てきたので、HTTP.sys でホストし…
.NET Core で日本語の文章の形態素解析がしたくなった。 日本語の形態素解析エンジンでまず思いつくのは MeCab。 その MeCab を .NET に移植した NMeCab を最初使うつもりだったんだけど、 残念ながら NMeCab は .NET Core にまだ対応していなかった。 それ…
.NET Core ではロギングに Microsoft.Extensions.Logging を使っていて、 コンソールや EventSource なんかによく出力していたんだけど、 今は Google Cloud Platform で遊んでいるので Stackdriver に保存したくなった。 NuGet 用に公式のパッケージがある…
Microsoft Azure を使っていた頃は重要なファイルのバックアップ先に Azure Storage を利用していたが、 最近は Google Cloud Platform で遊んでいるので、Google Cloud Storage を使ってみることにした。 NuGet に公式のクライアントライブラリが存在するの…
以前、最小の ASP.NET Core アプリケーションの Docker コンテナを Heroku で動かせた。 ただ、ASP.NET Core MVC アプリケーションでは、Heroku 上で NuGet パッケージの復元を実行しようとしていて失敗。 NuGet パッケージの復元で失敗するのなら、復元の必…
.NET Core でも WCF を使うことはできる。提供されているのはクライアントライブラリだけなので、.NET Core で動く WCF サービスを作ることはできないけど。 試しに TCP でやってみた。WCF サービスは .NET Framework で作るしかない。 using System; using …
.NET でコンソールアプリケーションを開発するときの悩みの種が、コマンドライン引数の解析。 .NET Framework がコマンドラインパーサーを提供してくれないので、 仕方なくオレオレパーサーを書いたり、Mono にあるライブラリを使ったりしてきたけど、 .NET …
例えば .NET Core でテキストファイルを出力するとき、文字コードに Shift-JIS を指定するには System.Text.Encoding.CodePages が必要だった。 www.nuget.org using System; using System.IO; using System.Text; namespace EncodingSample { class Program…
NuGet CLI の install コマンドで、指定した場所にパッケージをインストールできた。依存パッケージもインストールしてくれた。 nuget install Microsoft.EntityFrameworkCore -o .\NuGetPackages packages.config を指定してもいい。ただ、この場合 package…