SlideShare a Scribd company logo
#NetConfBcn
#NetConfBcn
#NetConfBcn
#NetConfBcn
0 5 10 15 20 25 30 35 40 45 50
JavaScript
Java
Python
C++
C
C#
PHP
Ruby
Go
HackerRank 2018 Developer Skills Report
#NetConfBcn
JavaScript
29%
Python
12%
Java
12%
Ruby
11%
php
7%
C++
5%
CSS
4%
C#
4%
GO
4%
C
3%
Octoverse 2017
#NetConfBcn
0 10 20 30 40 50 60 70
AWS
Azure
Google
RightScale 2018 Scale of the Cloud Report
#NetConfBcn
#NetConfBcn
#NetConfBcn
#NetConfBcn
#NetConfBcn
#NetConfBcn
#NetConfBcn
#NetConfBcn
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseKestrel()
.Configure(app =>
{
app.Run(httpContext =>
{
var request = httpContext.Request;
var response = httpContext.Response;
// Echo the Headers
foreach (var header in request.Headers)
{
response.Headers.Add(header);
}
// Echo the body
return request.Body.CopyToAsync(response.Body);
});
});
#NetConfBcn
[Fact]
public async Task Get_With_Custom_Header()
{
string headerName = "Custom-Header";
Client.DefaultRequestHeaders.Add(headerName, "echo");
var response = await Client.GetAsync("/");
response.EnsureSuccessStatusCode();
var responseStrong = await response.Content.ReadAsStringAsync();
Assert.Equal(string.Empty, responseStrong);
Assert.Equal("echo", response.Headers.GetValues(headerName).First());
}
#NetConfBcn
FROM microsoft/dotnet:2.1-sdk AS builder
COPY . src
WORKDIR src
RUN dotnet restore
RUN dotnet publish -c release
FROM microsoft/dotnet
COPY --from=builder src/bin/release/netcoreapp2.1/publish app
WORKDIR app
ENV ASPNETCORE_URLS http://*:80
EXPOSE 80
ENTRYPOINT ["dotnet", "echoserver.dll"]
#NetConfBcn
pool:
vmImage: 'Ubuntu-16.04’
variables:
buildConfiguration: 'Release’
dockerId: 'dotnetconf’
imageName: 'echoserver:$(Build.BuildId)'
steps:
- script: |
dotnet build --configuration $(buildConfiguration) ./src/echoserver.sln
- task: DotNetCoreCLI@2
inputs:
command: test
projects: '**/*tests/*.csproj’
arguments: '--configuration $(buildConfiguration) --collect "Code coverage“’
- script: |
cd src/echoserver
dotnet publish --configuration $(buildConfiguration) --output "$(Build.ArtifactStagingDirectory)netcoreapp2.1"
- task: PublishBuildArtifacts@1
#NetConfBcn
- task: Docker@1
displayName: Login
inputs:
azureSubscriptionEndpoint: 'HexaAzureSubscription'
azureContainerRegistry: $(dockerId).azurecr.io
command: login
- script: |
cd src/echoserver
docker build -t $(dockerId).azurecr.io/$(imageName) .
docker push $(dockerId).azurecr.io/$(imageName)
#NetConfBcn
---
- name: Deploy an Azure Container Instance Group
hosts: localhost
gather_facts: no
tasks:
- name: Create Resource Group
azure_rm_resourcegroup:
location: "northeurope"
name: "netConf2018"
state: present
- name: Create the ACI Container Croup
azure_rm_containerinstance:
resource_group: netConf2018
name: netConf2018
os_type: linux
ip_address: public
ports:
- 80
containers:
- name: echoserver
image: docker.io/cmendibl3/echoserver:1.0
memory: 1.5
ports:
- 80
register: new_aci
- name: Show the ACI Public IP
debug:
msg: "{{ new_aci.ip_address }}"
#NetConfBcn
helm init
helm repo add coreos https://s3-eu-west-1.amazonaws.com/coreos-charts/stable/
helm install coreos/prometheus-operator --name prometheus-operator --namespace monitoring --set rbacEnable=false
helm install coreos/kube-prometheus --name kube-prometheus --set global.rbacEnable=false --namespace monitoring
kubectl --namespace monitoring port-forward $(kubectl get pod --namespace monitoring -l app=kube-prometheus-grafana -o template
--template "{{(index .items 0).metadata.name}}") 3000:3000
#NetConfBcn
#NetConfBcn
Thank you!!!
@cmendibl3
#NetConfBcn

