Writing a custom OutputFormatter to return an Excel (.xlsx) from an action in ASP.NET Core API
As most of us, I already know my next week work schedule. It includes writing some actions in respond to a requirement for excel exports. It’s nothing new and its’s relatively easy with libraries like NPOI: you just create your excel on the fly and return a FileResult.
Handling, serializing and returning exceptions with a middleware in an ASP.NET Core API
ASP.NET Core offers a very cool way to avoid all that boring boilerplate exception handling code, just by intercepting all requests. It is called Middleware
and actually, ASP.NET Core is full of built-in middlewares!
Publishing ASP.NET Core: An error occurred while starting the application
Have you seen this error?
An error occurred while starting the application.
.NET Core <version> | Microsoft.AspNetCore.Hosting <version> | Microsoft Windows <version> | Need help?
Parameterized Raw SQL Queries with Entity Framework: How to Unit Test with SQLite
Entity Framework Core allows you to drop down to raw SQL queries when working with a relational database. This can be useful, because raw SQL queries can return entity types or, starting with EF Core 2.1, query types that are part of your model, but it could also be a problem when it comes down to Unit Testing.
Mocking expected behaviour of SQL functions for Unit Testing with SQLite
While unit testing, I came across a method in an SQL repository class that was using a raw SQL query, and along with that, SQL Server’s newid() function. Since the complicated reason behind this decision was out of scope, I had to find a way to unit test that method…
SQLite was -of course- the first approach, but any attempt to actually test the method would nevertheless fail with the exception Microsoft.Data.Sqlite.SqliteException: 'SQLite Error 1: 'no such function: newid'.'
.
Simple website stress tool with C# and Apache HTTP server benchmarking tool
To be honest, I got bored trying to remember all switches and combinations of Apache’s benchmarking tool! Since I use it sort of rarely, I just wrapped it in a convenient -for me at least- app that I can use without having to remember or read anything!