タグ

ブックマーク / neue.cc (4)

  • neue cc - C#でローカル変数からDictionaryを生成する

    どうもPHPerです。あ、すぐC#のコード出しますので帰らないで!というわけで、PHPにはcompactというローカル変数からハッシュテーブルを作るという関数があります。割と多用します。その逆のextractという関数もありますが、そちらはカオスなのでスルー。 $name = "hogehoge"; $age = 35; // {"name":"hogehoge", "age":35} $dict = compact("name", "age"); へー。いいかもね。これをC#でやるには?もったいぶってもshoganaiので先に答えを出しますが、匿名型を使えばよいです。 var name = "hogehoge"; var age = 35; // Dictionary<string, object> : {"name":"hogehoge", "age":35} var dict = C

    atsukanrock
    atsukanrock 2013/01/14
    FastMemberっていうReflection高速化ライブラリの紹介記事。でも10,000回ぐらいでペイかぁ。。。
  • neue cc - 控えめなViewStateによるハイパフォーマンスASP.NET Web Forms開発

    今どきのウェブ開発はMVCだよねー、な昨今を皆様どうお過ごしでしょうか。そんな中であっても、Web Formsでモバイル向けにハイパフォーマンスサイトを作らなきゃいけない時だってあるんです。さて、そんなWeb Fromsですが、とりあえずの敵はViewStateです。ViewStateをどのように活かし、どのように殺害するか、そこに全てがかかっています。幾つかの典型的なシチュエーションを取り出して、ViewStateを抹消していきましょう。 ViewStateMode = "Disabled" 下準備として、ViewStateModeをDisabledにします。ViewStateModeは.NET Framework 4から入った新機能で、「ようやく」ViewStateのオン・オフをルート階層から切り替えることが出来るようになりました。それまではEnableViewStateのみで、fal

    atsukanrock
    atsukanrock 2012/06/02
    Web Formsの良さをほとんど殺してなおWeb Formsを使い、ハイパフォーマンスを求めるというお話wクソめんどくさいですが、パフォーマンスを求めるならたしかに、「いかにしてビューステートを殺すか」は超大事
  • neue cc - Rx + MolesによるC#での次世代非同期モックテスト考察

    最近、妙にテストブームです。Chaining Assertionを作ったからですね。ライブラリドリブンデベロップメント。とりあえずでも何か作って公開すると、その分野への情報収集熱に火がつくよね。そしてテスト厨へ。さて、ユニットテストで次に考えるべきは、モックの活用。C#でモックといえばMoqが評価高い。メソッドチェーンとExpression Treeを活かしたモック生成は、なるほど、良さそうです。読み方も可愛いしね。もっきゅ。もっきゅ。 というわけでスルーして(えー)Molesを使いましょう。Microsoft Research謹製のモックフレームワークです。PexとのセットはMSDN Subscriptionが必要ですが、MolesのみならばFreeです。VS Galleryに置かれているので、VSの拡張機能マネージャーからでも検索に引っかかります。 Moles。Pex and Mole

    atsukanrock
    atsukanrock 2011/07/25
    Rxを勉強してからもう1回チャレンジだな…
  • neue cc - return IEnumerableとyield return

    static void Main(string[] args) { var path = @"C:\test.txt"; var lines = EnumerateAllLines(path).ToArray(); } static IEnumerable<string> EnumerateAllLines(string filePath) { using (var sr = new StreamReader(filePath)) { return Enumerable.Repeat(sr, int.MaxValue) .TakeWhile(s => !s.EndOfStream) .Select(s => s.ReadLine()); } } これの実行結果はどうなるでしょうか。答えは、「閉じているTextReaderから読み取ることはできません。」という例外が発生します。当たり前ですか

    atsukanrock
    atsukanrock 2010/09/29
    LinqとusingでDispose後に列挙してしまう罠
  • 1