SlideShare a Scribd company logo
Docker &
Asp.Net Core
Fatih Şimşek
Software Architect
Agenda
• Docker
• Docker Demo
• Asp.Net Core
• Break
• Asp.Net Core Demo
• Asp.Net Core & Docker Demo
• Questions
Docker
• Created in Golang
• Open Source
• Lightweight
• Stand-alone
• Platform-independent
• Ship Software Faster
• Environment Consistency
Docker
Docker
• Community & Enterprise Edition
• Build Once, Run Anywhere
Docker Install
• Windows 7/8
Install Docker Toolbox
• Windows 10+ Pro
Install Docker CE
• Docker for Windows Installer
• docker version
Key Concepts
• Image
• Container
• Dockerfile
• Docker Compose
Docker Architecture
Docker Architecture
Docker vs VM
Docker Commands
• docker pull [image name]
• docker images
• docker rmi [image ID]
• docker run [image name]
• docker ps –a
• docker rm [container ID]
• docker build [image name]
• docker stop
• docker kill
• docker logs
Docker Commands
• docker inspect [container ID]
• docker exec -it [container ID] cmd
• docker volume
• docker network
Demo
Docker File
• Text file used to build Docker images
• Contains build instructions
• Instructions create intermediate image that can be cached to speed
up future builds
FROM ENTRYPOINT ENV
RUN WORKDIR VOLUME
COPY EXPOSE CMD
Container Network
• Networking with containers is a very important feature
• Allows users to define their own networks and connect containers to
them
• Create a network on a single host or a network that spans across
multiple hosts
docker network create [OPTIONS] my-network
docker run –d --net=my-network --name my-container mongo
docker network ls
docker network inspect my-network
Docker Compose
• Manage the whole application lifecycle
• Build service configuration file (docker-compose.yml)
Docker Swarm
• Container orchestration platform
• Developed by Docker
• Open-source
• 3500+ commits, 150+ contributors
• Tightly integrated into the Docker ecosystem
• Use Docker API and networking
• Zero single-point-of-failure architecture
• Simple installation
• Easier learning curve
Kubernete
• Container orchestration platform
• Built by Google
• Open-source
• 65000+ commits, 1500+ contributors
• More mature
• Largest market share
• More extensive and customizable
• Manual installation
• Serious planning to make up and down
• Steep learning curve
Asp.Net Core
• Open Source
• Improved Performance
• Host on IIS, Nginx, Apache or self-host
• Ability to build and run on Windows, macOS, and Linux
• Built-in dependency injection
• Light-weight and modular HTTP request pipeline
• Environment-based configuration
• Simplified csproj file
• Ships entirely as NuGet packages
• View Component, Tag Helpers
Asp.net Core
Asp.Net Core
• .Net Framework 4.6.1
• .Net Core 2.0
• Mono 5.4
• Xamarin.iOS 10.14
• Xamarin.Mac 3.8
• Xamarin.Android 7.5
• Upcoming version of
UWP
Asp.Net Core
Startup of the App
Main method in Program.cs
Middleware
• Asp.net Core Apps are built on the middleware pipeline
• Opposed to HttpHandlers and HttpModules, middleware is created
and used programmatically without a config file
• Add and Remove easily in the Configure method of the Startup
Middleware
Some of the built-in middlewares :
• Authentication
• CORS
• Response caching
• Response compression
• Routing
• Session
• Static files
• URL rewriting
Demo
Razor Pages
• @page
• MVVM Framework
• Two-way Data Binding
• Razor support
• Tag Helpers
• HTML Helpers
• Handlers (OnGet, OnGetAsync, OnPostAsync etc..)
View Component
• Create more Reusable Components than Partial Views
• More Powerful
• Have parameters and business logic
• Loaded from External Assemblies
• Used whenever need templates for views, for rendering a group of
elements, and associating server code with it
Tag Helpers
• Allow server-side code to be used when creating and rendering HTML
elements
• ASP.NET Core 2.0 already provides many built-in Tag Helpers
• Used whenever append behavior to a single HTML element
Dependecy Injection
ConfigureServices Method in Startup.cs
Security
• ASP.NET Core Identity
• Cookie-based Authentication
• Token-based Authentication
• Windows Authentication
• OpenId Connect
• Authorization
Hosting
• Kestrel
• IIS
• Nginx
• Apache Server
• Windows Service
Demo
Q & A

More Related Content

What's hot

