Docker containers in Production

I wanted to compile some resources about docker usage in production environments.

Interesting facts — Companies and the use of Docker

Customer Success
Carnival, Citizens Bank, Liberty Mutual, Lindsay Corporation, and Nationwide won the 2019 Docker customer awards for innovation and transformation

What do teams at Square, Airbnb, and Spotify have in common?

Are Docker containers really secure?

These Are Not The Containers You’re Looking For

The 2019 Microservices Ecosystem

Should You Run Your Database in Docker?
“Someone mentioned not running databases in containers, but I don’t understand why it would be bad…”

8 Components You Need to Run Containers in Production

  1. Engine
  2. Orchestration
  3. Network
  4. Storage
  5. Monitoring
  6. Logging
  7. Service Mesh
  8. Container Deployment Pipeline

The Most Widely Used Images Are NGINX, Redis, and Postgres

ioc comparison

IoC Container Benchmark – Performance comparison
“Ninject is definitely the slowest container.

MEF, LinFu and Spring.NET are faster than Ninject, but still pretty slow.
AutoFac, Catel and Windsor come next, followed by StructureMap, Unity and LightCore. A disadvantage of Spring.NET is, that can only be configured with XML.

DryIoc, LightInject and SimpleInjector offer a very performance combined with support for advanced scenarios like interception and generic decorators.
Simple Injector and LightInject also provide extensive documentation and support all important platforms.”

List of .NET Dependency Injection Containers (IOC)
IoC Battle in 2015 results: Using Ninject – think again!
“Dynamo IoC: Another IoC container – but faster!”


wpf development and mvvm pattern

WPF Enterprise MVVM Session 1: Building a base ViewModel class

ADO.NET Entity Framework
“This sample shows a WPF application built on top of the Microsoft ADO.NET Entity Framework. The application shows how the Entity Framework can be used in some common design patterns that promote testability and maintainability of code.”


MVVM Best Practices
“In this episode, recorded at TechEd in Houston, Robert is joined by Brian Lagunas of Infragistics, who shares with us best practices for building applications using MVVM. Brian starts off by reviewing what MVVM is and what it isn’t. He then demonstrates several things you should not do and why you should not do them. In addition to the demos, Brian gives his advice on how he approaches some common scenarios.”


WPF MVVM step by step (Basics to Advance Level)


5: Implementing the MVVM Pattern Using the Prism Library 5.0 for WPF


Prism 5.0 for WPF – April 2014
“Prism provides guidance designed to help you more easily design and build rich, flexible, and easy to maintain Windows Presentation Foundation (WPF) desktop applications.”


WPF MVVM Example App


Simplified MVVM Commanding with DelegateCommand


Testing Tools
“Programmatic access and keyboard access to your application are two critical requirements for accessibility. Without adequate access, many users of assistive technology (AT), such as screen reader and on-screen keyboard users, would be unable to use your application. It is important to thoroughly test your application to ensure that it provides adequate information about its UI elements, and that all of your application scenarios can be accomplished with only the keyboard.”




DependencyProperties or INotifyPropertyChanged


DependencyProperties or INotifyPropertyChanged ?
“When you want to make an object binding-aware you have two choices : implements INotifyPropertyChanged or creates DependencyProperties.”
Optimizing Performance: Data Binding

WPF Dependency Properties vs INotifyPropertyChanged
“If you are doing WPF development you will not get very far before running into this decision. Should you use DependencyObject(and DependencyProperty) or should you implement INotifyPropertyChanged to support binding. This question boils down into two really. When do you “need” to use one or the other, and when might you “want” to choose one over the other.”


Alternative to INotifyPropertyChanged and DependencyProperty

Update Controls .NET
“Update Controls does not require that you implement INotifyPropertyChanged or declare a DependencyProperty. It connects controls directly to CLR properties. It discovers dependencies upon data through layers of intermediate code. This makes it perfect for the Model/View/ViewModel pattern; no extra code is needed in the ViewModel, which sits between the Model and the View.
Wrap the DataContext of your Window. The wrapper not only implements INotifyPropertyChanged for all of your object’s properties, it also automatically detects their dependencies on other properties. There is no base class or interface to implement.”



Azure Machine Learning

Microsoft Azure Machine Learning Algorithm Cheat Sheet

How to get started with Azure ML

Machine Learning APIs


– Check out the Azure Machine Learning Studio:
– Check out the Azure Machine Learning Gallery:
– Channel 9 getting started videos for Azure Machine Learning:


