2018-01-01から1年間の記事一覧

ASP.NET Core MVC - 時間がかかるアクションメソッドをキャンセルできるようにする

ASP.NET Core 2.2からサポートされているインプロセスホスティングモデル。その特徴の1つをDocsから引用します。 クライアントの切断が検出されます。 クライアントが切断されると、HttpContext.RequestAbortedキャンセルトークンが取り消されます。 docs.mi…

ASP.NET Core MVC - Serilogを使ってファイルにログ出力する

ASP.NET Core MVCでSerilogを使ってファイルにログ出力するサンプルを書いてみました。 Serilog — simple .NET logging with fully-structured events サンプルでは次のことを実現しています。 ログをファイルに出力する 日付ごとにログファイルを作成する …

AutoMapper - ポリモーフィズムを使ったマッピングを試す

マッピング元はポリモーフィズムもいけるよね?と確認したくてサンプルを書いてみました。 いつものごとくモデルとプロファイルを用意します。 // マッピング元の親クラス public abstract class SampleSrcBase { public int Id { get; set; } public string…

AutoMapper - コンストラクタを使ってマッピングする

ちょっと発見だったのでメモ。 AutoMapperでは、マッピング先のコンストラクタを呼び出してマッピングすることができます。マッピング先にはpublicなsetterプロパティも必要ありません。 ということでサンプルコード。 モデルとプロファイルを用意して、 // …

ASP.NET Core MVC - ビューを相対パスで指定する

ASP.NET Core MVCではビュー名を指定してビューを探すと思いますが、ビュー名だけでなくて相対パスも指定できますよというメモ。 相対パスは~か/ではじまる文字列です。 Controller.Viewメソッドの引数viewName ViewResultを生成するメソッドですね。このメ…

LINQ - シーケンスの最初(最後)に要素を追加する

今さら感いっぱいですが、気づいたらEnumerableに次の拡張メソッドが追加されていました。 Enumerable.Prependメソッド シーケンスの最初に要素を追加する Enumerable.Appendメソッド シーケンスの最後に要素を追加する 今まではちょっと微妙かなと思いつつ…

ASP.NET Core MVC - Cookie認証を試す

ASP.NET Core MVCの勉強の記録です。 こちらのドキュメントを参考にしてIdentityを使わないCookie認証を試しました。 ASP.NET Core Identity なしでの cookie 認証を使用します。 | Microsoft Docs Cookie認証はいわゆるフォーム認証だと思うんですが、もし…

ASP.NET Core MVC - 部分ビューを再帰で呼び出す

部分ビューから自身の部分ビューを再帰で呼び出しできるよね?と思って試したらできましたというお話。 以下は次のul・liを作るサンプルです。 モデルを準備 まずはノードを表すモデルとデータを用意します。 // ノード public class Node { // 名前 public …

ASP.NET Core MVC - クッキーを使う

ASP.NET Core MVCのクッキーの勉強メモです。 クッキーを設定する レスポンスにクッキーを設定するには、IResponseCookies.Appendメソッドを使います。 // クッキーを設定する HttpContext.Response.Cookies.Append("test", "Hoge"); // レスポンスに追加さ…

ASP.NET Core MVC - @addTagHelperは名前空間ではなくアセンブリ名を指定する

タグヘルパーを作ってみていきなりハマったのでもメモしておきます。 @addTagHelperディレクティブでタグヘルパーを使えるようにしますが、このときに指定するのは名前空間ではなくアセンブリ名です。 例えば次のようなTagHelperを作ったとして、 // アセン…

T-SQL - 再帰CTEで指定した期間の日付一覧を作る

T-SQLのメモです。 開始日と終了日を指定して、その期間の日付一覧を取得したいと思います。 再帰CTE(共通テーブル式)を使って書くとこんな感じになるのかなと。 -- 指定した期間の日付一覧を取得するクエリ -- @start 開始日(その日は含む) -- @end 終…

ASP.NET Core MVC - TempDataを使う

ASP.NET Core MVCの勉強の記録です。 今回はTempDataを使ってみたいと思います。いつものようにDocsを参考にしています。 ASP.NET Core でのセッションとアプリの状態 | Microsoft Docs StartupクラスでTempDataを構成する まずはTempDataを使うために準備し…

ASP.NET Core MVC - Sessionを使う

ASP.NET Core MVCの勉強の記録です。 いつものごとくDocsを参考にして、今回はセッションを使ってみたいと思います。 ASP.NET Core でのセッションとアプリの状態 | Microsoft Docs Startupクラスでセッションを構成する まずはセッションを使えるようにしま…

ASP.NET Core MVC - オプションパターンで設定ファイルを読み込む

オプションパターンを使って設定ファイルから構成情報を読み込むサンプルです。 こちらを読みながら試しました。 ASP.NET Core のオプション パターン | Microsoft Docs 上記ドキュメントにもメリットが書いてありますが、平たく言ってしまうと「オプション…

ASP.NET Core MVC - グローバルフィルタで認証

グローバルフィルタを使って認証を必要とする方法です。認証を必要とするというかアクセス制御するというか。 ウェブアプリのうちログインを必要とする部分が多くてログイン不要な部分が少ない場合、グローバルフィルタで全体を制御しつつ、ログインなしで利…