Azure Container Services
Azure Container Services Azure Container Services
Azure Container Services
WinWire Technologies Inc
 
Let's serve your data
Let's serve your dataLet's serve your data
Let's serve your data
Frank van der Linden
 
Continuous Delivery and Infrastructure as Code
Continuous Delivery and Infrastructure as CodeContinuous Delivery and Infrastructure as Code
Continuous Delivery and Infrastructure as Code
Sascha Möllering
 
Docker presentation for sharing
Docker presentation   for sharingDocker presentation   for sharing
Docker presentation for sharing
Waruna Viraj Perera
 
DCSF 19 Modernizing Insurance with Docker Enterprise: The Physicians Mutual ...
DCSF 19 Modernizing Insurance with Docker Enterprise:  The Physicians Mutual ...DCSF 19 Modernizing Insurance with Docker Enterprise:  The Physicians Mutual ...
DCSF 19 Modernizing Insurance with Docker Enterprise: The Physicians Mutual ...
Docker, Inc.
 
Docker Meetup Rosenheim: Package & deploy Microservices
Docker Meetup Rosenheim: Package & deploy MicroservicesDocker Meetup Rosenheim: Package & deploy Microservices
Docker Meetup Rosenheim: Package & deploy Microservices
Nico Meisenzahl
 
CloudFoundry@home
CloudFoundry@homeCloudFoundry@home
CloudFoundry@home
Yohei Sasaki
 
Mini-training: Let’s Git It!
Mini-training: Let’s Git It!Mini-training: Let’s Git It!
Mini-training: Let’s Git It!
Betclic Everest Group Tech Team
 
Mini-Training: Redis
Mini-Training: RedisMini-Training: Redis
Mini-Training: Redis
Betclic Everest Group Tech Team
 
Intro Docker october 2013
Intro Docker october 2013Intro Docker october 2013
Intro Docker october 2013dotCloud
 
Production Ready Containers from IBM and Docker
Production Ready Containers from IBM and DockerProduction Ready Containers from IBM and Docker
Production Ready Containers from IBM and Docker
Docker, Inc.
 
Containers docker-docker hub-azureacr-azure aci
Containers docker-docker hub-azureacr-azure aciContainers docker-docker hub-azureacr-azure aci
Containers docker-docker hub-azureacr-azure aci
Rajesh Kolla
 
Automated Deployment with Capistrano
Automated Deployment with CapistranoAutomated Deployment with Capistrano
Automated Deployment with Capistrano
Sumit Chhetri
 
Short-Training asp.net vNext
Short-Training asp.net vNextShort-Training asp.net vNext
Short-Training asp.net vNext
Betclic Everest Group Tech Team
 
Introduction to containers a practical session using core os and docker
Introduction to containers  a practical session using core os and dockerIntroduction to containers  a practical session using core os and docker
Introduction to containers a practical session using core os and docker
Alessandro Martellone
 
Servlets made easy. 
Write once and run everywhere.
Servlets made easy. 
Write once and run everywhere.Servlets made easy. 
Write once and run everywhere.
Servlets made easy. 
Write once and run everywhere.
ICON UK EVENTS Limited
 
Introduction to Docker | Docker and Kubernetes Training
Introduction to Docker | Docker and Kubernetes TrainingIntroduction to Docker | Docker and Kubernetes Training
Introduction to Docker | Docker and Kubernetes Training
Shailendra Chauhan
 
Sebastien goasguen cloud stack and docker
Sebastien goasguen   cloud stack and dockerSebastien goasguen   cloud stack and docker
Sebastien goasguen cloud stack and docker
ShapeBlue
 
Find your data - use GraphDB capabilities in XPages applications - and beyond
Find your data - use GraphDB capabilities in XPages applications - and beyond	Find your data - use GraphDB capabilities in XPages applications - and beyond
Find your data - use GraphDB capabilities in XPages applications - and beyond
ICON UK EVENTS Limited
 
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
E. Camden Fisher
 

What's hot (20)

Azure Container Services
Azure Container Services Azure Container Services
Azure Container Services
 
Let's serve your data
Let's serve your dataLet's serve your data
Let's serve your data
 
Continuous Delivery and Infrastructure as Code
Continuous Delivery and Infrastructure as CodeContinuous Delivery and Infrastructure as Code
Continuous Delivery and Infrastructure as Code
 
Docker presentation for sharing
Docker presentation   for sharingDocker presentation   for sharing
Docker presentation for sharing
 
