Teemablogi sissekanded

02.01.2018

Real-time talk between Windows 10 IoT Core background task and ASP.

My previous blog post introduced how to make ASP. NET Core 2 web application run on Windows 10 IoT Core. It was default web application created on Visual Studio and published as an executable. But this is not enough for IoT scenarios. When we build web application that runs on IoT board we need this application to do something. Be it displaying sensor data or controlling some hardware. 09:28 02.01.2018 kanalilt DT blogi 2

18.12.2017

How to avoid overlapping timer calls?

Timers are useful . NET feature. With timers we can execute code with specified interval. With real scenarios we can easily face situations where timer calls its callback again but previous call is not finished yet. It may end up with loading some external system too much. It may also end up by making unexpected parallel data processing that distorts the results. This post introduces some options to avoid overlapping timer calls. 09:12 18.12.2017 kanalilt DT blogi 2

15.12.2017

Are lock and Monitor the same in C#?

Working on some threading stuff I stumbled upon some discussions about lock and Monitor. Some say they are different and some say they are the same. I took few minutes of time to make some simple experiments with both of these. This blog post shows what C# compiler does with lock statement. As I had to use also Monitor class I added one example here how to use it instead of lock. 09:37 15.12.2017 kanalilt DT blogi 2

12.12.2017

Who messed up Visual Studio tab indent level?

After one of latest Visual Studio 2017 I noticed that tab length is incorrect in C# editor. I went through options and confirmed that tab size for C# was set to four spaces. But still for some reason editor used two as tab size. There have been some small changes how Visual Studio 2017 prioritizes settings and here is how to solve the mess. New kid on the block – . editorconfig file As it turns out there is something called . editorconfig file and from now on it overrides what is set in options dialog. 08:07 12.12.2017 kanalilt DT blogi 2

11.12.2017

Running ASP. NET Core 2 applications on Windows 10 IoT Core.

It has been problematic to run ASP. NET Core applications on Windows 10 IoT Core as it is not officially supported scenario yet and many components we are used with are not built with Windows 10 ARM in mind. Still it easy to run web applications on Windows 10 IoT Core using ASP. NET Core 2. There are few tricks developers should know when building web applications for Windows 10 IoT Core. This blog post is short guide about ASP. 09:05 11.12.2017 kanalilt DT blogi 2

08.12.2017

Boosting performance of Asus RT-N66U

Over time my home network has grown and years are changed also the habits of consuming media at home. When I bought Asus RT-N66U some years ago it was well performing home router. Now came the point when continuing the old way was not an option anymore as things were degraded a lot. Performance boost was needed and here is what I did to get my veteran router back on track. Asus RT-N66U home router. 04:50 08.12.2017 kanalilt DT blogi 2

06.12.2017

Deep dive to async Main

C# 7. 1 introduces asynchronous Main method for console applications. It helps us to get rid of some ugly code to await for asynchronous methods. If Main method of console applications is application flow controller that makes multiple calls to asynchronous methods then async Main leads us to much cleaner code. This blog post is my deep dive to async Main. Suppose we have console application built on . NET Core 2. 0. 09:15 06.12.2017 kanalilt DT blogi 2

08.11.2017

Recognizing printed text on images using Azure Computer Vision API

Microsoft Azure Cognitive Services offer us computer vision services to describe images and to detect printed or handwritten text. Text recognition provides interesting scenarios like cloud based OCR or providing automated translations for texts on images. This blog post focuses on recognizing printed text using Azure Computer Vision API. Source alert! Sample solution built on ASP. 11:30 08.11.2017 kanalilt DT blogi 2

03.11.2017

Running ASP. NET Core applications on Windows Subsystem for Linux.

Windows 10 has something called Windows Subsystem for Linux and this something enables us to run Linux applications on Windows 10 using Linux without need for Hyper-V or other virtual machines. When building multi-platform applications like my open-source TemperatureStation solution then having Linux right there for testing comes very handy. This blog post shows how to get Linux running on Windows, how to install. 10:01 03.11.2017 kanalilt DT blogi 2

25.10.2017

Server-side charts with ASP. NET Core, Node services and D3.

ASP. NET Core introduces Node services that allow applications to run Node scripts on server. We can send data from controller action to Node script and get back some output we can use in view. This blog post shows how to use Node services to render d3. js charts on server-side to PNG files. Why Node services Node has tons of modules available and ready for use. Before Node services there were no good way in ASP. 08:49 25.10.2017 kanalilt DT blogi 2

