サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
円安とは
www.kinakomotitti.net
Purpose 背景 A)アンチパターン 実装 パフォーマンス測定 B)HttpClientをSingleTonで追加したパターン 実装 パフォーマンス測定 C)HttpClientをservices.AddHttpClient()で追加したパターン 実装 パフォーマンス測定 D)IHttpClientFactoryをつかった例 実装 パフォーマンス測定 比較×まとめ 参考 Purpose HttpClient をdotnet coreで使うBestPracticeについて考える 背景 WebAPIを開発する際、HttpClientを使って他のサービスのAPIを呼び出すことがある。特に意識して使ってこなかったが、HttpClientクラスは1アプリケーションのライフタイムの中で1インスタンスとし、それを使いまわす方法が良いとされている。また、Unit Testの観点からも、特定のクラスでN
Purpose 内容について 躓いた点 Problemが参照できない。 チュートリアルメモ Step0 前提設定 Step1 ノーガード戦法 Step2 開発者例外ページ Step3 例外処理ミドルウェアの利用 Step4 開発環境用のより詳しいエラーレスポンスの追加 Problemとは・・・ Purpose ASP.NET core Web APIで例外をハンドルする方法を習得する。その1。 内容について ASP.NET Core Web API のエラーを処理するの方法を中心に、例外ハンドルの方法をまとめる。 躓いた点 初めに、今回チュートリアルを進める中で躓いた点をまとめておく。 Problemが参照できない。 RFC7807に準拠したレスポンスを返すメソッド(Problem)がMicrosoft.AspNetCore.Mvc.ControllerBaseクラスにある。サンプルコード
Purpose ASP.NET core Web APIで例外をハンドルする。その3。 内容について ASP.NET Core Web API のエラーを処理するの方法を中心に、例外ハンドルの方法をまとめる。 チュートリアルメモ Step6 検証失敗のエラー応答 Postなどで送られてきたリクエスト情報の検証に失敗したときに、独自のエラー情報を返すための方法。規定の動作は以下の通り。 Web API コントローラーでは、モデルの検証が失敗すると、MVC が ValidationProblemDetails という応答の種類で応答します。 簡単な動作確認のために、以下のPOCOを用意する。 public class SamplePOCO { [Required] public int Id { get; set; } [Required] public string Name { get;
log4netの起動処理も最後となりました。 今まで断片的に起動処理の内容を見てきました。 それぞれで、参考になる実装を中心に見てきましたので、全体的な処理の流れについては疎かになっていました。 そういう事情から、今回は起動処理完了記念として、 「log4netの処理の流れの観点から起動処理で何をしているのか」 をまとめてみようと思います。 環境は以下のものを使っています。 kinakomotitti.hatenablog.com 起動処理の全体像・・・ということで、今回は、Visual Studioのコードマップ機能を使って出力した「利用クラス(メソッド)と、その呼び出し順を見える化した図」を使います。 うわぁ、、、みにくい。。。 が、気にせず行きますw ( なお、コードマップはVisual Stuidioのメニューボタンから簡単に出力することができます。 ) Loggerの起動処理が実
この記事の目的 本題 きっかけとなったエラー 対処法1 対処法2 まとめ この記事の目的 この記事は、 バックグラウンド処理でも、インジェクションしたDBContextを使って処理をするための方法 をまとめることを目的としています。 本題 きっかけとなったエラー 実行したコード //呼び出し元 public IActionResult Get() { Task.Run(()=>this._secondService.Execute()); return Ok(); } //secondService public void Execute() { try { this._dotnetContext.TransactTest.Add(new TransactTest() //ここでエラー発生 { Id = int.Parse(DateTime.Now.ToString("hhmmss")),
この記事の目的 本題 実行環境 DbContextをインジェクション DbContextをインジェクション+呼び出し先すべての処理にトランザクションを張る DbContextをインジェクション+呼び出し先1つの処理にトランザクションを張る DbContextをインジェクション+呼び出し先1つの処理にトランザクションを張る・その2 まとめ 参考 この記事の目的 この記事は、 DBContextを入れ子にして呼び出した時の挙動をまとめること を目的としています。 基本的に、動作ベースで調べつつ理解していこうというスタンスです。 .net core, ef ともに初心者なので、手始めに、DBContextをDIした時の挙動について調べ始めました! 本題 実行環境 .net core 3.1 Entity Frame work core 3.1.1 Postgres 12 DbContextをイン
この記事の目的 この記事では、 Linuxで使われるパッケージ管理コマンドの使い分けをまとめること を目的としています。 日常的には、.NET 開発者としてWindowsOSを触っていますが、 .NET Coreをはじめとして、LinuxOSを触る機会も増えてきました。 いざLinuxでの開発業務が始まったときに戸惑わないようにするためにも Linuxの使い方を少しずつまとめてみようと思います。 アジェンダ この記事の目的 アジェンダ 本題 ★そもそもLinuxのOSって何があるの? ★Debian系 ★RedHat系 まとめ 参考文献 本題 ★そもそもLinuxのOSって何があるの? Ubuntu、RedHat、CentOSでしょ。知ってる。 と思っていました。 「Linux ディストリビューション」 で検索したところ、そんなことはなかったです。 もはや見えませんが、大きく分けて、 「D
Purpose この記事は、OpenSSHを使ったsshの多段接続について、はまったことと解決策をまとめることを目的としている。 References ProxyCommandによるsshの多段接続について Windwos10でssh ProxyCommandの多段SSHの設定 OpenSSHのバグについて きっかけ 社内のシステム開発において、アプリケーションをパブリッククラウドにデプロイする必要があった。デプロイ先には、セキュリティの関係で、踏み台サーバーを経由して接続する必要があった。Linux端末からの接続はできるが、Windows端末からの接続に関する手順が社内では公開されていなかったため、調べ始めた。 環境 利用端末:Windows 10 (1809) Open SSH : 7.7.21 接続先OS:Ubuntu 18 Case1 : CreateProcessW failed
log4netの起動処理の追っかけは難しかったので、いったん飛ばしておきます。 とりあえず、次のステップのFileAppenderの処理について細かくみていきます・・・ FileAppenderクラスはこんな感じに実装されています! ということで、上から見ていきます。 ロックモデルについて。 ロックモデルは、FileAppenderを使ってログを出力するときに、出力中のファイルに対して、どのように排他制御を行うかを決める方法のようなものです。 実行環境によって使えるモデルと使えないモデルがありますが、.NET Frameworkを利用するばあいは、3つのモデルを利用することができます。 それぞれは以下の通り。 1)InterProcessLock ファイル名を使った名前のmutexインスタンスを使ってロックを管理。 2)MinimalLock 出力するときだけファイルをロックする。 複数プ
この記事の目的 本題 データバインディングの種類がいろいろあってわからない。 コンポーネント→Viewへのバインディング {{ }} 型 コンポーネント→Viewへのバインディング プロパティバインド型 View→コンポーネントへのバインディング Viewと、コンポーネントの間での双方向バインディング その他のバインディング方法は? 属性バインディング クラスバインディング スタイルバインディング イベントバインディング 子コンポーネントへのデータバインディングってどうやるの? 子コンポーネントとの片方向バインディング 子コンポーネントとの双方向バインディング 番外編)バインディングするときに詰まったこと この記事の目的 この記事は、 Angular のいろいろなバインド方法と種類を自分なりにまとめること を目的としています。 本題 データバインディングの種類がいろいろあってわからない。
この記事の目的 この記事では、 DBクライアントに依存しないDBアクセス処理の実装をまとめること を目的としています。 単純に実装方法がわからなかったので、まとめておきます。 アジェンダ この記事の目的 アジェンダ 本題 ★DbProviderFactoryの取得 ★接続文字列の取得 ★DbProviderFactoryの取得 まとめ 本題 ★DbProviderFactoryの取得 DbProviderFactoryを使ってDBクライアントに依存しないDBアクセス処理を実装する。 ※以下のドキュメントを参考にする。 DbProviderFactory の取得 | Microsoft Docs ★接続文字列の取得 接続文字列も、設定ファイルに記述するようにしたい場合は、以下の処理を実装する。 ※以下のドキュメントを参考にする。 接続文字列ビルダー | Microsoft Docs ★DbP
この記事の目的 本題 ★利用する環境 ★Step1)Queueの作成 ★Step2)Login Tokenの取得 ★Step2)AddQueueItem呼び出し準備 ★Step3)実行結果確認 ★Step4)回避方法 後日談 この記事の目的 この記事では、 Orchestrator API の [AddQueueItem]の呼び出しがうまくいかなかった現象と、その対応をまとめること を目的としています。 せっかくなので、現象を再現する方法までメモしておこうと思います(=゚ω゚)ノ 本題 ★利用する環境 この検証で利用するものは、以下の通りです。 -Orchestrator 環境:Orchestrator CE - https://platform.uipath.com -API呼び出しツール:Insomunia -対象API: Add Queue Item (Queueにデータを登録するた
この記事の目的 この記事では、 Robotic Enterprise Framework Template についてまとめること を目的としています。 アジェンダ ReFrameWorkとは? 本題 ReFrameWorkとは? GitHubで公開されているUiPathの「エンタープライズ向けロボットテンプレート」です。 UiPath Studio の初期ページでおなじみのProcess Transactionのテンプレートをベースとしたテンプレートです。 PCをリセットしてしまった関係でUiPath Studioが今使えない状態なのでGitHubのスクリーンショットを貼り付けておきます。 プロジェクト構造は上図のようになっています。 注目するところは・・・ テストフレームワークがある!!ところです。 このReFrameWorkでは、作成したRobot(Main.xaml)のテストをするた
十分に理解していないためか、よく3つの違いを忘れてしまうので、戒めのためにも3つの違いをまとめておきます。 System.Net.HttpWebRequest/HttpWebRespons System.Net.WebClient System.Net.Http.HttpClient 実装編 実装シナリオ: あるURLにGETリクエストを投げて、レスポンスのコンテンツをStringの変数に格納する。 1の場合 2の場合 3の場合 (多分あってるよね・・・) 使い方の話 WebClientはHttpWebRequestをラップして使いやすくしたクラスです。 ラップしているため、HttpWebRequestに比べてパフォーマンスは低下しているそうですが、通信のためのコード量を減らすことができます。 HttpClientは、.NET Framework 4.5で追加されたクラスで、WebClie
Dockerのことはじめとして取り組んできた「DockerでIISを立てて、そのIISにWEBアプリケーションを配置」プロジェクト。 その最終章となります。 今回は、以下の内容についてまとめていこうと思います。 実際に実行に成功するところまでの手順 実際に手を動かしてイメージしたDockerの全体像 実際に実行に成功するところまでの手順 Stage1)環境構築 Step1)Windows 10 Pro以上の環境を用意 忘れがちですが、Docker for Windowsでは、Hyper-Vを利用してコンテナプロセスを実行します。 そのため、Hyper-vが利用できるエディションを準備する必要があります。 Step2)Docker for Windowsのインストール Dockerのインストーラーを取得して、インストールします。 詳細は、以下のドキュメントに記載されています。(その1でも書い
この記事の目的 本題 ★Gitlabの起動コマンド作成 ★Container Registryの設定 ★SSLのKEYの生成 ★hostsファイルの修正 ★Gitlabの再起動と接続確認 ★Docker Daemonファイルの設定 まとめ この記事の目的 この記事では、 Dockerコンテナとして立っているGitlabのContainer Resistry機能を有効化して、Dockerからinsecureに接続するための方法をまとめること を目的としています。 本題 ★Gitlabの起動コマンド作成 とにもかくにも、まず、以下のコマンドを利用してGitlabのコンテナを起動します。基本的には、公式ドキュメントに書かれているものですが、少し修正を加えています。 sudo docker run --detach \ --hostname gitlab.example.com \ ←ここ --p
この記事の目的 要約 本題 ★〇〇とは Azure DevOpsとは AzurePiplineとは ★Piplineの処理イメージ ★Use .NET Core sdk ★dotnet build ★Run a docker compose ★Bash Script ★Publish Test Results ★Publish Pipeline Artifact まとめ この記事の目的 この記事は、 AzureDevOpsのPiplineで、自動UIテストを実行すること を目的としています。 要約 WebアプリケーションのUIテストを自動化したい。 できれば、テストは仮想環境で実行して、あとから結果(スクショ)を確認したい。 仮想環境はコンテナを使って、マルチ実行を用意にできるようにしたい。 CI(継続的インテグレーション)に組み込みたい。 という考えのもと、SeleniumとDocker
この記事の目的 この記事では、 Docker-Composeで利用するyamlの書き方を理解すること と Docker-Composeを利用して、一つのアプリとして動作する複数のコンテナを一気に起動させること を目的としています。 アジェンダ この記事の目的 アジェンダ 本題 ★対象とするもの ★Docker Composeを利用しない場合 ★Docker Composeとは ★今回作ったDocker-conpose.yaml まとめ KONG参考資料 本題 ★対象とするもの 本記事では、APIゲートウェイとして利用されるOSS【kong】を題材にします。kongは、Dockerイメージとして公開されていますが、動作するためには、一緒にDBを起動する必要があります。そのDBは、【postgres】と【Cassandra】がサポートされています。本記事ではpostgresを選択しました。また
この記事の目的 本題 ★.NET とクラウド ネイティブ ~ 本格化するクラウド移行とそのアーキテクチャ 自己完結型パブリッシュの1ファイル出力 ASP.net core のWEBサーバー gRPC .NETでのマイクロサービスアーキテクチャ ★ランチセッション ★ここでしか聞けないマイクロサービス on AKS 導入のなま苦労話 by オイシックス・ラ・大地 kuberntesの巨大なクラスターは作らない方がいい これからのエンジニアの技術力について ★コンテナ環境の永続化ストレージ問題を NetApp Kubernetes Service と Azure NetApp Files でさらっと解決 ★.NET Core マルチ プラットフォームの本質 ★エンジニアの人生設計 ~どのようにキャリアを描いていけばよいのか~ まとめ この記事の目的 この記事では、 de:code 2019を振
この記事の目的 この記事では、 Bashの自動テストツール(bats)環境の構築 を目的としています。 アジェンダ この記事の目的 アジェンダ 本題 ★batsとは ★環境 ★batsのVSCode拡張機能のインストール ★batsコマンドのインストール ★動作確認用のbatsファイルとプログラムの用意 ★テスト実行 ★実行がうまくいかないとき ★TAPとは まとめ 本題 ★batsとは Bash Automated Testing Systemです。 GitHubのURL↓ github.com batsは、TAP(後述します)に準拠したbash用のテストフレームワークです。 batsによって、実装したbashが期待通りに動作することを簡単に検証することができます。 batsのテストケースは、bashスクリプトと、batsによって提供される構文で実装します。 こんな感じです(GitHub
この記事の目的 本題 ★セッションについて ★Topic 1:Docker Imageは小さく作っていく ★Topic 2:Docker build→リポジトリにプッシュするバッチを作ると便利 ★Topic 3:secretを使ってk8sでもprivateリポジトリからimageを取得する ★Topic 4:yamlはdocker buildしたときに、一緒に生成する ★Topic 5:kubectl get po -w ★Topic 6:kubectl describe po ★Topic 7:kubectl logs ★Topic 8:kubectl port-foward ★Topic 9:kubectl explain ★Topic10:kubectl get po -v ★Topic11:Serviceを公開する時に便利な方法 ★Topic12:外部向けサービスは【Ingress
この記事の目的 本題 ★COTOHA APIとは ★利用を開始する ★トークンの取得 ★ユーザ属性推定 ★キーワード抽出 ★ユーザ属性推定 まとめ この記事の目的 この記事では、 COTOHA APIで試したことをまとめること を目的としています。 本題 ★COTOHA APIとは NTT Communicationsが提供している日本語文章解析サービスです。NTTグループの40年以上にわたる研究成果である日本語辞書と、自然減書処理を活用したサービスで、高度な日本語文章の解析が実現できます。 使える機能は、構文解析、固有表現抽出、照応解析、キーワード抽出、類似度算出、文タイプ判定、ユーザ属性推定があります。 本記事では、COTOHA APIのFor Developersを利用してどんな機能が利用できるか試していきます。 ※COTOHA APIのより詳しい情報はこちら! www.ntt.co
この記事の目的 この記事では、 自分が持っていたfor文についての間違った認識を正すこと を目的としています。 アジェンダ この記事の目的 アジェンダ 本題 ★基本のき!for文の書き方 ★Log4netのとあるクラスにて・・・ ★正しい考え方を整理 まとめ 本題 ★基本のき!for文の書き方 C#を初めてすぐにであうことになる基本的な構文に「for文」があります。 Visual Studioのコードスニペット機能によって、 [for] + [tabキー] + [tabキー] と打てば 以下のように入力することができます。 for (int i = 0; i < length; i++) { } (コードスニペットを多用することで、for文の書き方を忘れてしまうことが多々ありますがそれは別の話・・・) 上記のコードのように、for文では、カウンター( i )を利用して繰り返し処理を実現しま
この記事の目的 この記事では、 Visual Studio CodeでJava開発をするための環境構築をした時のメモを残すこと を目的としています。 ※ちなみに、EclipseなしのJava開発環境を構築しようと思った背景は以下の通りです。 その1:いつもは、Visual Studioでアプリ開発をしている。 その2:PCの空き容量が少ない。 その3:テキストエディタはVisual studio Codeをメインで使っている。 ごくまれに発生するJavaのちっちゃなアプリ開発に対応できるだけの環境を用意しておきたいというところからスタートしています。 そのため、Eclipseのインストールは極力避けようと考えています(*´Д`) アジェンダ この記事の目的 アジェンダ 本題 ★環境構築概要 ★Visual Studio Codeの準備編 ★Chocolatey準備編 ★その他編 ★準備完了
以前書いたブログで、Jsonをクラスに変換するVisual Studioの機能を取り上げました。 kinakomotitti.hatenablog.com 久しぶりに使ってみようとしたらこの機能が表示されていませんでした。 その対応を忘備録として残しておきます。 背景 PCのリプレースに伴い、Visual Studio 2017をクリーンインストールした。 クリーンインストールする際、ケチって「.NET デスクトップ開発」機能だけをインストールした。 対応 形式を選択して貼り付け機能をメニューに表示するためには、「ASP.NETとWeb開発」機能が必要です。 上記機能をインストールしたら以下のようにメニューに表示することができました。 まとめと反省 形式を選択して貼り付け機能をメニューに表示するためには、「ASP.NETとWeb開発」機能が必要。 「ASP.NETとWeb開発」だけをインス
このページを最初にブックマークしてみませんか?
『www.kinakomotitti.net』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く