DCSF 19 Modernizing Insurance with Docker Enterprise: The Physicians Mutual ...
DCSF 19 Modernizing Insurance with Docker Enterprise:  The Physicians Mutual ...DCSF 19 Modernizing Insurance with Docker Enterprise:  The Physicians Mutual ...
DCSF 19 Modernizing Insurance with Docker Enterprise: The Physicians Mutual ...
 
Docker Meetup Rosenheim: Package & deploy Microservices
Docker Meetup Rosenheim: Package & deploy MicroservicesDocker Meetup Rosenheim: Package & deploy Microservices
Docker Meetup Rosenheim: Package & deploy Microservices
 
CloudFoundry@home
CloudFoundry@homeCloudFoundry@home
CloudFoundry@home
 
Mini-training: Let’s Git It!
Mini-training: Let’s Git It!Mini-training: Let’s Git It!
Mini-training: Let’s Git It!
 
Mini-Training: Redis
Mini-Training: RedisMini-Training: Redis
Mini-Training: Redis
 
Intro Docker october 2013
Intro Docker october 2013Intro Docker october 2013
Intro Docker october 2013
 
Production Ready Containers from IBM and Docker
Production Ready Containers from IBM and DockerProduction Ready Containers from IBM and Docker
Production Ready Containers from IBM and Docker
 
Containers docker-docker hub-azureacr-azure aci
Containers docker-docker hub-azureacr-azure aciContainers docker-docker hub-azureacr-azure aci
Containers docker-docker hub-azureacr-azure aci
 
Automated Deployment with Capistrano
Automated Deployment with CapistranoAutomated Deployment with Capistrano
Automated Deployment with Capistrano
 
Short-Training asp.net vNext
Short-Training asp.net vNextShort-Training asp.net vNext
Short-Training asp.net vNext
 
Introduction to containers a practical session using core os and docker
Introduction to containers  a practical session using core os and dockerIntroduction to containers  a practical session using core os and docker
Introduction to containers a practical session using core os and docker
 
Servlets made easy. 
Write once and run everywhere.
Servlets made easy. 
Write once and run everywhere.Servlets made easy. 
Write once and run everywhere.
Servlets made easy. 
Write once and run everywhere.
 
Introduction to Docker | Docker and Kubernetes Training
Introduction to Docker | Docker and Kubernetes TrainingIntroduction to Docker | Docker and Kubernetes Training
Introduction to Docker | Docker and Kubernetes Training
 
Sebastien goasguen cloud stack and docker
Sebastien goasguen   cloud stack and dockerSebastien goasguen   cloud stack and docker
Sebastien goasguen cloud stack and docker
 
Find your data - use GraphDB capabilities in XPages applications - and beyond
Find your data - use GraphDB capabilities in XPages applications - and beyond	Find your data - use GraphDB capabilities in XPages applications - and beyond
Find your data - use GraphDB capabilities in XPages applications - and beyond
 
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
 

Similar to Docker With Asp.net Core

Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
AWS Vietnam Community
 
Dockerize the World
Dockerize the WorldDockerize the World
Dockerize the World
damovsky
 
Node and Azure
Node and AzureNode and Azure
Node and Azure
Jason Gerard
 
Docker - Hack Salem! - November 2014
Docker - Hack Salem! - November 2014Docker - Hack Salem! - November 2014
Docker - Hack Salem! - November 2014
Charles Anderson
 
Container Orchestration for .NET Developers
Container Orchestration for .NET DevelopersContainer Orchestration for .NET Developers
Container Orchestration for .NET Developers
Mike Melusky
 
Docker Workshop
Docker WorkshopDocker Workshop
Docker Workshop
Ahmad Rafiee
 
Java script nirvana in netbeans [con5679]
Java script nirvana in netbeans [con5679]Java script nirvana in netbeans [con5679]
Java script nirvana in netbeans [con5679]
Ryan Cuprak
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
Peng Xiao
 
Docker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken CochraneDocker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken Cochrane
dotCloud
 
Informix on Docker Hub
Informix on Docker HubInformix on Docker Hub
Informix on Docker Hub
Pradeep Natarajan
 
Killer Docker Workflows for Development
Killer Docker Workflows for DevelopmentKiller Docker Workflows for Development
Killer Docker Workflows for Development
Chris Tankersley
 
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
IBM France Lab
 
.NET Core: a new .NET Platform
.NET Core: a new .NET Platform.NET Core: a new .NET Platform
.NET Core: a new .NET Platform
Alex Thissen
 
