Microservices: Picking the .NET Framework for your containerized applications.

The objective of this blog post is to explain the factors that should be considered when picking a framework for a .net application that you intend to deploy in containerized fashion.

.Net Core

Generally, .Net Core is the preferred option when building applications that were intended to be deployed in containers due to the fact that .Net Core is built using modular architecture (.net core app images contains only the dependencies it requires to run). .NET Core apps are packaged using Windows Nano Server which is a far smaller compared to the OS required by the standard .NET runtime (Windows Server Core) therefore producing lighter images (end product of building containerized application).

On the image above, you will see an image built for .Net Core app that prompts "Hello World". Please take note of the size of the image (251 MB) as it would be critical to demonstrating the difference of the two frameworks.

Download Demo Apps from GITHUB

When to pick .NET Core?

  • Building Polyglots

    Polyglots are applications built using different platforms (EG. Combination of Java and .Net processes in a SOA app). Basically, .Net Core can be used to build applications that run on both Linux and Windows.

  • Your application's architecture is Microservices

    Containers are perfect for deploying Microservices because they allow the complete isolation of services. This basically enables the use of different platforms and dependencies per service without the nasty side-effects of hosting this applications together.

  • You intend to save on hardware cost

    Images built using .NET Core have small footprints (RAM and Storage) which enables us to host different containers inside a VM or Physical machine.

  • You need fast app start up

    Since .NET Core apps ship with things it only depends on, application can quickly startup.

  • You intend to build Green-Field applications

    .NET core is the most advised framework to be used for building green-field applications (Fresh Projects). Since it is designed for the future of .NET development.

  • You intend to build high density and scalable applications.

    Since containerized applications are easy to scale using container orchestrators like Docker Swarm, Kubernetes, DC OS and Mesosphere; .NET core is the perfect framework

.Net Framework

.Net Framework is the preferred option when you intend to containerize an existing application or utilize things that deeply depend on Windows API. It is always advised to pick .NET Core over .NET framework because of the Huge image that .NET framework images produces. NOTE: Huge image size corresponds to higher cost of hosting in cloud based docker image repositories. It also means larger cost for compute power to run the containerized app.

On the image above, you will see an image built for .Net Framework app that prompts "Hello World". It is quite noticeable that this image is way larger (10.4GB) than the image built using .Net Core.

When to pick .NET Framework over .Net Core?

  • Migrate an application that is difficult to port in .Net Core

    If migrating an application from .NET Framework to .Net Core is associated with high risk over produced value, it is highly suggested to keep the existing app and host it on containers.

  • Your application depends on a binary that doesn't have a .Net Core counterpart.

    Since .NET Core is still young and hot, there are still binaries that don't have a .NET core counterpart. A perfect example of this is proprietary or internal frameworks of companies.

  • Usage of .Net technologies not available for .Net Core

    As of November 2017, ASP.net Web Forms, WCF services and Workflow related services are still not supported.

Related Articles


Why don't you become a Microservice Ninja?


Comments

  1. Good, Keep up the good Work, Very Informative Content,
    Thanks For Sharing.

    Java Training in Chennai

    Java Course in Chennai

    ReplyDelete
  2. Great Post with valuable information. I am glad that I have visited this site. Share more updates.

    Spoken English Classes in Anna Nagar
    Spoken English Classes in Medavakkam
    Spoken English Classes in Chennai

    ReplyDelete
  3. Excellent post. I was checking continuously this blog and I’m impressed! Very helpful information particularly the last part :) I care for such information much. I was seeking this particular info for a very long time. Thank you and best of luck. บาคาร่าออนไลน์

    ReplyDelete
  4. This comment has been removed by the author.

    ReplyDelete


  5. Hey friend, it is very well written article, thank you for the valuable and useful information you provide in this post. Keep up the good work! FYI, please check these depression, stress and anxiety related articles.
    How to Build a Portfolio with ETFs, My vision for India in 2047 postcard, Essay on Unsung Heroes of Freedom Struggle

    ReplyDelete
  6. ประโยชน์ ของการ เล่นพนันนอนไลน์ เป็นหนทางสร้างอาชีพเสริมที่ง่ายรวมทั้งทำเงินได้จริง อย่างที่พวกเราได้บอกไปแล้วว่าการเล่นพนันออนไลน์บนเว็บไซต์นั้น pg slot สามารถเป็นวิถีทางหารายได้เสริม

    ReplyDelete
  7. This comment has been removed by the author.

    ReplyDelete
  8. Pg slot, easy to play, get real money and not get cheated. Must be here. https://www.pgslot168game.com/ because not through middlemen or agents, don't worry about being cheated and there are many good quality games to choose from, and there are many rewards within the game, whether mine major, supermega and jackpot is broken. Easily from this camp in one place, guaranteed by many players.

    ReplyDelete
  9. ในตอนนี้แบรนด์ Clubred666 ได้มีค่าย สล็อตเว็บตรง ทั้งหมดได้นำมาให้ผู้เล่นหรือลูกค้ามือใหม่ได้ร่วมสนุกกับตัวเกมส์แล้ว เพราะทาง Clubred666 อยากให้ลูกค้ามือใหม่และลูกค้าที่เป็นขาเป็นจำได้สนุกกับตัวเกมส์ที่ทางเว็ป PG Slot

    ReplyDelete

Post a Comment

Popular posts from this blog

Building Simple API Gateways with Ocelot and ASP.net Core

API Gateway: Response Aggregation with Ocelot and ASP.net Core

Replicating Netflix Part 1: Installing Raspbian Lite using Etcher

API Gateway in a Nutshell