More Related Content

PDF
ServiceWorkerとES6 Modules時代のTypescript開発考察
PPT
Parkjihoon phonegap research_for_bada
PPTX
GvaScript Library
PDF
So you want to write a cloud function
PDF
高速な案件サイクルを支えるデータ基盤 その実践例
PPTX
The State of the Developer Ecosystem - .NET Conf Madrid 2018
ODP
PDF
React meets o OCalm
ServiceWorkerとES6 Modules時代のTypescript開発考察
Parkjihoon phonegap research_for_bada
GvaScript Library
So you want to write a cloud function
高速な案件サイクルを支えるデータ基盤 その実践例
The State of the Developer Ecosystem - .NET Conf Madrid 2018
React meets o OCalm

What's hot (20)

PDF
Development tools at Base
PDF
OASGraph LoopBack 4 Integration
PDF
Heptio Contour - talk CNCF Nantes
PDF
The Other WatchKit
PPTX
Phone Gap
PDF
Aws uk ug #8 not everything that happens in vegas stay in vegas
PDF
Traefik on Kubernetes at MySocialApp (CNCF Paris Meetup)
PDF
Reactive Programming
PPTX
EPAM AQA: Let`s make a (s)hot with gatling 3.0+
PDF
Secure my ng-app
PDF
Batteries not included
PDF
[JCConf 2017] Reactive Programming with Reactor
PPTX
Jump into React-Native (Class 5)
PPTX
Monitoring on Kubernetes using prometheus
ODP
ATLRUG Announcements - October 2016
PPTX
Secret Deployment Events API features for mabl
PDF
Celery vs MRQ
PPTX
SignalR: Above & Beyond Chat
PPTX
Intro to RxJS
PDF
Criando pipelines de entrega contínua multilinguagem com Docker e Jenkins
Development tools at Base
OASGraph LoopBack 4 Integration
Heptio Contour - talk CNCF Nantes
The Other WatchKit
Phone Gap
Aws uk ug #8 not everything that happens in vegas stay in vegas
Traefik on Kubernetes at MySocialApp (CNCF Paris Meetup)
Reactive Programming
EPAM AQA: Let`s make a (s)hot with gatling 3.0+
Secure my ng-app
Batteries not included
[JCConf 2017] Reactive Programming with Reactor
Jump into React-Native (Class 5)
Monitoring on Kubernetes using prometheus
ATLRUG Announcements - October 2016
Secret Deployment Events API features for mabl
Celery vs MRQ
SignalR: Above & Beyond Chat
Intro to RxJS
Criando pipelines de entrega contínua multilinguagem com Docker e Jenkins
Ad

Similar to The State of the Developer Ecosystem - .NET Conf Barcelona 2018 (17)

