DevOnBike's Battle Field benchmarks: async calls plinq file reading throwing exceptions vs safe approach other: random data generators middleware engine attribute based access control engine