With the emergence of .NET Core and more importantly of its amazing dotnet cli, there are a number of templates you can use like the default ones: ASP.NET Empty project, ASP.NET Web API, ASP.NET with React/Angular/etc… They really help us to get started in a very short time.

But there is still one thing that bothers me is that I found no template that gives you the possibility to start an ASP.NET application using Azure services. And so the objective is to describe the following project: ASP.NET Core Azure Templates.

Humble and clean template

ASP.NET Core Azure Templates is a list of templates used…


With the evolution of the web ecosystem and React in particular we found several way to manage the state of our applications. It gives us a really simple and evolutive architecture on the frontend, the f(state) = UI lifecyle. Let’s see in details where we are going by focusing on the state management current trends: hooks, mobx and recoiljs.

History

However, if we focus on the pure React ecosystem, there is some kind of a tradeoff regarding the different state management solutions whether it is in performance or in simplicity.

The first solution was the setState pure function. It works great…


SignalR is a nice API provided in the .NET ecosystem to handle realtime scenario. With the emergence of .NET Core, it becomes even easier and faster with the removal of jQuery dependency and the simple API definitions in both the client and the server.

Realtime messaging

Realtime streaming

If you already wrote ASP.NET applications with SignalR, you generally followed the same pattern to create js event handler on the frontend and .NET Task on the backend. This is a simple and working model but it forces you to do 1–1 API call.

Since ASP.NET Core 2.1, we can now use SignalR streaming which is…


You may have written realtime applications with SignalR and/or you also may have written a web application using the @ngrx ecosystem. Following the Redux pattern, you desire predictable state management but the asynchronous messaging system of SignalR cannot be a part of it. However, these kinds of operations can be handled with side effects. And of course, @ngrx can deal with it.

By bringing SignalR to your @ngrx/store and your @ngrx/effect, you gain control over your application in different way:

  • automatically create, connect, send/receive events and reconnect your SignalR hubs…
  • …to have a perfect state in sync with your hub…

Following this article, you are now able to authenticate your users in your application using Azure Active Directory. But you can only retrieve basic informations about a user (id, mail, name). That can be enough for most applications but some business applications may need to use other data inside the Microsoft ecosystem.

Hopefully, there is an API for that and its name is Microsoft Graph, and you can consume it by reusing the access token provided by the Azure AD authentication mechanism.

Configuration

Azure AD configuration

At the moment, you should already have an Azure AD application. But in order to consume the Graph…


A quick intro

CQRS for Command and Query Responsibility Segregation is a pattern used to separate the logic between commands and queries.

Well, if you are used to create HTTP web API, here is the translation:

  • Queries = GET methods
  • Commands = POST/PUT/DELETE methods
CQRS pattern described by Martin Fowler

So why CQRS? Of course, you have the Single Responsibility Principle by design and so you get the ability to design a loosely coupled architecture which has multiple benefits:

  • A clear Read model with a list of queries and domain objects you can use
  • An isolation of each command inside a Write model
  • A simple definition of each query…

This is an article about the most important limitation of life: time and memory.

Picture provided by unsplash.com

The clock is ticking

To me, time is the most important limitation. You have to think clearly that time always move forward and this notion of hours and days is a constraint that can be summarized as a 24 hours repartition on an average day:

  • around 12 hours of incompressible time (sleep, transportation, etc..)
  • and so potentially 12 hours of work/training/…

Cannot access memory at address 0x01

After time, memory is another important limitation because you cannot store an infinite amount of information in your head. And there is also the fact that you can have corrupted data.

I often represent my memory as a key-value store or as a graph database. In fact, I mainly challenge my brain on short-term memory and instinct work behavior.


Introduction

During the last few years, I felt in love with Functional Reactive Programming. My first experience was when I used Rx.NET on a Windows 8 C#/XAML application. I used Reactive programming to simplify and improve performance of the UI with a dynamic Grid splitter. I then improve my skills on Rx.NET and rxjs to the point I am fully aware of the benefits of the Observable thing even if I do not know every operator in the world.

But FRP isn’t just Reactive, it is also Functional. I learnt Functional Programming more recently by studying the concept and by making…


Simple Stupid Redux Store using Reactive Extensions

Redux Simple

Redux Simple is a .NET library based on Redux principle. Redux Simple is written with Rx.NET and built with the minimum of code you need to scale your whatever .NET application you want to design.

Redux Simple = C# + Redux + Rx.NET

And Redux Simple is .NET Standard library by the way. So you can use it on any type of application you want, whether it is a console app, a mobile/Xamarin app or even a web server.

How to use?

Like the original Redux library, you will have to initialize a new State when…


Click here to share this article on LinkedIn »

I found many ways to implement Azure AD authentication using React and a .NET Core 2.x backend. In this article, I will demonstrate how to implement this type of authentication.

Register your application

The first step is to register your Azure AD. Once you’ve done that, you can use the keys generated by Azure to implement authentication in your app.

Now, we will configure the frontend to get an Azure AD access token and then to consume this token in the backend. …

David Bottiau

Software designer, Microsoft addict, open-minded, Lean being and UX supporter.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store