PPTX
Unit-3.pptx
PPTX
ASP.NET WEB API
PDF
Scalable Python with Docker, Kubernetes, OpenShift
PDF
Scalable Web Applications with 100% open source
PPTX
.NET Core Summer event 2019 in Brno, CZ - .NET Core Networking stack and perf...
PPTX
DotNext 2017 in Moscow - .NET Core Networking stack and Performance -- Karel ...
PPTX
TFI2014 Session I - State of SDN - Karen “Shelly” Cadora
PPTX
Delivering High Performance Websites with NGINX
PDF
MS TechDays 2011 - WCF Web APis There's a URI for That
PDF
Adapting our API for multiple platforms
PDF
A guide to modern software development 2018
PDF
APIs - the good, the bad & the ugly
PDF
Build Cloud Native Apps With DigitalOcean Kubernetes
PPTX
13 networking, mobile services, and authentication
PDF
HTTP/2 -- the future of WWW
PDF
Design Web Service API by HungerStation
PDF
Simplify QA Automation: Master API Testing with HTTPClient in C#
Unit-3.pptx
ASP.NET WEB API
Scalable Python with Docker, Kubernetes, OpenShift
Scalable Web Applications with 100% open source
.NET Core Summer event 2019 in Brno, CZ - .NET Core Networking stack and perf...
DotNext 2017 in Moscow - .NET Core Networking stack and Performance -- Karel ...
TFI2014 Session I - State of SDN - Karen “Shelly” Cadora
Delivering High Performance Websites with NGINX
MS TechDays 2011 - WCF Web APis There's a URI for That
Adapting our API for multiple platforms
A guide to modern software development 2018
APIs - the good, the bad & the ugly
Build Cloud Native Apps With DigitalOcean Kubernetes
13 networking, mobile services, and authentication
HTTP/2 -- the future of WWW
Design Web Service API by HungerStation
Simplify QA Automation: Master API Testing with HTTPClient in C#
Ad

More from Carlos Mendible (6)

PPTX
DECRYPTING THE WORLD THROUGH AZURE COGNITIVE SERVICES
PPTX
PaaS to the Future
PPTX
Serverless Wars
PPTX
AKS: Keep your Devs close and your OpsSec closer…
PPTX
Azure Functions. Hasta la Vista Server...
PDF
Cloud Design Patterns
DECRYPTING THE WORLD THROUGH AZURE COGNITIVE SERVICES
PaaS to the Future
Serverless Wars
AKS: Keep your Devs close and your OpsSec closer…
Azure Functions. Hasta la Vista Server...
Cloud Design Patterns

Recently uploaded (20)

PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PDF
Hindi spoken digit analysis for native and non-native speakers
PPTX
Tartificialntelligence_presentation.pptx
PDF
Enhancing emotion recognition model for a student engagement use case through...
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Hybrid model detection and classification of lung cancer
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
A Presentation on Artificial Intelligence
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
WOOl fibre morphology and structure.pdf for textiles
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PPTX
1. Introduction to Computer Programming.pptx
PDF
Getting Started with Data Integration: FME Form 101
Unlocking AI with Model Context Protocol (MCP)
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Assigned Numbers - 2025 - Bluetooth® Document
Zenith AI: Advanced Artificial Intelligence
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
Hindi spoken digit analysis for native and non-native speakers
Tartificialntelligence_presentation.pptx
Enhancing emotion recognition model for a student engagement use case through...
Encapsulation_ Review paper, used for researhc scholars
Hybrid model detection and classification of lung cancer
Agricultural_Statistics_at_a_Glance_2022_0.pdf
A Presentation on Artificial Intelligence
Accuracy of neural networks in brain wave diagnosis of schizophrenia
WOOl fibre morphology and structure.pdf for textiles
Group 1 Presentation -Planning and Decision Making .pptx
NewMind AI Weekly Chronicles - August'25-Week II
SOPHOS-XG Firewall Administrator PPT.pptx
1. Introduction to Computer Programming.pptx
Getting Started with Data Integration: FME Form 101

