きよくらの備忘録

「三日坊主と呼ばせない!日記」改め。主にソフトウェア開発関連の話題。

.NET

Hangfireを使ってみる (6):Jobの種類について:3. Continuations

前回の続きです 今回は3つ目のタイプのジョブについて。 3.Continuations 連続という玉突きというか、指定したJobが終わった後に実行されるように登録するタイプのジョブです。 この前提の話として、前回と前々回で紹介したFire-and-forgetとDelayedを登録す…

Hangfireを使ってみる (5):Jobの種類について:2. Delayed

前回の続きです。 今回は二つ目のタイプのジョブについて。 2.Delayed 指定した時間の経過後に遅延実行されるタイプ。 BackgroundJob.Schedule()またはBackgroundJob.Schedule<T>()で登録する際にTimeSpan型で指定した時間を経過した後に実行されます。 ドキュ</t>…

Hangfireを使ってみる (4):Jobの種類について:1. Fire-and-forget

Hangfire にはジョブの種類(と実行タイミング)がいくつかあるので、それぞれの動きについて調べてみたのでメモ。 ジョブの種類 Hangfireで利用できるジョブの種類は主に以下があるようです。 No 種別 説明 1 Fire-and-forget 即時実行。すぐに一回実行。 2…

Hangfireを使ってみる (3):HangfireでDIコンテナを使ってみる

前回の続きです。 前回は『ClientはASP.NET Webアプリケーション、ServerをWindowsコンソールアプリケーションで実装』という形の実装に変更しました。 構成としては今回私がやりたい要件*1を満たせそうですが、一点、実現できていないことがありました。 そ…

Hangfireを使ってみる (2):ClientとServerを別プロセスにしてみる

前回からの続きです。 前回は『ClientとServerの双方を同一のASP.NET Webアプリケーションに実装』しましたが、今回はこれを分離してみたいと思います。 Hangfire Clientと Hangfire Serverを別プロセスにする 今回は『ClientはASP.NET Webアプリケーション…

Hangfireを使ってみる (1):とりあえず触ってみる

最近 Hangfire について調査・検証しているのでメモ。 Hangfireとは Hangfireは.NET向けのバックグランド・タスクのライブラリです。 www.hangfire.io ストーレージにタスクをキューイングして、非同期に実行させることができます。即時実行だけでなく、cron…

SQL Server Data Toolsのユニットテスト実行前にLocalDBのインスタンスを破棄・再作成する

SQL Server Data Tools (SSDT)のユニットテスト機能ネタです。 テスト実行前の自動デプロイは便利だが失敗するケースがある 以前の記事(これとかこれ)でも触れた、SSDTの ユニットテスト実行前にDBインスタンスに自動でデプロイを行う機能 は非常に便利で…

真・SQL Server Data Toolsのユニットテスト実行前に複数DBにデプロイする

前回の続きです。 前回のエントリに対して、@ahiru_sp さんからアドバイスいただきました。 これ、DatabaseTestService の派生クラスを作って、引数ありのDeployDatabaseProject呼ぶのが正攻法?かと思ったけど、引数になに指定すればいいのか分からんかった…

SQL Server Data Toolsのユニットテスト実行前に複数DBにデプロイする

SQL Server Data Tools (SSDT)のユニットテスト機能では、テスト実行前にソリューション内のデータベースプロジェクトをテスト実行対象のデータベースに自動でデプロイしてくれる機能があります。 これは非常に便利な機能です。しかし、複数のデータベースに…

DapperのQuery<dynamic>()の結果セットのフィールド名を取得する

ちょっと必要があったのでメモ。 Querydynamic()>が返すdynamicの実体はDapper.SqlMapper.DapperRowのコレクション Query<dynamic()>()が返すdynamicの実体はDapper.SqlMapper.DapperRowのコレクションです。 このDapperRowはDapperのDapper.SqlMapperのprivateな型です</dynamic()>…

ExcelとT4 と私とLinq to Excel

本エントリはC# Advent Calendar 2015 の11日目の記事です。 Excelからソースコードの自動生成というと何やらSIerめいた感を受ける方もおられるかもしれません。が、例えばExcel形式のデータベース定義などはコトの進め方によって普通にありだと思いますし、…

byte配列に読み込んだファイルの内容をMemoryStream上でzipファイルにする

.NET Framework 4.5 から、普通のZipファイルの圧縮・展開がとても簡単に扱えるようになりました。 例えばDBのblob(varbinary)列に格納された複数のファイル(のバイナリ)を読み出し、単一のZipファイルにアーカイブしてメモリストリーム上に保持するなら…

AutoMapperを使ってオブジェクトを詰め替える

本日、ASP.NET MVC Do's and Dont's / Best Practices というまとめ記事が上がっていました*1。 その中の一つ(少し古い記事ですが内容は大変に有用だと思います)の12 ASP.NET MVC Best Practicesを見ていたら、 DomainModelからViewModelに詰め替える時に…

Visual Studio 2013 Update 3 の ASP.NET 周りの変更まとめ

Visual Studio 2013 Update 3 がRTWしました。 ダウンロードはこちらあたりから。 オフィシャルなアナウンスとしては下記あたりになると思います。 Visual Studio 2013 Update 3 の全体的な話: Visual Studio 2013 Update 3 RTM Available - The Visual Stu…

これからASP.NETを始める人が読むべき本

これからASP.NETをはじめる人に、『まずこの本を読みましょう』と即答できる書籍がようやく発売されました。 .NET開発テクノロジ入門 2014年版 VisualStudio2013対応版 (MSDNプログラミングシリーズ)作者: 酒井達明,山田祥寛,小高太郎,中原幹雄,芝村達郎,和…

ASP.NET Identityのカスタマイズ-既存のユーザ情報を使っての認証

ASP.NET MVC 5になって、認証のインフラとしてASP.NET Identitiyが登場しました。今までのMembership Providerと比べてかカスタマイズもし易く、使い勝手の良いところが素敵です。 ちょうど、『既に別システムで運用されている独自のユーザー情報をそのまま…

オンラインイベント"dotnetConf"が開催されます(ただし英語)

日本時間の2014.06.26-27に、開発者向けオンラインイベント「dotnetConf」が開催されます(※ただし英語。現地太平洋夏時間では2014.06.25-26)。 詳細はこちらのdotnetConfオフィシャルサイトから。 日本時間では深夜の時間帯とまあアレなのですが、Channel …

DapperはIN句も自動でマップしてくれるのが便利

本エントリはC# Advent Calendar 2013 3日目のエントリです。 Dapperいいよ、Dapper 最近は完全にDapper派(?)になっています。 ということで、今日はタイトルの通りDapperのIN句へのマップ機能を紹介したいと思います。 IN句に配列やリストを自動でマップ…

Team Foundation Server関連のAPI

Team Foundation Server(TFS)はAPIを提供しているため、.NETのコードからTFSの様々な機能を利用する事が出来ます。『Microsoft.TeamFoundation.〜』な感じの名前空間で提供されています。Microsoft.TeamFoundation〜のMSDNのドキュメントはこちら: Team F…