読者です 読者をやめる 読者になる 読者になる

C#

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 とパスワードを入力…

ASP.NET Identity のセキュリティスタンプ機能を使う

ASP.NET Identity に IUserSecurityStampStore というインタフェースがあるのですが、これをどうやって使うのか、そもそも何のためにあるのかも分からなかったので調べてみました。 そもそも ASP.NET Identity って何?というのは CodeZine の ASP.NET Ident…

日本語テストメソッドをどう思うか?というテーマで話をしてきました

C# や ASP.NET 環境でのテスト周りの話を聞きたいなーと思って.NET 環境でのテストという勉強会を開催しました。 自分が聞きたいだけという自己中極まりない理由での勉強会なので、前回同様特に告知はしなかったんですが、身内以外の方も何名か来て頂いてあ…

華麗に null チェックを行う

C#

何気なく Stackoverflow を見てたら面白い質問を見つけたので備忘のためメモしておきます。 Cleaner way to do a null check in C#? - Stackoverflow タイトルは「null チェック」と要約されてしまってますが、つまりあるオブジェクトが持つプロパティの更に…

実践的 ASP.NET MVC 勉強会で発表してきました

http://atnd.org/events/39768 ケーススタディから学ぶ実践的 ASP.NET MVC 勉強会というところで発表してきました。 発表してきましたというか自分が主催者だったんですが、周りには ASP.NET MVC に詳しい人が結構居るのに、仕事が忙しくて中々話聞けないな…

Entity Framework の歴史を振り返る

仕事じゃ SQL Server は使ってないし、家だと RDBMS 環境の構築/メンテが面倒で(せいぜい使うとしたら NoSQL)、これまで Entity Framework にはあまり深入りしていなかったのですが、今日ちょっと使いたいなと思って調べたらバージョンが 5 まで上がっててび…

StateServer のパーティショニングを行う

皆大好き State Server ですが、残念ながらセッションの出し入れのみという極めてシンプルな機能しか持ちません。 でも大規模なサイトでも使いたい!スケールさせたい!ですよね?ということで State Server のパーティショニング機能が無ければ自前で実装し…

好みのセッション ID を利用する

昨日はセッション状態を Memcached に格納しましたが、次はセッション ID を好みの形に変えてみます。 実装 セッション ID を任意の値にするには ISessionIDManager インタフェースを実装したカスタムマネージャクラスを作成します。 作成しますが…実は、セ…

Memcached とか Redis にセッション状態を保存する

前回の記事から1年以上も経ってる…今年は頑張ります。 で 最近仕事でセッション状態を NoSQL DB に突っ込めるか?みたいなことを調べたのでメモ。 セッション状態を任意のデータストアに保存するには SessionStateStoreProviderBase を継承した自前の Custom…