Docker and Microsoft - Windows Server 2016 Technical Deep Dive
Docker and Microsoft - Windows Server 2016 Technical Deep DiveDocker and Microsoft - Windows Server 2016 Technical Deep Dive
Docker and Microsoft - Windows Server 2016 Technical Deep Dive
Docker, Inc.
 
Docker and Microservice
Docker and MicroserviceDocker and Microservice
Docker and Microservice
Samuel Chow
 
Dockerize the World - presentation from Hradec Kralove
Dockerize the World - presentation from Hradec KraloveDockerize the World - presentation from Hradec Kralove
Dockerize the World - presentation from Hradec Kralove
damovsky
 
(DVO305) Turbocharge YContinuous Deployment Pipeline with Containers
(DVO305) Turbocharge YContinuous Deployment Pipeline with Containers(DVO305) Turbocharge YContinuous Deployment Pipeline with Containers
(DVO305) Turbocharge YContinuous Deployment Pipeline with Containers
Amazon Web Services
 
Introduction to node js - From "hello world" to deploying on azure
Introduction to node js - From "hello world" to deploying on azureIntroduction to node js - From "hello world" to deploying on azure
Introduction to node js - From "hello world" to deploying on azure
Colin Mackay
 
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Conference
 

Similar to Docker With Asp.net Core (20)

Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
 
Dockerize the World
Dockerize the WorldDockerize the World
Dockerize the World
 
Node and Azure
Node and AzureNode and Azure
Node and Azure
 
Docker - Hack Salem! - November 2014
Docker - Hack Salem! - November 2014Docker - Hack Salem! - November 2014
Docker - Hack Salem! - November 2014
 
Container Orchestration for .NET Developers
Container Orchestration for .NET DevelopersContainer Orchestration for .NET Developers
Container Orchestration for .NET Developers
 
Docker Workshop
Docker WorkshopDocker Workshop
Docker Workshop
 
Java script nirvana in netbeans [con5679]
Java script nirvana in netbeans [con5679]Java script nirvana in netbeans [con5679]
Java script nirvana in netbeans [con5679]
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Django and Docker
Django and DockerDjango and Docker
Django and Docker
 
Docker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken CochraneDocker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken Cochrane
 
Informix on Docker Hub
Informix on Docker HubInformix on Docker Hub
Informix on Docker Hub
 
Killer Docker Workflows for Development
Killer Docker Workflows for DevelopmentKiller Docker Workflows for Development
Killer Docker Workflows for Development
 
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
 
.NET Core: a new .NET Platform
.NET Core: a new .NET Platform.NET Core: a new .NET Platform
.NET Core: a new .NET Platform
 
Docker and Microsoft - Windows Server 2016 Technical Deep Dive
Docker and Microsoft - Windows Server 2016 Technical Deep DiveDocker and Microsoft - Windows Server 2016 Technical Deep Dive
Docker and Microsoft - Windows Server 2016 Technical Deep Dive
 
Docker and Microservice
Docker and MicroserviceDocker and Microservice
Docker and Microservice
 
Dockerize the World - presentation from Hradec Kralove
Dockerize the World - presentation from Hradec KraloveDockerize the World - presentation from Hradec Kralove
Dockerize the World - presentation from Hradec Kralove
 
(DVO305) Turbocharge YContinuous Deployment Pipeline with Containers
(DVO305) Turbocharge YContinuous Deployment Pipeline with Containers(DVO305) Turbocharge YContinuous Deployment Pipeline with Containers
(DVO305) Turbocharge YContinuous Deployment Pipeline with Containers
 
Introduction to node js - From "hello world" to deploying on azure
Introduction to node js - From "hello world" to deploying on azureIntroduction to node js - From "hello world" to deploying on azure
Introduction to node js - From "hello world" to deploying on azure
 
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
Shift Remote: JS - Javascript Build Tools: Past & Beyond - Shedrack Akintayo
 

Recently uploaded

Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
abdulrafaychaudhry
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
ShamsuddeenMuhammadA
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
abdulrafaychaudhry
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
QuickwayInfoSystems3
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 

Recently uploaded (20)

Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 