05.10.2017

NotSupportedException: No data is available for encoding 1252

Another day, another surprise on . NET Core. Tried to load a file with Windows-1252 encoding and got the following exception: NotSupportedException: No data is available for encoding 1252. For information on defining a custom encoding, see the documentation for the Encoding. RegisterProvider method. Here’s how to solve the problem. 07:22 05.10.2017 kanalilt DT blogi 2

29.09.2017

ASP. NET Core and IIS: 502. 5 Process Failure 0x80004005 : 80008083.

When running ASP. NET Core on IIS one may get weird error Application ‘<IIS PATH>’ with physical root ‘<PATH TO APPLICATION>’ failed to start process with commandline ‘”dotnet” . \MyApp. dll’, ErrorCode = ‘0x80004005 : 80008083. Here is one and most probable solution for this issue. It usually comes down to fact that runtime needed for web application is not available on server. 08:24 29.09.2017 kanalilt DT blogi 2

04.09.2017

Defensive database context for multi-tenant ASP. NET Core applications.

In multi-tenant applications where tenants share same data store cross-tenant operations must be avoided. There are many ways how bugs like this can happen. Be it hard to debug threading issue or some other complex situation, it is better when application components are ready for this kind of situations and better fail instead of going to glory end with illegal operations. 08:40 04.09.2017 kanalilt DT blogi 2

29.08.2017

Unit testing multi-tenant database provider

My saga on supporting multiple tenants in ASP. NET Core web applications has come to point where tenants can use separate databases. It’s time now to write some tests for data context to make sure it behaves correct in unexpected situations. This post covers unit tests for data context and multi-tenancy. My previous work on multi-tenancy To get better understanding of my previous work on multi-tenancy in ASP. 09:36 29.08.2017 kanalilt DT blogi 2

24.08.2017

Handling missing tenants in ASP.NET Core

My last post about multi-tenants applications with ASP. NET Core Implementing database per tenant strategy on ASP. NET Core I proposed some ideas about tenant providers but I didn’t focused on issues related to missing tenants. This post proposes missing tenant middleware that redirects faulty requests to some public page of company web site. To get better understanding of my previous work on multi-tenancy in ASP. 08:00 24.08.2017 kanalilt DT blogi 2

23.08.2017

Implementing database per tenant strategy on ASP.

Let’s continue with multi-tenancy in ASP. NET Core web applications and focus on solutions where every tenant has its own database. It’s not only about database – there can be more services where every tenant has its own instance. It makes solution provided here easily extendable to also other services besides SQL Server or any other relational database. 08:22 23.08.2017 kanalilt DT blogi 2

22.08.2017

Implementing tenant providers on ASP.NET Core

In my previous post about global query filters in Entity Framework 2. 0 I proposed an idea how to automatically apply query filters to all domain entities when model is built so enitites are always coming from the same tenant. This post digs deeper to possible solutions for detecting current tenant in ASP. NET Core we applications and proposes some tenant providers to use as starting point for multi-tenancy support in real-life applications. 08:29 22.08.2017 kanalilt DT blogi 2

21.08.2017

Using bearer tokens in ASP.NET Core

There are not much examples available about ASP. NET Core and acquiring access token. I found good and pretty big sample by Microsoft Patterns & Practices called multitenant-saas-guidance, Based on this I wrote my simple “boiler plate” ASP. NET Core solution that authenticates against Azure Active Directory and asks current user data using Microsoft Graph. 08:34 21.08.2017 kanalilt DT blogi 2

18.08.2017

Hiding search suggestion in Search Results Web Part

I have page in SharePoint where users can search for specific type of items and see different results in Search Results Web Parts. The page I have has eight results web parts and when nothing is found I want to keep results web parts laconic and minimal so they don’t waste space on screen. What I want is shown on following two screenshot fragments. 07:38 18.08.2017 kanalilt DT blogi 2

17.08.2017

ASP. NET Core: Building enum provider to convert C# enums to JavaScript.

My previous post about ASP. NET Core and getting C# enums to JavaScript was primitive and used simple attribute on enums to detect ones we need in JavaScript. This blog post extends the idea and makes some generalizations to support also those enums that are located in the libraries we don’t control or on what we don’t want to apply attribute. 07:30 17.08.2017 kanalilt DT blogi 2