C#

諸事情あって社内転職した話

この記事は Sansan Advent Calendar 2017 の 20 日目にあたるものです。 まさかの id:dotrikun と 話が被って しまいました。しかもあっちの方がジョブチェンジ具合は大きくて参考になること書いてる。。。 社内転職して Ruby エンジニアになりました 諸事情…

Roslyn で Expression に含まれる Enum の値が取れなくなったと思ったらバグだった

例えば、以下のコードを VS2013 で動かすと最終的に NumberEnum.One という定数から "1" という値が取れます。 class Hoge { public NumberEnum NumberEnum { get; set; } } enum NumberEnum { Zero, One } static void Main(string[] args) { Expression<Func<Hoge, bool>> e</func<hoge,>…

.NET 4.6 で追加された互換性スイッチ

大分間が空いていますが、前回から引き続きで .NET 4.6 について見ています。 dotnet/dotnet46-changes.md at master · Microsoft/dotnet · GitHub DotNet4.6.md · GitHub .NET Framework 4.6 におけるランタイムの変更点 互換性スイッチ というものが新たに…

.NET 4.6 の async/await の改善が地味に嬉しい

そろそろ仕事先の Framework バージョンを上げたいなと思って .NET 4.6 について今更ちゃんと調べ始めました。 正直多すぎて全部追えてないんですが、 async/await 周りの改善が嬉しかったのでブログに書きます。 ドキュメント dotnet/dotnet46-changes.md a…

ちょっとだけ本書きました

こないだ下書き書いたまま公開するの忘れてた。。。 縁あって、職場の同僚である id:atsukanrock と .NET/C# 界隈のエキスパートの皆様が書かれた本の中にこっそりと混じってきました。 Amazon.co.jp: C#エンジニア養成読本 (Software Design plus): 岩永 …

IntelliTest の NUnit Test Generator

昨日紹介した NUnit Test Generator を使ってみました。 ※ Azure の VS2015 RTM の VM が初期言語が英語で、面倒で日本語化してないので文中のメニューとかも英語になってます。適当に置き換えて読んでください。 使い方 1. Extension をインストールする V…

VS2015 の IntelliTest を調べた 後編

VS2015 の IntelliTest を調べた 前編 - kendik.netkendik.hatenablog.com 前回の続きです。自分でもびっくりするほど尻すぼみで前後編に分けた意味がなかったです。 IntelliTest のテストコードでできること 前回までで見てきたとおり、 IntelliTest のテス…

VS2015 の IntelliTest を調べた 前編

先日勤め先での勉強会で IntelliTest の概要についてさらっと発表したのですが、時間が足りなくて全然調査結果をスライドに反映できなかったのでブログにアウトプットします。 ※VS2015 RC での情報です IntelliTest の概要 はるか昔 Microsoft Research が P…

FluentMigration の基本機能メモ

前回簡単に使ってみた FluentMigration の機能を整理できたのでメモがてら。ほとんど公式ドキュメントの翻訳みたいになっちゃってますが。 そもそも FluentMigrator って何って話は前回のエントリをどぞ。 DB マイグレーションツールの Fluentmigrator がい…

DB マイグレーションツールの Fluentmigrator がいい感じかも

仕事で使える DB マイグレーションツールが欲しくてですね。 C# だと Entity Framework が鉄板なのかもしれないですが、今の仕事では使ってないのでなんか別で考えないといけなくて探してみたところ、 FluentMigrator というライブラリを見つけたので、ちょ…

EnvDTE を使ってデバッグ中にコレクション操作 ~C# 編~

前回の続きです。 EnvDTE を使ってデバッグ中に LINQ っぽいことがしたい - kendik.netkendik.hatenablog.com イミディエイトウインドウでラムダ式が使えないけど何とかしたい!ということで、前回はパッケージマネージャコンソールを使ってデバッグ中の変数…

EnvDTE を使ってデバッグ中に LINQ っぽいことがしたい

※LINQ = LINQ to Object って意味で読んでくださいね! Visual Studio はそれはもう素晴らしい IDE な訳で、特にデバッグに関する機能は日々の開発速度を大きく向上してくれています。 そんな VS が持つデバッグ機能にも色々ありますが、今回はイミディエイ…

今さら Caller Information

というのを知りました。C# 5 で入ったんですね。C# 6 が出ようとしているのに本当に今さらです。なんかすいません。脳に刻んでおくための自分用メモということで書き残しておきます。 参考 万が一「Caller Information って何!?」という人がいたら、以下の…

DebuggerDisplay 属性もいいけど DebuggerTypeProxy 属性もね

前回紹介した DebuggerDisplay 属性ですが、所属的には System.Diagnostic 名前空間 のクラスになります。Debug クラスとか Stopwatch クラスとかそこらへんで割と頻繁にお世話になっててよく見る名前空間ですね。で、 DebuggerDisplay 属性がよかったので他…

覚えておきたい DebuggerDisplay

皆もうとっくに知ってるかもしれませんが、最近 DebuggerDisplay 属性というのを覚えました。 https://msdn.microsoft.com/ja-jp/library/x810d419.aspx こいつがなかなかに良いやつだったので、ちょっと調べた結果をメモっておきます。 目的と基本的な使い…

C# で使える SQL Builder を集めてみた

O/R マッパーでなくて SQL だけを作ってくれるヘルパーが欲しいなぁと思いまして(具体的には Dapper に食わせる SQL を作りたい)、SQL Builder 的なものを探してみました。O/R マッパーも混じっちゃってますが、結構見つかるもんですね。 詳細はまた後日確認…

ASP.NET & IIS におけるタイムアウトの設定

先日 Session タイムアウトとフォーム認証のタイムアウトを混同している事案を拝見しまして、まぁ ASP.NET あるあるみたいなもんですが、タイムアウト周りは私もよく忘れて痛い目見てますし、ASP.NET と IIS にどんなタイムアウト設定があって、どう設定する…

.nuspec は間違いの無いように書こう、もしくは MSBuild の詳細出力を確認する

実際にハマった事案。 NuGet パッケージを作成する際には、NuGet.exe に .nuspec というファイルを作成して渡すと、様々な情報をパッケージに埋め込むことができます。(プロジェクトファイルを利用しても一部なら可能) そして、.nuspec にはそのパッケージが…

Azure SQL Database Elastic Scale Client Library 使い方簡易まとめ

Connect(); の発表でテンション上がってきましたね。追うべき情報がたくさんあって大変ですが楽しいです。MS かっけーぜ。 ただその前に、やりかけだった Azure SQL Database Elastic Scale Client Library の基本的な使い方を備忘用にまとめておこうと思い…

ASP.NET Identity beta1 が来ました

aspnet/Identity Release 3.0.0-beta1 · aspnet/Identity · GitHub 忙しくてまだ全然中身見れてませんが、とうとうベータが来たようです。 Identity 自体まだこなれていないのかそこそこ大きな修正が結構な頻度でくるので深入りを避けてましたが、さすがにベ…

ASP.NET Identity 2.2.0 (の alpha-1) が出たようです

ここ二週間ほどめっちゃ忙しくて全然ブログ書けてませんでしたが、Elastic Scale の Split-Merge ツールの続編ちゃんと書きます。誰も待ってる人はいないと思いますが。 さて、ご存じの方も多いと思いますが、つい先日タイトルの通り ASP.NET Identity の 2.…

Azure SQL Database Elastic Scale First Impression

先日、Azure SQL Database Elastic Scale の Priveiw 版が発表されました。 簡単に言えば、水平分散した SQL Database を手軽に扱えるサービスで、Azure SQL Database Federation サービスの後継になるそうです。 Azure SQL Database Federation は全然触っ…

log4net で正規表現を使ってログメッセージを置換する

log4net を使っていて、アプリ側ではなく log4net 側でメッセージの一部を置換できたら便利だなーと思いましてちょっと試してみました。 例えばパスワードみたいな機密情報とか、改行やタブとかね。 アプリ側の実装 ログを出力するアプリはこんな感じに適当…

複数のインタフェースを持つモックを Moq で作る

ユニットテストでモックを簡単に作るためのライブラリの有名どころの一つに Moq があります。 基本的な使い方の例としてはこんな感じです。 public interface IFoo { bool IsFoo(int value); } public class Foo : IFoo { public bool IsFoo(int value) { //…

ASP.NET Identity のユーザー名、パスワードの検証機能を整理する

過去分 その1 - ASP.NET Identity のセキュリティスタンプ機能を使う その2 - ASP.NET Identity で二要素認証を使う - SMS 編 その3 - ASP.NET Identity で二要素認証を使う - E-mail 編 その4 - ASP.NET Identity を使って Microsoft アカウントで認証…

.NET 勉強会で ASP.NET Identity の話をしてきました

少し前の話になってしまうのですが、 【第五回アニバーサリー企画】 gloops×Grani×Sansan .NET勉強会! (2014/08/30 15:00〜) 【第五回アニバーサリー企画】 gloops×Grani×Sansan .NET勉強会! - connpass という自社開催の勉強会で ASP.NET Identity の話を…

Hangfire でジョブ管理

SCOTT HANSELMAN 氏のブログ を見ている方はご存じでしょうが、Hangfire というジョブスケジューラがあります。 GitHub 見てみたら、ロードマップに Deliver the solution to the 90% of ASP.NET developers :smile:. とあってとてもほっこりしました。そう…

ASP.NET Identity を使って Microsoft アカウントで認証する

進捗ダメです。 などと一部の方に状況報告しつつ、ASP.NET Identity を使ってみようシリーズその4です。 その1 - ASP.NET Identity のセキュリティスタンプ機能を使う その2 - ASP.NET Identity で二要素認証を使う - SMS 編 その3 - ASP.NET Identity …

ASP.NET Identity で二要素認証を使う - E-mail 編

ASP.NET Identity を使ってみようシリーズその3。 過去のシリーズは以下です。 その1 - ASP.NET Identity のセキュリティスタンプ機能を使う その2 - ASP.NET Identity で二要素認証を使う - SMS 編 今日のお題 今回もみんな大好き二要素認証を実装してみ…

ASP.NET Identity で二要素認証を使う - SMS 編

ASP.NET Identity を使ってみようシリーズその2。その1はこちら 今回はみんな大好き二要素認証を実装してみましょう。 二要素認証って? さすがに知らない人も少なくなってきたかと思いますが、、、 例えば、Microsoft アカウントに ID とパスワードを入力…