Docker With Asp.net Core

  • 1. Docker & Asp.Net Core Fatih Şimşek Software Architect
  • 2. Agenda • Docker • Docker Demo • Asp.Net Core • Break • Asp.Net Core Demo • Asp.Net Core & Docker Demo • Questions
  • 3. Docker • Created in Golang • Open Source • Lightweight • Stand-alone • Platform-independent • Ship Software Faster • Environment Consistency
  • 5. Docker • Community & Enterprise Edition • Build Once, Run Anywhere
  • 6. Docker Install • Windows 7/8 Install Docker Toolbox • Windows 10+ Pro Install Docker CE • Docker for Windows Installer • docker version
  • 7. Key Concepts • Image • Container • Dockerfile • Docker Compose
  • 11. Docker Commands • docker pull [image name] • docker images • docker rmi [image ID] • docker run [image name] • docker ps –a • docker rm [container ID] • docker build [image name] • docker stop • docker kill • docker logs
  • 12. Docker Commands • docker inspect [container ID] • docker exec -it [container ID] cmd • docker volume • docker network
  • 13. Demo
  • 14. Docker File • Text file used to build Docker images • Contains build instructions • Instructions create intermediate image that can be cached to speed up future builds FROM ENTRYPOINT ENV RUN WORKDIR VOLUME COPY EXPOSE CMD
  • 15. Container Network • Networking with containers is a very important feature • Allows users to define their own networks and connect containers to them • Create a network on a single host or a network that spans across multiple hosts docker network create [OPTIONS] my-network docker run –d --net=my-network --name my-container mongo docker network ls docker network inspect my-network
  • 16. Docker Compose • Manage the whole application lifecycle • Build service configuration file (docker-compose.yml)
  • 17. Docker Swarm • Container orchestration platform • Developed by Docker • Open-source • 3500+ commits, 150+ contributors • Tightly integrated into the Docker ecosystem • Use Docker API and networking • Zero single-point-of-failure architecture • Simple installation • Easier learning curve
  • 18. Kubernete • Container orchestration platform • Built by Google • Open-source • 65000+ commits, 1500+ contributors • More mature • Largest market share • More extensive and customizable • Manual installation • Serious planning to make up and down • Steep learning curve
  • 19. Asp.Net Core • Open Source • Improved Performance • Host on IIS, Nginx, Apache or self-host • Ability to build and run on Windows, macOS, and Linux • Built-in dependency injection • Light-weight and modular HTTP request pipeline • Environment-based configuration • Simplified csproj file • Ships entirely as NuGet packages • View Component, Tag Helpers
  • 21. Asp.Net Core • .Net Framework 4.6.1 • .Net Core 2.0 • Mono 5.4 • Xamarin.iOS 10.14 • Xamarin.Mac 3.8 • Xamarin.Android 7.5 • Upcoming version of UWP
  • 23.
  • 24. Startup of the App Main method in Program.cs
  • 25. Middleware • Asp.net Core Apps are built on the middleware pipeline • Opposed to HttpHandlers and HttpModules, middleware is created and used programmatically without a config file • Add and Remove easily in the Configure method of the Startup
  • 26. Middleware Some of the built-in middlewares : • Authentication • CORS • Response caching • Response compression • Routing • Session • Static files • URL rewriting
  • 27. Demo
  • 28. Razor Pages • @page • MVVM Framework • Two-way Data Binding • Razor support • Tag Helpers • HTML Helpers • Handlers (OnGet, OnGetAsync, OnPostAsync etc..)
  • 29. View Component • Create more Reusable Components than Partial Views • More Powerful • Have parameters and business logic • Loaded from External Assemblies • Used whenever need templates for views, for rendering a group of elements, and associating server code with it
  • 30. Tag Helpers • Allow server-side code to be used when creating and rendering HTML elements • ASP.NET Core 2.0 already provides many built-in Tag Helpers • Used whenever append behavior to a single HTML element
  • 32. Security • ASP.NET Core Identity • Cookie-based Authentication • Token-based Authentication • Windows Authentication • OpenId Connect • Authorization
  • 33. Hosting • Kestrel • IIS • Nginx • Apache Server • Windows Service
  • 34. Demo
  • 35. Q & A