More complex features available:
– Link to the CodePlex site with the Azure ML ExceL Add-In:
– Using the Azure Machine Learning re-training API:
– Check out the Azure Machine Learning webinars available online to sign up to:


Data Science London
“Data Science London is a community of data scientists that meets regularly to discuss data science ideas, concepts, and tools, methods and technologies used by many startups to analyse large scale data (big data), extract predictive insight, and exploit business opportunities from data products.”


Data Science Training Courses


Data Machina by @ds_ldn
“A FREE weekly digest of data science curiosities, big data folklore, and computer science amenities. For those bemused by data sorcery, algorithmic esoterics and intelligent machinery. Curated by @ds_ldn human algorithms. Before you ask: That’s the diagram of Turing’s Electronic Brain.”



Storage for Big Data? Here is Hadoop on Azure

HDInsight: Our 100% Apache Hadoop-based service in the cloud
HDInsight Pricing
HDInsight Server (Apache Hadoop on Azure)

Getting Started with HDInsight

What’s new in the Hadoop cluster versions provided by HDInsight?

Getting Started with the Windows Azure HDInsight Emulator


Other Links


Introducing Oracle Data Mining

KnowledgeMiner Software Insights


ML Algos

“What are the top 10 data mining or machine learning algorithms?”





Docker for Apps, Vagrant for VMs

Docker for Developers – Jérôme Petazzoni

The best way to understand Docker is to try it!

Docker introduction

Fun with ASP.NET 5, Linux & Docker

Running ASP.NET 5 applications in Linux Containers with Docker

Publishing an ASP.NET 5 app to Docker on Linux with Visual Studio


Visual Studio Code served from Docker

VS Code, Linux, Docker for Windows



Creating a base box

Azure Virtual Machine creation and set up using Vagrant – with Cory Fowler

Vagrant Azure Provider is now Platform Independent


Azure Virtual Machine creation and set up using Vagrant – with Cory Fowler
Vagrant Azure Provider

msopentech vagrant



“Repeatable, reboot resilient windows environment installations made easy using Chocolatey packages. When its time to repave either bare metal or virtualized instances, locally or on a remote machine, Boxstarter can automate both trivial and highly complex installations. Compatible with all Windows versions from Windows 7/2008 R2 forward.”







.NET Open Source and Cross-Platform

Opening up Visual Studio and .NET to Every Developer, Any Application: .NET Server Core open source and cross platform, Visual Studio Community 2013 and preview of Visual Studio 2015 and .NET 2015

Microsoft takes .NET open source and cross-platform

.NET Core is Open Source

Announcing .NET 2015 – .NET as Open Source, .NET on Mac and Linux, and Visual Studio Community


What’s the difference between Visual Studio Code vs Visual Studio 2015 RC?


Introducing .NET Standard



Technical Indicators FX Traders Must Know

4 Types Of Indicators FX Traders Must Know

Top 5 Forex Indicators And How To Use Them

Quotation Styles
There is a market convention that determines for any currency pair which currency is CCY1 and CCY2, based on the value of each currency and a hierarchy of exceptions. For example, a rate between CHF (Swiss Franc) and JPY (Japanese Yen) will be quoted as CHF/JPY because one Swiss Franc is worth more than one Japanese Yen. The less valuable currency is typically CCY2 (giving a rate higher than 1) except for the currencies listed on the left, which are always CCY1. If any of these currencies are quoted against each other, then the currency higher in this list will be CCY1.



Kweku Adoboli

2011 UBS rogue trader scandal

Ex-UBS trader Kweku Adoboli loses UK deportation appeal



Code Analysis and Code Visualization

Code Analysis and VisualizationTools

Code Rocket® for Visual Studio .NET (2005, 2008, 2010)


Static Analysis Tools

NDepend is a static analysis tool for .NET managed code. This tool supports a large number of code metrics, allows for visualization of dependencies using directed graphs and dependency matrix.



C# Code Reviews using StyleCop – Detailed Article



SonarQube Platform
“The SonarQube® platform is an open source quality management platform, dedicated to continuously analyzing and measuring the technical quality of source code, from project portfolio down to the method level. To understand what the platform tracks and why it’s important, take a look at the Developers’ Seven Deadly Sins.”

SonarQube Installation


Related Links

Developers’ Seven Deadly Sins


Code reviews


The Ten Commandments of Egoless Programming

Egoless programming

