Teemablogi sissekanded

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. 09: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. 10: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. 09: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. 09: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. 09: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. 09: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. 08: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. 08:30 17.08.2017 kanalilt DT blogi 2

16.08.2017

Global query filters in Entity Framework Core 2.0

Entity Framework Core 2. 0 introduces global query filters that can be applied to entities when model is created. It makes it easier to build multi-tenant applications and support soft deleting of entities. This blog post gives deeper overview about how to use global query filters in real-life applications and how to apply global query filters to domain entities automatically. Sample solution. 08:00 16.08.2017 kanalilt DT blogi 2

15.08.2017

Like-operator in Entity Framework Core 2.0

Entity Framework Core 2. 0 was announces yesterday and it brings some new and cool features. One of them is SQL Like-operator we can use now using directly in our code. Here is the simple web application that demonstrates using of new Like-operator. Let’s start with simple Songs table in SQL Server database. Here are the model for table and database context. 10:11 15.08.2017 kanalilt DT blogi 2

14.08.2017

.NET Core, ASP.NET Core, EF Core and .NET Standard 2.0 announced

Today Microsoft announced versions 2. 0 of . NET Standard, . NET Core, ASP. NET Core and Entity Framework Core. Also new updated to Visual Studio 2017 are available (both stable and preview version). This blog post is summary of most important features announced today. . NET Standard 2. 0 . NET Standard is for sharing code Much bigger API Surface (32k API-s in . NET Standard 2. 0). 10:02 14.08.2017 kanalilt DT blogi 2

ASP.NET Core: Converting C# enums to JavaScript

In my previous posts about enums I covered how to convert C# enums to JavaScript on classic ASP. NET MVC. This blog post introduces how to do it on ASP. NET Core using simple view component. To get better understanding about my previous work on getting C# enums to JavaScript on classic ASP. 09:33 14.08.2017 kanalilt DT blogi 2

11.08.2017

Converting System.Drawing.Color to hex

One quick code note to make during building my Azure Cognitive Services demo application. I needed a way how to convert colors of System. Drawing to hex strings that I can use in views. Here is my simple and elegant solution. To convert Color to hexadecimal string we can use ColorTranslator class from System. Drawing namespace. As I don’t want views to have direct dependencies to System. 08:40 11.08.2017 kanalilt DT blogi 2

10.08.2017

Controlling LifeCam Cinema on Raspberry Pi

After some Windows 10 IoT Core updates I discovered that it detected LifeCam Cinema camera connected to it. I tried it also few months ago but then Windows 10 IoT Core was not able to detect it. To find out if and how it works I wrote a primitive UWP application that shows picture from camera and saves photos made using webcam. Here is the nice evidence of support for LifeCam Cinema. I found it from Windows 10 IoT Core Device Portal. 09:00 10.08.2017 kanalilt DT blogi 2

09.08.2017

Converting multiple C# enums to JavaScript

My last solution to turn C# enums to JavaScript was simple but needed some additional work to support multiple enums better. After some playing with different approaches I found simple one that works okay for me. This blog post describes my simple solution that turns multiple C# enums to JavaScript with one shot. NB! This post is like chapter two to my previous enums post Converting C# enums to JavaScript. 09:00 09.08.2017 kanalilt DT blogi 2

08.08.2017

Identifying people on photos using Azure Cognitive Services

My previous post about Azure Cognitive Services described how to detect faces on photos. In this post I will focus on identifying people on photos. This post is based on my Azure Cognitive Services sample application that has most of Face API support implemented and the goal is to describe identifying process in brief and also show some code I have written. 09:00 08.08.2017 kanalilt DT blogi 2

07.08.2017

Converting C# enums to JavaScript

In one of my project I need some enums defined in C# to able also for JavaScript code. After some quick research in internet I came out with simple and easy extension method to convert C# enums to JavaScript. Here it is. Let’s get started with example enum and suppose we want to be able to use it also in JavaScript. public enum AssetStatusEnum{ Free, Reserved, Inactive, UnderMaintenance} To make enum available in JavaScript we have to convert it to JSON. 09:17 07.08.2017 kanalilt DT blogi 2

01.08.2017

Running PHP applications on .NET Core

Ever wondered about mixing up simplicity and flexibility of PHP with power and performance of . NET Core? The solution is coming and it is called Peachpie, the successor of Phalanger. This blog posts introduces Peachpie – the tool to compile PHP code to . NET Core – and helps to get started with it. Why Peachpie? For years there was thing called Phalanger that lived a silent life somewhere in internet. 09:00 01.08.2017 kanalilt DT blogi 2

21.07.2017

Wikis are coming to Visual Studio Team Services

Finally wikis are coming to Visual Studio Team Services. It was announced by Microsoft DevOps Blog earlier this month. Currently wikis are in preview status. This blog post is short overview of what is there and what is coming next. In my practice wikis are one of the best option to share loosely structured information between team members. It’s easy to document system features and also write notes about the specifics of system. 11:49 21.07.2017 kanalilt DT blogi 2

20.07.2017

Faking Azure ID identity in ASP. NET Core unit tests.

When testing ASP. NET Core controllers in application that uses Azure AD we need usually current user at least for some tests. As there is no authenticated user when unit testing, we need to create one by our own. This blog post shows how to create claims identity for ASP. NET Core unit tests. To have Azure AD user available we have to create fake claims identity and fill it with claims that test expects. 10:16 20.07.2017 kanalilt DT blogi 2