Editor's Notes

  1. Docker is available for implementation across a wide range of platforms: Desktop: Mac OS, Windows 10. Server: Various Linux distributions and Windows Server 2016. Cloud: Amazon Web Services, Google Compute Platform, Microsoft Azure, IBM Cloud, and more.
  2. Docker Daemon: A persistent background process that manages Docker images, containers, networks, and storage volumes. The Docker daemon constantly listens for Docker API requests and processes them. Docker Engine REST API: An API used by applications to interact with the Docker daemon; it can be accessed by an HTTP client. Docker CLI: A command line interface client for interacting with the Docker daemon. It greatly simplifies how you manage container instances and is one of the key reasons why developers love using Docker.
  3. docker run -ti busybox (interactive) kill all running containers with docker kill $(docker ps -q) delete all stopped containers with docker rm $(docker ps -a -q) delete all images with docker rmi $(docker images -q)
  4. Running Container & Inspect
  5. Volume: Special type of directory in a container typically referred to as a “data volume” Can be shared and reused among containers Updates to an image won’t affect a data volume docker run –p 8080:3000 –v $(pwd):/app microsoft/aspnetcore-build docker inspect containerId FROM creates a layer from the ubuntu:15.04 Docker image. COPY adds files from your Docker client’s current directory. RUN builds your application with make. CMD specifies what command to run within the container. CMD [“/bin/bash”, “-c”, “dotnet restore && dotnet run”] EXPOSE DockerHostPort ENTRYPOINT dotnet myapp.dll
  6. All Docker installations represent the docker0 network with bridge; Docker connects to bridge by default. Run ifconfig on the Linux host to view the bridge network
  7. Docker-compose.yml: Build, environment, image, networks, volumes, ports docker-compose build docker-compose up (create and start containers) docker-compose down (stop and remove containers) docker-compose logs docker-compose ps docker-compose start docker-compose stop docker-compose rm
  8. using an internal cluster management system called Borg (sometimes referred to as Omega) due to being out longer (v1.0 came out in July 2015)
  9. The Program class is the main entry point for ASP.NET Core 2.0 applications. In fact, ASP.NET Core 2.0 applications are very similar to standard .NET Framework console applications in this regard The new Microsoft.AspNet.Core.All package contains all ASP.NET Core 2.0 features in a single library.(you can still reference them manually instead of using the single packages) The runtime store is an important new component shipped with ASP.NET Core 2.0. It contains compiled packages, which were compiled using the native machine language and it is key for improved performance. All applications using the Microsoft.AspNet.Core.All package benefit from it Docker container images including ASP.NET Core 2.0 applications are much smaller than images with classic ASP.NET applications, meaning that they are faster to deploy and to start-up.
  10. Previous versions of ASP.NET had a very close relation with Internet Information Services (IIS), Wanting to change this, Microsoft defined the Open Web Interface for .NET (OWIN) specification .NET Core borrowed heavily from the OWIN specification. There are no more Global.asax, web.config, or machine.config configuration files, modules or handlers Some bootstrap code declares a class that contains a convention-defined method (Startup will be used, if no class is declared) This conventional method, which should be called Configure, receives as its sole parameter a pointer to an IApplicationBuilder instance You then start adding middleware to the IApplicationBuilder; this middleware is what will handle your web requests
  11. Microsoft estimates that about 70% of the libraries on NuGet should just work with .NET Core now WCF, WPF API
  12. Additional Topics
  13. HostingEnvironment => launchSettings.json, Command-line arguments, encrypted user store, custom provider ASPNETCORE_ENVIRONMENT => Development, Staging, Production
  14. An HttpModule runs for each request before arriving at the handler that generates the response, and/or after it generates the response A Handler handles the request and generates the response for a given file extension
  15. _ViewImports.cshtml  @using AspNetCoreDemo @addTagHelper*, Microsoft.AspNetCore.Mvc.TagHelpers _ViewStart.cshtml  @{ Layout = "~/Views/Shared/_Layout.cshtml"; } Access to these files is not available by default  app.UseStaticFiles(); Note that by default all static files served by this middleware are public and anyone can access them. If you need to protect some of your files, you need to either store them outside the wwwroot folder or you need to use the FileResult controller action, which supports the authorization middleware. Activate Session: app.UseSession();
  16. Instance: The instance is given all the time. We are responsible for its creation. Transient: The instance is created each time we use the object. Scoped: The instance is created once by the HTTP request. Singleton: The instance is created once by the application instance.
  17. UserManager<IdentityUser> SignInManager<IdentityUser>
  18. Kestrel is the default, multi-platform, web server. It offers acceptable performance, but lacks lots of features that are expected in real-life: No buffering No support for Windows authentication (as time passes, this is less of a problem) No WebSockets No HTTP/2 No direct file transmission No strong security protection
  19. Deploying Asp.net Core Application To Docker
  20. Additional Topics