Server-side, client-side, code snippets, scripts, automation, best practices, proven approaches, tips & tricks...

Speech to text mp3 audio files using Azure Cognitive Services and .NET Core

Transcribe mp3 audio files to text using Azure SpeechServices and C#
There is a big buzz about AI these days and major Cloud vendors like Amazon Web Services, Azure, Google Cloud are competing to bring better products to their platforms for variety of AI tasks. One of these services is speech recognition and generating transcription text from the audio. I recently worked on a project which involved transcribing large amount of daily generated audio recordings...read more

Running .NET Core on Raspberry PI with Raspbian Stretch

Setting up .NET Core on Raspbery Stretch Linux distribution running on Raspberry PI
Apart from running on Windows and Linux both x86 and x64 architecture, .NET Core is an ideal platform for IOT (Internet of things) projects because it can also run on ARM32 and ARM64. This means you can run it pretty much any device with both RISC or CISC processor architecture. If you are .NET developer or you are familiar with .NET platform and C# language, this means you can now write applications that run on Raspberry Pi which is based on RISC architecture by writing them in Visual Studio...read more

The best option to use for a return type in ASP.NET Core WebAPI controller

Choosing the proper return type for WebApi controller actions
Starting from .NET Core version 2.1, there are so far three types of WebApi responses that controller actions can return. All three types had it's own pros and cons but all are lacking in options to satisfy both REST and the high level of testability. The available response types in ASP.NET Core including recently released 2.2 version are ...read more

Registering multiple implementations of the same interface in ASP.NET Core

Multiple implementations of an interface in .NET Core Dependency Injection
Starting from it's initial release ASP .NET Core comes with built in dependency injection (DI) to help implement Inversion Of Control design pattern. This is not something new in .NET and apart from built-in DI in .NET Core, there are other libraries which provide same and in some cases even more advanced dependency injection implementation...read more

Setting up Kestrel port in configuration file in ASP.NET Core

Reading port from configuration file in Program class Main method
When running ASP.NET Core application as self-hosted using Kestrel, it will by default use port 5000 for listening for requests. This should not be a big issue since you can always proxy requests to port 5000. Problem occurs when you might want to have multiple applications on one host, or you simply cannot use port 5000 for security or any other reasons.Luckily, default port for ASP.NET Core application running on Kestrel can be easily changed, but in order to make it easily configurable there are few changes you need to make in your code in order to access IHostingEnvironment and IConfiguration implementation instances combined. ...read more

Using DisplayName attribute for model validation output in ASP.NET MVC Core

Returning DisplayName attribute value in model validation response in MVC Core
Model validation is an important part of request life-cycle and pipeline in MVC Core regardless whether you are building Web API project or ASP.NET MVC web application. Both project templates rely on the common ASP.NET Core platform therefore validation is pretty much the same in both type of projects. Because Web API and micro services are more popular nowadays, I am going to use Web API sample project to demonstrate how to modify validation response in MVC Web API Core project. ...read more

Dependency injection with custom MVC filter attributes in ASP.NET Core

Using dependency injection with custom ExceptionFilterAttribute in ASP.NET Core
Apart from adding your own middleware to the ASP.NET MVC Core application pipeline, you can control the response using custom MVC filter attributes and selectively apply them to either whole controller or controller actions. One of the commonly used MVC filter in ASP.NET Core is ExceptionFilterAttribute for handling error response in Wep API applications. It is easy to implement and I also wrote an article about Error handling in ASP.NET Core Web API few months ago...read more

Install multiple packages from Visual Studio package manager console

Adding multiple nuget packages to the project from package manager console
If you are using Visual Studio 2017 as your main IDE, than you are probably familiar and used at least once NuGet package manager console. You may know or maybe not, but NuGet Package Manager relies on PowerShell script and Package Manager Console is basically hosted PowerShell command line inside Visual Studio. This means, apart from NuGet commands, you can also execute PowerShell commands. ...read more

Adding healthchecks just got a lot easier in ASP.NET Core 2.2

Setting up and using healthcheck endpoints in ASP.NET Core 2.2
Health checks or health probes are the crucial part for orchestrating micro services. If you are using Kubernetes for orchestrating containerized application instances or you just have multiple ServiceApps or VMS behind the load balancer, you need to define health checks in order for the orchestrator or load balancer to know to which instance to send the traffic and to which not...read more

Mocking IConfiguration GetValue<T> extension methods in Unit Test

How to mock extension methods for IConfiguration in .NET Core
Now here is a trouble that was bugging me for some time and I guess who ever is using IConfigration injected in the constructor and using extension methods to access configuration values reached whan trying to write Unit Tests. IConfiguration interface is a great way to easily replace your configuration layer in application, but it has it's drawbacks. The way interface envorces configuration reading is by exposing GetSection method which return IConfigurationSection...read more

Handling data concurrency in EF Core and ASP.NET Core WebAPI

Data concurrency in Entity Framework Core
Entity Framework Core implements optimistic concurrency strategy which is opposite to pessimistic concurrency strategy. Lets's first clear out what are main differences between these two approaches in concurrency control. Optimistic concurrency control allows multiple processes to access and modify data without any explicit lock on the data...read more

Setting up Swagger to support versioned API endpoints in ASP.NET Core

Adding Swagger support for versioned REST Web API endpoints
Versioning of your endpoints is important especially if you have 3rd party dependent clients of your REST API service. Any change in your endpoint, for example in data structure may impact clients even if it is backward compatible, clients may process your endpoint data in different ways, so even adding one additional property to your model may also impact functionality of the client which is consuming your endpoint. Prerequisites ...read more


read more

Umbraco CMS

read more


read more


read more