Architecture of Modern Software (Azure perspective) 6.5 hours of training material for free, including topics on: Fundamentals – Orchestration, Clusters, Microservices, Containers, 12 Factor App design, CI/CD Networking – Service endpoints, Forward/Reverse Proxies, DNS, Load balancing, API Versioning, Retries/Idempotency Messaging with queues – Benefits, Fault tolerance, Queue features Service upgrade & configuration – Service updates, Rolling updates, Shutdown and reconfigure […]

Identity Server and Multi Tenant Applications

Building a multi-tenant application using IDSVR4 and ASP.NET Core JWT Signing using RSASSA-PSS in .NET Core Article = Repo = PKCE in IDSVR4 ASP.NET Core using Proof Key for Code Exchange (PKCE) ASP.NET Core Swagger UI Authorization using IdentityServer4 Finbuckle.MultiTenant is a multitenancy library for ASP.NET Core 2.1+. It […]


Node Version Manager Install nvm: sudo npm install nvm@latest -g nvm ls // lists node versions nvm alias default 10.16.0 // nvm alias stable 10.16.0 nvm uninstall v8.9.0 // uninstall node version 8.9.0 nvm which 10.16.0 // shows the path to node v10.16

DevOps Practice

Azure Pipelines – Integration with Github, Build pull requests prior to merge, Run tests, Deploy for any platform (Ubuntu, Mac, Windows). See more … (Azure Devops server 2019 can be used as Cloud hosted or setup On-Prem. The azure pipeline build yaml is checked in with your source code so your build process/tasks etc are […]

SOLID Principles

Single Responsibility Principle: A class should be limited to a single responsibility. There should be one and only one reason to change a class. Supported by Object Composition (Composites), Strategy/Template Pattern etc. Key guidelines clearly defined boundaries as to where a piece of functionality is “implemented”; information-hiding in components that protect the integrity of data; […]

Welcome to my blog!

This is where I’ll be sharing my thoughts on topics that matter to me. Who knows… I might even share pictures, videos and links to other interesting stuff. If I catch your interest, let me hear from you.

Creating Bootstrap datepicker

View <form> <input type=”text” id=”pickADate” data-bind=”value: dataModel().pickADate” class=”datepicker form-control” readonly name=”pickADate”​ /> <!– id, name can be anything. class is important –> <script>require[”…., “bootstrap-datepicker”, “bootstrap-datepickerGB”​], function(….,datepicker, datePickerGb) {                     moment.locale(“en-gb”); // Set Locale for moment (aka moment.locale(“en-gb”)) var vm.mydateDate = moment(data.MyDateDate).format(“L”); // we get dd/mm/yyyy $(‘.datepicker’).datepicker({ language: […]