The State of the Developer Ecosystem - .NET Conf Barcelona 2018

  • 4. #NetConfBcn 0 5 10 15 20 25 30 35 40 45 50 JavaScript Java Python C++ C C# PHP Ruby Go HackerRank 2018 Developer Skills Report
  • 6. #NetConfBcn 0 10 20 30 40 50 60 70 AWS Azure Google RightScale 2018 Scale of the Cloud Report
  • 14. #NetConfBcn public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .UseKestrel() .Configure(app => { app.Run(httpContext => { var request = httpContext.Request; var response = httpContext.Response; // Echo the Headers foreach (var header in request.Headers) { response.Headers.Add(header); } // Echo the body return request.Body.CopyToAsync(response.Body); }); });
  • 15. #NetConfBcn [Fact] public async Task Get_With_Custom_Header() { string headerName = "Custom-Header"; Client.DefaultRequestHeaders.Add(headerName, "echo"); var response = await Client.GetAsync("/"); response.EnsureSuccessStatusCode(); var responseStrong = await response.Content.ReadAsStringAsync(); Assert.Equal(string.Empty, responseStrong); Assert.Equal("echo", response.Headers.GetValues(headerName).First()); }
  • 16. #NetConfBcn FROM microsoft/dotnet:2.1-sdk AS builder COPY . src WORKDIR src RUN dotnet restore RUN dotnet publish -c release FROM microsoft/dotnet COPY --from=builder src/bin/release/netcoreapp2.1/publish app WORKDIR app ENV ASPNETCORE_URLS http://*:80 EXPOSE 80 ENTRYPOINT ["dotnet", "echoserver.dll"]
  • 17. #NetConfBcn pool: vmImage: 'Ubuntu-16.04’ variables: buildConfiguration: 'Release’ dockerId: 'dotnetconf’ imageName: 'echoserver:$(Build.BuildId)' steps: - script: | dotnet build --configuration $(buildConfiguration) ./src/echoserver.sln - task: DotNetCoreCLI@2 inputs: command: test projects: '**/*tests/*.csproj’ arguments: '--configuration $(buildConfiguration) --collect "Code coverage“’ - script: | cd src/echoserver dotnet publish --configuration $(buildConfiguration) --output "$(Build.ArtifactStagingDirectory)netcoreapp2.1" - task: PublishBuildArtifacts@1
  • 18. #NetConfBcn - task: Docker@1 displayName: Login inputs: azureSubscriptionEndpoint: 'HexaAzureSubscription' azureContainerRegistry: $(dockerId).azurecr.io command: login - script: | cd src/echoserver docker build -t $(dockerId).azurecr.io/$(imageName) . docker push $(dockerId).azurecr.io/$(imageName)
  • 19. #NetConfBcn --- - name: Deploy an Azure Container Instance Group hosts: localhost gather_facts: no tasks: - name: Create Resource Group azure_rm_resourcegroup: location: "northeurope" name: "netConf2018" state: present - name: Create the ACI Container Croup azure_rm_containerinstance: resource_group: netConf2018 name: netConf2018 os_type: linux ip_address: public ports: - 80 containers: - name: echoserver image: docker.io/cmendibl3/echoserver:1.0 memory: 1.5 ports: - 80 register: new_aci - name: Show the ACI Public IP debug: msg: "{{ new_aci.ip_address }}"
  • 20. #NetConfBcn helm init helm repo add coreos https://s3-eu-west-1.amazonaws.com/coreos-charts/stable/ helm install coreos/prometheus-operator --name prometheus-operator --namespace monitoring --set rbacEnable=false helm install coreos/kube-prometheus --name kube-prometheus --set global.rbacEnable=false --namespace monitoring kubectl --namespace monitoring port-forward $(kubectl get pod --namespace monitoring -l app=kube-prometheus-grafana -o template --template "{{(index .items 0).metadata.name}}") 3000:3000

Editor's Notes

  • #5: What are employees looking for worldwide? According to hacker rank that JavaScript is the leader, followed by Java and Python and C# is in 6th place https://research.hackerrank.com/developer-skills/2018/
  • #6: What does github and OSS world have to say about that? We can se the same pattern here with javascript also winning the battle and a tie between Java and Python C# is in the 8th place
  • #7: % Of Respondants Running Applications 1000 respondants
  • #12: Habilidades basicas vs strategicas