Dot Net What Not Posts

The Blazor web app template introduced in .NET8 has some excellent features, but also has some subtle gotchas that can cause performance issues if you don’t handle them.

This post explains a utility class I wrote that will keep data access to a minimum when dealing with both server and client rendering, as well as caching data between navigations around the client code.

Last month, I explained how we had achieved a significant performance improvement by using Dapper to pull the data from the database, rather than using EF Core.

Whilst showing this to a colleague, he reminded me that EF Core has a FromSqlRaw method that does pretty much the same thing. Assuming that EF Core would be slower than Dapper, I didn’t give it much thought at the time. However, being a compulsive tinkerer, I decided to take a closer look.

This post explains my findings, and what I did with them

Due to some performance issues, I decided to try using Dapper with the Telerik grid for Blazor. This post documents the (excellent) results, and shows a useful extension method that makes this very simple.

Inspired by an amazingly concise implementation of John Conway’s game of Life that I saw written in APL, I decided to see if I could write Life in a single Linq expression.

This (rather long and rambling) post documents my attempts, my eventual success and the result that it made me want to learn APL!

I’ve been trying to write functional code for some time now, and still have the feeling that I’m not doing it correctly, especially when seemingly simple things don’t work. Having bumped into one specific issue over and over again, I decided to try and sort it out once and for all. Imagine a stupidly simple API endpoint that take a float, and returns the square root doubled. I have helper functions as follows… My API endpoint returns a string of the form “Result: 23.3” if successful, or an error if not. I wire these together as follows… This works as expected. Obviously, my real code would have more from clauses than this, but I’m trying to keep this simple. Now, suppose (which is more realistic) the helper functions were async, then I would need to modify my endpoint to look like this… Again, all works. However, now in the case…