our - decision tech · -dependency injection-tag helper-app engine “greenfield warfare”...

Post on 18-Aug-2020

13 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

OUR

BRANDS

TECHOUR

STACK

decision.tech/vacancies

Alex SloatDevelopment Manager@alexsloat

“The March To Victory”

“The March To Victory”Hopes

&

Dreams

VICTORY!

“The March To Victory”2016 2018

NOW

“Greenfield Warfare”

Phone recycling platform

in .Net Core 1.1

“The Final Battle”

Dot Net Core in a

brown field project

2017

“There has to

be a better way”

.Net codebase

The status-quo

“The Recon Mission”

.NET on Google Cloud

Platform

“The mini

mutiny”

Third party vs

roll your own

“Logistics Unit”

Resilience in

underlinable

external services

“Secret

weapons”

- Webpack

- Dependency

injection

- Tag helper

- App Engine

“The Recon Mission”

Running .NET in production

on Google Cloud Platform

“The Recon Mission”The DecisionTech Stack 2016

But can’t you run .net on a Linux server?

“The Recon Mission”

“The Recon Mission”

Running .NET in production

on Google Cloud Platform

“The March To Victory”2016 2018

NOW

“The Final Battle”

Dot Net Core in a

brown field project

2017

“Greenfield Warfare”

Phone recycling platform

in .Net Core 1.1

“There has to

be a better way”

.Net codebase

The status-quo

“The Recon Mission”

.NET on Google Cloud

Platform

“The mini

mutiny”

Third party vs

roll your own

“Logistics Unit”

Resilience in

underlinable

external services

“Secret

weapons”

- Webpack

- Dependency

injection

- Tag helper

- App Engine

“Greenfield Warfare”Greenfield project:

2017 Recycling PHP Rebuild

“Greenfield Warfare”The Enemy

“Greenfield Warfare”Introducing .NET Core to the Stack

“Logistics Unit”Resilience against underlinable external services

MVC Application

Umbraco client

“Logistics Unit”Microservices

Raven client

MVC Application

Content API Deals API

“Logistics Unit”Microservices

“Logistics Unit”

Resilience in underlinable external services

“The Mini Mutiny”Open Source vs Roll-Your-Own

MVC Application and APIs

CompareMyMobile.com SellMyMobile.com

“The Mini Mutiny”Open Source vs Roll-Your-Own

“The Mini Mutiny”Multi-Tenancy with

“The Mini Mutiny”Multi-Tenancy with

“The Mini Mutiny”Multi-Tenancy with

“The Mini Mutiny”

Open Source vs Roll-Your-Own

“Secret Weapons”

• Ability to deal with all static assets

• Rich Plugins

• Multiple configuration support

“Secret Weapons”The battle for Faster pages

“Secret Weapons”The battle for Faster pages

“Secret Weapons”The battle for Faster pages

“Secret Weapons”Dependency Injection out of the Box

• Simplistic DI

• Razor View support

• SOLID code with little effort

“Secret Weapons”

public void ConfigureServices(IServiceCollection services){

services.AddTransient<IRepository, ActualRepository>();services.AddScoped<IRepository, ActualRepository>();services.AddSingleton<IRepository, ActualRepository>();

}

Dependency Injection out of the Box

“Secret Weapons”Tag Helpers

• Accessible for all developers

• Intelli-sense support

• Easy to reuse across a solution

“Secret Weapons”Tag Helpers

“Secret Weapons”DotNet Core and App Engine

“Secret Weapons”DotNet Core and App Engine

“Secret Weapons”DotNet Core and App Engine

“Greenfield Warfare”Victory!

“The March To Victory”2016 2018

NOW

2017

“Greenfield Warfare”

Phone recycling platform

in .Net Core 1.1

“The Final Battle”

Dot Net Core in a

brown field project

“There has to

be a better way”

.Net codebase

The status-quo

“The Recon Mission”

.NET on Google Cloud

Platform

“The mini

mutiny”

Third party vs

roll your own

“Logistics Unit”

Resilience in

underlinable

external services

“Secret

weapons”

- Webpack

- Dependency

injection

- Tag helper

- App Engine

“The Final Battle”Brownfield Project:

Migrating The Existing Full .NET Applicationto DotNet Core

“The Final Battle”When two worlds collide

MVC Application

/guides

/news

/ask-our-expert

….

www.broadbandchoices.co.uk

Amazon

Route 53

Classic

Load

Balancer

EC2 Instances

Legacy .NET

Stack

www.broadbandchoices.co.uk

Amazon

Route 53

Application

Load

Balancer

Classic

Load

Balancer

/guides

/news

/ask-our-expert

EC2 Instances

.NET Core Stack

Legacy .NET

StackDefault routes

“The Final Battle”When two worlds collide

“The Final Battle”When two worlds collide

if (_siteConfig.Feature.Content != null){ app.UseContentApi();routes.UseContentRouting();

}

app.MapWhen(s => IsALegacyPath(s, serviceProvider, routes), builder => builder.UseMiddleware<ProxyMiddleware>(GetOptions()));

Amazon

Route 53

Application

Load

Balancer

Classic

Load

Balancer

EC2 Instances

.NET Core Stack

Legacy .NET

Stack

• Feedback as you go

• Reduced risk

• Keeping delivery cadence

“The Final Battle”Advantages of the phased approach

• Temporary technical debt

• Perceived slower progress

“The Final Battle”Disadvantages of the phased approach

“The Final Battle”Migrating The Existing Full .NET Application

to DotNet Core

VICTORY!

Learnings from .NET Core

• Flexible request processing pipelines

• Alpha or Beta software might be needed

• Contribute to the OSS community

• Does all your tooling

support .NET Core

• Don’t do a full rewrite

Any Questions?

Thanks for coming

https://decision.tech/vacancies

top related