T-SQL - lag関数/lead関数でn個前/n個後の行を取得する

lag関数とlead関数を知ったのでメモしておきます。 LAG (Transact-SQL) | Microsoft Docs LEAD (Transact-SQL) | Microsoft Docs それぞれ一言で説明すると、 lag関数 ... n個前の行を取得する lead関数 ... n個後の行を取得する といった感じです。この2つ…

T-SQL - count(*)とcount(カラム名)の違い

知らなかったのでメモ。 count(*)は全行数を取得するのに対して、count(カラム名)はnullを除く行数を取得します。 サンプルクエリを書いて確認しておきましょう。 select -- nullに関係なく全行数を取得 count(*) as [count(*)], -- nullを除く行数を取得 co…

ASP.NET Core - ミドルウェアパイプラインを作ってみる

ミドルウェアとかミドルウェアパイプラインとかリクエストデリゲートなどを理解するために、次のドキュメントを読みながら記事内にあるミドルウェアパイプラインの画像の動きを作ってみました。 ASP.NET Core のミドルウェア | Microsoft Docs この画像のこ…

AzureのComputer Vision APIのOCR機能を試してみた

Azure Cognitive ServicesにあるComputer Vision APIを使ってみました。 Computer Vision — 画像処理および画像分析 | Microsoft Azure Computer Vision APIといってもいくつか機能があって、今回はそのうちOCR機能をJavaScript(というかTypeScript)で試し…

ASP.NET Core MVC - ビューコンポーネントの呼び出し方色々

ASP.NET Core MVCのビューコンポーネントを試してみました。 ビュー コンポーネント | Microsoft Docs ビューコンポーネントは従来のASP.NET MVCにあったチャイルドアクション(子アクション、ビューからRenderActionで呼び出していたあれ)の代わりになる機…

ASP.NET Core MVC - ビューの基底クラスを変更する

ASP.NET Core MVCのビュー全体で、プロジェクト独自のプロパティやメソッドを追加して利用したいことがあるかなと思います。 デフォルトでは、ビューはMicrosoft.AspNetCore.Mvc.Razor.RazorPage<TModel>を継承しています。このクラスを派生したクラスを用意すること</tmodel>…

ASP.NET Core MVC - 生成されるURLを小文字にする

ASP.NET Core MVCを勉強し始めたので、その記録というかメモというか小ネタを残していきたいと思います。 まずはタグヘルパーやHTMLヘルパー(URLヘルパー)を使って生成するURLを小文字にする方法です。CoreじゃないASP.NET MVCでは、RouteCollection.Lower…

Dropbox.NETを試す

DropboxのAPIを使ってみようとふと思いました。公式のドキュメントを見てみるとDropbox.NETというライブラリがあったので、チュートリアルを参考にしながら試してみました。 .NET - Developers - Dropbox 準備 コンソールアプリプロジェクトを作って、NuGet…

.NET CoreでAzure Queueを試したサンプルコード

.NET Core 2.0のコンソールアプリでAzureのQueueを使ってみました。 .NET を使用して Azure Queue Storage を使用する | Microsoft Docs Queue Storage と Visual Studio 接続済みサービスの概要 (ASP.NET Core) | Microsoft Docs 上記ドキュメントを参考に…

.NET CoreでAzure Blobを試したサンプルコード

.NET Core 2.0のコンソールアプリでAzureのBlobを試しました。 Azure クイックスタート - .NET を使用して Azure Blob Storage との間でオブジェクトを転送する | Microsoft Docs .NET を使用して Azure Blob Storage (オブジェクト ストレージ) を使用する …

Promiseオブジェクトのメソッド(all、race)を試す

前回の続きでPromiseオブジェクトのallとraceを試したコードです。 ichiroku11.hatenablog.jp allとraceの動きを確認するためにまずは次の2つの関数を用意しました。 resolveAsync - 指定した時間後にresolveするPromiseを返す関数 rejectAsync - 指定した時…

Promiseオブジェクトのメソッド(resolve、reject)を試す

Promiseオブジェクトのスタティックなメソッドを使ったサンプルです。async/awaitを試してみたくなったということもあってコードを書いてみました。 Promise - JavaScript | MDN Promiseオブジェクトのスタティックなメソッドは4つ。 Promise.resolve Promis…

RxJS - doオペレータ

公式ドキュメントに「デバッグするときに便利だよ」と書いてあるdoオペレータを試しました。 This operator is useful for debugging your Observables for the correct values or performing other side effects. こちらのドキュメントのdoオペレータの説明…

RxJS - scanオペレータとreduceオペレータ

scanオペレータが気になって試しました。scanオペレータはreduceオペレータと似ています。比較しながら確認したコードを残しておきます。 違いその1 scanは都度nextコールバックが呼ばれる reduceは(completeする前に)1回だけnextコールバックが呼ばれる …

ASP.NET CoreでTypeScriptとwebpackとRxJS

前回の続きでもう少しします。ASP.NET Core + TypeScript + webpackの環境にRxJSを導入してみます。 ichiroku11.hatenablog.jp 実のところ前回のエントリはTypeScriptでRxJSを試したくなったのがきっかけで、今回が本当の目的だったりします。 npmでRxJSをイ…