KEMBAR78
Developing multi-platform microservices using .NET core | PPTX
Developing Microservices
using .NET Core
Dror Helper | http://helpercode.com | @dhelper
Code Samples: https://github.com/dhelper/DotNetCoreMicroservices
Consultant & Architect
Developing software since 2002
Clean Coder & Test Driven Developer
Pluralsight author
https://www.pluralsight.com/authors/dror-helper
B: http://helpercode.com
T: @dhelper
About.ME
New project – Day 0.1
Gather top
talent
Cutting edge
technologies
and tools
N-Tier
/Hexagonal
architecture
Break
functionality
into assemblies
CI/CD
Shared
responsibility
Same Project – after a few <fill in the blank>
The whole
team works on
one codebase
Technology
became
obsolete
Inter-module
dependencies
Long and
painful build
process
Deployment
takes forever
The blame
game
Spoiler Alert!
A Solution - Microservices
Create
functionality
from small
building blocks
Small teams
organized
around domains
Independent
technology
stacks
Isolation
Smart
endpoints/dumb
pipes
Manageable
codebase
https://github.com/dotnet-architecture/eShopOnContainers
The .NET Family
.NET
Framework
Xamarin
.NET Core
Next Generation Websites and Services
High Performance
Modular Compostable Framework
Open Source
Multi Platform
ASP.NET Core
.NET Framework .NET Core
ASP.NET Core Service Architecture
Controller
Business Logic
Data access layer
ASP.NET Core Middleware
Middleware
3
// logic
// logic
Middleware
2
// logic
Next();
// logic
Middleware
1
// logic
Next();
// logic
Request
Response
Say hello to my little friend
App App App
Works On My Machine!
Docker for Developers
docker run –name <img> -e <key>=<value> -p <out>:<in> <container>
docker run –name myDB –e POSTGRES_USER=dror –p 5432:5432 postgres:latest
• docker ps [-a]
• docker stop <container id>
• docker rm <container id>
• docker system prune
Reduce the Pain of multi-container deplotment
> docker run …
> docker run …
> docker run …
.
.
.
version: '3'
services:
mysimplewebapi:
image: mysimplewebapi
depends_on:
- "postgres_image"
build:
context: ./MySimpleWebApi
dockerfile: Dockerfile
environment:
DB_CONNECTION_STRING: “..."
postgres_image:
image: postgres:alpine
ports:
- "5432:5432"
environment:
POSTGRES_USER: “..."
docker-compose
Multiplatform Microservices (in .NET)
Docker
Http
ASP.NET
Core
Thank you 
Dror Helper | http://helpercode.com | @dhelper
Code Samples: https://github.com/dhelper/DotNetCoreMicroservices

Developing multi-platform microservices using .NET core

  • 1.
    Developing Microservices using .NETCore Dror Helper | http://helpercode.com | @dhelper Code Samples: https://github.com/dhelper/DotNetCoreMicroservices
  • 2.
    Consultant & Architect Developingsoftware since 2002 Clean Coder & Test Driven Developer Pluralsight author https://www.pluralsight.com/authors/dror-helper B: http://helpercode.com T: @dhelper About.ME
  • 3.
    New project –Day 0.1 Gather top talent Cutting edge technologies and tools N-Tier /Hexagonal architecture Break functionality into assemblies CI/CD Shared responsibility
  • 4.
    Same Project –after a few <fill in the blank> The whole team works on one codebase Technology became obsolete Inter-module dependencies Long and painful build process Deployment takes forever The blame game
  • 5.
  • 6.
    A Solution -Microservices Create functionality from small building blocks Small teams organized around domains Independent technology stacks Isolation Smart endpoints/dumb pipes Manageable codebase
  • 7.
  • 9.
  • 10.
    Next Generation Websitesand Services High Performance Modular Compostable Framework Open Source Multi Platform ASP.NET Core .NET Framework .NET Core
  • 11.
    ASP.NET Core ServiceArchitecture Controller Business Logic Data access layer
  • 12.
    ASP.NET Core Middleware Middleware 3 //logic // logic Middleware 2 // logic Next(); // logic Middleware 1 // logic Next(); // logic Request Response
  • 13.
    Say hello tomy little friend App App App
  • 14.
    Works On MyMachine!
  • 15.
    Docker for Developers dockerrun –name <img> -e <key>=<value> -p <out>:<in> <container> docker run –name myDB –e POSTGRES_USER=dror –p 5432:5432 postgres:latest • docker ps [-a] • docker stop <container id> • docker rm <container id> • docker system prune
  • 16.
    Reduce the Painof multi-container deplotment > docker run … > docker run … > docker run … . . . version: '3' services: mysimplewebapi: image: mysimplewebapi depends_on: - "postgres_image" build: context: ./MySimpleWebApi dockerfile: Dockerfile environment: DB_CONNECTION_STRING: “..." postgres_image: image: postgres:alpine ports: - "5432:5432" environment: POSTGRES_USER: “..." docker-compose
  • 17.
    Multiplatform Microservices (in.NET) Docker Http ASP.NET Core
  • 18.
    Thank you  DrorHelper | http://helpercode.com | @dhelper Code Samples: https://github.com/dhelper/DotNetCoreMicroservices