Digests » 136

.net

Solving the Zebra Puzzle with LINQ and C# 7

This problem is a bit of a pain to solve by hand, so it’s no surprise that there’s a long list of programs available to solve it. If you look at the C# solution on that page, you may be dismayed at how long and enterprisey it is. It clocks in at about 450 lines, using the Microsoft Solver Foundation. While it gets points for using a logic engine, the code is pretty unreadable.

In-memory C# compilation (and .dll generation) using Roslyn

Recently I've been hard at work on my first Visual Studio Code extension and one of the requirements is to extract IL from a .dll binary. This introduces a question though, do I build the solution (blocking the user whilst their project is building), read the .dll from disk then extract the IL, or do I compile the project in memory behind the scenes, then stream the assembly to Roslyn? Ultimately I went with the later approach and was pleasantly surprised at how easy Roslyn makes this - surprised enough that I thought it deserved its own blog post.

ASP.NET Core Template Pack

Now, it has become easier to create an Angular2 application in ASP.NET Core using the ASP.NET Core Template Pack. ASP.NET Core Template contains the following collection of .NET Core Project Templates.

The Lazy Developer’s Guide to Command Line Building with C#

For many C# developers, building and running a small project or even a single class file usually means having to launch Visual Studio and dealing with the overhead of an IDE and a large boilerplate of project code, making testing and exploration of the language and the .NET framework much less enjoyable than it should be.

Rahawan: How We Achieved 95% Better Response Time By Mostly-Unidirectional Data Access Layer Design

Building web sites/apps to serve millions visits per day is a real challenge, specially when it comes to keeping response time as low as possible. News websites are perfect example for high load web sites/apps. Building few of them and keeping it in good shape, required us to redesign/rewrite our data access layer from scratch.