Code Review


Give it five minutes

On Code Reviews and Developer Feedback

Why code reviews matter (and actually save time!)

A quick guide to peer code review (and why you should do it)

Things Everyone Should Do: Code Review




Running Scripts from C# Application

Run Powershell-Script from C# Application

How to run PowerShell scripts from C#

Python for C# Developers, By Michael Kennedy

A 3 minute guide to embedding IronPython in a C# application

Is it possible to dynamically compile and execute C# code fragments?
It depends on your precise needs. Two ways I can think of:

Use a language like Python which is interoperable with C#, and call the Python script from C#. Actually, you can even make things simpler by just calling an executable, passing to it an XML or JSON data, and wait for XML or JSON response.

If you need to use C#, then compile C# on the fly, just like LINQPad does. Is it possible to dynamically compile and execute C# code fragments? is a good starting point. Loading the code in a sandbox (in a different AppDomain) is also a good idea if you need to provide enough security and don’t trust the code which can be written by the user.


json to c# data class generators

What’s the difference between DataContractJsonSerializer and JavaScriptSerializer?

Json.NET: Popular high-performance JSON framework for .NET

JSON serialization – DataContractJsonSerializer vs JavaScriptSerializer

Serializing and Deserializing JSON

run python from csharp code

Running IronPython Scripts from a C# 4.0 Program


TypeScript vs. CoffeeScript vs. ES6


Project-less scripted C# with ScriptCS and Roslyn


Which online Python course is the best?




aspnet websockets signalir

Learn to Use ASP.NET 4.5 WebSockets The Easy Way

Building Real-time Web Apps with ASP.NET WebAPI and WebSockets

Learn About ASP.NET SignalR

Tutorial: Getting Started with SignalR 2.0


Signalr Supported Platforms
“Supported server operating systems

The SignalR server component can be hosted in the following server or client operating systems. Note that for SignalR to use WebSockets, Windows Server 2012 or Windows 8 is required (WebSocket can be used on Windows Azure Web Sites, as long as the site’s .NET framework version is set to 4.5, and Web Sockets is enabled in the site’s Configuration page).

Windows Server 2012
Windows Server 2008 r2
Windows 8
Windows 7
Windows Azure
Supported server .NET Framework version

SignalR 2 is only supported on .NET Famework 4.5. See the Recommended Updates section for updates that enhance reliability, compatibility, stability, and performance.”
“Supported server IIS versions

When SignalR is hosted in IIS, the following versions are supported. Note that if a client operating system is used, such as for development (Windows 8 or Windows 7), full versions of IIS or Cassini should not be used, since there will be a limit of 10 simultaneous connections imposed, which will be reached very quickly since connections are transient, frequently re-established, and are not disposed immediately upon no longer being used. IIS Express should be used on client operating systems.

Also note that for SignalR to use WebSocket, IIS 8 or IIS 8 Express must be used, the server must be using Windows 8, Windows Server 2012, or later, and WebSocket must be enabled in IIS. For information on how to enable WebSocket in IIS, see IIS 8.0 WebSocket Protocol Support.

IIS 8 or IIS 8 Express.
IIS 7 and 7.5. Support for extensionless URLs is required.
IIS must be running in integrated mode; classic mode is not supported. Message delays of up to 30 seconds may be experienced if IIS is run in classic mode using the Server-Sent Events transport.
The hosting application must be running in full trust mode.”

“IIS 8.0 The WebSocket Protocol was introduced in IIS 8.0.”




How do you handle authentication via cookie with CURL?
“If you mean the username and password are entered in a form on a login page, then cURL can “submit” that form like:

curl -d “username=miniape&password=SeCrEt”

and if you want to store the cookie that comes back you do so by specifying a cookie file:

curl -c cookies.txt -d “username=miniape&password=SeCrEt”

and to use those cookie in later requests you do:

curl -b cookies.txt -d “username=miniape&password=SeCrEt”

or do both if you want to both send and receive cookies:

curl -b cookies.txt -c cookies.txt -d “username=miniape&password=SeCrEt”



Raspberry Pi + Nancy + OWIN + SignalR

My very own Taskmanager in HTML 5, SignalR and Nancy


Building a simple Nancy app from scratch using Mono and MonoDevelop in OSX

Project-less scripted C# with ScriptCS and Roslyn

Use OWIN to Self-Host ASP.NET Web API 2


Async Route Handling with Nancy


Best Practices in Asynchronous Programming